From 6b1d69eff7e2572befcbd6d23398b477e440fee4 Mon Sep 17 00:00:00 2001 From: tianrking Date: Sun, 14 Jul 2024 01:12:22 +0000 Subject: [PATCH] Update --- .nojekyll | 0 404.html | 14 ++ CNAME | 1 + assets/css/styles.952d87a7.css | 1 + ...pdown-35e13cbe46c9923327f30a76a90bff3b.png | Bin 0 -> 25427 bytes ...pdown-f0d995e751e7656a1b0dbbc1134e49c2.png | Bin 0 -> 27841 bytes assets/js/01a85c17.1f01f224.js | 1 + assets/js/028cb135.1dc19fda.js | 1 + assets/js/05d90159.e5d0a379.js | 1 + assets/js/0b9fe6f3.bb3846c5.js | 1 + assets/js/0db954b6.32e1ad0c.js | 1 + assets/js/0e384e19.38d62581.js | 1 + assets/js/14d3eb87.fc191249.js | 1 + assets/js/1538.bcfcd850.js | 1 + assets/js/17896441.620a8489.js | 1 + assets/js/18c41134.17123bc7.js | 1 + assets/js/1e4232ab.81f85e5b.js | 1 + assets/js/1f391b9e.1479ec8d.js | 1 + assets/js/2237.e0c95162.js | 1 + assets/js/22dd74f7.8a90972e.js | 1 + assets/js/2b149dc3.39ddbb7a.js | 1 + assets/js/2c06c927.73da377c.js | 1 + assets/js/2c14e4d0.113c919b.js | 1 + assets/js/3217192f.bb3d91e2.js | 1 + assets/js/3242.35bb0ee0.js | 1 + assets/js/36994c47.77d49b04.js | 1 + assets/js/3720c009.f8828a1d.js | 1 + assets/js/393be207.a6e53343.js | 1 + assets/js/395e5342.5144fa96.js | 1 + assets/js/3a2db09e.2dd30aa3.js | 1 + assets/js/3ea259e6.ca948adc.js | 1 + assets/js/533a09ca.669e7e47.js | 1 + assets/js/59af61a6.b4dfef7b.js | 1 + assets/js/5c868d36.e8d435f2.js | 1 + assets/js/5da542a3.eaae6618.js | 1 + assets/js/5e28b2f4.c725741f.js | 1 + assets/js/5e90a9b3.1c94554a.js | 1 + assets/js/5e95c892.794757cd.js | 1 + assets/js/5eeb21e4.13bb8d9a.js | 1 + assets/js/60875e34.7fde8b26.js | 1 + assets/js/60f48b9d.c7ff861a.js | 1 + assets/js/62424562.cb5af537.js | 1 + assets/js/675103b9.756f4557.js | 1 + assets/js/6875c492.27fa3488.js | 1 + assets/js/712d17a8.14edf328.js | 1 + assets/js/810d738c.2d6ccfcd.js | 1 + assets/js/814f3328.bec831f0.js | 1 + assets/js/822bd8ab.a9d00c4e.js | 1 + assets/js/85e08f6c.890575cf.js | 1 + assets/js/873234d7.1a886d81.js | 1 + assets/js/8cb1b30d.cb50becb.js | 1 + assets/js/91a39dd0.39d3e8bf.js | 1 + assets/js/925b3f96.5503aaac.js | 1 + assets/js/928b9b77.b63e9685.js | 1 + assets/js/9e4087bc.1e2fe8e5.js | 1 + assets/js/9fab635f.209dd272.js | 1 + assets/js/a6aa9e1f.63bb8777.js | 1 + assets/js/a7456010.fc7a5d1f.js | 1 + assets/js/a7bd4aaa.eec9f40b.js | 1 + assets/js/a94703ab.c0f75d91.js | 1 + assets/js/aba21aa0.1562c573.js | 1 + assets/js/abc7995a.9232cf28.js | 1 + assets/js/acecf23e.6d51b0dd.js | 1 + assets/js/b311d1e8.b80a3d18.js | 1 + assets/js/c15d9823.880887ec.js | 1 + assets/js/c2aca3b0.a479cdf8.js | 1 + assets/js/c4f5d8e4.336a6011.js | 1 + assets/js/ccc49370.27f6c228.js | 1 + assets/js/d19b9b26.f5c494c9.js | 1 + assets/js/db03f91b.298a23ee.js | 1 + assets/js/df203c0f.07cad923.js | 1 + assets/js/dff1c289.1f7787e7.js | 1 + assets/js/e273c56f.26aae418.js | 1 + assets/js/e2e7a3a0.43dcef6b.js | 1 + assets/js/e44a2883.5e8ca417.js | 1 + assets/js/f55d3e7a.d0872e36.js | 1 + assets/js/f81c1134.6e3278cb.js | 1 + assets/js/f9e7e5f4.7c14ad4d.js | 1 + assets/js/main.3a058c14.js | 2 + assets/js/main.3a058c14.js.LICENSE.txt | 64 ++++++ assets/js/runtime~main.dd0b75ad.js | 1 + blog/Docker-Getting-Srart-01/index.html | 82 +++++++ blog/archive/index.html | 14 ++ blog/atom.xml | 108 ++++++++++ blog/first-blog-post/index.html | 14 ++ blog/index.html | 82 +++++++ blog/rss.xml | 102 +++++++++ blog/tags/docker/index.html | 82 +++++++ blog/tags/docusaurus/index.html | 14 ++ blog/tags/hola/index.html | 14 ++ blog/tags/index.html | 14 ++ blog/tags/linux/index.html | 82 +++++++ blog/tags/misc/index.html | 82 +++++++ .../index.html" | 82 +++++++ .../tags/\350\273\237\344\273\266/index.html" | 82 +++++++ en/.nojekyll | 0 en/404.html | 14 ++ en/assets/css/styles.952d87a7.css | 1 + ...pdown-35e13cbe46c9923327f30a76a90bff3b.png | Bin 0 -> 25427 bytes ...pdown-f0d995e751e7656a1b0dbbc1134e49c2.png | Bin 0 -> 27841 bytes en/assets/js/01a85c17.1f01f224.js | 1 + en/assets/js/0e384e19.ddaa16e6.js | 1 + en/assets/js/116e21e2.cbab0ed1.js | 1 + en/assets/js/14d3eb87.ba112984.js | 1 + en/assets/js/1538.bcfcd850.js | 1 + en/assets/js/17896441.620a8489.js | 1 + en/assets/js/18c41134.a34db062.js | 1 + en/assets/js/1e4232ab.7170d644.js | 1 + en/assets/js/1f391b9e.1479ec8d.js | 1 + en/assets/js/2237.e0c95162.js | 1 + en/assets/js/22f9ffc3.eae2b12b.js | 1 + en/assets/js/3242.35bb0ee0.js | 1 + en/assets/js/36994c47.77d49b04.js | 1 + en/assets/js/3720c009.f8828a1d.js | 1 + en/assets/js/393be207.ef0b2c2d.js | 1 + en/assets/js/3ea259e6.ca948adc.js | 1 + en/assets/js/42a17d8a.fa814ac3.js | 1 + en/assets/js/447560db.f1e22e3b.js | 1 + en/assets/js/5311454b.63590fb0.js | 1 + en/assets/js/533a09ca.daccee1a.js | 1 + en/assets/js/5c868d36.635685dc.js | 1 + en/assets/js/5cbf0a5d.8e48066a.js | 1 + en/assets/js/5e28b2f4.9696a466.js | 1 + en/assets/js/5e87523e.bdcf1c3b.js | 1 + en/assets/js/5e95c892.794757cd.js | 1 + en/assets/js/5f361db7.96711c71.js | 1 + en/assets/js/60875e34.216852b1.js | 1 + en/assets/js/60f48b9d.db9183aa.js | 1 + en/assets/js/6875c492.27fa3488.js | 1 + en/assets/js/773c270b.9d644822.js | 1 + en/assets/js/7b649237.8db914d1.js | 1 + en/assets/js/7c014d8d.27574798.js | 1 + en/assets/js/7d68e24f.396f2b10.js | 1 + en/assets/js/814f3328.5614a049.js | 1 + en/assets/js/822bd8ab.1d1eb612.js | 1 + en/assets/js/85d15f38.6e56a438.js | 1 + en/assets/js/85e08f6c.88d08cc4.js | 1 + en/assets/js/873234d7.dda28c05.js | 1 + en/assets/js/90e57ba8.7992e1bb.js | 1 + en/assets/js/925b3f96.8cf24821.js | 1 + en/assets/js/9e4087bc.1e2fe8e5.js | 1 + en/assets/js/9fab635f.6ef92b67.js | 1 + en/assets/js/a6aa9e1f.63bb8777.js | 1 + en/assets/js/a7456010.fc7a5d1f.js | 1 + en/assets/js/a7bd4aaa.eec9f40b.js | 1 + en/assets/js/a94703ab.c0f75d91.js | 1 + en/assets/js/ab0d13de.557b484f.js | 1 + en/assets/js/aba21aa0.1562c573.js | 1 + en/assets/js/acecf23e.6d455303.js | 1 + en/assets/js/b0b6fd62.958baf80.js | 1 + en/assets/js/b311d1e8.2248a1bd.js | 1 + en/assets/js/b5192dd1.36aec40d.js | 1 + en/assets/js/c2aca3b0.7b2b37a8.js | 1 + en/assets/js/c4f5d8e4.336a6011.js | 1 + en/assets/js/c5fd9dbb.2a387148.js | 1 + en/assets/js/ccc49370.27f6c228.js | 1 + en/assets/js/d40edc32.e779460b.js | 1 + en/assets/js/d52e2d06.9d558dbc.js | 1 + en/assets/js/db61b3e8.ba44d1ee.js | 1 + en/assets/js/df203c0f.07cad923.js | 1 + en/assets/js/dff1c289.70fffef1.js | 1 + en/assets/js/e273c56f.b2e455e6.js | 1 + en/assets/js/e2e7a3a0.c2b4466c.js | 1 + en/assets/js/e44a2883.c6162855.js | 1 + en/assets/js/e6141e4a.b95f6411.js | 1 + en/assets/js/e8da249f.2c45010a.js | 1 + en/assets/js/eac440ee.e00ba000.js | 1 + en/assets/js/ed8789cf.94f8344e.js | 1 + en/assets/js/ef86d428.e921d4b5.js | 1 + en/assets/js/f55d3e7a.42ff1e90.js | 1 + en/assets/js/f894d38a.74e20fc4.js | 1 + en/assets/js/feb32b9a.c8d817f6.js | 1 + en/assets/js/main.159c124b.js | 2 + en/assets/js/main.159c124b.js.LICENSE.txt | 64 ++++++ en/assets/js/runtime~main.c07a0b5d.js | 1 + en/blog/Docker-Getting-Srart-01/index.html | 82 +++++++ en/blog/archive/index.html | 14 ++ en/blog/atom.xml | 108 ++++++++++ en/blog/first-blog-post/index.html | 14 ++ en/blog/index.html | 82 +++++++ en/blog/rss.xml | 102 +++++++++ en/blog/tags/docker/index.html | 82 +++++++ en/blog/tags/docusaurus/index.html | 14 ++ en/blog/tags/hola/index.html | 14 ++ en/blog/tags/index.html | 14 ++ en/blog/tags/linux/index.html | 82 +++++++ en/blog/tags/misc/index.html | 82 +++++++ .../index.html" | 82 +++++++ .../tags/\350\273\237\344\273\266/index.html" | 82 +++++++ en/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes en/img/docusaurus.png | Bin 0 -> 5142 bytes en/img/favicon.ico | Bin 0 -> 3626 bytes en/img/logo.svg | 1 + en/img/undraw_docusaurus_mountain.svg | 171 +++++++++++++++ en/img/undraw_docusaurus_react.svg | 170 +++++++++++++++ en/img/undraw_docusaurus_tree.svg | 40 ++++ en/index.html | 14 ++ en/index.zh-hk/index.html | 14 ++ en/intro/index.html | 14 ++ en/markdown-page/index.html | 15 ++ .../index.html | 97 +++++++++ .../index.html | 158 ++++++++++++++ .../pio-uart-implementation-rp2040/index.html | 201 ++++++++++++++++++ .../rp2040-pwm-usage-and-examples/index.html | 162 ++++++++++++++ .../rp2040-timer-and-alarm-usage/index.html | 97 +++++++++ .../index.html | 82 +++++++ .../desarrollo-cdc-stm32cubemx/index.html | 109 ++++++++++ en/sitemap.xml | 1 + en/tags/alarm/index.html | 14 ++ en/tags/cdc/index.html | 14 ++ en/tags/embedded-systems/index.html | 14 ++ en/tags/index.html | 14 ++ en/tags/interrupts/index.html | 14 ++ en/tags/led-control/index.html | 14 ++ en/tags/pio/index.html | 14 ++ en/tags/pwm/index.html | 14 ++ en/tags/raspberry-pi-pico/index.html | 14 ++ en/tags/resource-management/index.html | 14 ++ en/tags/rp-2040/index.html | 14 ++ en/tags/serial-communication/index.html | 14 ++ en/tags/state-machine-optimization/index.html | 14 ++ en/tags/stm-32/index.html | 14 ++ en/tags/timer/index.html | 14 ++ en/tags/uart/index.html | 14 ++ en/tags/usb/index.html | 14 ++ en/tutorial-basics/congratulations/index.html | 28 +++ .../create-a-blog-post/index.html | 19 ++ .../create-a-document/index.html | 30 +++ en/tutorial-basics/create-a-page/index.html | 28 +++ .../deploy-your-site/index.html | 25 +++ .../markdown-features/index.html | 45 ++++ .../manage-docs-versions/index.html | 36 ++++ .../translate-your-site/index.html | 38 ++++ en/tutorial/index.html | 16 ++ img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes img/docusaurus.png | Bin 0 -> 5142 bytes img/favicon.ico | Bin 0 -> 3626 bytes img/logo.svg | 1 + img/undraw_docusaurus_mountain.svg | 171 +++++++++++++++ img/undraw_docusaurus_react.svg | 170 +++++++++++++++ img/undraw_docusaurus_tree.svg | 40 ++++ index.html | 14 ++ index.zh-hk/index.html | 14 ++ intro/index.html | 14 ++ markdown-page/index.html | 15 ++ .../index.html | 97 +++++++++ .../index.html | 158 ++++++++++++++ .../pio-uart-implementation-rp2040/index.html | 201 ++++++++++++++++++ .../rp2040-pwm-usage-and-examples/index.html | 162 ++++++++++++++ .../rp2040-timer-and-alarm-usage/index.html | 97 +++++++++ .../index.html | 82 +++++++ .../desarrollo-cdc-stm32cubemx/index.html | 109 ++++++++++ sitemap.xml | 1 + tags/alarm/index.html | 14 ++ tags/cdc/index.html | 14 ++ tags/embedded-systems/index.html | 14 ++ tags/index.html | 14 ++ tags/interrupts/index.html | 14 ++ tags/led-control/index.html | 14 ++ tags/pio/index.html | 14 ++ tags/pwm/index.html | 14 ++ tags/raspberry-pi-pico/index.html | 14 ++ tags/resource-management/index.html | 14 ++ tags/rp-2040/index.html | 14 ++ tags/serial-communication/index.html | 14 ++ tags/state-machine-optimization/index.html | 14 ++ tags/stm-32/index.html | 14 ++ tags/timer/index.html | 14 ++ tags/uart/index.html | 14 ++ tags/usb/index.html | 14 ++ tutorial-basics/congratulations/index.html | 28 +++ tutorial-basics/create-a-blog-post/index.html | 19 ++ tutorial-basics/create-a-document/index.html | 30 +++ tutorial-basics/create-a-page/index.html | 28 +++ tutorial-basics/deploy-your-site/index.html | 25 +++ tutorial-basics/markdown-features/index.html | 45 ++++ .../manage-docs-versions/index.html | 36 ++++ .../translate-your-site/index.html | 38 ++++ tutorial/index.html | 16 ++ zh-hk/.nojekyll | 0 zh-hk/404.html | 14 ++ zh-hk/assets/css/styles.952d87a7.css | 1 + ...pdown-35e13cbe46c9923327f30a76a90bff3b.png | Bin 0 -> 25427 bytes ...pdown-f0d995e751e7656a1b0dbbc1134e49c2.png | Bin 0 -> 27841 bytes zh-hk/assets/js/008d63a2.57e7157c.js | 1 + zh-hk/assets/js/01a85c17.1f01f224.js | 1 + zh-hk/assets/js/062f99bb.da8a4ffb.js | 1 + zh-hk/assets/js/1284e0b0.a35b12f2.js | 1 + zh-hk/assets/js/14d3eb87.11ece549.js | 1 + zh-hk/assets/js/1538.bcfcd850.js | 1 + zh-hk/assets/js/17896441.620a8489.js | 1 + zh-hk/assets/js/1a0e45eb.445c0174.js | 1 + zh-hk/assets/js/1ce4999c.a1d026ea.js | 1 + zh-hk/assets/js/1e71edf6.73c1e96f.js | 1 + zh-hk/assets/js/1f391b9e.1479ec8d.js | 1 + zh-hk/assets/js/2237.e0c95162.js | 1 + zh-hk/assets/js/2b354d69.02de5fcb.js | 1 + zh-hk/assets/js/2b6ce744.a7c03f5f.js | 1 + zh-hk/assets/js/2d233033.5ec7e093.js | 1 + zh-hk/assets/js/3242.35bb0ee0.js | 1 + zh-hk/assets/js/336ea2cf.59438417.js | 1 + zh-hk/assets/js/33fe0373.3dc10175.js | 1 + zh-hk/assets/js/36994c47.77d49b04.js | 1 + zh-hk/assets/js/3720c009.f8828a1d.js | 1 + zh-hk/assets/js/37c603c4.a87544cb.js | 1 + zh-hk/assets/js/3848d9e1.9537ac37.js | 1 + zh-hk/assets/js/393be207.e69ccf4c.js | 1 + zh-hk/assets/js/3bd8aa35.31e8819f.js | 1 + zh-hk/assets/js/3ea259e6.ca948adc.js | 1 + zh-hk/assets/js/45170d14.183690c9.js | 1 + zh-hk/assets/js/4cb30fd1.fc582d4b.js | 1 + zh-hk/assets/js/4f84c381.22cb1f4e.js | 1 + zh-hk/assets/js/53188526.0cd08ed3.js | 1 + zh-hk/assets/js/54ebc4ab.2f1f95e2.js | 1 + zh-hk/assets/js/5da95eec.90f8572a.js | 1 + zh-hk/assets/js/5e28b2f4.716c177d.js | 1 + zh-hk/assets/js/5e95c892.794757cd.js | 1 + zh-hk/assets/js/60875e34.78eb2ee4.js | 1 + zh-hk/assets/js/60f48b9d.a8270f71.js | 1 + zh-hk/assets/js/6875c492.27fa3488.js | 1 + zh-hk/assets/js/7eddfcbf.723ecf16.js | 1 + zh-hk/assets/js/814f3328.b5765874.js | 1 + zh-hk/assets/js/85e08f6c.8917029a.js | 1 + zh-hk/assets/js/86154fac.bc6ad57a.js | 1 + zh-hk/assets/js/873234d7.574ddb85.js | 1 + zh-hk/assets/js/87ac765c.7896e8da.js | 1 + zh-hk/assets/js/8d9dbdbb.5e072c3f.js | 1 + zh-hk/assets/js/91cd996f.f4ac944c.js | 1 + zh-hk/assets/js/9e4087bc.1e2fe8e5.js | 1 + zh-hk/assets/js/9fab635f.2440005c.js | 1 + zh-hk/assets/js/a1c46f64.7c8cacac.js | 1 + zh-hk/assets/js/a5933a40.25042153.js | 1 + zh-hk/assets/js/a6aa9e1f.63bb8777.js | 1 + zh-hk/assets/js/a7456010.fc7a5d1f.js | 1 + zh-hk/assets/js/a7bd4aaa.eec9f40b.js | 1 + zh-hk/assets/js/a94703ab.c0f75d91.js | 1 + zh-hk/assets/js/aba21aa0.1562c573.js | 1 + zh-hk/assets/js/acecf23e.a054a625.js | 1 + zh-hk/assets/js/ae1c2fdf.52fe4724.js | 1 + zh-hk/assets/js/b6ef77d3.4170944d.js | 1 + zh-hk/assets/js/b6fdbe90.1959bca5.js | 1 + zh-hk/assets/js/ba673586.59eab77a.js | 1 + zh-hk/assets/js/bd2c820f.0776980d.js | 1 + zh-hk/assets/js/c2aca3b0.cdd805fa.js | 1 + zh-hk/assets/js/c4f5d8e4.336a6011.js | 1 + zh-hk/assets/js/cb8761ac.537514af.js | 1 + zh-hk/assets/js/ccc49370.350eb003.js | 1 + zh-hk/assets/js/d7b1a84c.88391a26.js | 1 + zh-hk/assets/js/dee0d148.1022f562.js | 1 + zh-hk/assets/js/df203c0f.07cad923.js | 1 + zh-hk/assets/js/dff84d1a.6a5fe37b.js | 1 + zh-hk/assets/js/e0982a0c.7da09f08.js | 1 + zh-hk/assets/js/e4cceaf6.94f202e7.js | 1 + zh-hk/assets/js/e9034d23.f876d841.js | 1 + zh-hk/assets/js/eb9ee350.409071f0.js | 1 + zh-hk/assets/js/fd0da4a9.e6913218.js | 1 + zh-hk/assets/js/main.2784d067.js | 2 + zh-hk/assets/js/main.2784d067.js.LICENSE.txt | 64 ++++++ zh-hk/assets/js/runtime~main.69e34346.js | 1 + zh-hk/blog/Docker-Getting-Srart-01/index.html | 82 +++++++ zh-hk/blog/archive/index.html | 14 ++ zh-hk/blog/atom.xml | 108 ++++++++++ zh-hk/blog/first-blog-post/index.html | 14 ++ zh-hk/blog/index.html | 82 +++++++ zh-hk/blog/rss.xml | 102 +++++++++ zh-hk/blog/tags/docker/index.html | 82 +++++++ zh-hk/blog/tags/docusaurus/index.html | 14 ++ zh-hk/blog/tags/hola/index.html | 14 ++ zh-hk/blog/tags/index.html | 14 ++ zh-hk/blog/tags/linux/index.html | 82 +++++++ zh-hk/blog/tags/misc/index.html | 82 +++++++ .../index.html" | 82 +++++++ .../tags/\350\273\237\344\273\266/index.html" | 82 +++++++ zh-hk/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes zh-hk/img/docusaurus.png | Bin 0 -> 5142 bytes zh-hk/img/favicon.ico | Bin 0 -> 3626 bytes zh-hk/img/logo.svg | 1 + zh-hk/img/undraw_docusaurus_mountain.svg | 171 +++++++++++++++ zh-hk/img/undraw_docusaurus_react.svg | 170 +++++++++++++++ zh-hk/img/undraw_docusaurus_tree.svg | 40 ++++ zh-hk/index.html | 14 ++ zh-hk/index.zh-hk/index.html | 14 ++ zh-hk/intro/index.html | 14 ++ zh-hk/markdown-page/index.html | 15 ++ .../index.html | 97 +++++++++ .../index.html | 158 ++++++++++++++ .../pio-uart-implementation-rp2040/index.html | 201 ++++++++++++++++++ .../rp2040-pwm-usage-and-examples/index.html | 162 ++++++++++++++ .../rp2040-timer-and-alarm-usage/index.html | 97 +++++++++ .../index.html | 82 +++++++ .../desarrollo-cdc-stm32cubemx/index.html | 109 ++++++++++ zh-hk/sitemap.xml | 1 + zh-hk/tags/alarm/index.html | 14 ++ zh-hk/tags/cdc/index.html | 14 ++ zh-hk/tags/embedded-systems/index.html | 14 ++ zh-hk/tags/index.html | 14 ++ zh-hk/tags/interrupts/index.html | 14 ++ zh-hk/tags/led-control/index.html | 14 ++ zh-hk/tags/pio/index.html | 14 ++ zh-hk/tags/pwm/index.html | 14 ++ zh-hk/tags/raspberry-pi-pico/index.html | 14 ++ zh-hk/tags/resource-management/index.html | 14 ++ zh-hk/tags/rp-2040/index.html | 14 ++ zh-hk/tags/serial-communication/index.html | 14 ++ .../state-machine-optimization/index.html | 14 ++ zh-hk/tags/stm-32/index.html | 14 ++ zh-hk/tags/timer/index.html | 14 ++ zh-hk/tags/uart/index.html | 14 ++ zh-hk/tags/usb/index.html | 14 ++ .../congratulations/index.html | 28 +++ .../create-a-blog-post/index.html | 19 ++ .../create-a-document/index.html | 30 +++ .../tutorial-basics/create-a-page/index.html | 28 +++ .../deploy-your-site/index.html | 25 +++ .../markdown-features/index.html | 45 ++++ .../manage-docs-versions/index.html | 36 ++++ .../translate-your-site/index.html | 38 ++++ zh-hk/tutorial/index.html | 16 ++ 418 files changed, 8572 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 CNAME create mode 100644 assets/css/styles.952d87a7.css create mode 100644 assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png create mode 100644 assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png create mode 100644 assets/js/01a85c17.1f01f224.js create mode 100644 assets/js/028cb135.1dc19fda.js create mode 100644 assets/js/05d90159.e5d0a379.js create mode 100644 assets/js/0b9fe6f3.bb3846c5.js create mode 100644 assets/js/0db954b6.32e1ad0c.js create mode 100644 assets/js/0e384e19.38d62581.js create mode 100644 assets/js/14d3eb87.fc191249.js create mode 100644 assets/js/1538.bcfcd850.js create mode 100644 assets/js/17896441.620a8489.js create mode 100644 assets/js/18c41134.17123bc7.js create mode 100644 assets/js/1e4232ab.81f85e5b.js create mode 100644 assets/js/1f391b9e.1479ec8d.js create mode 100644 assets/js/2237.e0c95162.js create mode 100644 assets/js/22dd74f7.8a90972e.js create mode 100644 assets/js/2b149dc3.39ddbb7a.js create mode 100644 assets/js/2c06c927.73da377c.js create mode 100644 assets/js/2c14e4d0.113c919b.js create mode 100644 assets/js/3217192f.bb3d91e2.js create mode 100644 assets/js/3242.35bb0ee0.js create mode 100644 assets/js/36994c47.77d49b04.js create mode 100644 assets/js/3720c009.f8828a1d.js create mode 100644 assets/js/393be207.a6e53343.js create mode 100644 assets/js/395e5342.5144fa96.js create mode 100644 assets/js/3a2db09e.2dd30aa3.js create mode 100644 assets/js/3ea259e6.ca948adc.js create mode 100644 assets/js/533a09ca.669e7e47.js create mode 100644 assets/js/59af61a6.b4dfef7b.js create mode 100644 assets/js/5c868d36.e8d435f2.js create mode 100644 assets/js/5da542a3.eaae6618.js create mode 100644 assets/js/5e28b2f4.c725741f.js create mode 100644 assets/js/5e90a9b3.1c94554a.js create mode 100644 assets/js/5e95c892.794757cd.js create mode 100644 assets/js/5eeb21e4.13bb8d9a.js create mode 100644 assets/js/60875e34.7fde8b26.js create mode 100644 assets/js/60f48b9d.c7ff861a.js create mode 100644 assets/js/62424562.cb5af537.js create mode 100644 assets/js/675103b9.756f4557.js create mode 100644 assets/js/6875c492.27fa3488.js create mode 100644 assets/js/712d17a8.14edf328.js create mode 100644 assets/js/810d738c.2d6ccfcd.js create mode 100644 assets/js/814f3328.bec831f0.js create mode 100644 assets/js/822bd8ab.a9d00c4e.js create mode 100644 assets/js/85e08f6c.890575cf.js create mode 100644 assets/js/873234d7.1a886d81.js create mode 100644 assets/js/8cb1b30d.cb50becb.js create mode 100644 assets/js/91a39dd0.39d3e8bf.js create mode 100644 assets/js/925b3f96.5503aaac.js create mode 100644 assets/js/928b9b77.b63e9685.js create mode 100644 assets/js/9e4087bc.1e2fe8e5.js create mode 100644 assets/js/9fab635f.209dd272.js create mode 100644 assets/js/a6aa9e1f.63bb8777.js create mode 100644 assets/js/a7456010.fc7a5d1f.js create mode 100644 assets/js/a7bd4aaa.eec9f40b.js create mode 100644 assets/js/a94703ab.c0f75d91.js create mode 100644 assets/js/aba21aa0.1562c573.js create mode 100644 assets/js/abc7995a.9232cf28.js create mode 100644 assets/js/acecf23e.6d51b0dd.js create mode 100644 assets/js/b311d1e8.b80a3d18.js create mode 100644 assets/js/c15d9823.880887ec.js create mode 100644 assets/js/c2aca3b0.a479cdf8.js create mode 100644 assets/js/c4f5d8e4.336a6011.js create mode 100644 assets/js/ccc49370.27f6c228.js create mode 100644 assets/js/d19b9b26.f5c494c9.js create mode 100644 assets/js/db03f91b.298a23ee.js create mode 100644 assets/js/df203c0f.07cad923.js create mode 100644 assets/js/dff1c289.1f7787e7.js create mode 100644 assets/js/e273c56f.26aae418.js create mode 100644 assets/js/e2e7a3a0.43dcef6b.js create mode 100644 assets/js/e44a2883.5e8ca417.js create mode 100644 assets/js/f55d3e7a.d0872e36.js create mode 100644 assets/js/f81c1134.6e3278cb.js create mode 100644 assets/js/f9e7e5f4.7c14ad4d.js create mode 100644 assets/js/main.3a058c14.js create mode 100644 assets/js/main.3a058c14.js.LICENSE.txt create mode 100644 assets/js/runtime~main.dd0b75ad.js create mode 100644 blog/Docker-Getting-Srart-01/index.html create mode 100644 blog/archive/index.html create mode 100644 blog/atom.xml create mode 100644 blog/first-blog-post/index.html create mode 100644 blog/index.html create mode 100644 blog/rss.xml create mode 100644 blog/tags/docker/index.html create mode 100644 blog/tags/docusaurus/index.html create mode 100644 blog/tags/hola/index.html create mode 100644 blog/tags/index.html create mode 100644 blog/tags/linux/index.html create mode 100644 blog/tags/misc/index.html create mode 100644 "blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" create mode 100644 "blog/tags/\350\273\237\344\273\266/index.html" create mode 100644 en/.nojekyll create mode 100644 en/404.html create mode 100644 en/assets/css/styles.952d87a7.css create mode 100644 en/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png create mode 100644 en/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png create mode 100644 en/assets/js/01a85c17.1f01f224.js create mode 100644 en/assets/js/0e384e19.ddaa16e6.js create mode 100644 en/assets/js/116e21e2.cbab0ed1.js create mode 100644 en/assets/js/14d3eb87.ba112984.js create mode 100644 en/assets/js/1538.bcfcd850.js create mode 100644 en/assets/js/17896441.620a8489.js create mode 100644 en/assets/js/18c41134.a34db062.js create mode 100644 en/assets/js/1e4232ab.7170d644.js create mode 100644 en/assets/js/1f391b9e.1479ec8d.js create mode 100644 en/assets/js/2237.e0c95162.js create mode 100644 en/assets/js/22f9ffc3.eae2b12b.js create mode 100644 en/assets/js/3242.35bb0ee0.js create mode 100644 en/assets/js/36994c47.77d49b04.js create mode 100644 en/assets/js/3720c009.f8828a1d.js create mode 100644 en/assets/js/393be207.ef0b2c2d.js create mode 100644 en/assets/js/3ea259e6.ca948adc.js create mode 100644 en/assets/js/42a17d8a.fa814ac3.js create mode 100644 en/assets/js/447560db.f1e22e3b.js create mode 100644 en/assets/js/5311454b.63590fb0.js create mode 100644 en/assets/js/533a09ca.daccee1a.js create mode 100644 en/assets/js/5c868d36.635685dc.js create mode 100644 en/assets/js/5cbf0a5d.8e48066a.js create mode 100644 en/assets/js/5e28b2f4.9696a466.js create mode 100644 en/assets/js/5e87523e.bdcf1c3b.js create mode 100644 en/assets/js/5e95c892.794757cd.js create mode 100644 en/assets/js/5f361db7.96711c71.js create mode 100644 en/assets/js/60875e34.216852b1.js create mode 100644 en/assets/js/60f48b9d.db9183aa.js create mode 100644 en/assets/js/6875c492.27fa3488.js create mode 100644 en/assets/js/773c270b.9d644822.js create mode 100644 en/assets/js/7b649237.8db914d1.js create mode 100644 en/assets/js/7c014d8d.27574798.js create mode 100644 en/assets/js/7d68e24f.396f2b10.js create mode 100644 en/assets/js/814f3328.5614a049.js create mode 100644 en/assets/js/822bd8ab.1d1eb612.js create mode 100644 en/assets/js/85d15f38.6e56a438.js create mode 100644 en/assets/js/85e08f6c.88d08cc4.js create mode 100644 en/assets/js/873234d7.dda28c05.js create mode 100644 en/assets/js/90e57ba8.7992e1bb.js create mode 100644 en/assets/js/925b3f96.8cf24821.js create mode 100644 en/assets/js/9e4087bc.1e2fe8e5.js create mode 100644 en/assets/js/9fab635f.6ef92b67.js create mode 100644 en/assets/js/a6aa9e1f.63bb8777.js create mode 100644 en/assets/js/a7456010.fc7a5d1f.js create mode 100644 en/assets/js/a7bd4aaa.eec9f40b.js create mode 100644 en/assets/js/a94703ab.c0f75d91.js create mode 100644 en/assets/js/ab0d13de.557b484f.js create mode 100644 en/assets/js/aba21aa0.1562c573.js create mode 100644 en/assets/js/acecf23e.6d455303.js create mode 100644 en/assets/js/b0b6fd62.958baf80.js create mode 100644 en/assets/js/b311d1e8.2248a1bd.js create mode 100644 en/assets/js/b5192dd1.36aec40d.js create mode 100644 en/assets/js/c2aca3b0.7b2b37a8.js create mode 100644 en/assets/js/c4f5d8e4.336a6011.js create mode 100644 en/assets/js/c5fd9dbb.2a387148.js create mode 100644 en/assets/js/ccc49370.27f6c228.js create mode 100644 en/assets/js/d40edc32.e779460b.js create mode 100644 en/assets/js/d52e2d06.9d558dbc.js create mode 100644 en/assets/js/db61b3e8.ba44d1ee.js create mode 100644 en/assets/js/df203c0f.07cad923.js create mode 100644 en/assets/js/dff1c289.70fffef1.js create mode 100644 en/assets/js/e273c56f.b2e455e6.js create mode 100644 en/assets/js/e2e7a3a0.c2b4466c.js create mode 100644 en/assets/js/e44a2883.c6162855.js create mode 100644 en/assets/js/e6141e4a.b95f6411.js create mode 100644 en/assets/js/e8da249f.2c45010a.js create mode 100644 en/assets/js/eac440ee.e00ba000.js create mode 100644 en/assets/js/ed8789cf.94f8344e.js create mode 100644 en/assets/js/ef86d428.e921d4b5.js create mode 100644 en/assets/js/f55d3e7a.42ff1e90.js create mode 100644 en/assets/js/f894d38a.74e20fc4.js create mode 100644 en/assets/js/feb32b9a.c8d817f6.js create mode 100644 en/assets/js/main.159c124b.js create mode 100644 en/assets/js/main.159c124b.js.LICENSE.txt create mode 100644 en/assets/js/runtime~main.c07a0b5d.js create mode 100644 en/blog/Docker-Getting-Srart-01/index.html create mode 100644 en/blog/archive/index.html create mode 100644 en/blog/atom.xml create mode 100644 en/blog/first-blog-post/index.html create mode 100644 en/blog/index.html create mode 100644 en/blog/rss.xml create mode 100644 en/blog/tags/docker/index.html create mode 100644 en/blog/tags/docusaurus/index.html create mode 100644 en/blog/tags/hola/index.html create mode 100644 en/blog/tags/index.html create mode 100644 en/blog/tags/linux/index.html create mode 100644 en/blog/tags/misc/index.html create mode 100644 "en/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" create mode 100644 "en/blog/tags/\350\273\237\344\273\266/index.html" create mode 100644 en/img/docusaurus-social-card.jpg create mode 100644 en/img/docusaurus.png create mode 100644 en/img/favicon.ico create mode 100644 en/img/logo.svg create mode 100644 en/img/undraw_docusaurus_mountain.svg create mode 100644 en/img/undraw_docusaurus_react.svg create mode 100644 en/img/undraw_docusaurus_tree.svg create mode 100644 en/index.html create mode 100644 en/index.zh-hk/index.html create mode 100644 en/intro/index.html create mode 100644 en/markdown-page/index.html create mode 100644 en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html create mode 100644 en/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html create mode 100644 en/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html create mode 100644 en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html create mode 100644 en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html create mode 100644 en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html create mode 100644 en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html create mode 100644 en/sitemap.xml create mode 100644 en/tags/alarm/index.html create mode 100644 en/tags/cdc/index.html create mode 100644 en/tags/embedded-systems/index.html create mode 100644 en/tags/index.html create mode 100644 en/tags/interrupts/index.html create mode 100644 en/tags/led-control/index.html create mode 100644 en/tags/pio/index.html create mode 100644 en/tags/pwm/index.html create mode 100644 en/tags/raspberry-pi-pico/index.html create mode 100644 en/tags/resource-management/index.html create mode 100644 en/tags/rp-2040/index.html create mode 100644 en/tags/serial-communication/index.html create mode 100644 en/tags/state-machine-optimization/index.html create mode 100644 en/tags/stm-32/index.html create mode 100644 en/tags/timer/index.html create mode 100644 en/tags/uart/index.html create mode 100644 en/tags/usb/index.html create mode 100644 en/tutorial-basics/congratulations/index.html create mode 100644 en/tutorial-basics/create-a-blog-post/index.html create mode 100644 en/tutorial-basics/create-a-document/index.html create mode 100644 en/tutorial-basics/create-a-page/index.html create mode 100644 en/tutorial-basics/deploy-your-site/index.html create mode 100644 en/tutorial-basics/markdown-features/index.html create mode 100644 en/tutorial-extras/manage-docs-versions/index.html create mode 100644 en/tutorial-extras/translate-your-site/index.html create mode 100644 en/tutorial/index.html create mode 100644 img/docusaurus-social-card.jpg create mode 100644 img/docusaurus.png create mode 100644 img/favicon.ico create mode 100644 img/logo.svg create mode 100644 img/undraw_docusaurus_mountain.svg create mode 100644 img/undraw_docusaurus_react.svg create mode 100644 img/undraw_docusaurus_tree.svg create mode 100644 index.html create mode 100644 index.zh-hk/index.html create mode 100644 intro/index.html create mode 100644 markdown-page/index.html create mode 100644 micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html create mode 100644 micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html create mode 100644 micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html create mode 100644 micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html create mode 100644 micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html create mode 100644 micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html create mode 100644 micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html create mode 100644 sitemap.xml create mode 100644 tags/alarm/index.html create mode 100644 tags/cdc/index.html create mode 100644 tags/embedded-systems/index.html create mode 100644 tags/index.html create mode 100644 tags/interrupts/index.html create mode 100644 tags/led-control/index.html create mode 100644 tags/pio/index.html create mode 100644 tags/pwm/index.html create mode 100644 tags/raspberry-pi-pico/index.html create mode 100644 tags/resource-management/index.html create mode 100644 tags/rp-2040/index.html create mode 100644 tags/serial-communication/index.html create mode 100644 tags/state-machine-optimization/index.html create mode 100644 tags/stm-32/index.html create mode 100644 tags/timer/index.html create mode 100644 tags/uart/index.html create mode 100644 tags/usb/index.html create mode 100644 tutorial-basics/congratulations/index.html create mode 100644 tutorial-basics/create-a-blog-post/index.html create mode 100644 tutorial-basics/create-a-document/index.html create mode 100644 tutorial-basics/create-a-page/index.html create mode 100644 tutorial-basics/deploy-your-site/index.html create mode 100644 tutorial-basics/markdown-features/index.html create mode 100644 tutorial-extras/manage-docs-versions/index.html create mode 100644 tutorial-extras/translate-your-site/index.html create mode 100644 tutorial/index.html create mode 100644 zh-hk/.nojekyll create mode 100644 zh-hk/404.html create mode 100644 zh-hk/assets/css/styles.952d87a7.css create mode 100644 zh-hk/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png create mode 100644 zh-hk/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png create mode 100644 zh-hk/assets/js/008d63a2.57e7157c.js create mode 100644 zh-hk/assets/js/01a85c17.1f01f224.js create mode 100644 zh-hk/assets/js/062f99bb.da8a4ffb.js create mode 100644 zh-hk/assets/js/1284e0b0.a35b12f2.js create mode 100644 zh-hk/assets/js/14d3eb87.11ece549.js create mode 100644 zh-hk/assets/js/1538.bcfcd850.js create mode 100644 zh-hk/assets/js/17896441.620a8489.js create mode 100644 zh-hk/assets/js/1a0e45eb.445c0174.js create mode 100644 zh-hk/assets/js/1ce4999c.a1d026ea.js create mode 100644 zh-hk/assets/js/1e71edf6.73c1e96f.js create mode 100644 zh-hk/assets/js/1f391b9e.1479ec8d.js create mode 100644 zh-hk/assets/js/2237.e0c95162.js create mode 100644 zh-hk/assets/js/2b354d69.02de5fcb.js create mode 100644 zh-hk/assets/js/2b6ce744.a7c03f5f.js create mode 100644 zh-hk/assets/js/2d233033.5ec7e093.js create mode 100644 zh-hk/assets/js/3242.35bb0ee0.js create mode 100644 zh-hk/assets/js/336ea2cf.59438417.js create mode 100644 zh-hk/assets/js/33fe0373.3dc10175.js create mode 100644 zh-hk/assets/js/36994c47.77d49b04.js create mode 100644 zh-hk/assets/js/3720c009.f8828a1d.js create mode 100644 zh-hk/assets/js/37c603c4.a87544cb.js create mode 100644 zh-hk/assets/js/3848d9e1.9537ac37.js create mode 100644 zh-hk/assets/js/393be207.e69ccf4c.js create mode 100644 zh-hk/assets/js/3bd8aa35.31e8819f.js create mode 100644 zh-hk/assets/js/3ea259e6.ca948adc.js create mode 100644 zh-hk/assets/js/45170d14.183690c9.js create mode 100644 zh-hk/assets/js/4cb30fd1.fc582d4b.js create mode 100644 zh-hk/assets/js/4f84c381.22cb1f4e.js create mode 100644 zh-hk/assets/js/53188526.0cd08ed3.js create mode 100644 zh-hk/assets/js/54ebc4ab.2f1f95e2.js create mode 100644 zh-hk/assets/js/5da95eec.90f8572a.js create mode 100644 zh-hk/assets/js/5e28b2f4.716c177d.js create mode 100644 zh-hk/assets/js/5e95c892.794757cd.js create mode 100644 zh-hk/assets/js/60875e34.78eb2ee4.js create mode 100644 zh-hk/assets/js/60f48b9d.a8270f71.js create mode 100644 zh-hk/assets/js/6875c492.27fa3488.js create mode 100644 zh-hk/assets/js/7eddfcbf.723ecf16.js create mode 100644 zh-hk/assets/js/814f3328.b5765874.js create mode 100644 zh-hk/assets/js/85e08f6c.8917029a.js create mode 100644 zh-hk/assets/js/86154fac.bc6ad57a.js create mode 100644 zh-hk/assets/js/873234d7.574ddb85.js create mode 100644 zh-hk/assets/js/87ac765c.7896e8da.js create mode 100644 zh-hk/assets/js/8d9dbdbb.5e072c3f.js create mode 100644 zh-hk/assets/js/91cd996f.f4ac944c.js create mode 100644 zh-hk/assets/js/9e4087bc.1e2fe8e5.js create mode 100644 zh-hk/assets/js/9fab635f.2440005c.js create mode 100644 zh-hk/assets/js/a1c46f64.7c8cacac.js create mode 100644 zh-hk/assets/js/a5933a40.25042153.js create mode 100644 zh-hk/assets/js/a6aa9e1f.63bb8777.js create mode 100644 zh-hk/assets/js/a7456010.fc7a5d1f.js create mode 100644 zh-hk/assets/js/a7bd4aaa.eec9f40b.js create mode 100644 zh-hk/assets/js/a94703ab.c0f75d91.js create mode 100644 zh-hk/assets/js/aba21aa0.1562c573.js create mode 100644 zh-hk/assets/js/acecf23e.a054a625.js create mode 100644 zh-hk/assets/js/ae1c2fdf.52fe4724.js create mode 100644 zh-hk/assets/js/b6ef77d3.4170944d.js create mode 100644 zh-hk/assets/js/b6fdbe90.1959bca5.js create mode 100644 zh-hk/assets/js/ba673586.59eab77a.js create mode 100644 zh-hk/assets/js/bd2c820f.0776980d.js create mode 100644 zh-hk/assets/js/c2aca3b0.cdd805fa.js create mode 100644 zh-hk/assets/js/c4f5d8e4.336a6011.js create mode 100644 zh-hk/assets/js/cb8761ac.537514af.js create mode 100644 zh-hk/assets/js/ccc49370.350eb003.js create mode 100644 zh-hk/assets/js/d7b1a84c.88391a26.js create mode 100644 zh-hk/assets/js/dee0d148.1022f562.js create mode 100644 zh-hk/assets/js/df203c0f.07cad923.js create mode 100644 zh-hk/assets/js/dff84d1a.6a5fe37b.js create mode 100644 zh-hk/assets/js/e0982a0c.7da09f08.js create mode 100644 zh-hk/assets/js/e4cceaf6.94f202e7.js create mode 100644 zh-hk/assets/js/e9034d23.f876d841.js create mode 100644 zh-hk/assets/js/eb9ee350.409071f0.js create mode 100644 zh-hk/assets/js/fd0da4a9.e6913218.js create mode 100644 zh-hk/assets/js/main.2784d067.js create mode 100644 zh-hk/assets/js/main.2784d067.js.LICENSE.txt create mode 100644 zh-hk/assets/js/runtime~main.69e34346.js create mode 100644 zh-hk/blog/Docker-Getting-Srart-01/index.html create mode 100644 zh-hk/blog/archive/index.html create mode 100644 zh-hk/blog/atom.xml create mode 100644 zh-hk/blog/first-blog-post/index.html create mode 100644 zh-hk/blog/index.html create mode 100644 zh-hk/blog/rss.xml create mode 100644 zh-hk/blog/tags/docker/index.html create mode 100644 zh-hk/blog/tags/docusaurus/index.html create mode 100644 zh-hk/blog/tags/hola/index.html create mode 100644 zh-hk/blog/tags/index.html create mode 100644 zh-hk/blog/tags/linux/index.html create mode 100644 zh-hk/blog/tags/misc/index.html create mode 100644 "zh-hk/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" create mode 100644 "zh-hk/blog/tags/\350\273\237\344\273\266/index.html" create mode 100644 zh-hk/img/docusaurus-social-card.jpg create mode 100644 zh-hk/img/docusaurus.png create mode 100644 zh-hk/img/favicon.ico create mode 100644 zh-hk/img/logo.svg create mode 100644 zh-hk/img/undraw_docusaurus_mountain.svg create mode 100644 zh-hk/img/undraw_docusaurus_react.svg create mode 100644 zh-hk/img/undraw_docusaurus_tree.svg create mode 100644 zh-hk/index.html create mode 100644 zh-hk/index.zh-hk/index.html create mode 100644 zh-hk/intro/index.html create mode 100644 zh-hk/markdown-page/index.html create mode 100644 zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html create mode 100644 zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html create mode 100644 zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html create mode 100644 zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html create mode 100644 zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html create mode 100644 zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html create mode 100644 zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html create mode 100644 zh-hk/sitemap.xml create mode 100644 zh-hk/tags/alarm/index.html create mode 100644 zh-hk/tags/cdc/index.html create mode 100644 zh-hk/tags/embedded-systems/index.html create mode 100644 zh-hk/tags/index.html create mode 100644 zh-hk/tags/interrupts/index.html create mode 100644 zh-hk/tags/led-control/index.html create mode 100644 zh-hk/tags/pio/index.html create mode 100644 zh-hk/tags/pwm/index.html create mode 100644 zh-hk/tags/raspberry-pi-pico/index.html create mode 100644 zh-hk/tags/resource-management/index.html create mode 100644 zh-hk/tags/rp-2040/index.html create mode 100644 zh-hk/tags/serial-communication/index.html create mode 100644 zh-hk/tags/state-machine-optimization/index.html create mode 100644 zh-hk/tags/stm-32/index.html create mode 100644 zh-hk/tags/timer/index.html create mode 100644 zh-hk/tags/uart/index.html create mode 100644 zh-hk/tags/usb/index.html create mode 100644 zh-hk/tutorial-basics/congratulations/index.html create mode 100644 zh-hk/tutorial-basics/create-a-blog-post/index.html create mode 100644 zh-hk/tutorial-basics/create-a-document/index.html create mode 100644 zh-hk/tutorial-basics/create-a-page/index.html create mode 100644 zh-hk/tutorial-basics/deploy-your-site/index.html create mode 100644 zh-hk/tutorial-basics/markdown-features/index.html create mode 100644 zh-hk/tutorial-extras/manage-docs-versions/index.html create mode 100644 zh-hk/tutorial-extras/translate-your-site/index.html create mode 100644 zh-hk/tutorial/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/404.html b/404.html new file mode 100644 index 000000000..935db57c8 --- /dev/null +++ b/404.html @@ -0,0 +1,14 @@ + + + + + +🌵 El Jardín Secreto 🌵 + + + + + +
Saltar al contenido principal

Página No Encontrada

No pudimos encontrar lo que buscaba.

Comuníquese con el dueño del sitio que lo vinculó a la URL original y hágale saber que su vínculo está roto.

+ + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 000000000..476c4c900 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +me.w0x7ce.eu diff --git a/assets/css/styles.952d87a7.css b/assets/css/styles.952d87a7.css new file mode 100644 index 000000000..c784a6394 --- /dev/null +++ b/assets/css/styles.952d87a7.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}footer.footer{background-color:#34c759;color:#1b200f;padding:2rem 0}footer.footer a{color:#140e0e}footer.footer a:hover{color:#fff}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.heroSecretGarden_pfpy{background-color:#45f76b;background-position:50%;background-repeat:no-repeat;background-size:cover}.mainContent_EI1P{background-color:#12af1f;padding:0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png b/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png new file mode 100644 index 0000000000000000000000000000000000000000..97e4164618b5f8beda34cfa699720aba0ad2e342 GIT binary patch literal 25427 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 literal 0 HcmV?d00001 diff --git a/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png b/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png new file mode 100644 index 0000000000000000000000000000000000000000..e257edc1f932985396bf59584c7ccfaddf955779 GIT binary patch literal 27841 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 JrC|B>e*nH7H{}2T literal 0 HcmV?d00001 diff --git a/assets/js/01a85c17.1f01f224.js b/assets/js/01a85c17.1f01f224.js new file mode 100644 index 000000000..c6a16454d --- /dev/null +++ b/assets/js/01a85c17.1f01f224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8209],{6535:(e,t,s)=>{s.d(t,{A:()=>_});var a=s(6540),i=s(4164),r=s(5733),l=s(4581),n=s(8774),c=s(1312),d=s(6347),o=s(9169);function m(e){const{pathname:t}=(0,d.zy)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,o.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var b=s(4848);function g(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("aside",{className:"col col--3",children:(0,b.jsxs)("nav",{className:(0,i.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,b.jsx)("div",{className:(0,i.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,b.jsx)("ul",{className:(0,i.A)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,b.jsx)("li",{className:u.sidebarItem,children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var h=s(5600);function j(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,b.jsx)("li",{className:"menu__list-item",children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,b.jsx)(h.GX,{component:j,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.l)();return t?.items.length?"mobile"===s?(0,b.jsx)(p,{sidebar:t}):(0,b.jsx)(g,{sidebar:t}):null}function _(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,b.jsx)(r.A,{...l,children:(0,b.jsx)("div",{className:"container margin-vert--lg",children:(0,b.jsxs)("div",{className:"row",children:[(0,b.jsx)(x,{sidebar:t}),(0,b.jsx)("main",{className:(0,i.A)("col",{"col--7":n,"col--9 col--offset-1":!n}),children:a}),s&&(0,b.jsx)("div",{className:"col col--2",children:s})]})})})}},9140:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(6540);var a=s(4164),i=s(6820),r=s(1213),l=s(7559),n=s(6535),c=s(2557),d=s(1463),o=s(1107),m=s(4848);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.b)();return(0,m.jsxs)(r.e3,{className:(0,a.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,m.jsx)(r.be,{title:u}),(0,m.jsx)(d.A,{tag:"blog_tags_list"}),(0,m.jsxs)(n.A,{sidebar:s,children:[(0,m.jsx)(o.A,{as:"h1",children:u}),(0,m.jsx)(c.A,{tags:t})]})]})}},6133:(e,t,s)=>{s.d(t,{A:()=>n});s(6540);var a=s(4164),i=s(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(4848);function n(e){let{permalink:t,label:s,count:n,description:c}=e;return(0,l.jsxs)(i.A,{href:t,title:c,className:(0,a.A)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},2557:(e,t,s)=>{s.d(t,{A:()=>d});s(6540);var a=s(6820),i=s(6133),r=s(1107);const l={tag:"tag_Nnez"};var n=s(4848);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.A,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.A,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function d(e){let{tags:t}=e;const s=(0,a.Q)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},6820:(e,t,s)=>{s.d(t,{Q:()=>r,b:()=>i});var a=s(1312);const i=()=>(0,a.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/028cb135.1dc19fda.js b/assets/js/028cb135.1dc19fda.js new file mode 100644 index 000000000..af3361eae --- /dev/null +++ b/assets/js/028cb135.1dc19fda.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1061],{9755:e=>{e.exports=JSON.parse('{"tag":{"label":"stm32","permalink":"/tags/stm-32","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/05d90159.e5d0a379.js b/assets/js/05d90159.e5d0a379.js new file mode 100644 index 000000000..e1e12683c --- /dev/null +++ b/assets/js/05d90159.e5d0a379.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9780],{1609:e=>{e.exports=JSON.parse('{"tag":{"label":"timer","permalink":"/tags/timer","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/0b9fe6f3.bb3846c5.js b/assets/js/0b9fe6f3.bb3846c5.js new file mode 100644 index 000000000..51df6ed1f --- /dev/null +++ b/assets/js/0b9fe6f3.bb3846c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3048],{9236:e=>{e.exports=JSON.parse('{"tag":{"label":"Resource Management","permalink":"/tags/resource-management","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/0db954b6.32e1ad0c.js b/assets/js/0db954b6.32e1ad0c.js new file mode 100644 index 000000000..186c1af5a --- /dev/null +++ b/assets/js/0db954b6.32e1ad0c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6615],{431:e=>{e.exports=JSON.parse('{"tag":{"label":"interrupts","permalink":"/tags/interrupts","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.38d62581.js b/assets/js/0e384e19.38d62581.js new file mode 100644 index 000000000..44d28210f --- /dev/null +++ b/assets/js/0e384e19.38d62581.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3976],{619:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=n(4848),o=n(8453);const i={},c=void 0,s={id:"intro",title:"intro",description:"\x3c!-- ---",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/intro.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,frontMatter:{}},a={},u=[];function d(t){return(0,r.jsx)(r.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d()}},8453:(t,e,n)=>{n.d(e,{R:()=>c,x:()=>s});var r=n(6540);const o={},i=r.createContext(o);function c(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/14d3eb87.fc191249.js b/assets/js/14d3eb87.fc191249.js new file mode 100644 index 000000000..766e949c6 --- /dev/null +++ b/assets/js/14d3eb87.fc191249.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6725],{5427:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var l=e(4848),s=e(8453);const t={slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},r="RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",o={id:"micro-controladores/RP2040/pio-uart-implementation",title:"Implementing UART (TX )with PIO on RP2040",description:"1. UART \u57fa\u672c\u539f\u7406",source:"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/pio-uart-implementation-rp2040",permalink:"/micro-controladores/RP2040/pio-uart-implementation-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/pio-uart-implementation.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/tags/pio"},{inline:!0,label:"UART",permalink:"/tags/uart"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/tags/serial-communication"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Mastering PIO Programming on RP2040",permalink:"/micro-controladores/RP2040/mastering-pio-programming-rp2040"},next:{title:"Advanced PIO LED Control and Resource Management on RP2040",permalink:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}},c={},d=[{value:"1. UART \u57fa\u672c\u539f\u7406",id:"1-uart-\u57fa\u672c\u539f\u7406",level:2},{value:"2. PIO \u7a0b\u5e8f\u7d50\u69cb",id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",level:2},{value:"2.1 UART TX PIO \u7a0b\u5e8f",id:"21-uart-tx-pio-\u7a0b\u5e8f",level:3},{value:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",level:3},{value:"FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09",id:"fifo-\u586b\u5145\u793a\u4f8babcd",level:4},{value:"2.3 \u6642\u5e8f\u63a7\u5236",id:"23-\u6642\u5e8f\u63a7\u5236",level:3},{value:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e",id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",level:2},{value:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406",id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",level:2},{value:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe",id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",level:2},{value:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",level:2},{value:"7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"",id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",level:2},{value:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09",id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",level:3},{value:"7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a",id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",level:3},{value:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3",id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",level:3},{value:"7.4 FIFO \u64cd\u4f5c",id:"74-fifo-\u64cd\u4f5c",level:3},{value:"7.5 \u6642\u5e8f\u5206\u6790",id:"75-\u6642\u5e8f\u5206\u6790",level:3},{value:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",level:2},{value:"9. \u8abf\u8a66\u6280\u5de7",id:"9-\u8abf\u8a66\u6280\u5de7",level:2},{value:"10. \u6027\u80fd\u8003\u616e",id:"10-\u6027\u80fd\u8003\u616e",level:2},{value:"11. \u672a\u4f86\u64f4\u5c55",id:"11-\u672a\u4f86\u64f4\u5c55",level:2},{value:"\u5b8c\u6574\u4ee3\u78bc",id:"\u5b8c\u6574\u4ee3\u78bc",level:2}];function a(n){const i={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...n.components},{Details:e}=i;return e||function(n,i){throw new Error("Expected "+(i?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.h1,{id:"rp2040-pio-uarttx-\u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",children:"RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50"}),"\n",(0,l.jsx)(i.h2,{id:"1-uart-\u57fa\u672c\u539f\u7406",children:"1. UART \u57fa\u672c\u539f\u7406"}),"\n",(0,l.jsxs)(i.admonition,{type:"info",children:[(0,l.jsx)(i.p,{children:"UART\uff08\u901a\u7528\u975e\u540c\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u884c\u901a\u4fe1\u5354\u8b70\u3002\u5728\u6211\u5011\u7684\u5be6\u73fe\u4e2d\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 8 \u6578\u64da\u4f4d\uff0c1 \u8d77\u59cb\u4f4d\uff0c1 \u505c\u6b62\u4f4d\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u4e0d\u4f7f\u7528\u6d41\u63a7\u5236\u548c\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u9810\u8a2d\u6ce2\u7279\u7387\u8a2d\u7f6e\u70ba 9600 bps"}),"\n"]})]}),"\n",(0,l.jsx)(i.h2,{id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",children:"2. PIO \u7a0b\u5e8f\u7d50\u69cb"}),"\n",(0,l.jsx)(i.h3,{id:"21-uart-tx-pio-\u7a0b\u5e8f",children:"2.1 UART TX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-pio",metastring:'title="uart_tx.pio"',children:".program uart_tx\n.side_set 1 opt\n\n pull side 1 [7] ; \u5f9e FIFO \u7372\u53d6\u6578\u64da\uff0c\u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09\n set x, 7 side 0 [7] ; \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\uff0c\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09\nbitloop:\n out pins, 1 ; \u767c\u9001\u4e00\u4f4d\u6578\u64da\n jmp x-- bitloop [6] ; \u5faa\u74b0\u76f4\u5230\u767c\u9001\u5b8c 8 \u4f4d\u6578\u64da\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u9ede",type:"tip",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:".side_set 1 opt"}),": \u5b9a\u7fa9\u4e00\u500b\u53ef\u9078\u7684 1 \u4f4d\u5074\u8a2d\uff0c\u7528\u65bc\u63a7\u5236 TX \u5f15\u8173"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"pull"}),": \u5f9e TX FIFO \u7372\u53d6 32 \u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"set x, 7"}),": \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\u70ba 7\uff088\u4f4d\u6578\u64da\uff09"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u8f38\u51fa\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u5faa\u74b0\u767c\u9001 8 \u4f4d\u6578\u64da\uff0c\u6bcf\u6b21\u8fed\u4ee3 8 \u500b\u9031\u671f"]}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",children:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u57fa\u672c\u5bb9\u91cf\u548c\u5408\u4f75"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u65b9\u5411\uff08TX \u6216 RX\uff09\u7684 FIFO \u53ef\u4ee5\u5b58\u5132 4 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b 32 \u4f4d\u5b57\u7406\u8ad6\u4e0a\u53ef\u5b58\u5132 4 \u500b char\uff08\u6bcf\u500b char 8 \u4f4d\uff09\u3002"}),"\n",(0,l.jsx)(i.li,{children:"TX \u548c RX FIFO \u5408\u4f75\u5f8c\uff0c\u6df1\u5ea6\u589e\u52a0\u5230 8 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"\u7406\u8ad6\u4e0a\u5408\u4f75\u5f8c\u53ef\u5b58\u5132 32 \u500b char\u3002"}),"\n"]})]}),"\n",(0,l.jsx)(i.admonition,{title:"\u5be6\u969b\u4f7f\u7528\u4e2d\u7684 char \u5b58\u5132",type:"caution",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5178\u578b UART \u5be6\u73fe\u4e2d\uff0c\u901a\u5e38\u6bcf\u6b21\u53ea\u653e\u5165\u4e00\u500b char\uff088 \u4f4d\uff09\u5230 FIFO\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u6bcf\u6b21\u5f9e FIFO \u53d6\u51fa 32 \u4f4d\u6578\u64da\uff0c\u4f46\u901a\u5e38\u53ea\u4f7f\u7528\u5176\u4e2d\u7684 8 \u4f4d\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h4,{id:"fifo-\u586b\u5145\u793a\u4f8babcd",children:'FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09'}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"32\u4f4dFIFO\u689d\u76ee1: [A] [ ] [ ] [ ] \uff08\u53ea\u6709 'A' \u88ab\u5b58\u5132\uff0c\u5176\u9918\u672a\u4f7f\u7528\uff09\n32\u4f4dFIFO\u689d\u76ee2: [B] [ ] [ ] [ ] \uff08\u53ea\u6709 'B' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee3: [C] [ ] [ ] [ ] \uff08\u53ea\u6709 'C' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee4: [D] [ ] [ ] [ ] \uff08\u53ea\u6709 'D' \u88ab\u5b58\u5132\uff09\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"FIFO \u4f7f\u7528\u7b56\u7565",type:"note",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u901a\u5e38\u9010\u500b char \u586b\u5145 FIFO\uff0c\u7c21\u5316 PIO \u7a0b\u5e8f\u908f\u8f2f\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u8a2d\u8a08\u70ba\u5728 FIFO \u6709\u6578\u64da\u6642\u7acb\u5373\u8655\u7406\uff0c\u4e0d\u7b49\u5f85 FIFO \u586b\u6eff\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"23-\u6642\u5e8f\u63a7\u5236",children:"2.3 \u6642\u5e8f\u63a7\u5236"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b UART \u4f4d\u4f7f\u7528 8 \u500b PIO \u6642\u9418\u9031\u671f"}),"\n",(0,l.jsxs)(i.li,{children:["\u4f7f\u7528\u6307\u4ee4\u5f8c\u7684\u5ef6\u9072\uff08\u5982 ",(0,l.jsx)(i.code,{children:"[7]"}),"\uff09\u4f86\u7cbe\u78ba\u63a7\u5236\u6642\u5e8f"]}),"\n",(0,l.jsx)(i.li,{children:"\u7e3d\u5e40\u9577\u5ea6\uff1a1\uff08\u8d77\u59cb\u4f4d\uff09+ 8\uff08\u6578\u64da\u4f4d\uff09+ 1\uff08\u505c\u6b62\u4f4d\uff09= 10 \u4f4d * 8 \u9031\u671f = 80 PIO \u6642\u9418\u9031\u671f/\u5e40"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",children:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="uart_tx_init.c"',children:"static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n \n sm_config_set_sideset_pins(&c, pin_tx);\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n \n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_gpio_init(pio, pin_tx);\n pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u914d\u7f6e\u6b65\u9a5f",type:"info",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5074\u8a2d\uff08side-set\uff09\u548c\u8f38\u51fa\u5f15\u8173"}),"\n",(0,l.jsx)(i.li,{children:"\u914d\u7f6e FIFO \u70ba\u50c5 TX \u6a21\u5f0f"}),"\n",(0,l.jsx)(i.li,{children:"\u8a08\u7b97\u4e26\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u5339\u914d\u76ee\u6a19\u6ce2\u7279\u7387"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 GPIO \u548c\u8a2d\u7f6e\u5f15\u8173\u65b9\u5411"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316\u548c\u555f\u7528\u72c0\u614b\u6a5f"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",children:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u64cd\u4f5c\u793a\u4f8b"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",children:"static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s) {\n uart_tx_program_putc(pio, sm, *s++);\n }\n}\n"})})]}),"\n",(0,l.jsx)(i.h2,{id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",children:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="main.c"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n const uint PIN_TX = 0;\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.admonition,{title:"\u4e3b\u7a0b\u5e8f\u6b65\u9a5f",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u9078\u64c7 PIO \u5be6\u4f8b\u548c\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u5c07 PIO \u7a0b\u5e8f\u52a0\u8f09\u5230 PIO \u6307\u4ee4\u5167\u5b58"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 UART TX \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u4e3b\u5faa\u74b0\u4e2d\u767c\u9001\u6578\u64da"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",children:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6"}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5be6\u969b\u6ce2\u7279\u7387\u8a08\u7b97",type:"note",children:[(0,l.jsx)(i.p,{children:"\u5be6\u969b\u6ce2\u7279\u7387 = (\u7cfb\u7d71\u6642\u9418\u983b\u7387) / (\u6642\u9418\u5206\u983b * \u6bcf\u5e40\u9031\u671f\u6578)\n= 125,000,000 / (div * 80)"}),(0,l.jsxs)(i.p,{children:["\u5176\u4e2d\uff0c",(0,l.jsx)(i.code,{children:"div"})," \u662f\u521d\u59cb\u5316\u6642\u8a08\u7b97\u7684\u5206\u983b\u503c\u3002"]})]}),"\n",(0,l.jsx)(i.p,{children:"\u6ce8\u610f\uff1a\u5be6\u969b\u6ce2\u7279\u7387\u53ef\u80fd\u8207\u76ee\u6a19\u6ce2\u7279\u7387\u7565\u6709\u504f\u5dee\uff0c\u9019\u53d6\u6c7a\u65bc\u7cfb\u7d71\u6642\u9418\u983b\u7387\u548c\u53ef\u7528\u7684\u5206\u983b\u503c\u3002"}),"\n",(0,l.jsx)(i.h2,{id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",children:'7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"'}),"\n",(0,l.jsx)(i.h3,{id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",children:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.p,{children:"\u6bcf\u500b UART \u5b57\u7b26\u5e40\u5305\u542b 10 \u4f4d\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"1 \u500b\u8d77\u59cb\u4f4d\uff08\u59cb\u7d42\u70ba 0\uff09"}),"\n",(0,l.jsx)(i.li,{children:"8 \u500b\u6578\u64da\u4f4d\uff08\u6700\u4f4e\u6709\u6548\u4f4d LSB \u5148\u767c\u9001\uff09"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b\u505c\u6b62\u4f4d\uff08\u59cb\u7d42\u70ba 1\uff09"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",children:'7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a'}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'A': ASCII 65 = 0100 0001"}),"\n",(0,l.jsx)(i.li,{children:"'B': ASCII 66 = 0100 0010"}),"\n",(0,l.jsx)(i.li,{children:"'C': ASCII 67 = 0100 0011"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",children:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"\u5b57\u7b26 'A' \u7684\u767c\u9001\u904e\u7a0b"}),(0,l.jsx)(i.p,{children:"\u5b8c\u6574\u5e40\uff1a"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"0 01000001 1\n\u2191 \u2191 \u2191\n| | |\n| | \u505c\u6b62\u4f4d\n| \u6578\u64da\u4f4d\n\u8d77\u59cb\u4f4d\n"})}),(0,l.jsx)(i.p,{children:"PIO \u7a0b\u5e8f\u57f7\u884c\u904e\u7a0b\uff1a"}),(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"pull side 1 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5f9e FIFO \u7372\u53d6 'A'\uff080x41\uff09"}),"\n",(0,l.jsx)(i.li,{children:"TX \u5f15\u8173\u4fdd\u6301\u9ad8\u96fb\u5e73\uff08\u505c\u6b62\u4f4d\u72c0\u614b\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"set x, 7 side 0 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668 x = 7"}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"bitloop:"})," \u5faa\u74b0 8 \u6b21\uff1a"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u767c\u9001\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u6e1b\u5c11\u8a08\u6578\u5668\u4e26\u8df3\u8f49"]}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u9806\u5e8f\uff1a1, 0, 0, 0, 0, 0, 1, 0 (LSB first)"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:["\u5faa\u74b0\u7d50\u675f\u5f8c\uff0c\u901a\u904e ",(0,l.jsx)(i.code,{children:"side 1"})," \u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09"]}),"\n"]}),"\n"]})]}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5b57\u7b26 'B' \u548c 'C' \u7684\u767c\u9001",type:"info",children:[(0,l.jsx)(i.p,{children:"'B' \u548c 'C' \u7684\u767c\u9001\u904e\u7a0b\u8207 'A' \u76f8\u540c\uff0c\u53ea\u662f\u6578\u64da\u4f4d\u4e0d\u540c\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'B': 0 01000010 1"}),"\n",(0,l.jsx)(i.li,{children:"'C': 0 01000011 1"}),"\n"]})]}),"\n",(0,l.jsx)(i.h3,{id:"74-fifo-\u64cd\u4f5c",children:"7.4 FIFO \u64cd\u4f5c"}),"\n",(0,l.jsxs)(i.p,{children:["\u7576\u8abf\u7528 ",(0,l.jsx)(i.code,{children:'uart_tx_program_puts(pio, sm, "ABC")'})," \u6642\uff1a"]}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"'A' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u5f9e FIFO \u62c9\u53d6 'A' \u4e26\u958b\u59cb\u767c\u9001"}),"\n",(0,l.jsx)(i.li,{children:"\u540c\u6642\uff0c'B' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'A' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u7acb\u5373\u62c9\u53d6\u4e26\u767c\u9001 'B'"}),"\n",(0,l.jsx)(i.li,{children:"'C' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'B' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u62c9\u53d6\u4e26\u767c\u9001 'C'"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"75-\u6642\u5e8f\u5206\u6790",children:"7.5 \u6642\u5e8f\u5206\u6790"}),"\n",(0,l.jsx)(i.p,{children:"\u5047\u8a2d UART \u6ce2\u7279\u7387\u70ba 9600 bps\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u4f4d\u6301\u7e8c\u6642\u9593\uff1a1/9600 \u79d2 \u2248 104.17 \u5fae\u79d2"}),"\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u5b57\u7b26\uff0810 \u4f4d\uff09\u50b3\u8f38\u6642\u9593\uff1a104.17 * 10 \u2248 1.0417 \u6beb\u79d2"}),"\n",(0,l.jsx)(i.li,{children:'"ABC" \u7e3d\u50b3\u8f38\u6642\u9593\uff1a3 * 1.0417 \u2248 3.125 \u6beb\u79d2'}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",children:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20"}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u932f\u8aa4\u8655\u7406\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO \u4e0d\u63d0\u4f9b\u5167\u7f6e\u7684\u5e40\u932f\u8aa4\u6aa2\u6e2c"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u901a\u904e\u984d\u5916\u7684 PIO \u7a0b\u5e8f\u908f\u8f2f\u6216\u8edf\u4ef6\u5c64\u9762\u5be6\u73fe\u932f\u8aa4\u6aa2\u6e2c"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u96d9\u5411\u901a\u4fe1\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u55ae\u7368\u7684 RX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u80fd\u9700\u8981\u4f7f\u7528\u984d\u5916\u7684\u72c0\u614b\u6a5f\u6216 PIO \u5be6\u4f8b"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"DMA \u4f7f\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u5927\u91cf\u6578\u64da\u50b3\u8f38\uff0c\u53ef\u4ee5\u914d\u5408 DMA \u4f7f\u7528"}),"\n",(0,l.jsx)(i.li,{children:"DMA \u53ef\u4ee5\u81ea\u52d5\u586b\u5145 TX FIFO\uff0c\u6e1b\u5c11 CPU \u5e72\u9810"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u8cc7\u6e90\u5229\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4e00\u500b UART \u5be6\u4f8b\u4f54\u7528\u4e00\u500b PIO \u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u8003\u616e PIO \u6307\u4ee4\u5167\u5b58\u7684\u4f7f\u7528"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u8f15\u9b06\u4fee\u6539 PIO \u7a0b\u5e8f\u4ee5\u652f\u6301\u4e0d\u540c\u7684\u6578\u64da\u683c\u5f0f\uff08\u5982 7 \u4f4d\u6578\u64da\u30012 \u500b\u505c\u6b62\u4f4d\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u5be6\u73fe\u81ea\u5b9a\u7fa9\u5354\u8b70\u6216\u975e\u6a19\u6e96\u6ce2\u7279\u7387"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"9-\u8abf\u8a66\u6280\u5de7",children:"9. \u8abf\u8a66\u6280\u5de7"}),"\n",(0,l.jsx)(i.admonition,{title:"\u8abf\u8a66\u65b9\u6cd5",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528\u908f\u8f2f\u5206\u6790\u5100\u6216\u793a\u6ce2\u5668\u9a57\u8b49\u4fe1\u865f\u6642\u5e8f"}),"\n",(0,l.jsxs)(i.li,{children:["\u5229\u7528 ",(0,l.jsx)(i.code,{children:"printf"})," \u8abf\u8a66\u8f38\u51fa\u4f86\u76e3\u63a7\u6578\u64da\u6d41"]}),"\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 Pico \u7684 LED \u9032\u884c\u7c21\u55ae\u7684\u53ef\u8996\u5316\u8abf\u8a66"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u95dc\u9375\u9ede\u6dfb\u52a0 GPIO \u89f8\u767c\uff0c\u65b9\u4fbf\u4f7f\u7528\u793a\u6ce2\u5668\u6355\u7372\u7279\u5b9a\u4e8b\u4ef6"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"10-\u6027\u80fd\u8003\u616e",children:"10. \u6027\u80fd\u8003\u616e"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO UART \u5be6\u73fe\u5141\u8a31\u9ad8\u901f\u6578\u64da\u50b3\u8f38\uff0c\u50c5\u53d7 PIO \u6642\u9418\u983b\u7387\u9650\u5236"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u7c21\u55ae\u7684\u6578\u64da\u767c\u9001\uff0cPIO \u65b9\u6cd5\u53ef\u80fd\u6bd4\u786c\u4ef6 UART \u66f4\u9748\u6d3b"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u8907\u96dc\u7684\u5354\u8b70\u6216\u9700\u8981\u983b\u7e41\u66f4\u6539\u914d\u7f6e\u7684\u5834\u666f\uff0cPIO \u65b9\u6cd5\u5c24\u5176\u6709\u512a\u52e2"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"11-\u672a\u4f86\u64f4\u5c55",children:"11. \u672a\u4f86\u64f4\u5c55"}),"\n",(0,l.jsx)(i.admonition,{title:"\u53ef\u80fd\u7684\u64f4\u5c55\u65b9\u5411",type:"note",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe UART \u63a5\u6536\u529f\u80fd"}),"\n",(0,l.jsx)(i.li,{children:"\u6dfb\u52a0\u6d41\u63a7\u5236\u652f\u6301"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u652f\u6301\u53ef\u8b8a\u6578\u64da\u4f4d\u6578\uff085-8 \u4f4d\uff09\u548c\u505c\u6b62\u4f4d\u6578"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u81ea\u52d5\u6ce2\u7279\u7387\u6aa2\u6e2c"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u78bc",children:"\u5b8c\u6574\u4ee3\u78bc"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n // We\'re going to use PIO to print "Hello, world!" on the same GPIO which we\n // normally attach UART0 to.\n const uint PIN_TX = 7;\n // This is the same as the default UART baud rate on Pico\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="uart_tx.pio"',children:';\n; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.\n;\n; SPDX-License-Identifier: BSD-3-Clause\n;\n\n.program uart_tx\n.side_set 1 opt\n\n; An 8n1 UART transmit program.\n; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.\n\n pull side 1 [7] ; Assert stop bit, or stall with line in idle state\n set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks\nbitloop: ; This loop will run 8 times (8n1 UART)\n out pins, 1 ; Shift 1 bit from OSR to the first OUT pin\n jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.\n\n\n% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n // Tell PIO to initially drive output-high on the selected pin, then map PIO\n // onto that pin with the IO muxes.\n pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_gpio_init(pio, pin_tx);\n\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n\n // OUT shifts to right, no autopull\n sm_config_set_out_shift(&c, true, false, 32);\n\n // We are mapping both OUT and side-set to the same pin, because sometimes\n // we need to assert user data onto the pin (with OUT) and sometimes\n // assert constant values (start/stop bit)\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_sideset_pins(&c, pin_tx);\n\n // We only need TX, so get an 8-deep FIFO!\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n\n // SM transmits 1 bit per 8 execution cycles.\n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n\nstatic inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s)\n uart_tx_program_putc(pio, sm, *s++);\n}\n\n%}\n\n\n\n'})})]})}function h(n={}){const{wrapper:i}={...(0,s.R)(),...n.components};return i?(0,l.jsx)(i,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>r,x:()=>o});var l=e(6540);const s={},t=l.createContext(s);function r(n){const i=l.useContext(t);return l.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function o(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:r(n.components),l.createElement(t.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/1538.bcfcd850.js b/assets/js/1538.bcfcd850.js new file mode 100644 index 000000000..ca835d2a4 --- /dev/null +++ b/assets/js/1538.bcfcd850.js @@ -0,0 +1 @@ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1538],{7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>L});var s=n(6540),o=n(4848);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}var c=n(4164),r=n(1312),i=n(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:t,className:n,children:s}=e;return(0,o.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:a,className:c}=e;return(0,o.jsxs)(d,{type:t,className:c,children:[s||n?(0,o.jsx)(u,{title:s,icon:n}):null,(0,o.jsx)(m,{children:a})]})}function p(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,o.jsx)(p,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(h,{...f,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,o.jsx)(h,{...j,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function N(e){return(0,o.jsx)(h,{...y,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const E={...{note:x,tip:g,info:N,warning:function(e){return(0,o.jsx)(h,{...B,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...w,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(N,{title:"important",...e}),success:e=>(0,o.jsx)(g,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function L(e){const t=a(e),n=(s=t.type,E[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),E.info));var s;return(0,o.jsx)(n,{...t})}},4336:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),o=n(1312),a=n(7559),c=n(8774);const r={iconEdit:"iconEdit_Z9Sw"};var i=n(4848);function l(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(r.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d(e){let{editUrl:t}=e;return(0,i.jsxs)(c.A,{to:t,className:a.G.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(o.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(6266);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(o.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(o.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:a.G.common.lastUpdated,children:[(0,i.jsx)(o.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_JAkA"};function x(e){let{className:t,editUrl:n,lastUpdatedAt:o,lastUpdatedBy:a}=e;return(0,i.jsxs)("div",{className:(0,s.A)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(d,{editUrl:n})}),(0,i.jsx)("div",{className:(0,s.A)("col",f.lastUpdated),children:(o||a)&&(0,i.jsx)(p,{lastUpdatedAt:o,lastUpdatedBy:a})})]})}},5533:(e,t,n)=>{"use strict";n.d(t,{A:()=>ie});var s=n(6540),o=n(8453),a=n(5260),c=n(2303),r=n(4164),i=n(5293),l=n(6342);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,i.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(7559),m=n(8426),h=n.n(m);const p=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,x={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...x,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},j=Object.keys(x);function g(e,t){const n=e.map((e=>{const{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:a}=t;if(a&&f.test(a)){const e=a.match(f).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],t);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],t);case"html":return g(["js","jsBlock","html"],t);case"python":case"py":case"bash":return g(["bash"],t);case"markdown":case"md":return g(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return g(["tex"],t);case"lua":case"haskell":case"sql":return g(["lua"],t);case"wasm":return g(["wasm"],t);case"vb":case"vba":case"visual-basic":return g(["vb","rem"],t);case"vbnet":return g(["vbnet","rem"],t);case"batch":return g(["rem"],t);case"basic":return g(["rem","f90"],t);case"fsharp":return g(["js","ml"],t);case"ocaml":case"sml":return g(["ml"],t);case"fortran":return g(["f90"],t);case"cobol":return g(["cobol"],t);default:return g(j,t)}}(s,o),r=n.split("\n"),i=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<r.length;){const e=r[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?i[l[t]].range+=`${h},`:d[t]?i[d[t]].start=h:u[t]&&(i[u[t]].range+=`${i[u[t]].start}-${h-1},`),r.splice(h,1)}n=r.join("\n");const m={};return Object.entries(i).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Ckt0"};var N=n(4848);function A(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const a=t[s];a&&"string"==typeof o&&(n[a]=o)})),n}(d());return(0,N.jsx)(t,{...n,style:s,className:(0,r.A)(n.className,y.codeBlockContainer,u.G.common.codeBlock)})}const B={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function k(e){let{children:t,className:n}=e;return(0,N.jsx)(A,{as:"pre",tabIndex:0,className:(0,r.A)(B.codeBlockStandalone,"thin-scrollbar",n),children:(0,N.jsx)("code",{className:B.codeBlockLines,children:t})})}var w=n(9532);const C={attributes:!0,characterData:!0,childList:!0,subtree:!0};function E(e,t){const[n,o]=(0,s.useState)(),a=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=C);const o=(0,w._q)(t),a=(0,w.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,a),()=>t.disconnect()}),[e,o,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var L=n(1765);const T={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function _(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:o,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=o({line:t,className:(0,r.A)(n,s&&T.codeLine)}),i=t.map(((e,t)=>(0,N.jsx)("span",{...a({token:e})},t)));return(0,N.jsxs)("span",{...c,children:[s?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("span",{className:T.codeLineNumber}),(0,N.jsx)("span",{className:T.codeLineContent,children:i})]}):i,(0,N.jsx)("br",{})]})}var S=n(1312);function U(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function M(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function I(e){let{code:t,className:n}=e;const[o,a]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),i=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const a=document.getSelection(),c=a.rangeCount>0&&a.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}s.remove(),c&&(a.removeAllRanges(),a.addRange(c)),o&&o.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,N.jsx)("button",{type:"button","aria-label":o?(0,S.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,S.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,S.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,r.A)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:i,children:(0,N.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,N.jsx)(U,{className:z.copyButtonIcon}),(0,N.jsx)(M,{className:z.copyButtonSuccessIcon})]})})}function H(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const R={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function V(e){let{className:t,onClick:n,isEnabled:s}=e;const o=(0,S.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,N.jsx)("button",{type:"button",onClick:n,className:(0,r.A)("clean-btn",t,s&&R.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,N.jsx)(H,{className:R.wordWrapButtonIcon,"aria-hidden":"true"})})}function $(e){let{children:t,className:n="",metastring:o,title:a,showLineNumbers:c,language:i}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.p)(),h=function(e){return e?.toLowerCase()}(i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),x=function(){const[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),a=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),r=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");o(n)}),[a]);return E(a,r),(0,s.useEffect)((()=>{r()}),[e,r]),(0,s.useEffect)((()=>(window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("resize",r)})),[r]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),b=function(e){return e?.match(p)?.groups.title??""}(o)||a,{lineClassNames:j,code:g}=v(t,{metastring:o,language:h,magicComments:m}),y=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,N.jsxs)(A,{as:"div",className:(0,r.A)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[b&&(0,N.jsx)("div",{className:B.codeBlockTitle,children:b}),(0,N.jsxs)("div",{className:B.codeBlockContent,children:[(0,N.jsx)(L.f4,{theme:f,code:g,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:o,getTokenProps:a}=e;return(0,N.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,r.A)(t,B.codeBlock,"thin-scrollbar"),style:n,children:(0,N.jsx)("code",{className:(0,r.A)(B.codeBlockLines,y&&B.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,N.jsx)(_,{line:e,getLineProps:o,getTokenProps:a,classNames:j[t],showLineNumbers:y},t)))})})}}),(0,N.jsxs)("div",{className:B.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,N.jsx)(V,{className:B.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,N.jsx)(I,{className:B.codeButton,code:g})]})]})]})}function W(e){let{children:t,...n}=e;const o=(0,c.A)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),r="string"==typeof a?$:k;return(0,N.jsx)(r,{...n,children:a},String(o))}function D(e){return(0,N.jsx)("code",{...e})}var P=n(8774);var q=n(3427),G=n(1422);const O={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function F(e){return!!e&&("SUMMARY"===e.tagName||F(e.parentElement))}function J(e,t){return!!e&&(e===t||J(e.parentElement,t))}function Z(e){let{summary:t,children:n,...o}=e;(0,q.A)().collectAnchor(o.id);const a=(0,c.A)(),i=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,G.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(t)?t:(0,N.jsx)("summary",{children:t??"Details"});return(0,N.jsxs)("details",{...o,ref:i,open:u,"data-collapsed":l,className:(0,r.A)(O.details,a&&O.isBrowser,o.className),onMouseDown:e=>{F(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;F(t)&&J(t,i.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,N.jsx)(G.N,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,N.jsx)("div",{className:O.collapsibleContent,children:n})})]})}const Y={details:"details_b_Ee"},K="alert alert--info";function Q(e){let{...t}=e;return(0,N.jsx)(Z,{...t,className:(0,r.A)(K,Y.details,t.className)})}function X(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,N.jsx)(N.Fragment,{children:t.filter((e=>e!==n))});return(0,N.jsx)(Q,{...e,summary:n,children:o})}var ee=n(1107);function te(e){return(0,N.jsx)(ee.A,{...e})}const ne={containsTaskList:"containsTaskList_mC6p"};function se(e){if(void 0!==e)return(0,r.A)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const oe={img:"img_ev3q"};var ae=n(7293),ce=n(418);const re={Head:a.A,details:X,Details:X,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,N.jsx)(D,{...e}):(0,N.jsx)(W,{...e})},a:function(e){return(0,N.jsx)(P.A,{...e})},pre:function(e){return(0,N.jsx)(N.Fragment,{children:e.children})},ul:function(e){return(0,N.jsx)("ul",{...e,className:se(e.className)})},li:function(e){return(0,q.A)().collectAnchor(e.id),(0,N.jsx)("li",{...e})},img:function(e){return(0,N.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,r.A)(t,oe.img))});var t},h1:e=>(0,N.jsx)(te,{as:"h1",...e}),h2:e=>(0,N.jsx)(te,{as:"h2",...e}),h3:e=>(0,N.jsx)(te,{as:"h3",...e}),h4:e=>(0,N.jsx)(te,{as:"h4",...e}),h5:e=>(0,N.jsx)(te,{as:"h5",...e}),h6:e=>(0,N.jsx)(te,{as:"h6",...e}),admonition:ae.A,mermaid:ce.A};function ie(e){let{children:t}=e;return(0,N.jsx)(o.x,{components:re,children:t})}},6266:(e,t,n)=>{"use strict";n.d(t,{i:()=>o});var s=n(4586);function o(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,a]=t;if(s&&a){s=parseInt(s),a=parseInt(a);const e=s<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=s;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>c,x:()=>r});var s=n(6540);const o={},a=s.createContext(o);function c(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/17896441.620a8489.js b/assets/js/17896441.620a8489.js new file mode 100644 index 000000000..a473484cf --- /dev/null +++ b/assets/js/17896441.620a8489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8401],{2447:(e,n,t)=>{t.r(n),t.d(n,{default:()=>ae});var s=t(6540),a=t(1213),i=t(9532),l=t(4848);const o=s.createContext(null);function r(e){let{children:n,content:t}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(t);return(0,l.jsx)(o.Provider,{value:a,children:n})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(4164),m=t(4581),h=t(1312),v=t(9022);function x(e){const{previous:n,next:t}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,l.jsx)(v.A,{...n,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),t&&(0,l.jsx)(v.A,{...t,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=c();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var g=t(4586),p=t(8774),f=t(4070),j=t(7559),A=t(5597),_=t(2252);const C={unreleased:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function L(e){const n=C[e.versionMetadata.banner];return(0,l.jsx)(n,{...e})}function N(e){let{versionLabel:n,to:t,onClick:s}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:n,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(p.A,{to:t,onClick:s,children:(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k(e){let{className:n,versionMetadata:t}=e;const{siteConfig:{title:s}}=(0,g.A)(),{pluginId:a}=(0,f.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,A.g1)(a),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,f.HW)(a),c=o??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,l.jsxs)("div",{className:(0,u.A)(n,j.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(L,{siteTitle:s,versionMetadata:t})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(N,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:n}=e;const t=(0,_.r)();return t.banner?(0,l.jsx)(k,{className:n,versionMetadata:t}):null}function H(e){let{className:n}=e;const t=(0,_.r)();return t.badge?(0,l.jsx)("span",{className:(0,u.A)(n,j.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}var M=t(2053),w=t(4336);function y(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(M.A,{tags:a})})}),o&&(0,l.jsx)(w.A,{className:(0,u.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var E=t(1422),I=t(5195);const B={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function O(e){let{collapsed:n,...t}=e;return(0,l.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",B.tocCollapsibleButton,!n&&B.tocCollapsibleButtonExpanded,t.className),children:(0,l.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const V={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function S(e){let{toc:n,className:t,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,E.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(V.tocCollapsible,!i&&V.tocCollapsibleExpanded,t),children:[(0,l.jsx)(O,{collapsed:i,onClick:o}),(0,l.jsx)(E.N,{lazy:!0,className:V.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(I.A,{toc:n,minHeadingLevel:s,maxHeadingLevel:a})})]})}const G={tocMobile:"tocMobile_ITEo"};function R(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(S,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(j.G.docs.docTocMobile,G.tocMobile)})}var P=t(7763);function F(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(P.A,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var U=t(1107),D=t(5533);function z(e){let{children:n}=e;const t=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(j.G.docs.docMarkdown,"markdown"),children:[t&&(0,l.jsx)("header",{children:(0,l.jsx)(U.A,{as:"h1",children:t})}),(0,l.jsx)(D.A,{children:n})]})}var W=t(1754),q=t(9169),$=t(6025);function J(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Q={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function X(){const e=(0,$.Ay)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(p.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(J,{className:Q.breadcrumbHomeIcon})})})}const Y={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Z(e){let{children:n,href:t,isLast:s}=e;const a="breadcrumbs__link";return s?(0,l.jsx)("span",{className:a,itemProp:"name",children:n}):t?(0,l.jsx)(p.A,{className:a,href:t,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:n})}):(0,l.jsx)("span",{className:a,children:n})}function K(e){let{children:n,active:t,index:s,addMicrodata:a}=e;return(0,l.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[n,(0,l.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,W.OF)(),n=(0,q.Dt)();return e?(0,l.jsx)("nav",{className:(0,u.A)(j.G.docs.docBreadcrumbs,Y.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[n&&(0,l.jsx)(X,{}),e.map(((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,l.jsx)(K,{active:s,index:t,addMicrodata:!!a,children:(0,l.jsx)(Z,{href:a,isLast:s,children:n.label})},t)}))]})}):null}var ne=t(996);const te={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function se(e){let{children:n}=e;const t=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,l.jsx)(R,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,l.jsx)(F,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&te.docItemCol),children:[s&&(0,l.jsx)(ne.A,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:te.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ee,{}),(0,l.jsx)(H,{}),t.mobile,(0,l.jsx)(z,{children:n}),(0,l.jsx)(y,{})]}),(0,l.jsx)(b,{})]})]}),t.desktop&&(0,l.jsx)("div",{className:"col col--3",children:t.desktop})]})}function ae(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:n,children:[(0,l.jsx)(d,{}),(0,l.jsx)(se,{children:(0,l.jsx)(t,{})})]})})}},9022:(e,n,t)=>{t.d(n,{A:()=>l});t(6540);var s=t(4164),a=t(8774),i=t(4848);function l(e){const{permalink:n,title:t,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:t})]})}},7763:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(a.A,{...t,linkClassName:o,linkActiveClassName:r})})}},5195:(e,n,t)=>{t.d(n,{A:()=>x});var s=t(6540),a=t(6342);function i(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)})),s}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:s});return function(e){return e.level>=t&&e.level<=s}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const s=e.find((e=>o(e).top>=t));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.p)();return(0,s.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const s=[];for(let a=n;a<=t;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}var u=t(8774),m=t(4848);function h(e){let{toc:n,className:t,linkClassName:s,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function x(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,a.p)(),b=c??x.tableOfContents.minHeadingLevel,g=u??x.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:b,maxHeadingLevel:g});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:b,maxHeadingLevel:g}}),[o,r,b,g])),(0,m.jsx)(v,{toc:p,className:t,linkClassName:o,...h})}},6133:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(4848);function o(e){let{permalink:n,label:t,count:o,description:r}=e;return(0,l.jsxs)(a.A,{href:n,title:r,className:(0,s.A)(i.tag,o?i.tagWithCount:i.tagRegular),children:[t,o&&(0,l.jsx)("span",{children:o})]})}},2053:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=t(4848);function r(e){let{tags:n}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:n.map((e=>(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.A,{...e})},e.permalink)))})]})}},996:(e,n,t)=>{t.d(n,{A:()=>h});t(6540);var s=t(4164),a=t(1312),i=t(5260),l=t(4848);function o(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function m(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/18c41134.17123bc7.js b/assets/js/18c41134.17123bc7.js new file mode 100644 index 000000000..c6a2dffcd --- /dev/null +++ b/assets/js/18c41134.17123bc7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9262],{3849:(e,n,s)=>{s.r(n),s.d(n,{Highlight:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var r=s(4848),t=s(8453);const a={sidebar_position:4},i="Markdown Features",o={id:"tutorial-basics/markdown-features",title:"Markdown Features",description:"Docusaurus supports Markdown and a few additional features.",source:"@site/docs/tutorial-basics/markdown-features.mdx",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/markdown-features",permalink:"/tutorial-basics/markdown-features",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/markdown-features.mdx",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:4,frontMatter:{sidebar_position:4}},c={},d=({children:e,color:n})=>{const s={span:"span",...(0,t.R)()};return(0,r.jsx)(s.span,{style:{backgroundColor:n,borderRadius:"20px",color:"#fff",padding:"10px",cursor:"pointer"},onClick:()=>{alert(`You clicked the color ${n} with label ${e}`)},children:e})},l=[{value:"Front Matter",id:"front-matter",level:2},{value:"Links",id:"links",level:2},{value:"Images",id:"images",level:2},{value:"Code Blocks",id:"code-blocks",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"MDX and React Components",id:"mdx-and-react-components",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"markdown-features",children:"Markdown Features"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus supports ",(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://daringfireball.net/projects/markdown/syntax",children:"Markdown"})})," and a few ",(0,r.jsx)(n.strong,{children:"additional features"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"front-matter",children:"Front Matter"}),"\n",(0,r.jsxs)(n.p,{children:["Markdown documents have metadata at the top called ",(0,r.jsx)(n.a,{href:"https://jekyllrb.com/docs/front-matter/",children:"Front Matter"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",metastring:'title="my-doc.md"',children:"// highlight-start\n---\nid: my-doc-id\ntitle: My document title\ndescription: My document description\nslug: /my-custom-url\n---\n// highlight-end\n\n## Markdown heading\n\nMarkdown text with [links](./hello.md)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"links",children:"Links"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown links are supported, using url paths or relative file paths."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](/create-a-page).\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](./create-a-page.md).\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Result:"})," Let's see how to ",(0,r.jsx)(n.a,{href:"/tutorial-basics/create-a-page",children:"Create a page"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"images",children:"Images"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown images are supported."}),"\n",(0,r.jsxs)(n.p,{children:["You can use absolute paths to reference images in the static directory (",(0,r.jsx)(n.code,{children:"static/img/docusaurus.png"}),"):"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](/img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Docusaurus logo",src:s(9335).A+"",width:"200",height:"200"})}),"\n",(0,r.jsx)(n.p,{children:"You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](./img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"code-blocks",children:"Code Blocks"}),"\n",(0,r.jsx)(n.p,{children:"Markdown code blocks are supported with Syntax highlighting."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:'```jsx title="src/components/HelloDocusaurus.js"\nfunction HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n```\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",metastring:'title="src/components/HelloDocusaurus.js"',children:"function HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n"})}),"\n",(0,r.jsx)(n.h2,{id:"admonitions",children:"Admonitions"}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus has a special syntax to create admonitions and callouts:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::tip[My tip]\n\nUse this awesome feature option\n\n:::\n\n:::danger[Take care]\n\nThis action is dangerous\n\n:::\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"My tip",type:"tip",children:(0,r.jsx)(n.p,{children:"Use this awesome feature option"})}),"\n",(0,r.jsx)(n.admonition,{title:"Take care",type:"danger",children:(0,r.jsx)(n.p,{children:"This action is dangerous"})}),"\n",(0,r.jsx)(n.h2,{id:"mdx-and-react-components",children:"MDX and React Components"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://mdxjs.com/",children:"MDX"})," can make your documentation more ",(0,r.jsx)(n.strong,{children:"interactive"})," and allows using any ",(0,r.jsx)(n.strong,{children:"React components inside Markdown"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",children:"export const Highlight = ({children, color}) => (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '20px',\n color: '#fff',\n padding: '10px',\n cursor: 'pointer',\n }}\n onClick={() => {\n alert(`You clicked the color ${color} with label ${children}`)\n }}>\n {children}\n </span>\n);\n\nThis is <Highlight color=\"#25c2a0\">Docusaurus green</Highlight> !\n\nThis is <Highlight color=\"#1877F2\">Facebook blue</Highlight> !\n"})}),"\n","\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#25c2a0",children:"Docusaurus green"})," !"]}),"\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#1877F2",children:"Facebook blue"})," !"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},9335:(e,n,s)=>{s.d(n,{A:()=>r});const r="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAT3UlEQVR42u1dCVQVV5pWXNt2N0czykl33KImZ7IgKgqIghq3KCDK+qowCek2c2K0Mx3idBxakzYxJnZiq3Gf6Bg7UdN2R51MxnTSia3gew9Rwccm7oqiiIK4sPxTt1hEHo9XvPVW1fed852Dr+67UNb/1f3/+9/731atAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8i2CxGjDUJXzMGmcSZnmoHAF7B6GMJvYPNwq5gk1AmMS/YJMbaahtkNsRLbeghmoU4d7cDAO+NCEbhQCMjrZbe5q81bhdyVOwuXbtqZdDSZ+yau9oBgNcgGeIvmzDQJkUy1ix8ZKMtsWvuagcAXsNYs/iyLSNlIgk2GebLQjKJQ6R/32+mbcWYI8KTrm6HJwR4170yCV80Y6T1I4kklH122lFNG9e2wxMC3Ao/U1KnQLPgF2SK/xeri5TiIxlikX1DBXVANpoXSy/DzGCjYfdYs2FRiFkcxWxEu/GF0RAm3fT1Bv8JJyV+LLlV08ccnNuFCQeGAdrheWkkXxaSGueruZFDurlrzfn4QSbDGRgAqJD3JK4NMcU8oo3RIz1hOB4q6AZeCzKK0aoXCIs58DBBt9Esfip5Ke3UPkN1Eg8TdB8N+5grr+JRxPAJHiLoTgaZhf97MiuqvVqTgNPxEEEPcK0qBTIyNa6rnWw1CLooJjHMUZc6KMWnNs9xDg8Q9ACLQtMMvbhfeFi7tuoLZMhBz1NczaUw2H4OFizhAYFe5l0uM+61m53wgMAWM+C7aBr425Ey2c8umPpdxmO+oxQPWz8cvnOmTGf7Gf1DDHXs25lYxMrIfmafOdnvOe4WONZsk4XhaD7nkJpAPQN96w2a/cw+c7S/QYsC6vuq46D/CHD+7zQaRvDmYsXVbG6CEWmZQ5YGWRk0+8zR/phb1bg/9pkLgvVk/twso+EViETbfPw1PyuDHrDQ36n4o6GL1eHRn7skDhlrEnZyuvbKMN/TIglKM9AzmyfLbzL2sBjZz89sniJfg2G7Nvbwad+m3qB9OrQh/z0RTschzK1yXZAu8zi/CxQ9NJL4fT6d+kwdQG27drB6q9WxXbcO1GfaAPL78wswcBfx6Y2T6ZHxv5DJfuY1acj5Kl55JHHPtOCBaOozZQC18mltUxhWlNoyobjwDQVyng/hVhyBaYbBrEKhW0aNL2Y85LO2lB37daHhX86AAemAPC4z6R5sEt9j6nWXONr8vJ3D4qhj287tIRIIxMP7PmrKd151p1vV3MjRtmt7eiT0F+QbN4z6xQ6T/eO2XdrbbP8z3y5wtyAQT+VAxAh336wcczQVhPfsKM+ANJWsYp+xRFS7Hh2b/C6LSWBIEIgnsuh73T1b1VRA3ql/dxq5d5bd74/4OlJu21TgjtktCMT9uwbdFJDXjx5TBzQ5cigRR71I/hZJ7bpbTwf3mT4QxgSBuHtbrSHcnUlAlstwxXqdgcmjmsyTIJkIgag2SGcZ8qYCckcWyAUdTpBnsBr398yWKTAoCESd07xD3rFeHMdmqxztj81uNe5v6B+CYVAQiAeD9qPiIOkP/NIVN9l//nArg/ZNeNLh/nzjn7Tqr//rw2FQEIg6M+lN7RcY/LvR3PQHupdh6S9R+LH5ZMh8i17NfoeS81bSO6fX0cfn/ps2X/wL7bzyv/TNtYP0z5KjdLw0hwrKL1DR/Rt0r+q+Plys0d/HyMtDGib4nNlx5ur+QPcZuLPQTSa9bjk0oyuM2dX9adm4Zx57jeIzk+lXliX0Ru4KSjm1hlac/S/69MKXtP3yXvrr1b/Td8WplHbzOGWV5dPZO5fo+v0Slxi4ZgTiiUw66BoD/32BPQO/zI2Ba0cgbs6kg9aMPfFbWn5mM/258H80a+CaEYi7M+ngA7JR4ERpHgFqEogbM+lgDSelv0LfFx+B1SNIBxtzWsarlH27ABavZoF4YsOUHhliEuX4AlCOwsJC2rVrF7+JwjHGuU8Em4X9MHDn+afzOzRtzGVlZbR69WqKjY2lqKgoev/996m4uNihvqqrqyklJYU6dKhf3Kq/Pel6izuKK246bYQXLlygvXv30ldffUWZmZlO9cX6CAwMpI4dO1Lbtm3pueeeo61btzrUV1ZWFj3++ONWKxseffRRMpvNLe7vzTffrClF5ONDEydOhIuldb53ZqNTxpyfn08RERFWBsiM2mQytbi/+fPn29zCnJSU1KK+ioqKyNe3poTpU089RRs3bqTt27dTQEBAvUiuXr2quL8ff/xRFgYT7e7duxGk64E/FBsdFsfhw4epR48eNTsvO3WioKAgmjRpEvXu3Vv+rHPnzvTTTz8p7u/dd9+tqXwouS/Lly+nS5cuUUlJCa1fv17ui11j7pFSTJs2Tf4O+7tu3bpV//ndu3fr3v40Y8YMRX1VVFTQkCFD5O8sW7YMmXS98MLdQofEYbFYqFu3brLBsBGEBa11KC0tpcTERPkaa8NGGXs4ePCg/HZu06YN7du3z+r6/v3769/e6enpdvvbs2dPTeHrnj1l968xLl68SN2712yR/vbbb+3299lnn8ltn3jiCbp37x4y6XphedWdFouDBbiDBw+WDWb27NlUWVlp1aaqqooiIyPlNsOHD3/IqBrj9u3bNGjQILnt4sWLbbZbuHCh3Mbf37/J31kH9rvq+mPBuS2w0Yi18fPzk4NvW2C/iwmDtd22bRsy6RAINWvM48aNq48z2L9tgblH/fv3l9suWLDAZrt58+bJbZ5++ulmhcRGpscee8yu4a9YsUJuM2zYMNk1soXy8nLq16+f3Hbnzp0227EJAtZm4MCBVv0hkw4XS8aNGzdkV4S9bZmxMMM6f/683e+lpaVR+/Y1W5A//PBDq+vr1q2Tr7E2GRkZil2nrl27Um5ubpOTBuwaa/PNN9/Y7a/u97MRgsUmjcE+Y8JgbbZs2YJMut6oZGnJ6NGjHz5bQzKYggLlWXf2BmbxA/suC+LZbNKOHTsoLi6OWrduLXPz5s2K+2P5DNYXC5rz8h6sGbt8+bI8qrFrrI3S4JuNNOw7ycnJVtfffvvtZkcjTPNqnMtOb7BrRGPGjJFnlpiRfPDBB826VbbABNGrVy/rii/t2tGqVata7OY9++yz8ve7dOkiC41NAdfNng0dOlR2x5TCaDTKfwf77tKlS2UhsJiEuXFs0oCJ+9ChQ+pYauKOPel65sT0JJckCpXmJVhgzLLZM2fOpEWLFj00ArR0oqCp/AuLj9hI0lIwkbKRrG7mqy42YVyyZIl61mJhqYnruercdtUuI2HTzZs2baK1a9fSkSPOrURm8U1droOxb9++tGHDBixWxGJFkVJLjmEFYoMcCYuxmpsBQ5Cuu+Xu8+hk2SmoQ63L3ZFJ90w8cuD6YVi9KgWCTLrHuDB3uVwep5qqoQC1CASZdM8z+sQb9P6ZTbSjcD+KNnAvEGTSUfYHAkGQDoGhcBymeUGUHkUmHdS6wG5VlmFPOgjq/gAdEMQRbCCoZYEgkw5CIMikgxAIMukgBIJMOgiBIEgHIRBM84KgegSCTDoIgSCTzvcWXbNAv7bE0/oL0fSPG1F0+k4k3aoMp4rqmUSkL8LFAus563gCbb88h4ruR+hOCKoQCIJ07/CFDAP9rWg23a+GILgVCDLp3uGSghi6WREOMXAvEGTSPcrxUpzxtTRqQAQqEQgCck9WNzFQasksCEBVAkEm3WMjB8SBIB20QbhVmOYFbXBpQazLDYjlR25XhetGIJOyXuw5JntuF2TSNVd61EAlLpytqpa4sjCWJmSLMtdcidG2QKhV67CcxHVh2WJVLVcik65zjmVZ9QyRxmcKFHpSJMkoaGqOSHGnDPTGuXj53w1pLIvSnECk+yoPzRZPh2Un/r3x/YZZEifBxdLrcpOMB6JQyt3Fc7QokOb4OoJ0vdEs0LgTLRNGHQ/cnE07JZEcLo2SXTCtC2RCdmJ8aI64MNSSOI25YMik64COiqMxPy6M0cMI0oDCGmTSdeBWuUIcYbWBe6kGZrdacM/VIafF7sikazggb2nMYU8gJZURehJIVUhO0iPIpGt29HCdOBj/qDMXS3ohfIogXctLUDJd516xaeCvb8yhMv24WGekQP2VsFNJ3TDNq1G60r2qY4IkFLWLpIX3fMojIkEm3QsV0LMFlwuEcfS/P0N+ft29ypdf/qWnBEJhFiEJmXQIRDH7RQ2uP5fcW+zbt6PHBDIhJ/EluFhwsRRxzsl4OmgeTyZTiFdZXDzVUwLJd6uLhSBdO0H63huzdRWkM9fKreJAJl07SULGjy7H6iuTbhHXI5Ou8URhGBKFHCcKEZB7fxQ5iqUm/C41QSadk8WKrhHJJ4X6crFCLeKfkEnXiavl7HL31LJZutgPUrfcPSxXmIoNU3rcMGURsGGKpw1TyKTzKZTxmWJtnkT6OSOBxhyYRX6fPW9lML0C+3k9KdgUR47s4dSWW4kF3Gy5RSbdtXTUMEaM6NG84bVuRUNSAiThSCNNlkCDk/25FAfjqFE9XVO0IVtcW1uwoTLMInyEsj86FohSllaGU7mOyv5MPR7bIyRrXmcUjoNAQFR3h0BAVHeHQEBUdwchEFR3ByEQVHdHkA6BQCCY5oVAIBBk0tUrEH//Htwm/jyZSedWIMikc55JVxFdkkmHiwWBgAjSIRAQmXQQAkEmHYRAkEkHeRDIP0ujaOG5eJqWK8j8jfQzOyQHAkEmXfcC2XA12uaOuk1F0RAIgnRtC4Qd4XyifBZZ7kRaHefMRg5722wbjySsD9YX61MLx0OH5cwNnJwX1xXTvDoTyF3JeD8pjKHncx4Y+xTp51VXYuRrrM3CJk6ybUx22u2D/mLlPuquTc4RavqrVv2e9LthOcKqgPNRP0MmXQcCqZAMdsFZ28b/unTNf1QvGpceZ1cg48xx5NPOh4Z/PsVmG79tz1Prtj5q3ZPekD/4mZLaIZOu9dpXx+1XKBl3XFlFk9BMAw1+a4Tddo8Zhqkyk95EQbz5cLG0Xsk9S3TLUQfN8ddnErRS9seMIF3rZ4FYPC+QF3IFrQjkFjLpOAvE5UwsMGhFIBZk0rV+FsgJweMC+Vilp95a34uwBpl0rdffNXtWIKzS+9Hbs2hlYSwZThnkqWA2onx+LZr7KeDGFdxDsw3jwnIS18mnSWWLd9iIEmpJfMvtU8DIpHtwBMny/Ahii/8mBe88JxRb8BJIc3tCEUG6Nt0re/zgcozqBVLrfm3GNK+aC1Ef408cjBM5Po2qhfdS6dZTppBJd2/cEWoRuRQIY8/RfdWQSbfP3LlhSoPuxSGpcb7IpMO1UsIe/n1UkUm3OxrmCsF2jTs09aU+0kO5zQwcLhYHTBe5Fgdb1HirMlwLLtbdSVkv9lSS01ha93CCzMpP4UGQzve5g+7iHzk+z7CF97JWadIvr8EDqmJZcmTSvUSzd5aWKOX8swn1y+tVLpCD001JnezHHkdE/yYe1B17IkEm3U3BeTq/o8faK9Hy0nvVn3JrET5SvAxeeii/sfGwqqSY5DVk0j3sXh3jd/Rgm7V43+Ou8F7uSyyT+P1EizjdnkC+sDPk7x+TPrcvMukemr3K5DtA532PuyP3EZojvtvc9G6mggd3LcgoLAg49PD6FQTp7li5K6hGIE3tcVejQGSRWBKn2RpBLrXgAbK2vws0zu2PaV7t7P1whnV73NUuEHZstC2B3HFwtuVIkEn8cKxRiJFGkn8NyZgbGGw07IaROzmCZKtLIGyPu6oz6fY2VkkP5R4MEwJxlCGmOG4y6ferw525l5u2BHIdhsmRQOBiOUy2gNLhGCRb/M6ZIB3U8PZaZ5haNosbgRTcjXT8XnKFqbZGkK9gmDxtjlKPOLZwNs37j1uzHbwXYWlzOwMXwTCRKFSaKJyeK8huFU8jh5K6xNaJQqGUuVU2R476aVqzOAqGiaUmSnjmXiTXy0xePZOgLN7ISxymfL06pfhID+YcjJMTgXAah7xymu9CclfuR8jFJhTcy1EHSvgYlsE41VVq1NPccX0O1wJhFVcU3UuOmNzyfeWpcb7Ih/C1YYqnfAirsnijkt8l7iz/EZ1vUJQMnJif0NvRQnBrYZw8bZriRyDbrvE9euwpnqOs1E+OsNjhogsBh17sKT2YIhgnLxunRC7WZc3OF6ic4w1SN6WRLTJP0ehxOSRrXmfn6lwZxWgYJ8r+NKywmMbhdG5DLrkYp+ReqsbnGCa7qij1pzBOVDdh3HqN7zMN/3pjttLA/D9dVt8q6suoNmNNwl9gnPreRPV76c1czbE4WKJyUo6il8euFErxcWkROD9TUqdgk2EfjJOf3IgnRfLepViqrOY37mCbtKbmKhLH1pDvU9q6pVIi29SOmS19zWxNqC3MUM25W6Vg5KhmhRlaUavWHjgoxzAHs1scBe4ZclUOl4sjJt9AxrIoboVRUhmuNCA/F2ZJnOTRs0BC0wy9gk3iamyr5ad2lquCd1alZM2VGG6PNGBJQJbnCM+ze7+sSslKr56RPj7D0K92WQrWbnEiFLYsxZG1W2zEYMszeC0herUiQv77FGTIz7EDcRSVEPUYKMUnyGgYIY0qyVIAuVN6WMdrdyZiuYqXgvixRwX5KOjxmTWLHdnORLZchfnrEdLb9+XTCZKLEiv78GfvRXA0QsykmxXhlF8eST8UR9G6i9H0q7x4Cm10H2HZQoUkhmsSj0/IFnZOyBFeDctNGNoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsI3/BxVeQNnL1kBuAAAAAElFTkSuQmCC"},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var r=s(6540);const t={},a=r.createContext(t);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e4232ab.81f85e5b.js b/assets/js/1e4232ab.81f85e5b.js new file mode 100644 index 000000000..a9c35aa68 --- /dev/null +++ b/assets/js/1e4232ab.81f85e5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1953],{3976:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=n(4848),r=n(8453);const i={sidebar_position:2},o="Create a Document",a={id:"tutorial-basics/create-a-document",title:"Create a Document",description:"Documents are groups of pages connected through:",source:"@site/docs/tutorial-basics/create-a-document.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-document",permalink:"/tutorial-basics/create-a-document",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-document.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},c={},l=[{value:"Create your first Doc",id:"create-your-first-doc",level:2},{value:"Configure the Sidebar",id:"configure-the-sidebar",level:2}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"create-a-document",children:"Create a Document"}),"\n",(0,s.jsxs)(t.p,{children:["Documents are ",(0,s.jsx)(t.strong,{children:"groups of pages"})," connected through:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["a ",(0,s.jsx)(t.strong,{children:"sidebar"})]}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"previous/next navigation"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"versioning"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-your-first-doc",children:"Create your first Doc"}),"\n",(0,s.jsxs)(t.p,{children:["Create a Markdown file at ",(0,s.jsx)(t.code,{children:"docs/hello.md"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md"',children:"# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["A new document is now available at ",(0,s.jsx)(t.a,{href:"http://localhost:3000/docs/hello",children:"http://localhost:3000/docs/hello"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"configure-the-sidebar",children:"Configure the Sidebar"}),"\n",(0,s.jsxs)(t.p,{children:["Docusaurus automatically ",(0,s.jsx)(t.strong,{children:"creates a sidebar"})," from the ",(0,s.jsx)(t.code,{children:"docs"})," folder."]}),"\n",(0,s.jsx)(t.p,{children:"Add metadata to customize the sidebar label and position:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md" {1-4}',children:"---\nsidebar_label: 'Hi!'\nsidebar_position: 3\n---\n\n# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["It is also possible to create your sidebar explicitly in ",(0,s.jsx)(t.code,{children:"sidebars.js"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n tutorialSidebar: [\n 'intro',\n // highlight-next-line\n 'hello',\n {\n type: 'category',\n label: 'Tutorial',\n items: ['tutorial-basics/create-a-document'],\n },\n ],\n};\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>a});var s=n(6540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.1479ec8d.js b/assets/js/1f391b9e.1479ec8d.js new file mode 100644 index 000000000..a511c185c --- /dev/null +++ b/assets/js/1f391b9e.1479ec8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6061],{7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(6540);var a=t(4164),i=t(1213),s=t(7559),l=t(5733),r=t(5533),c=t(7763),o=t(996),d=t(4336);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var u=t(4848);function f(e){const{content:n}=e,{metadata:{title:t,editUrl:f,description:v,frontMatter:h,unlisted:g,lastUpdatedBy:x,lastUpdatedAt:p},assets:L}=n,{keywords:j,wrapperClassName:A,hide_table_of_contents:N}=h,_=L.image??h.image,C=!!(f||p||x);return(0,u.jsx)(i.e3,{className:(0,a.A)(A??s.G.wrapper.mdxPages,s.G.page.mdxPage),children:(0,u.jsxs)(l.A,{children:[(0,u.jsx)(i.be,{title:t,description:v,keywords:j,image:_}),(0,u.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,u.jsxs)("div",{className:(0,a.A)("row",m.mdxPageWrapper),children:[(0,u.jsxs)("div",{className:(0,a.A)("col",!N&&"col--8"),children:[g&&(0,u.jsx)(o.A,{}),(0,u.jsx)("article",{children:(0,u.jsx)(r.A,{children:(0,u.jsx)(n,{})})}),C&&(0,u.jsx)(d.A,{className:(0,a.A)("margin-top--sm",s.G.pages.pageFooterEditMetaRow),editUrl:f,lastUpdatedAt:p,lastUpdatedBy:x})]}),!N&&n.toc.length>0&&(0,u.jsx)("div",{className:"col col--2",children:(0,u.jsx)(c.A,{toc:n.toc,minHeadingLevel:h.toc_min_heading_level,maxHeadingLevel:h.toc_max_heading_level})})]})})]})})}},7763:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(5195);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const r="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,a.A)(s.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(i.A,{...t,linkClassName:r,linkActiveClassName:c})})}},5195:(e,n,t)=>{t.d(n,{A:()=>h});var a=t(6540),i=t(6342);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)})),a}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function r(e){const n=e.getBoundingClientRect();return n.top===n.bottom?r(e.parentNode):n}function c(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>r(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(r(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function o(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:n}}=(0,i.p)();return(0,a.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=o();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:l}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),r=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let i=n;i<=t;i+=1)a.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:s,maxHeadingLevel:l}),o=c(r,{anchorTopOffset:t.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,t])}var m=t(8774),u=t(4848);function f(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?(0,u.jsx)("ul",{className:i?void 0:t,children:n.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:t,linkClassName:a})]},e.id)))}):null}const v=a.memo(f);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:c,minHeadingLevel:o,maxHeadingLevel:m,...f}=e;const h=(0,i.p)(),g=o??h.tableOfContents.minHeadingLevel,x=m??h.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>l({toc:s(n),minHeadingLevel:t,maxHeadingLevel:i})),[n,t,i])}({toc:n,minHeadingLevel:g,maxHeadingLevel:x});return d((0,a.useMemo)((()=>{if(r&&c)return{linkClassName:r,linkActiveClassName:c,minHeadingLevel:g,maxHeadingLevel:x}}),[r,c,g,x])),(0,u.jsx)(v,{toc:p,className:t,linkClassName:r,...f})}},996:(e,n,t)=>{t.d(n,{A:()=>f});t(6540);var a=t(4164),i=t(1312),s=t(5260),l=t(4848);function r(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,l.jsx)(s.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),m=t(7293);function u(e){let{className:n}=e;return(0,l.jsx)(m.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,a.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(c,{})})}function f(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/2237.e0c95162.js b/assets/js/2237.e0c95162.js new file mode 100644 index 000000000..561471393 --- /dev/null +++ b/assets/js/2237.e0c95162.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2237],{3363:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var i=n(4164),o=n(1312),r=n(1107),s=n(4848);function a(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,i.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(r.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(6540);var i=n(1312),o=n(1213),r=n(5733),s=n(3363),a=n(4848);function d(){const e=(0,i.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(r.A,{children:(0,a.jsx)(s.A,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/22dd74f7.8a90972e.js b/assets/js/22dd74f7.8a90972e.js new file mode 100644 index 000000000..c7d555958 --- /dev/null +++ b/assets/js/22dd74f7.8a90972e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Tutorial","href":"/tutorial","docId":"tutorial","unlisted":false},{"type":"category","label":"Micro-Controladores","collapsed":false,"items":[{"type":"category","label":"STM32","collapsed":false,"items":[{"type":"link","label":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","href":"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","docId":"micro-controladores/STM32/stm32_cdc_develop","unlisted":false}],"collapsible":true},{"type":"category","label":"ESP32","collapsed":false,"items":[{"type":"link","label":" ","href":"#"}],"collapsible":true},{"type":"category","label":"RP2040","collapsed":false,"items":[{"type":"link","label":" ","href":"#"},{"type":"link","label":"UART Interrupt Handling and Data Transmission in RP2040","href":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","docId":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","unlisted":false},{"type":"link","label":"Detailed Explanation of PWM Usage and Examples in RP2040","href":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","docId":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","unlisted":false},{"type":"link","label":"Timer and Alarm Usage in RP2040","href":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","docId":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","unlisted":false},{"type":"link","label":"Mastering PIO Programming on RP2040","href":"/micro-controladores/RP2040/mastering-pio-programming-rp2040","docId":"micro-controladores/RP2040/mastering-pio-programming","unlisted":false},{"type":"link","label":"Implementing UART (TX )with PIO on RP2040","href":"/micro-controladores/RP2040/pio-uart-implementation-rp2040","docId":"micro-controladores/RP2040/pio-uart-implementation","unlisted":false},{"type":"link","label":"Advanced PIO LED Control and Resource Management on RP2040","href":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","docId":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","unlisted":false}],"collapsible":true}],"collapsible":true}]},"docs":{"intro":{"id":"intro","title":"intro","description":"\x3c!-- ---"},"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management":{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/mastering-pio-programming":{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/pio-uart-implementation":{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-pwm-usage-and-examples":{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-timer-and-alarm-usage":{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage":{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"micro-controladores/STM32/stm32_cdc_develop":{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","sidebar":"tutorialSidebar"},"tutorial":{"id":"tutorial","title":"Tutorial","description":"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.","sidebar":"tutorialSidebar"},"tutorial-basics/congratulations":{"id":"tutorial-basics/congratulations","title":"Congratulations!","description":"You have just learned the basics of Docusaurus and made some changes to the initial template."},"tutorial-basics/create-a-blog-post":{"id":"tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed..."},"tutorial-basics/create-a-document":{"id":"tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:"},"tutorial-basics/create-a-page":{"id":"tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:"},"tutorial-basics/deploy-your-site":{"id":"tutorial-basics/deploy-your-site","title":"Deploy your site","description":"Docusaurus is a static-site-generator (also called Jamstack)."},"tutorial-basics/markdown-features":{"id":"tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features."},"tutorial-extras/manage-docs-versions":{"id":"tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs."},"tutorial-extras/translate-your-site":{"id":"tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French."}}}}')}}]); \ No newline at end of file diff --git a/assets/js/2b149dc3.39ddbb7a.js b/assets/js/2b149dc3.39ddbb7a.js new file mode 100644 index 000000000..9a9023422 --- /dev/null +++ b/assets/js/2b149dc3.39ddbb7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3225],{5519:e=>{e.exports=JSON.parse('{"tag":{"label":"cdc","permalink":"/tags/cdc","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/2c06c927.73da377c.js b/assets/js/2c06c927.73da377c.js new file mode 100644 index 000000000..866446599 --- /dev/null +++ b/assets/js/2c06c927.73da377c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3929],{5535:e=>{e.exports=JSON.parse('{"tag":{"label":"Misc","permalink":"/blog/tags/misc","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/misc","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/2c14e4d0.113c919b.js b/assets/js/2c14e4d0.113c919b.js new file mode 100644 index 000000000..a2ce7607d --- /dev/null +++ b/assets/js/2c14e4d0.113c919b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6630],{4589:e=>{e.exports=JSON.parse('{"tag":{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/blog/tags/\u6a5f\u5668\u5b78\u7fd2","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/\u6a5f\u5668\u5b78\u7fd2","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3217192f.bb3d91e2.js b/assets/js/3217192f.bb3d91e2.js new file mode 100644 index 000000000..5c3ce18b3 --- /dev/null +++ b/assets/js/3217192f.bb3d91e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8462],{8174:a=>{a.exports=JSON.parse('{"tag":{"label":"Docusaurus","permalink":"/blog/tags/docusaurus","description":"Docusaurus tag description","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/docusaurus","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/3242.35bb0ee0.js b/assets/js/3242.35bb0ee0.js new file mode 100644 index 000000000..77f82d5a9 --- /dev/null +++ b/assets/js/3242.35bb0ee0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3242],{6535:(e,t,a)=>{a.d(t,{A:()=>b});var s=a(6540),n=a(4164),r=a(5733),l=a(4581),i=a(8774),o=a(1312),c=a(6347),d=a(9169);function m(e){const{pathname:t}=(0,c.zy)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,d.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=a(4848);function g(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,n.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,n.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,n.A)(u.sidebarItemList,"clean-list"),children:a.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var x=a(5600);function j(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:a.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,h.jsx)(x.GX,{component:j,props:e})}function f(e){let{sidebar:t}=e;const a=(0,l.l)();return t?.items.length?"mobile"===a?(0,h.jsx)(p,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function b(e){const{sidebar:t,toc:a,children:s,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(r.A,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(f,{sidebar:t}),(0,h.jsx)("main",{className:(0,n.A)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:s}),a&&(0,h.jsx)("div",{className:"col col--2",children:a})]})})})}},4651:(e,t,a)=>{a.d(t,{A:()=>R});a(6540);var s=a(4164),n=a(7131),r=a(4848);function l(e){let{children:t,className:a}=e;return(0,r.jsx)("article",{className:a,children:t})}var i=a(8774);const o={title:"title_f1Hy"};function c(e){let{className:t}=e;const{metadata:a,isBlogPostPage:l}=(0,n.e)(),{permalink:c,title:d}=a,m=l?"h1":"h2";return(0,r.jsx)(m,{className:(0,s.A)(o.title,t),children:l?d:(0,r.jsx)(i.A,{to:c,children:d})})}var d=a(1312),m=a(5846),u=a(6266);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,m.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:a(t)})}function x(e){let{date:t,formattedDate:a}=e;return(0,r.jsx)("time",{dateTime:t,children:a})}function j(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function p(e){let{className:t}=e;const{metadata:a}=(0,n.e)(),{date:l,readingTime:i}=a,o=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,s.A)(h.container,"margin-vert--md",t),children:[(0,r.jsx)(x,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(j,{}),(0,r.jsx)(g,{readingTime:i})]})]});var c}function f(e){return e.href?(0,r.jsx)(i.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function b(e){let{author:t,className:a}=e;const{name:n,title:l,url:i,imageURL:o,email:c}=t,d=i||c&&`mailto:${c}`||void 0;return(0,r.jsxs)("div",{className:(0,s.A)("avatar margin-bottom--sm",a),children:[o&&(0,r.jsx)(f,{href:d,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:"avatar__photo",src:o,alt:n})}),n&&(0,r.jsxs)("div",{className:"avatar__intro",children:[(0,r.jsx)("div",{className:"avatar__name",children:(0,r.jsx)(f,{href:d,children:(0,r.jsx)("span",{children:n})})}),l&&(0,r.jsx)("small",{className:"avatar__subtitle",children:l})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function _(e){let{className:t}=e;const{metadata:{authors:a},assets:l}=(0,n.e)();if(0===a.length)return null;const i=a.every((e=>{let{name:t}=e;return!t}));return(0,r.jsx)("div",{className:(0,s.A)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:a.map(((e,t)=>(0,r.jsx)("div",{className:(0,s.A)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,r.jsx)(b,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function A(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(p,{}),(0,r.jsx)(_,{})]})}var N=a(440),k=a(5533);function P(e){let{children:t,className:a}=e;const{isBlogPostPage:l}=(0,n.e)();return(0,r.jsx)("div",{id:l?N.blogPostContainerID:void 0,className:(0,s.A)("markdown",a),children:(0,r.jsx)(k.A,{children:t})})}var w=a(7559),T=a(4336),I=a(2053);function L(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function y(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(i.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(L,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,n.e)(),{tags:a,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=a.length>0;if(!(u||m||i))return null;if(t){const e=!!(i||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("row","margin-top--sm",w.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(I.A,{tags:a})})}),e&&(0,r.jsx)(T.A,{className:(0,s.A)("margin-top--sm",w.G.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("col",{"col--9":m}),children:(0,r.jsx)(I.A,{tags:a})}),m&&(0,r.jsx)("div",{className:(0,s.A)("col text--right",{"col--3":u}),children:(0,r.jsx)(y,{blogPostTitle:l,to:e.permalink})})]})}function R(e){let{children:t,className:a}=e;const i=function(){const{isBlogPostPage:e}=(0,n.e)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(l,{className:(0,s.A)(i,a),children:[(0,r.jsx)(A,{}),(0,r.jsx)(P,{children:t}),(0,r.jsx)(C,{})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var s=a(4164),n=a(8774),r=a(4848);function l(e){const{permalink:t,title:a,subLabel:l,isNext:i}=e;return(0,r.jsxs)(n.A,{className:(0,s.A)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[l&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,r.jsx)("div",{className:"pagination-nav__label",children:a})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var s=a(4164),n=a(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=a(4848);function i(e){let{permalink:t,label:a,count:i,description:o}=e;return(0,l.jsxs)(n.A,{href:t,title:o,className:(0,s.A)(r.tag,i?r.tagWithCount:r.tagRegular),children:[a,i&&(0,l.jsx)("span",{children:i})]})}},2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(4164),n=a(1312),r=a(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var i=a(4848);function o(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(n.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:l.tag,children:(0,i.jsx)(r.A,{...e})},e.permalink)))})]})}},7131:(e,t,a)=>{a.d(t,{e:()=>o,i:()=>i});var s=a(6540),n=a(9532),r=a(4848);const l=s.createContext(null);function i(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const i=function(e){let{content:t,isBlogPostPage:a}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return(0,r.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,s.useContext)(l);if(null===e)throw new n.dV("BlogPostProvider");return e}},5846:(e,t,a)=>{a.d(t,{W:()=>c});var s=a(6540),n=a(4586);const r=["zero","one","two","few","many","other"];function l(e){return r.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,a)=>function(e,t,a){const s=e.split("|");if(1===s.length)return s[0];s.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return s[Math.min(r,s.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/36994c47.77d49b04.js b/assets/js/36994c47.77d49b04.js new file mode 100644 index 000000000..10c144817 --- /dev/null +++ b/assets/js/36994c47.77d49b04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9858],{5516:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/3720c009.f8828a1d.js b/assets/js/3720c009.f8828a1d.js new file mode 100644 index 000000000..29a033a87 --- /dev/null +++ b/assets/js/3720c009.f8828a1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4787],{2194:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(6540);var s=a(4164),r=a(1213),l=a(7559),n=a(6820),c=a(2557),i=a(1463),o=a(1107),g=a(4848);function d(e){let{title:t}=e;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(r.be,{title:t}),(0,g.jsx)(i.A,{tag:"doc_tags_list"})]})}function u(e){let{tags:t,title:a}=e;return(0,g.jsx)(r.e3,{className:(0,s.A)(l.G.page.docsTagsListPage),children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsx)("div",{className:"row",children:(0,g.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,g.jsx)(o.A,{as:"h1",children:a}),(0,g.jsx)(c.A,{tags:t})]})})})})}function h(e){const t=(0,n.b)();return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(d,{...e,title:t}),(0,g.jsx)(u,{...e,title:t})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>c});a(6540);var s=a(4164),r=a(8774);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(4848);function c(e){let{permalink:t,label:a,count:c,description:i}=e;return(0,n.jsxs)(r.A,{href:t,title:i,className:(0,s.A)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},2557:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(6820),r=a(6133),l=a(1107);const n={tag:"tag_Nnez"};var c=a(4848);function i(e){let{letterEntry:t}=e;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.A,{as:"h2",id:t.letter,children:t.letter}),(0,c.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.A,{...e})},e.permalink)))}),(0,c.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const a=(0,s.Q)(t);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((e=>(0,c.jsx)(i,{letterEntry:e},e.letter)))})}},6820:(e,t,a)=>{a.d(t,{Q:()=>l,b:()=>r});var s=a(1312);const r=()=>(0,s.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/assets/js/393be207.a6e53343.js b/assets/js/393be207.a6e53343.js new file mode 100644 index 000000000..80e1f6bec --- /dev/null +++ b/assets/js/393be207.a6e53343.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4134],{633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var o=t(4848),a=t(8453);const r={title:"Markdown page example"},s="Markdown page example",c={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},p={},d=[];function i(e){const n={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,o.jsx)(n.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var o=t(6540);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/395e5342.5144fa96.js b/assets/js/395e5342.5144fa96.js new file mode 100644 index 000000000..6714b9881 --- /dev/null +++ b/assets/js/395e5342.5144fa96.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8375],{5753:a=>{a.exports=JSON.parse('{"tag":{"label":"alarm","permalink":"/tags/alarm","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/3a2db09e.2dd30aa3.js b/assets/js/3a2db09e.2dd30aa3.js new file mode 100644 index 000000000..0bc87bbff --- /dev/null +++ b/assets/js/3a2db09e.2dd30aa3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8121],{8070:l=>{l.exports=JSON.parse('{"tags":[{"label":"Misc","permalink":"/blog/tags/misc","count":1},{"label":"Linux","permalink":"/blog/tags/linux","count":1},{"label":"Docker","permalink":"/blog/tags/docker","count":1},{"label":"\u8edf\u4ef6","permalink":"/blog/tags/\u8edf\u4ef6","count":1},{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/blog/tags/\u6a5f\u5668\u5b78\u7fd2","count":1},{"label":"Hola","permalink":"/blog/tags/hola","description":"Hola tag description","count":1},{"label":"Docusaurus","permalink":"/blog/tags/docusaurus","description":"Docusaurus tag description","count":1}]}')}}]); \ No newline at end of file diff --git a/assets/js/3ea259e6.ca948adc.js b/assets/js/3ea259e6.ca948adc.js new file mode 100644 index 000000000..8ba1f75e9 --- /dev/null +++ b/assets/js/3ea259e6.ca948adc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7733],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>F});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,v,x,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,k=t(6540);function z(){return z=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},z.apply(null,arguments)}const F=e=>{let{title:a,titleId:t,...F}=e;return k.createElement("svg",z({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},F),void 0===a?k.createElement("title",{id:t},"Focus on What Matters"):a?k.createElement("title",{id:t},a):null,l||(l=k.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=k.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=k.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=k.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=k.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=k.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=k.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=k.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=k.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=k.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=k.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=k.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=k.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=k.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),v||(v=k.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),x||(x=k.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=k.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=k.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=k.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=k.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=k.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=k.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=k.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=k.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=k.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},8154:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/blog",children:"\ud83d\udc49 \xa1hjk! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/assets/js/533a09ca.669e7e47.js b/assets/js/533a09ca.669e7e47.js new file mode 100644 index 000000000..f7b6d3bae --- /dev/null +++ b/assets/js/533a09ca.669e7e47.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3098],{4700:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>g,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var o=s(4848),r=s(8453);const n={sidebar_position:3},a="Create a Blog Post",i={id:"tutorial-basics/create-a-blog-post",title:"Create a Blog Post",description:"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...",source:"@site/docs/tutorial-basics/create-a-blog-post.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-blog-post",permalink:"/tutorial-basics/create-a-blog-post",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-blog-post.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:3,frontMatter:{sidebar_position:3}},c={},l=[{value:"Create your first Post",id:"create-your-first-post",level:2}];function u(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"create-a-blog-post",children:"Create a Blog Post"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus creates a ",(0,o.jsx)(t.strong,{children:"page for each blog post"}),", but also a ",(0,o.jsx)(t.strong,{children:"blog index page"}),", a ",(0,o.jsx)(t.strong,{children:"tag system"}),", an ",(0,o.jsx)(t.strong,{children:"RSS"})," feed..."]}),"\n",(0,o.jsx)(t.h2,{id:"create-your-first-post",children:"Create your first Post"}),"\n",(0,o.jsxs)(t.p,{children:["Create a file at ",(0,o.jsx)(t.code,{children:"blog/2021-02-28-greetings.md"}),":"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="blog/2021-02-28-greetings.md"',children:"---\nslug: greetings\ntitle: Greetings!\nauthors:\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n - name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\ntags: [greetings]\n---\n\nCongratulations, you have made your first post!\n\nFeel free to play around and edit this post as much as you like.\n"})}),"\n",(0,o.jsxs)(t.p,{children:["A new blog post is now available at ",(0,o.jsx)(t.a,{href:"http://localhost:3000/blog/greetings",children:"http://localhost:3000/blog/greetings"}),"."]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var o=s(6540);const r={},n=o.createContext(r);function a(e){const t=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/59af61a6.b4dfef7b.js b/assets/js/59af61a6.b4dfef7b.js new file mode 100644 index 000000000..a653682d9 --- /dev/null +++ b/assets/js/59af61a6.b4dfef7b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9174],{5332:e=>{e.exports=JSON.parse('{"tags":[{"label":"RP2040","permalink":"/tags/rp-2040","count":6},{"label":"PIO","permalink":"/tags/pio","count":3},{"label":"LED Control","permalink":"/tags/led-control","count":1},{"label":"Resource Management","permalink":"/tags/resource-management","count":1},{"label":"Raspberry Pi Pico","permalink":"/tags/raspberry-pi-pico","count":6},{"label":"embedded systems","permalink":"/tags/embedded-systems","count":6},{"label":"state machine optimization","permalink":"/tags/state-machine-optimization","count":1},{"label":"UART","permalink":"/tags/uart","count":2},{"label":"serial communication","permalink":"/tags/serial-communication","count":2},{"label":"PWM","permalink":"/tags/pwm","count":1},{"label":"timer","permalink":"/tags/timer","count":1},{"label":"alarm","permalink":"/tags/alarm","count":1},{"label":"interrupts","permalink":"/tags/interrupts","count":1},{"label":"stm32","permalink":"/tags/stm-32","count":1},{"label":"usb","permalink":"/tags/usb","count":1},{"label":"cdc","permalink":"/tags/cdc","count":1}]}')}}]); \ No newline at end of file diff --git a/assets/js/5c868d36.e8d435f2.js b/assets/js/5c868d36.e8d435f2.js new file mode 100644 index 000000000..0c6a709fd --- /dev/null +++ b/assets/js/5c868d36.e8d435f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1974],{5254:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var r=t(4848),n=t(8453);const s={sidebar_position:1},o="Create a Page",c={id:"tutorial-basics/create-a-page",title:"Create a Page",description:"Add Markdown or React files to src/pages to create a standalone page:",source:"@site/docs/tutorial-basics/create-a-page.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-page",permalink:"/tutorial-basics/create-a-page",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-page.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},i={},l=[{value:"Create your first React Page",id:"create-your-first-react-page",level:2},{value:"Create your first Markdown Page",id:"create-your-first-markdown-page",level:2}];function d(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h1,{id:"create-a-page",children:"Create a Page"}),"\n",(0,r.jsxs)(a.p,{children:["Add ",(0,r.jsx)(a.strong,{children:"Markdown or React"})," files to ",(0,r.jsx)(a.code,{children:"src/pages"})," to create a ",(0,r.jsx)(a.strong,{children:"standalone page"}),":"]}),"\n",(0,r.jsxs)(a.ul,{children:["\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/index.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo.md"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo/bar.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo/bar"})]}),"\n"]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-react-page",children:"Create your first React Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-react-page.js"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-jsx",metastring:'title="src/pages/my-react-page.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\nexport default function MyReactPage() {\n return (\n <Layout>\n <h1>My React page</h1>\n <p>This is a React page</p>\n </Layout>\n );\n}\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-react-page",children:"http://localhost:3000/my-react-page"}),"."]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-markdown-page",children:"Create your first Markdown Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-markdown-page.md"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-mdx",metastring:'title="src/pages/my-markdown-page.md"',children:"# My Markdown page\n\nThis is a Markdown page\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-markdown-page",children:"http://localhost:3000/my-markdown-page"}),"."]})]})}function p(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>c});var r=t(6540);const n={},s=r.createContext(n);function o(e){const a=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function c(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5da542a3.eaae6618.js b/assets/js/5da542a3.eaae6618.js new file mode 100644 index 000000000..493ecb4bf --- /dev/null +++ b/assets/js/5da542a3.eaae6618.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5732],{8103:e=>{e.exports=JSON.parse('{"tag":{"label":"Linux","permalink":"/blog/tags/linux","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/linux","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5e28b2f4.c725741f.js b/assets/js/5e28b2f4.c725741f.js new file mode 100644 index 000000000..23e55ae35 --- /dev/null +++ b/assets/js/5e28b2f4.c725741f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6221],{105:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var l=i(4848),o=i(8453);const r={slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},s="RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",t={id:"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management",title:"Advanced PIO LED Control and Resource Management on RP2040",description:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002",source:"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",permalink:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/tags/pio"},{inline:!0,label:"LED Control",permalink:"/tags/led-control"},{inline:!0,label:"Resource Management",permalink:"/tags/resource-management"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/tags/embedded-systems"},{inline:!0,label:"state machine optimization",permalink:"/tags/state-machine-optimization"}],version:"current",lastUpdatedAt:1720759604e3,frontMatter:{slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},sidebar:"tutorialSidebar",previous:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f",id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",level:2},{value:"\u7a0b\u5f0f\u89e3\u6790",id:"\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"PIO \u521d\u59cb\u5316\u51fd\u6578",id:"pio-\u521d\u59cb\u5316\u51fd\u6578",level:2},{value:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",level:2},{value:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"\u7de8\u8b6f\u548c\u904b\u884c",id:"\u7de8\u8b6f\u548c\u904b\u884c",level:2},{value:"\u6e2c\u8a66\u7d50\u679c",id:"\u6e2c\u8a66\u7d50\u679c",level:2},{value:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",level:2},{value:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",level:2},{value:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",level:3},{value:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",level:3},{value:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",level:3},{value:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",level:3},{value:"\u64f4\u5c55\u6027\u8003\u616e",id:"\u64f4\u5c55\u6027\u8003\u616e",level:3}];function a(n){const e={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.h1,{id:"rp2040-\u4e0a\u7684\u9032\u968e-pio-led-\u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",children:"RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",children:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f"}),"\n",(0,l.jsx)(e.p,{children:"\u9996\u5148\uff0c\u8b93\u6211\u5011\u4f86\u770b\u6211\u5011\u7684 PIO \u7a0b\u5f0f\uff0c\u5b83\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u5b9a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-asm",metastring:'title="hello.pio"',children:".program led_controller\n.side_set 1 opt\n\n.wrap_target\n pull block ; \u5f9e FIFO \u63d0\u53d6\u6578\u64da\u5230 OSR\n out x, 32 ; \u5c07 32 \u4f4d\u6578\u64da\u79fb\u81f3 x \u5bc4\u5b58\u5668\n \n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 0\n jmp !x, off ; \u5982\u679c x \u70ba 0\uff0c\u8df3\u8f49\u81f3 off\n\n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 3\u30018\u300115 \u6216 21\n mov y, x ; \u5c07 x \u8907\u88fd\u5230 y\n set x, 2 ; \u8a2d\u7f6e x \u70ba 3\uff08\u4e8c\u9032\u5236 11\uff09\n jmp x!=y, check_8 ; \u5982\u679c\u4e0d\u662f 3\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp off ; \u5982\u679c\u662f 3\uff0c\u95dc\u9589 LED\n\ncheck_8:\n set x, 8 ; \u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp x!=y, check_15 ; \u5982\u679c\u4e0d\u662f 8\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp off ; \u5982\u679c\u662f 8\uff0c\u95dc\u9589 LED\n\ncheck_15:\n set x, 15 ; \u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp x!=y, check_21 ; \u5982\u679c\u4e0d\u662f 15\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp off ; \u5982\u679c\u662f 15\uff0c\u95dc\u9589 LED\n\ncheck_21:\n set x, 21 ; \u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp x!=y, on ; \u5982\u679c\u4e0d\u662f 21\uff0c\u958b\u555f LED\n jmp off ; \u5982\u679c\u662f 21\uff0c\u95dc\u9589 LED\n\noff:\n nop side 0 ; \u95dc\u9589 LED\n jmp continue\n\non:\n nop side 1 ; \u958b\u555f LED\n\ncontinue:\n nop ; \u78ba\u4fdd\u6700\u5f8c\u6a19\u7c64\u5f8c\u6709\u6307\u4ee4\n.wrap\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u7a0b\u5f0f\u89e3\u6790",children:"\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:".side_set 1 opt"}),"\uff1a\u8a2d\u7f6e\u4e00\u500b\u53ef\u9078\u7684\u5074\u8a2d\u7f6e\u5f15\u8173\uff0c\u7528\u65bc\u63a7\u5236 LED\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"pull block"})," \u548c ",(0,l.jsx)(e.code,{children:"out x, 32"}),"\uff1a\u5f9e FIFO \u8b80\u53d6 32 \u4f4d\u6578\u64da\u5230 x \u5bc4\u5b58\u5668\u3002"]}),"\n",(0,l.jsx)(e.li,{children:"\u63a5\u4e0b\u4f86\u7684\u908f\u8f2f\u6aa2\u67e5\u8f38\u5165\u503c\u662f\u5426\u70ba 0\u30013\u30018\u300115 \u6216 21\uff0c\u5982\u679c\u662f\u5247\u95dc\u9589 LED\uff0c\u5426\u5247\u958b\u555f LED\u3002"}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"side 0"})," \u548c ",(0,l.jsx)(e.code,{children:"side 1"})," \u7528\u65bc\u63a7\u5236 LED \u7684\u958b\u95dc\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u9019\u500b\u7a0b\u5f0f\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u6b8a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a\u7576\u8f38\u5165\u503c\u70ba 0\u30013\u30018\u300115 \u6216 21 \u6642\u95dc\u9589 LED\uff0c\u5176\u4ed6\u503c\u5247\u958b\u555f LED\u3002"})}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u521d\u59cb\u5316\u51fd\u6578",children:"PIO \u521d\u59cb\u5316\u51fd\u6578"}),"\n",(0,l.jsx)(e.p,{children:"\u5728 PIO \u7a0b\u5f0f\u4e4b\u5f8c\uff0c\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b C \u51fd\u6578\u4f86\u521d\u59cb\u5316 PIO \u72c0\u614b\u6a5f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="hello.pio"',children:'% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {\n pio_sm_config c = led_controller_program_get_default_config(offset);\n \n sm_config_set_set_pins(&c, pin, 1);\n sm_config_set_sideset_pins(&c, pin);\n pio_gpio_init(pio, pin);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n sm_config_set_clkdiv(&c, 1);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n%}\n'})}),"\n",(0,l.jsx)(e.p,{children:"\u9019\u500b\u51fd\u6578\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\u7684\u914d\u7f6e\uff0c\u5305\u62ec\u8a2d\u7f6e\u5f15\u8173\u3001\u6642\u9418\u5206\u983b\u7b49\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",children:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe"}),"\n",(0,l.jsx)(e.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5f0f\u4e2d\u4f7f\u7528\u9019\u500b PIO \u7a0b\u5f0f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="main.c"',children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hello.pio.h"\n\nint main() {\n stdio_init_all();\n printf("LED Controller Test\\n");\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &led_controller_program);\n led_controller_program_init(pio, sm, offset, 25); // \u5047\u8a2d LED \u9023\u63a5\u5230 GPIO 25\n\n while (true) {\n for (int i = 1; i <= 25; i++) {\n if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {\n printf("LED off (%d)\\n", i);\n } else {\n printf("LED on (%d)\\n", i);\n }\n pio_sm_put_blocking(pio, sm, i);\n sleep_ms(1000); // \u7b49\u5f85 1 \u79d2\n }\n printf("\\nRestarting sequence...\\n\\n");\n sleep_ms(2000); // \u91cd\u65b0\u958b\u59cb\u524d\u7b49\u5f85 2 \u79d2\n }\n\n return 0;\n}\n'})}),"\n",(0,l.jsx)(e.h3,{id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",children:"\u4e3b\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u521d\u59cb\u5316\u6a19\u6e96\u8f38\u5165\u8f38\u51fa\u548c PIO\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c07 PIO \u7a0b\u5f0f\u52a0\u8f09\u5230 pio0 \u7684\u72c0\u614b\u6a5f 0 \u4e2d\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5728\u4e00\u500b\u7121\u9650\u5faa\u74b0\u4e2d\uff0c\u904d\u6b77 1 \u5230 25 \u7684\u6578\u5b57\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6578\u5b57\uff0c\u5c07\u5176\u767c\u9001\u5230 PIO \u72c0\u614b\u6a5f\uff0c\u4e26\u5370\u51fa LED \u7684\u9810\u671f\u72c0\u614b\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u6b21\u64cd\u4f5c\u5f8c\u7b49\u5f85 1 \u79d2\uff0c\u6bcf\u8f2a\u5faa\u74b0\u5f8c\u7b49\u5f85 2 \u79d2\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u7de8\u8b6f\u548c\u904b\u884c",children:"\u7de8\u8b6f\u548c\u904b\u884c"}),"\n",(0,l.jsxs)(e.p,{children:["\u8981\u7de8\u8b6f\u9019\u500b\u7a0b\u5f0f\uff0c\u60a8\u9700\u8981\u78ba\u4fdd\u60a8\u7684 ",(0,l.jsx)(e.code,{children:"CMakeLists.txt"})," \u6587\u4ef6\u6b63\u78ba\u8a2d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u793a\u4f8b\uff1a"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-cmake",metastring:'title="CMakeLists.txt"',children:"cmake_minimum_required(VERSION 3.13)\ninclude(pico_sdk_import.cmake)\nproject(led_controller C CXX ASM)\nset(CMAKE_C_STANDARD 11)\nset(CMAKE_CXX_STANDARD 17)\npico_sdk_init()\n\nadd_executable(led_controller\n main.c\n)\n\npico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)\n\ntarget_link_libraries(led_controller \n pico_stdlib \n hardware_pio\n)\n\npico_enable_stdio_usb(led_controller 1)\npico_enable_stdio_uart(led_controller 0)\n\npico_add_extra_outputs(led_controller)\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u7de8\u8b6f\u5b8c\u6210\u5f8c\uff0c\u5c07\u7a0b\u5f0f\u4e0a\u50b3\u5230\u60a8\u7684 Raspberry Pi Pico\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u6e2c\u8a66\u7d50\u679c",children:"\u6e2c\u8a66\u7d50\u679c"}),"\n",(0,l.jsx)(e.p,{children:"\u7576\u60a8\u904b\u884c\u9019\u500b\u7a0b\u5f0f\u6642\uff0c\u60a8\u61c9\u8a72\u6703\u5728\u4e32\u53e3\u7d42\u7aef\u770b\u5230\u985e\u4f3c\u4ee5\u4e0b\u7684\u8f38\u51fa\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"LED Controller Test\nLED on (1)\nLED on (2)\nLED off (3)\nLED on (4)\nLED on (5)\nLED on (6)\nLED on (7)\nLED off (8)\n...\nLED off (21)\nLED on (22)\nLED on (23)\nLED on (24)\nLED on (25)\n\nRestarting sequence...\n\nLED on (1)\nLED on (2)\nLED off (3)\n...\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u540c\u6642\uff0c\u60a8\u61c9\u8a72\u80fd\u89c0\u5bdf\u5230\u9023\u63a5\u5230 GPIO 25 \u7684 LED \u76f8\u61c9\u5730\u958b\u555f\u548c\u95dc\u9589\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",children:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u9019\u500b\u4f8b\u5b50\u4e2d\uff0c\u6211\u5011\u7684 PIO \u7a0b\u5f0f\u4f7f\u7528\u4e86 12 \u500b\u6307\u4ee4\u69fd\u3002RP2040 \u7684\u6bcf\u500b PIO \u5be6\u4f8b\u6709 32 \u500b\u6307\u4ee4\u69fd\uff0c\u56e0\u6b64\u6211\u5011\u9084\u6709 20 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u65bc\u5176\u4ed6\u76ee\u7684\u3002"}),"\n",(0,l.jsx)(e.admonition,{title:"\u512a\u5316\u8003\u616e",type:"tip",children:(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u5982\u679c\u9700\u8981\u5728\u540c\u4e00\u500b PIO \u4e2d\u904b\u884c\u591a\u500b\u7a0b\u5f0f\uff0c\u53ef\u4ee5\u8003\u616e\u6e1b\u5c11\u6bcf\u500b\u7a0b\u5f0f\u7684\u6307\u4ee4\u6578\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528 pio1 \u4f86\u904b\u884c\u984d\u5916\u7684\u7a0b\u5f0f\uff0c\u5b83\u6709\u5b8c\u6574\u7684 32 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u8003\u616e\u8b93\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u90e8\u5206\u6307\u4ee4\uff0c\u4ee5\u6700\u5927\u5316\u6307\u4ee4\u4f7f\u7528\u6548\u7387\u3002"}),"\n"]})}),"\n",(0,l.jsx)(e.p,{children:"\u60a8\u63d0\u51fa\u4e86\u4e00\u500b\u5f88\u597d\u7684\u89c0\u9ede\u3002\u6211\u6703\u70ba\u60a8\u6dfb\u52a0\u9019\u4e9b\u91cd\u8981\u7684\u77e5\u8b58\u9ede\uff0c\u8a73\u7d30\u89e3\u91cb PIO \u7684\u6574\u9ad4\u67b6\u69cb\u3001\u591a\u72c0\u614b\u6a5f\u4f7f\u7528\u4ee5\u53ca\u6307\u4ee4\u9650\u5236\u3002\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u6bb5\u843d\uff0c\u60a8\u53ef\u4ee5\u5c07\u5176\u63d2\u5165\u5230\u9069\u7576\u7684\u4f4d\u7f6e\uff1a"}),"\n",(0,l.jsx)(e.hr,{}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",children:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.h3,{id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",children:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(e.p,{children:"RP2040 \u64c1\u6709\u5169\u500b PIO \u5be6\u4f8b\uff08PIO0 \u548c PIO1\uff09\uff0c\u6bcf\u500b PIO \u5be6\u4f8b\u5305\u542b\u56db\u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f\u3002\u9019\u7a2e\u8a2d\u8a08\u63d0\u4f9b\u4e86\u6975\u5927\u7684\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u53ef\u4ee5\u540c\u6642\u904b\u884c\u6700\u591a\u56db\u500b\u7368\u7acb\u7684\u7a0b\u5e8f\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u72c0\u614b\u6a5f\u53ef\u4ee5\u7368\u7acb\u904b\u884c\uff0c\u4e5f\u53ef\u4ee5\u5354\u540c\u5de5\u4f5c\uff0c\u5be6\u73fe\u8907\u96dc\u7684\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u4f8b\u5982\uff0c\u5728 VGA \u4fe1\u865f\u751f\u6210\u4e2d\uff0c\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u80fd\u8ca0\u8cac\u6c34\u5e73\u540c\u6b65\uff0c\u53e6\u4e00\u500b\u8ca0\u8cac\u5782\u76f4\u540c\u6b65\uff0c\u800c\u7b2c\u4e09\u500b\u8655\u7406\u50cf\u7d20\u6578\u64da\u8f38\u51fa\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",children:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab"}),"\n",(0,l.jsx)(e.p,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u64c1\u6709 32 \u689d\u6307\u4ee4\u7684\u5171\u4eab\u5167\u5b58\u3002\u9019\u662f\u4e00\u500b\u95dc\u9375\u7684\u9650\u5236\u548c\u8a2d\u8a08\u8003\u616e\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6240\u6709\u56db\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u9019 32 \u689d\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b\u7a0b\u5e8f\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u6578\u91cf\u7684\u6307\u4ee4\uff0c\u53ea\u8981\u7e3d\u548c\u4e0d\u8d85\u904e 32\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u5168\u90e8 32 \u689d\u6307\u4ee4\uff0c\u6216\u8005\u591a\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u6578\u91cf\u7684\u6307\u4ee4\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"caution",children:(0,l.jsx)(e.p,{children:"\u7576\u8a2d\u8a08 PIO \u7a0b\u5e8f\u6642\uff0c\u5fc5\u9808\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u9019\u8981\u6c42\u958b\u767c\u8005\u5728\u529f\u80fd\u5be6\u73fe\u548c\u8cc7\u6e90\u4f7f\u7528\u4e4b\u9593\u53d6\u5f97\u5e73\u8861\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",children:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565"}),"\n",(0,l.jsx)(e.p,{children:"\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u512a\u5316\u7b56\u7565\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u6307\u4ee4\u91cd\u7528"}),"\uff1a\u8a2d\u8a08\u53ef\u4ee5\u88ab\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u7684\u6307\u4ee4\u5e8f\u5217\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u529f\u80fd\u5283\u5206"}),"\uff1a\u5c07\u8907\u96dc\u529f\u80fd\u5206\u89e3\u70ba\u591a\u500b\u7c21\u55ae\u7a0b\u5e8f\uff0c\u5206\u914d\u7d66\u4e0d\u540c\u7684\u72c0\u614b\u6a5f\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5be6\u4f8b\u8a2d\u8a08"}),"\uff1a\u5982\u679c\u4e00\u500b PIO \u5be6\u4f8b\u7684\u8cc7\u6e90\u4e0d\u8db3\uff0c\u8003\u616e\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u6211\u5011\u7684 LED \u63a7\u5236\u5668\u793a\u4f8b\u4e2d\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6211\u5011\u4f7f\u7528\u4e86 12 \u689d\u6307\u4ee4\uff0c\u4f54\u7528\u4e86 PIO \u5be6\u4f8b\u7d04 37.5% \u7684\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u9019\u610f\u5473\u8457\u6211\u5011\u9084\u6709\u8db3\u5920\u7684\u7a7a\u9593\u5728\u540c\u4e00 PIO \u5be6\u4f8b\u4e2d\u5be6\u73fe\u5176\u4ed6\u529f\u80fd\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f8b\u5982\uff0c\u6211\u5011\u53ef\u4ee5\u6dfb\u52a0\u53e6\u4e00\u500b\u7a0b\u5e8f\u4f86\u63a7\u5236\u4e0d\u540c\u7684 LED \u6a21\u5f0f\uff0c\u6216\u5be6\u73fe\u5176\u4ed6 I/O \u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-python",children:"\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - \u7576\u524d\u7a0b\u5e8f\u4f7f\u7528\u7684\u6307\u4ee4\u6578\n\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - 12 = 20 \u689d\u6307\u4ee4\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u64f4\u5c55\u6027\u8003\u616e",children:"\u64f4\u5c55\u6027\u8003\u616e"}),"\n",(0,l.jsx)(e.p,{children:"\u7406\u89e3 PIO \u67b6\u69cb\u548c\u8cc7\u6e90\u9650\u5236\u5f8c\uff0c\u6211\u5011\u53ef\u4ee5\u66f4\u597d\u5730\u898f\u5283\u8907\u96dc\u9805\u76ee\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u4e26\u884c\u4efb\u52d9"}),"\uff1a\u5229\u7528\u591a\u500b\u72c0\u614b\u6a5f\u540c\u6642\u57f7\u884c\u4e0d\u540c\u4efb\u52d9\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8cc7\u6e90\u5206\u914d"}),"\uff1a\u5728\u8a2d\u8a08\u521d\u671f\u5c31\u8003\u616e\u6307\u4ee4\u4f7f\u7528\uff0c\u5408\u7406\u5206\u914d\u8cc7\u6e90\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5354\u4f5c"}),"\uff1a\u5c0d\u65bc\u66f4\u8907\u96dc\u7684\u9805\u76ee\uff0c\u8003\u616e PIO0 \u548c PIO1 \u7684\u5354\u540c\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"tip",children:(0,l.jsx)(e.p,{children:"\u5728\u958b\u767c\u904e\u7a0b\u4e2d\uff0c\u5b9a\u671f\u6aa2\u67e5\u6307\u4ee4\u4f7f\u7528\u60c5\u6cc1\uff0c\u78ba\u4fdd\u4e0d\u6703\u8d85\u51fa 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u5982\u679c\u63a5\u8fd1\u9650\u5236\uff0c\u8003\u616e\u91cd\u69cb\u4ee3\u78bc\u6216\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"})})]})}function p(n={}){const{wrapper:e}={...(0,o.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>s,x:()=>t});var l=i(6540);const o={},r=l.createContext(o);function s(n){const e=l.useContext(r);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:s(n.components),l.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e90a9b3.1c94554a.js b/assets/js/5e90a9b3.1c94554a.js new file mode 100644 index 000000000..47a0f951a --- /dev/null +++ b/assets/js/5e90a9b3.1c94554a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8025],{7134:a=>{a.exports=JSON.parse('{"tag":{"label":"Hola","permalink":"/blog/tags/hola","description":"Hola tag description","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/hola","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.794757cd.js b/assets/js/5e95c892.794757cd.js new file mode 100644 index 000000000..cbedc4ab1 --- /dev/null +++ b/assets/js/5e95c892.794757cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9647],{7121:(e,r,c)=>{c.r(r),c.d(r,{default:()=>l});c(6540);var s=c(4164),a=c(1213),d=c(7559),n=c(2831),t=c(5733),u=c(4848);function l(e){return(0,u.jsx)(a.e3,{className:(0,s.A)(d.G.wrapper.docsPages),children:(0,u.jsx)(t.A,{children:(0,n.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5eeb21e4.13bb8d9a.js b/assets/js/5eeb21e4.13bb8d9a.js new file mode 100644 index 000000000..dcfb92bdf --- /dev/null +++ b/assets/js/5eeb21e4.13bb8d9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4816],{6658:e=>{e.exports=JSON.parse('{"tag":{"label":"serial communication","permalink":"/tags/serial-communication","allTagsPath":"/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/60875e34.7fde8b26.js b/assets/js/60875e34.7fde8b26.js new file mode 100644 index 000000000..3db396a2d --- /dev/null +++ b/assets/js/60875e34.7fde8b26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9661],{7315:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var n=o(4848),r=o(8453);const i={sidebar_position:1},a="Tutorial",s={id:"tutorial",title:"Tutorial",description:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.",source:"@site/docs/tutorial.md",sourceDirName:".",slug:"/tutorial",permalink:"/tutorial",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial.md",tags:[],version:"current",lastUpdatedAt:1720597722e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}},c={},d=[];function l(e){const t={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"tutorial",children:"Tutorial"}),"\n",(0,n.jsx)(t.p,{children:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial."}),"\n",(0,n.jsx)(t.p,{children:'Desde aqu\xed, puedes enlazar a las p\xe1ginas de art\xedculos espec\xedficos, como los contenidos bajo "Micro-controladores".'})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(6540);const r={},i=n.createContext(r);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/60f48b9d.c7ff861a.js b/assets/js/60f48b9d.c7ff861a.js new file mode 100644 index 000000000..158d55e70 --- /dev/null +++ b/assets/js/60f48b9d.c7ff861a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1850],{4277:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>t,contentTitle:()=>_,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var c=i(4848),l=i(8453);const s={slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},_=void 0,d={id:"micro-controladores/RP2040/rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",permalink:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"PWM",permalink:"/tags/pwm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"Embedded Systems",permalink:"/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},sidebar:"tutorialSidebar",previous:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"},next:{title:"Timer and Alarm Usage in RP2040",permalink:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}},t={},r=[{value:"PWM \u57fa\u790e\u77e5\u8b58",id:"pwm-\u57fa\u790e\u77e5\u8b58",level:2},{value:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",level:2},{value:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09",id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",level:3},{value:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09",id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",level:3},{value:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09",id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",level:3},{value:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4",id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",level:3},{value:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f",id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6",id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",level:2},{value:"\u55ae\u7368\u4f7f\u7528 PWM",id:"\u55ae\u7368\u4f7f\u7528-pwm",level:2},{value:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",level:3},{value:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",level:3},{value:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",level:4},{value:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",level:5},{value:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM",id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",level:5},{value:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053",id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",level:5},{value:"\u914d\u7f6e PWM \u5207\u7247",id:"\u914d\u7f6e-pwm-\u5207\u7247",level:5},{value:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u751f\u6210\u6b65\u9032\u8108\u885d",id:"\u751f\u6210\u6b65\u9032\u8108\u885d",level:5},{value:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",level:5},{value:"\u5176\u4ed6 PWM \u914d\u7f6e",id:"\u5176\u4ed6-pwm-\u914d\u7f6e",level:5},{value:"\u63a7\u5236\u4f3a\u670d\u6a5f",id:"\u63a7\u5236\u4f3a\u670d\u6a5f",level:3},{value:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372",id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",level:3},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function o(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...n.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u57fa\u790e\u77e5\u8b58",children:"PWM \u57fa\u790e\u77e5\u8b58"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u662f\u4e00\u7a2e\u5e38\u7528\u7684\u6578\u4f4d\u4fe1\u865f\u8655\u7406\u6280\u8853,\u901a\u904e\u6539\u8b8a\u8108\u885d\u7684\u5bec\u5ea6\u4f86\u8abf\u88fd\u4fe1\u865f\u7684\u5e73\u5747\u503c\u3002\u5728 RP2040 \u4e2d,PWM \u529f\u80fd\u7531\u5c08\u9580\u7684\u786c\u9ad4\u6a21\u7d44\u63d0\u4f9b,\u53ef\u4ee5\u751f\u6210 PWM \u4fe1\u865f\u4e26\u63a7\u5236\u5176\u53c3\u6578,\u5982\u983b\u7387\u3001\u4f54\u7a7a\u6bd4\u7b49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u4fe1\u865f\u7531\u4e00\u7cfb\u5217\u8108\u885d\u7d44\u6210,\u6bcf\u500b\u8108\u885d\u7684\u5bec\u5ea6\u6c7a\u5b9a\u4e86\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u4f54\u7a7a\u6bd4\u662f\u6307\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6642\u9593\u8207\u6574\u500b\u9031\u671f\u7684\u6bd4\u503c,\u901a\u5e38\u4ee5\u767e\u5206\u6bd4\u8868\u793a\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u5be6\u73fe\u5c0d\u9023\u63a5\u8a2d\u5099\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"RP2040 \u7684 PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u500b PWM \u901a\u9053,\u6bcf\u500b\u901a\u9053\u90fd\u53ef\u4ee5\u7368\u7acb\u914d\u7f6e\u548c\u63a7\u5236\u3002\u9019\u4f7f\u5f97\u6211\u5011\u53ef\u4ee5\u540c\u6642\u8f38\u51fa\u591a\u500b PWM \u4fe1\u865f,\u4e26\u5c0d\u5b83\u5011\u9032\u884c\u7cbe\u78ba\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u958b\u982d\u6bb5\u843d,\u8a73\u7d30\u4ecb\u7d39\u4e86 PWM \u7684\u5404\u7a2e\u914d\u7f6e\u6a21\u5f0f\u3001\u4f5c\u7528\u4ee5\u53ca\u5982\u4f55\u8a2d\u7f6e:"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",children:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u7a2e\u914d\u7f6e\u6a21\u5f0f,\u53ef\u4ee5\u6839\u64da\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u9032\u884c\u8a2d\u7f6e\u3002\u6bcf\u7a2e\u6a21\u5f0f\u90fd\u6709\u5176\u7279\u5b9a\u7684\u4f5c\u7528\u548c\u914d\u7f6e\u65b9\u6cd5\u3002\u4e0b\u9762\u6211\u5011\u4f86\u8a73\u7d30\u4ecb\u7d39\u4e00\u4e0b\u9019\u4e9b\u6a21\u5f0f:"}),"\n",(0,c.jsx)(e.h3,{id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",children:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09"}),"\n",(0,c.jsxs)(e.p,{children:["\u81ea\u7531\u904b\u884c\u6a21\u5f0f\u662f PWM \u7684\u9ed8\u8a8d\u6a21\u5f0f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u4e0d\u65b7\u5730\u5f9e 0 \u8a08\u6578\u5230\u8a2d\u5b9a\u7684\u6700\u5927\u503c\uff08\u901a\u904e ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e\uff09,\u7136\u5f8c\u518d\u5f9e 0 \u958b\u59cb\u91cd\u8907\u8a08\u6578\u3002\u7576\u8a08\u6578\u5668\u7684\u503c\u8207\u6bd4\u8f03\u5668\u7684\u503c\u76f8\u7b49\u6642,PWM \u8f38\u51fa\u6703\u6839\u64da\u8a2d\u7f6e\u7684\u96fb\u5e73\uff08\u9ad8\u96fb\u5e73\u6216\u4f4e\u96fb\u5e73\uff09\u9032\u884c\u5207\u63db\u3002"]}),"\n",(0,c.jsx)(e.p,{children:"\u9002\u7528\u573a\u666f\uff1a\u7528\u65bc\u666e\u901a\u7684PWM\u8f38\u51fa\uff0c\u4f8b\u5982LED\u4eae\u5ea6\u8abf\u7bc0\u3001\u96fb\u6a5f\u901f\u5ea6\u63a7\u5236\u7b49\uff0c\u9700\u8981\u5b9a\u671f\u7684\u5468\u671f\u6027PWM\u4fe1\u53f7\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u81ea\u7531\u904b\u884c\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u6700\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",children:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u8a08\u6578\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u6839\u64da\u5916\u90e8\u8f38\u5165\u7684\u8108\u885d\u4fe1\u865f\u9032\u884c\u8a08\u6578\u3002\u9019\u7a2e\u6a21\u5f0f\u901a\u5e38\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\u3002\n\u9069\u7528\u5834\u666f\uff1a\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u8108\u885d\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\uff0c\u901a\u5e38\u8207\u5916\u90e8\u8f38\u5165\u4fe1\u865f\u540c\u6b65\u8a08\u6578\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u8a08\u6578\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\npwm_init(slice_num, &config, false);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv_mode"})," \u51fd\u6578\u5c07 PWM \u7684\u6642\u9418\u5206\u983b\u6a21\u5f0f\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_RISING"}),",\u8868\u793a\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u9032\u884c\u8a08\u6578\u3002\u7136\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u662f\u4e00\u7a2e\u7279\u6b8a\u7684 PWM \u6a21\u5f0f,\u5b83\u53ef\u4ee5\u7522\u751f\u5c0d\u7a31\u7684 PWM \u4fe1\u865f,\u4e26\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\n\u9002\u7528\u573a\u666f\uff1a\u7522\u751f\u5c0d\u7a31\u7684PWM\u4fe1\u53f7\uff0c\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\uff0c\u9069\u5408\u5c0dPWM\u4fe1\u865f\u8cea\u91cf\u8981\u6c42\u8f03\u9ad8\u7684\u61c9\u7528\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_phase_correct(&config, true);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"})," \u51fd\u6578\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",children:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u7121\u8ad6\u4f7f\u7528\u54ea\u7a2e PWM \u6a21\u5f0f,\u6211\u5011\u90fd\u9700\u8981\u8a2d\u7f6e PWM \u4fe1\u865f\u7684\u983b\u7387\u548c\u4f54\u7a7a\u6bd4\u3002PWM \u983b\u7387\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u7684\u9031\u671f,\u800c\u4f54\u7a7a\u6bd4\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u6bd4\u4f8b\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u983b\u7387,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6642\u9418\u5206\u983b\u5668\u548c\u5305\u88f9\u503c\u3002\u6642\u9418\u5206\u983b\u5668\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u8a08\u6578\u901f\u5ea6,\u800c\u5305\u88f9\u503c\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u3002PWM \u983b\u7387\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = \u7cfb\u7d71\u6642\u9418\u983b\u7387 / (\u6642\u9418\u5206\u983b\u5668 * (\u5305\u88f9\u503c + 1))\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u7cfb\u7d71\u6642\u9418\u983b\u7387\u70ba 125 MHz,\u6642\u9418\u5206\u983b\u5668\u8a2d\u7f6e\u70ba 1.0\uff08\u4e0d\u5206\u983b\uff09,\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u5247 PWM \u983b\u7387\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u4f54\u7a7a\u6bd4,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6bd4\u8f03\u5668\u503c\u3002\u6bd4\u8f03\u5668\u503c\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u3002PWM \u4f54\u7a7a\u6bd4\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = \u6bd4\u8f03\u5668\u503c / (\u5305\u88f9\u503c + 1)\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u6bd4\u8f03\u5668\u503c\u8a2d\u7f6e\u70ba 624,\u5247 PWM \u4f54\u7a7a\u6bd4\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = 624 / (1249 + 1) = 0.4992 \u2248 50%\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u7d9c\u4e0a\u6240\u8ff0,\u901a\u904e\u5408\u7406\u914d\u7f6e PWM \u7684\u6a21\u5f0f\u3001\u983b\u7387\u548c\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u7522\u751f\u5404\u7a2e\u4e0d\u540c\u7279\u6027\u7684 PWM \u4fe1\u865f,\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,\u90fd\u53ef\u4ee5\u901a\u904e\u9748\u6d3b\u914d\u7f6e PWM \u4f86\u5be6\u73fe\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",children:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f"}),"\n",(0,c.jsx)(e.p,{children:"\u9996\u5148,\u8b93\u6211\u5011\u4f86\u770b\u4e00\u500b\u7c21\u55ae\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u5728 RP2040 \u4e0a\u8f38\u51fa PWM \u4fe1\u865f:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nint main() {\n // \u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM\n gpio_set_function(0, GPIO_FUNC_PWM);\n gpio_set_function(1, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(0);\n\n // \u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0\uff080 \u5230 3\uff09\n pwm_set_wrap(slice_num, 3);\n\n // \u8a2d\u7f6e\u901a\u9053 A \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e00\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);\n\n // \u8a2d\u7f6e\u901a\u9053 B \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u521d\u59cb\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e09\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);\n\n // \u555f\u52d5 PWM\n pwm_set_enabled(slice_num, true);\n}\n'})}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM \u529f\u80fd,\u4e26\u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\u3002\u7136\u5f8c,\u6211\u5011\u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0,\u4e26\u914d\u7f6e\u901a\u9053 A \u548c\u901a\u9053 B \u7684\u8f38\u51fa\u96fb\u5e73\u3002\u6700\u5f8c,\u6211\u5011\u555f\u52d5 PWM,\u958b\u59cb\u8f38\u51fa PWM \u4fe1\u865f\u3002"})}),"\n",(0,c.jsxs)(e.p,{children:["\u503c\u5f97\u6ce8\u610f\u7684\u662f,\u6211\u5011\u4e5f\u53ef\u4ee5\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_gpio_level(gpio, x)"})," \u51fd\u6578,\u5b83\u6703\u81ea\u52d5\u67e5\u627e\u7d66\u5b9a GPIO \u7684\u6b63\u78ba\u5207\u7247\u548c\u901a\u9053,\u4e26\u8a2d\u7f6e\u8f38\u51fa\u96fb\u5e73\u3002"]}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",children:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u8b93\u6211\u5011\u770b\u4e00\u500b\u66f4\u5be6\u7528\u7684\u4f8b\u5b50,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include <stdio.h>\n#include "pico/time.h"\n#include "hardware/irq.h"\n#include "hardware/pwm.h"\n\n#ifdef PICO_DEFAULT_LED_PIN\nvoid on_pwm_wrap() {\n static int fade = 0;\n static bool going_up = true;\n\n // \u6e05\u9664\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));\n\n if (going_up) {\n ++fade;\n if (fade > 255) {\n fade = 255;\n going_up = false;\n }\n } else {\n --fade;\n if (fade < 0) {\n fade = 0;\n going_up = true;\n }\n }\n\n // \u5c07 fade \u503c\u5e73\u65b9,\u4f7f LED \u7684\u4eae\u5ea6\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027\n // \u6ce8\u610f,\u9019\u500b\u7bc4\u570d\u8207 wrap \u503c\u5339\u914d\n pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);\n}\n#endif\n\nint main() {\n#ifndef PICO_DEFAULT_LED_PIN\n#warning pwm/led_fade example requires a board with a regular LED\n#else\n // \u544a\u8a34 LED \u5f15\u8173,PWM \u8ca0\u8cac\u63a7\u5236\u5176\u503c\n gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);\n\n // \u5c07\u6211\u5011\u7684\u5207\u7247\u7684 IRQ \u8f38\u51fa\u906e\u7f69\u5230 PWM \u584a\u7684\u55ae\u500b\u4e2d\u65b7\u7dda,\n // \u4e26\u8a3b\u518a\u6211\u5011\u7684\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\n pwm_clear_irq(slice_num);\n pwm_set_irq_enabled(slice_num, true);\n irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);\n irq_set_enabled(PWM_IRQ_WRAP, true);\n\n // \u70ba\u5207\u7247\u914d\u7f6e\u7372\u53d6\u4e00\u4e9b\u5408\u7406\u7684\u9810\u8a2d\u503c\n // \u9810\u8a2d\u60c5\u6cc1\u4e0b,\u8a08\u6578\u5668\u53ef\u4ee5\u5728\u5176\u6700\u5927\u7bc4\u570d\uff080 \u5230 2^16-1\uff09\u5167\u5305\u88f9\n pwm_config config = pwm_get_default_config();\n\n // \u8a2d\u7f6e\u5206\u983b\u5668,\u5c07\u8a08\u6578\u5668\u6642\u9418\u6e1b\u5c11\u5230 sysclock/4\n pwm_config_set_clkdiv(&config, 4.f);\n\n // \u5c07\u914d\u7f6e\u8f09\u5165\u5230\u6211\u5011\u7684 PWM \u5207\u7247\u4e2d,\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n pwm_init(slice_num, &config, true);\n\n // \u5728\u9019\u4e00\u9ede\u4e4b\u5f8c\u7684\u6240\u6709\u64cd\u4f5c\u90fd\u5728 PWM \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d\u9032\u884c,\n // \u6240\u4ee5\u6211\u5011\u53ef\u4ee5\u5728\u4e3b\u8ff4\u5708\u4e2d\u4ec0\u9ebc\u4e5f\u4e0d\u505a\n while (1)\n tight_loop_contents();\n#endif\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6,\u5be6\u73fe\u6f38\u8b8a\u6548\u679c\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u5c07 LED \u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\u3002"}),"\n",(0,c.jsxs)(e.li,{children:["\u8a2d\u7f6e PWM \u4e2d\u65b7,\u8a3b\u518a\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u548c\u8a08\u6578\u5668\u7bc4\u570d\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u4e26\u5728\u4e3b\u8ff4\u5708\u4e2d\u7b49\u5f85\u4e2d\u65b7\u89f8\u767c\u3002"}),"\n"]}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"})," \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d,\u6211\u5011\u901a\u904e\u6539\u8b8a ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u4f86\u63a7\u5236 LED \u7684\u4eae\u5ea6\u3002\u6bcf\u6b21\u4e2d\u65b7\u89f8\u767c\u6642,\u6211\u5011\u6839\u64da ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u7684\u8b8a\u5316\u65b9\u5411\uff08\u589e\u52a0\u6216\u6e1b\u5c11\uff09\u4f86\u66f4\u65b0 LED \u7684\u4eae\u5ea6\u3002\u70ba\u4e86\u4f7f\u4eae\u5ea6\u8b8a\u5316\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027,\u6211\u5011\u5c07 ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u5e73\u65b9\u5f8c\u518d\u8a2d\u7f6e\u7d66 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u4f7f\u7528\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u53ef\u4ee5\u5728\u4e0d\u5f71\u97ff\u4e3b\u7a0b\u5e8f\u57f7\u884c\u7684\u60c5\u6cc1\u4e0b\u5be6\u73fe LED \u4eae\u5ea6\u7684\u5e73\u6ed1\u8b8a\u5316\u3002\u9019\u7a2e\u65b9\u5f0f\u975e\u5e38\u9069\u5408\u9700\u8981\u6301\u7e8c\u66f4\u65b0\u8f38\u51fa\u7684\u5834\u666f\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",children:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u6700\u5f8c,\u8b93\u6211\u5011\u770b\u4e00\u500b\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint OUTPUT_PIN = 2;\nconst uint MEASURE_PIN = 5;\n\nfloat measure_duty_cycle(uint gpio) {\n // \u53ea\u6709 PWM B \u5f15\u8173\u53ef\u4ee5\u7528\u4f5c\u8f38\u5165\n assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);\n\n uint slice_num = pwm_gpio_to_slice_num(gpio);\n\n // \u6bcf 100 \u500b\u5faa\u74b0,PWM B \u8f38\u5165\u70ba\u9ad8\u96fb\u5e73\u6642\u8a08\u6578\u4e00\u6b21\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);\n pwm_config_set_clkdiv(&cfg, 100);\n pwm_init(slice_num, &cfg, false);\n\n gpio_set_function(gpio, GPIO_FUNC_PWM);\n pwm_set_enabled(slice_num, true);\n sleep_ms(10);\n pwm_set_enabled(slice_num, false);\n\n float counting_rate = clock_get_hz(clk_sys) / 100;\n float max_possible_count = counting_rate * 0.01;\n\n return pwm_get_counter(slice_num) / max_possible_count;\n}\n\nconst float test_duty_cycles[] = {\n 0.f,\n 0.1f,\n 0.5f,\n 0.9f,\n 1.f\n};\n\nint main() {\n stdio_init_all();\n printf("\\nPWM duty cycle measurement example\\n");\n\n // \u914d\u7f6e PWM \u5207\u7247\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n const uint count_top = 1000;\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_wrap(&cfg, count_top);\n pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);\n\n // \u6ce8\u610f,\u6211\u5011\u9084\u6c92\u6709\u89f8\u78b0\u53e6\u4e00\u500b\u5f15\u8173 -- PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\n // \u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\n // \u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!\n gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);\n\n // \u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u9a45\u52d5\u8a72\u96fb\u5e73,\n // \u7136\u5f8c\u4f7f\u7528\u53e6\u4e00\u500b\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002\u9019\u5169\u500b\u503c\u61c9\u8a72\u975e\u5e38\u63a5\u8fd1!\n for (int i = 0; i < count_of(test_duty_cycles); ++i) {\n float output_duty_cycle = test_duty_cycles[i];\n pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));\n\n float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);\n printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\\n",\n output_duty_cycle * 100.f, measured_duty_cycle * 100.f);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u6f14\u793a\u4e86\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsxs)(e.li,{children:["\u5b9a\u7fa9\u8f38\u51fa\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"OUTPUT_PIN"})," \u548c\u6e2c\u91cf\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"MEASURE_PIN"}),"\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5be6\u73fe ",(0,c.jsx)(e.code,{children:"measure_duty_cycle()"})," \u51fd\u6578,\u7528\u65bc\u6e2c\u91cf\u7d66\u5b9a GPIO \u5f15\u8173\u4e0a\u7684 PWM \u4fe1\u865f\u4f54\u7a7a\u6bd4\u3002","\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:["\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u6a21\u5f0f\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_HIGH"}),",\u5373\u6bcf 100 \u500b\u5faa\u74b0\u8a08\u6578\u4e00\u6b21\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u7b49\u5f85\u4e00\u6bb5\u6642\u9593,\u7136\u5f8c\u505c\u6b62 PWM\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a08\u7b97\u6700\u5927\u53ef\u80fd\u8a08\u6578\u503c,\u4e26\u6839\u64da\u5be6\u969b\u8a08\u6578\u503c\u8a08\u7b97\u4f54\u7a7a\u6bd4\u3002"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main()"})," \u51fd\u6578\u4e2d,\u914d\u7f6e\u8f38\u51fa\u5f15\u8173\u7684 PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba ",(0,c.jsx)(e.code,{children:"count_top"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u8a2d\u7f6e\u76f8\u61c9\u7684\u96fb\u5e73,\u7136\u5f8c\u4f7f\u7528\u6e2c\u91cf\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5c07\u8f38\u51fa\u4f54\u7a7a\u6bd4\u548c\u6e2c\u91cf\u4f54\u7a7a\u6bd4\u6253\u5370\u51fa\u4f86,\u6aa2\u67e5\u5b83\u5011\u662f\u5426\u63a5\u8fd1\u3002"}),"\n"]}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u5728\u5c07\u5169\u500b\u5f15\u8173\u9023\u63a5\u5728\u4e00\u8d77\u4e4b\u524d,\u9700\u8981\u6ce8\u610f PWM \u5f15\u8173\u7684\u9ed8\u8a8d\u72c0\u614b\u3002PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!"})}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u9019\u500b\u793a\u4f8b,\u6211\u5011\u53ef\u4ee5\u770b\u5230\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u7cbe\u78ba\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u9019\u5728\u9700\u8981\u5c0d PWM \u4fe1\u865f\u9032\u884c\u5206\u6790\u548c\u63a7\u5236\u7684\u5834\u666f\u4e2d\u975e\u5e38\u6709\u7528\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u55ae\u7368\u4f7f\u7528-pwm",children:"\u55ae\u7368\u4f7f\u7528 PWM"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u793a\u4f8b\u4e2d\u7684\u7528\u6cd5,\u6211\u5011\u9084\u53ef\u4ee5\u55ae\u7368\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u5404\u7a2e\u8a2d\u5099,\u5982\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u3001\u4f3a\u670d\u6a5f\u7b49\u3002\u4e0b\u9762\u6211\u5011\u5c07\u8a73\u7d30\u4ecb\u7d39\u5982\u4f55\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u9019\u4e9b\u8a2d\u5099,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",children:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f7f\u7528 PWM \u53ef\u4ee5\u65b9\u4fbf\u5730\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u5230\u96fb\u6a5f\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u63a7\u5236\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint MOTOR_PIN = 2;\n\nint main() {\n // \u5c07\u96fb\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);\n uint channel = pwm_gpio_to_channel(MOTOR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u4f54\u7a7a\u6bd4,\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\n pwm_set_chan_level(slice_num, channel, 32768); // 50% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 16384); // 25% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 49152); // 75% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u96fb\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u7136\u5f8c,\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 65535,\u4ee5\u7372\u5f97\u66f4\u9ad8\u7684\u89e3\u6790\u5ea6\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u4f54\u7a7a\u6bd4\u4f86\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\u3002\u4f54\u7a7a\u6bd4\u7684\u53d6\u503c\u7bc4\u570d\u70ba 0 \u5230 65535,\u5206\u5225\u5c0d\u61c9 0% \u5230 100% \u7684\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u6839\u64da\u96fb\u6a5f\u7684\u898f\u683c\u548c\u96fb\u6e90\u96fb\u58d3,\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u5b89\u5168\u5730\u9a45\u52d5\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u7528\u4f86\u63a7\u5236 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u5f9e\u800c\u8abf\u7bc0\u96fb\u6a5f\u8f49\u901f\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",children:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u7cbe\u5bc6\u5b9a\u4f4d\u8a2d\u5099,\u53ef\u4ee5\u901a\u904e\u63a7\u5236\u8108\u885d\u4fe1\u865f\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u89d2\u5ea6\u63a7\u5236\u3002\u4f7f\u7528 PWM,\u6211\u5011\u53ef\u4ee5\u751f\u6210\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u6240\u9700\u7684\u8108\u885d\u4fe1\u865f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n\nint main() {\n // \u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\n gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\n uint channel_step = pwm_gpio_to_channel(STEP_PIN);\n uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\n uint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num_step, &config, true);\n pwm_init(slice_num_dir, &config, true);\n\n // \u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n\n while (1) {\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n\n // \u6539\u8b8a\u65b9\u5411\u70ba\u53cd\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528\u5169\u500b PWM \u901a\u9053\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u4e00\u500b\u901a\u9053\u7528\u65bc\u751f\u6210\u6b65\u9032\u8108\u885d,\u53e6\u4e00\u500b\u901a\u9053\u7528\u65bc\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65b9\u5411\u3002\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u8108\u885d\u7684\u4f54\u7a7a\u6bd4\u548c\u983b\u7387\u4f86\u751f\u6210\u6240\u9700\u7684\u6b65\u9032\u8108\u885d,\u4e26\u901a\u904e\u6539\u8b8a\u65b9\u5411\u901a\u9053\u7684\u96fb\u5e73\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65cb\u8f49\u65b9\u5411\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u9ad8\u7684\u96fb\u6d41\u9a45\u52d5,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u4f5c\u70ba\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u7528\u65bc\u63a7\u5236\u6b65\u9032\u8108\u885d\u548c\u65b9\u5411\u3002"})}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u6211\u6703\u6839\u64da\u60a8\u7684\u8981\u6c42,\u9032\u4e00\u6b65\u512a\u5316\u9019\u90e8\u5206\u5167\u5bb9,\u4e26\u5584\u7528 Markdown \u548c Docusaurus \u7684\u7279\u6027,\u4f7f\u76ee\u9304\u66f4\u52a0\u6e05\u6670\u3002\u4ee5\u4e0b\u662f\u512a\u5316\u5f8c\u7684\u5167\u5bb9:"}),"\n",(0,c.jsx)(e.h4,{id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",children:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc"}),"\n",(0,c.jsx)(e.p,{children:"\u8b93\u6211\u5011\u4f86\u8a73\u7d30\u8b1b\u89e3\u4e0a\u8ff0\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u7a0b\u5f0f\u78bc,\u4e26\u89e3\u91cb\u5176\u4e2d\u6d89\u53ca\u7684\u53c3\u6578\u548c\u8a2d\u7f6e\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",children:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"const uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u9996\u5148,\u6211\u5011\u5b9a\u7fa9\u4e86\u5169\u500b\u5e38\u91cf ",(0,c.jsx)(e.code,{children:"STEP_PIN"})," \u548c ",(0,c.jsx)(e.code,{children:"DIR_PIN"}),",\u5206\u5225\u8868\u793a\u9023\u63a5\u6b65\u9032\u96fb\u6a5f\u7684\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u3002\u9019\u88e1\u6211\u5011\u5c07\u5b83\u5011\u8a2d\u7f6e\u70ba GPIO2 \u548c GPIO3\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",children:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\ngpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"gpio_set_function"})," \u51fd\u6578\u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u9019\u6a23\u6211\u5011\u5c31\u53ef\u4ee5\u901a\u904e PWM \u4f86\u63a7\u5236\u9019\u5169\u500b\u5f15\u8173\u7684\u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",children:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\nuint channel_step = pwm_gpio_to_channel(STEP_PIN);\nuint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\nuint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_slice_num"})," \u548c ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_channel"})," \u51fd\u6578\u7372\u53d6\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5c0d\u61c9\u7684 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\u3002\u6bcf\u500b PWM \u5207\u7247\u53ef\u4ee5\u63a7\u5236\u5169\u500b\u901a\u9053,\u901a\u5e38\u6a19\u8a18\u70ba A \u548c B\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u914d\u7f6e-pwm-\u5207\u7247",children:"\u914d\u7f6e PWM \u5207\u7247"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num_step, &config, true);\npwm_init(slice_num_dir, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u4e26\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86 PWM \u7684\u89e3\u6790\u5ea6,\u8a2d\u7f6e\u70ba 65535 \u53ef\u4ee5\u63d0\u4f9b\u8f03\u9ad8\u7684\u89e3\u6790\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u8457,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5728\u7684 PWM \u5207\u7247,\u4e26\u5c07 ",(0,c.jsx)(e.code,{children:"config"})," \u61c9\u7528\u5230\u9019\u4e9b\u5207\u7247\u4e0a\u3002\u6700\u5f8c\u4e00\u500b\u53c3\u6578\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"true"}),",\u8868\u793a\u7acb\u5373\u555f\u7528 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\u6642,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0\u3002\u9019\u901a\u5e38\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u6b63\u5411\u65cb\u8f49\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u751f\u6210\u6b65\u9032\u8108\u885d",children:"\u751f\u6210\u6b65\u9032\u8108\u885d"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n}\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e3b\u5faa\u74b0\u4e2d,\u6211\u5011\u9996\u5148\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d\u3002\u6bcf\u500b\u8108\u885d\u7531\u4e00\u500b\u9ad8\u96fb\u5e73\u548c\u4e00\u500b\u4f4e\u96fb\u5e73\u7d44\u6210,\u9ad8\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2,\u4f4e\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2\u3002\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba 32768\uff0850% \u4f54\u7a7a\u6bd4\uff09\u4f86\u751f\u6210\u9ad8\u96fb\u5e73,\u7136\u5f8c\u5ef6\u9072 500 \u5fae\u79d2\u3002\u63a5\u8457,\u6211\u5011\u5c07\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0 \u4f86\u751f\u6210\u4f4e\u96fb\u5e73,\u518d\u5ef6\u9072 500 \u5fae\u79d2\u3002\u9019\u6a23\u5c31\u751f\u6210\u4e86\u4e00\u500b\u5b8c\u6574\u7684\u6b65\u9032\u8108\u885d\u3002"]}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u751f\u6210\u6b65\u9032\u8108\u885d\u7684\u904e\u7a0b\u53ef\u4ee5\u5206\u70ba\u4ee5\u4e0b\u5e7e\u500b\u6b65\u9a5f:"}),(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u9ad8\u96fb\u5e73\uff0850% \u4f54\u7a7a\u6bd4\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u4f4e\u96fb\u5e73\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u91cd\u8907\u6b65\u9a5f 1-4,\u76f4\u5230\u751f\u6210\u8db3\u5920\u6578\u91cf\u7684\u6b65\u9032\u8108\u885d\u3002"}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u751f\u6210\u5b8c 200 \u500b\u6b65\u9032\u8108\u885d\u5f8c,\u6211\u5011\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d,\u4f46\u9019\u6b21\u6b65\u9032\u96fb\u6a5f\u5c07\u5411\u76f8\u53cd\u65b9\u5411\u65cb\u8f49\u3002\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u91cd\u8907\u6574\u500b\u904e\u7a0b\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",children:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578"}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u9019\u6bb5\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578\u7684\u542b\u7fa9\u5982\u4e0b:"}),(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"32768"}),": \u8868\u793a 50% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u56e0\u70ba\u6211\u5011\u5c07 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u8a2d\u7f6e\u70ba 65535,\u6240\u4ee5 32768 \u5927\u7d04\u662f\u6700\u5927\u503c\u7684\u4e00\u534a,\u5c0d\u61c9 50% \u7684\u4f54\u7a7a\u6bd4\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"500"}),": \u8868\u793a\u6b65\u9032\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u548c\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593,\u55ae\u4f4d\u70ba\u5fae\u79d2\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u964d\u4f4e\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u63d0\u9ad8\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"200"}),": \u8868\u793a\u751f\u6210\u7684\u6b65\u9032\u8108\u885d\u6578\u91cf\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u589e\u52a0\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u6e1b\u5c0f\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"65535"}),": \u8868\u793a PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c,\u4e5f\u8868\u793a 100% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u7576\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535 \u6642,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"]}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u5176\u4ed6-pwm-\u914d\u7f6e",children:"\u5176\u4ed6 PWM \u914d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u53c3\u6578,\u6211\u5011\u9084\u53ef\u4ee5\u8a2d\u7f6e\u5176\u4ed6\u7684 PWM \u914d\u7f6e,\u4f8b\u5982:"}),"\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv"}),": \u8a2d\u7f6e PWM \u6642\u9418\u5206\u983b\u5668,\u53ef\u4ee5\u6539\u8b8a PWM \u7684\u983b\u7387\u3002\u589e\u5927\u5206\u983b\u503c\u6703\u964d\u4f4e PWM \u983b\u7387,\u6e1b\u5c0f\u5206\u983b\u503c\u6703\u63d0\u9ad8 PWM \u983b\u7387\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"}),": \u8a2d\u7f6e\u662f\u5426\u4f7f\u7528\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u3002\u5728\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\u9019\u53ef\u4ee5\u6e1b\u5c11 PWM \u8f38\u51fa\u7684\u5c16\u5cf0\u566a\u8072\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_output_polarity"}),": \u8a2d\u7f6e PWM \u8f38\u51fa\u7684\u6975\u6027\u3002\u53ef\u4ee5\u9078\u64c7\u5728 PWM \u8a08\u6578\u5668\u9054\u5230\u6bd4\u8f03\u503c\u6642\u8f38\u51fa\u9ad8\u96fb\u5e73\u9084\u662f\u4f4e\u96fb\u5e73\u3002"]}),"\n"]}),"\n",(0,c.jsx)(e.p,{children:"\u8abf\u6574\u9019\u4e9b PWM \u914d\u7f6e\u53ef\u4ee5\u6539\u8b8a PWM \u8f38\u51fa\u7684\u7279\u6027,\u5f9e\u800c\u5f71\u97ff\u6b65\u9032\u96fb\u6a5f\u7684\u904b\u884c\u65b9\u5f0f,\u5982\u901f\u5ea6\u3001\u626d\u77e9\u3001\u566a\u8072\u7b49\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u9700\u8981\u6ce8\u610f\u7684\u662f,\u9019\u6bb5\u7a0b\u5f0f\u78bc\u53ea\u662f\u4e00\u500b\u57fa\u672c\u7684\u793a\u4f8b,\u7528\u65bc\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u5728\u5be6\u969b\u61c9\u7528\u4e2d,\u4f60\u53ef\u80fd\u9700\u8981\u6839\u64da\u5177\u9ad4\u7684\u6b65\u9032\u96fb\u6a5f\u578b\u865f\u548c\u9a45\u52d5\u5668\u4f86\u8abf\u6574\u53c3\u6578\u548c\u8a2d\u7f6e,\u4ee5\u7372\u5f97\u6700\u4f73\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\u3002\u6b64\u5916,\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u5927\u7684\u96fb\u6d41,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668,\u800c\u4e0d\u662f\u76f4\u63a5\u901a\u904e PWM \u5f15\u8173\u9a45\u52d5\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u4f3a\u670d\u6a5f",children:"\u63a7\u5236\u4f3a\u670d\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4f4d\u7f6e\u63a7\u5236\u8a2d\u5099,\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint SERVO_PIN = 2;\n\nint main() {\n // \u5c07\u4f3a\u670d\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);\n uint channel = pwm_gpio_to_channel(SERVO_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 19999);\n pwm_config_set_clkdiv(&config, 9.6f);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u8108\u5bec,\u63a7\u5236\u4f3a\u670d\u6a5f\u89d2\u5ea6\n pwm_set_chan_level(slice_num, channel, 1000); // 0 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 1500); // 90 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 2000); // 180 \u5ea6\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u4f3a\u670d\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 19999,\u6642\u9418\u5206\u983b\u5668\u70ba 9.6,\u4ee5\u7372\u5f97 50Hz \u7684 PWM \u983b\u7387\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u8108\u5bec\u7684\u5178\u578b\u503c\u70ba 1000us\uff080 \u5ea6\uff09\u30011500us\uff0890 \u5ea6\uff09\u548c 2000us\uff08180 \u5ea6\uff09,\u4f46\u5177\u9ad4\u503c\u53ef\u80fd\u56e0\u4f3a\u670d\u6a5f\u578b\u865f\u800c\u6709\u6240\u4e0d\u540c\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u7684\u63a7\u5236\u4fe1\u865f\u9700\u8981\u7cbe\u78ba\u7684\u8108\u5bec\u548c\u983b\u7387,\u56e0\u6b64\u5728\u914d\u7f6e PWM \u6642\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u5305\u88f9\u503c\u548c\u6642\u9418\u5206\u983b\u5668,\u4ee5\u7372\u5f97\u6240\u9700\u7684\u8108\u5bec\u548c\u983b\u7387\u3002\u6b64\u5916,\u4f3a\u670d\u6a5f\u901a\u5e38\u9700\u8981\u55ae\u7368\u7684\u96fb\u6e90\u4f9b\u96fb,\u4ee5\u63d0\u4f9b\u8db3\u5920\u7684\u96fb\u6d41\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",children:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u7528\u65bc\u8f38\u51fa\u63a7\u5236\u4fe1\u865f,PWM \u9084\u53ef\u4ee5\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint INPUT_PIN = 2;\n\nint main() {\n // \u5c07\u8f38\u5165\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f\n pwm_config config = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\n pwm_init(slice_num, &config, false);\n \n // \u4f7f\u80fd\u8f38\u5165\u6355\u7372\n pwm_set_enabled(slice_num, true);\n\n while (1) {\n // \u7b49\u5f85\u8f38\u5165\u4fe1\u865f\n while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));\n\n // \u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\n uint32_t period = pwm_get_counter(slice_num);\n uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);\n float frequency = clock_get_hz(clk_sys) / period;\n float duty_cycle = (float)pulse_width / period;\n\n printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\\n", \n frequency, pulse_width, duty_cycle * 100);\n\n // \u6e05\u9664\u8f38\u5165\u6355\u7372\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(slice_num);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u8f38\u5165\u4fe1\u865f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f,\u4e26\u4f7f\u80fd\u8f38\u5165\u6355\u7372\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u7b49\u5f85\u8f38\u5165\u4fe1\u865f\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u7136\u5f8c\u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u983b\u7387\u53ef\u4ee5\u901a\u904e\u6642\u9418\u983b\u7387\u9664\u4ee5\u9031\u671f\u8a08\u6578\u5668\u503c\u4f86\u8a08\u7b97,\u8108\u5bec\u53ef\u4ee5\u76f4\u63a5\u5f9e\u6355\u7372\u6bd4\u8f03\u8a08\u6578\u5668\u4e2d\u8b80\u53d6,\u4f54\u7a7a\u6bd4\u53ef\u4ee5\u901a\u904e\u8108\u5bec\u9664\u4ee5\u9031\u671f\u4f86\u8a08\u7b97\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u8f38\u5165\u6355\u7372\u6a21\u5f0f\u4e0b,PWM \u5207\u7247\u6703\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u6216\u4e0b\u964d\u6cbf\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u4e26\u8a18\u9304\u7576\u524d\u7684\u8a08\u6578\u5668\u503c\u3002\u901a\u904e\u6bd4\u8f03\u9023\u7e8c\u5169\u6b21\u6355\u7372\u7684\u8a08\u6578\u5668\u503c,\u53ef\u4ee5\u8a08\u7b97\u51fa\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u8a73\u7d30\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM \u529f\u80fd\u3002\u9664\u4e86\u4e4b\u524d\u4ecb\u7d39\u7684\u57fa\u672c\u7528\u6cd5,\u6211\u5011\u9084\u6df1\u5165\u8b1b\u89e3\u4e86\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u548c\u4f3a\u670d\u6a5f,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u5b78\u7fd2\u672c\u6587\u63d0\u4f9b\u7684\u8a73\u7d30\u89e3\u91cb\u548c\u793a\u4f8b\u4ee3\u78bc,\u4f60\u61c9\u8a72\u80fd\u5920\u638c\u63e1 RP2040 \u4e2d PWM \u7684\u5404\u7a2e\u7528\u6cd5,\u4e26\u5c07\u5176\u61c9\u7528\u5230\u81ea\u5df1\u7684\u5d4c\u5165\u5f0f\u9805\u76ee\u4e2d\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,PWM \u90fd\u662f\u4e00\u500b\u5f37\u5927\u800c\u9748\u6d3b\u7684\u5de5\u5177\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u5e0c\u671b\u672c\u6587\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684 PWM \u529f\u80fd\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function p(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,c.jsx)(e,{...n,children:(0,c.jsx)(o,{...n})}):o(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>_,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function _(n){const e=c.useContext(s);return c.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:_(n.components),c.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/62424562.cb5af537.js b/assets/js/62424562.cb5af537.js new file mode 100644 index 000000000..67c9f2cf8 --- /dev/null +++ b/assets/js/62424562.cb5af537.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4676],{7481:e=>{e.exports=JSON.parse('{"tag":{"label":"LED Control","permalink":"/tags/led-control","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/675103b9.756f4557.js b/assets/js/675103b9.756f4557.js new file mode 100644 index 000000000..064b5fce9 --- /dev/null +++ b/assets/js/675103b9.756f4557.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3268],{8783:e=>{e.exports=JSON.parse('{"tag":{"label":"PIO","permalink":"/tags/pio","allTagsPath":"/tags","count":3,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/micro-controladores/RP2040/mastering-pio-programming-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/6875c492.27fa3488.js b/assets/js/6875c492.27fa3488.js new file mode 100644 index 000000000..b45d42818 --- /dev/null +++ b/assets/js/6875c492.27fa3488.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4813],{7713:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(1312),a=n(9022),i=n(4848);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.A,{permalink:n,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,i.jsx)(a.A,{permalink:r,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(7131),a=n(4651),i=n(4848);function r(e){let{items:t,component:n=a.A}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.i,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},3069:(e,t,n)=>{n.r(t),n.d(t,{default:()=>A});n(6540);var s=n(4164),a=n(1312),i=n(5846),r=n(1213),l=n(7559),o=n(8774),c=n(6535),d=n(7713),g=n(1463),u=n(3892),p=n(996),h=n(1107),m=n(4848);function x(e){const t=function(){const{selectMessage:e}=(0,i.W)();return t=>e(t,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(r.be,{title:n,description:t.description}),(0,m.jsx)(g.A,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const r=x(t);return(0,m.jsxs)(c.A,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(p.A,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(h.A,{as:"h1",children:r}),t.description&&(0,m.jsx)("p",{children:t.description}),(0,m.jsx)(o.A,{href:t.allTagsPath,children:(0,m.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.A,{items:n}),(0,m.jsx)(d.A,{metadata:i})]})}function A(e){return(0,m.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},996:(e,t,n)=>{n.d(t,{A:()=>p});n(6540);var s=n(4164),a=n(1312),i=n(5260),r=n(4848);function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),g=n(7293);function u(e){let{className:t}=e;return(0,r.jsx)(g.A,{type:"caution",title:(0,r.jsx)(l,{}),className:(0,s.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(o,{})})}function p(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/712d17a8.14edf328.js b/assets/js/712d17a8.14edf328.js new file mode 100644 index 000000000..59c8f0114 --- /dev/null +++ b/assets/js/712d17a8.14edf328.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7118],{3628:e=>{e.exports=JSON.parse('{"tag":{"label":"UART","permalink":"/tags/uart","allTagsPath":"/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/810d738c.2d6ccfcd.js b/assets/js/810d738c.2d6ccfcd.js new file mode 100644 index 000000000..362780234 --- /dev/null +++ b/assets/js/810d738c.2d6ccfcd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5843],{2943:e=>{e.exports=JSON.parse('{"tag":{"label":"PWM","permalink":"/tags/pwm","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.bec831f0.js b/assets/js/814f3328.bec831f0.js new file mode 100644 index 000000000..b16557d72 --- /dev/null +++ b/assets/js/814f3328.bec831f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/blog/Docker-Getting-Srart-01","unlisted":false},{"title":"First Blog Post","permalink":"/blog/first-blog-post","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/assets/js/822bd8ab.a9d00c4e.js b/assets/js/822bd8ab.a9d00c4e.js new file mode 100644 index 000000000..2354cac5a --- /dev/null +++ b/assets/js/822bd8ab.a9d00c4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2748],{8611:(s,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var e=n(4848),i=n(8453);const o={sidebar_position:6},r="Congratulations!",a={id:"tutorial-basics/congratulations",title:"Congratulations!",description:"You have just learned the basics of Docusaurus and made some changes to the initial template.",source:"@site/docs/tutorial-basics/congratulations.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/congratulations",permalink:"/tutorial-basics/congratulations",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/congratulations.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:6,frontMatter:{sidebar_position:6}},c={},u=[{value:"What's next?",id:"whats-next",level:2}];function d(s){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...s.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.h1,{id:"congratulations",children:"Congratulations!"}),"\n",(0,e.jsxs)(t.p,{children:["You have just learned the ",(0,e.jsx)(t.strong,{children:"basics of Docusaurus"})," and made some changes to the ",(0,e.jsx)(t.strong,{children:"initial template"}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Docusaurus has ",(0,e.jsx)(t.strong,{children:"much more to offer"}),"!"]}),"\n",(0,e.jsxs)(t.p,{children:["Have ",(0,e.jsx)(t.strong,{children:"5 more minutes"}),"? Take a look at ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/tutorial-extras/manage-docs-versions",children:"versioning"})})," and ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/tutorial-extras/translate-your-site",children:"i18n"})}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Anything ",(0,e.jsx)(t.strong,{children:"unclear"})," or ",(0,e.jsx)(t.strong,{children:"buggy"})," in this tutorial? ",(0,e.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/discussions/4610",children:"Please report it!"})]}),"\n",(0,e.jsx)(t.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,e.jsxs)(t.ul,{children:["\n",(0,e.jsxs)(t.li,{children:["Read the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/",children:"official documentation"})]}),"\n",(0,e.jsxs)(t.li,{children:["Modify your site configuration with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/docusaurus-config",children:(0,e.jsx)(t.code,{children:"docusaurus.config.js"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add navbar and footer items with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/themes/configuration",children:(0,e.jsx)(t.code,{children:"themeConfig"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a custom ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/styling-layout",children:"Design and Layout"})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/search",children:"search bar"})]}),"\n",(0,e.jsxs)(t.li,{children:["Find inspirations in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/showcase",children:"Docusaurus showcase"})]}),"\n",(0,e.jsxs)(t.li,{children:["Get involved in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/community/support",children:"Docusaurus Community"})]}),"\n"]})]})}function l(s={}){const{wrapper:t}={...(0,i.R)(),...s.components};return t?(0,e.jsx)(t,{...s,children:(0,e.jsx)(d,{...s})}):d(s)}},8453:(s,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var e=n(6540);const i={},o=e.createContext(i);function r(s){const t=e.useContext(o);return e.useMemo((function(){return"function"==typeof s?s(t):{...t,...s}}),[t,s])}function a(s){let t;return t=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:r(s.components),e.createElement(o.Provider,{value:t},s.children)}}}]); \ No newline at end of file diff --git a/assets/js/85e08f6c.890575cf.js b/assets/js/85e08f6c.890575cf.js new file mode 100644 index 000000000..bcd61af12 --- /dev/null +++ b/assets/js/85e08f6c.890575cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8210],{2392:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>a,default:()=>o,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var r=i(4848),t=i(8453);const l={slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},a=void 0,s={id:"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",permalink:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"UART",permalink:"/tags/uart"},{inline:!0,label:"interrupts",permalink:"/tags/interrupts"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/tags/serial-communication"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"},next:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}},d={},c=[{value:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART",id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",level:2},{value:"1. \u521d\u59cb\u5316 UART",id:"1-\u521d\u59cb\u5316-uart",level:3},{value:"2. \u767c\u9001\u8cc7\u6599",id:"2-\u767c\u9001\u8cc7\u6599",level:3},{value:"3. \u63a5\u6536\u8cc7\u6599",id:"3-\u63a5\u6536\u8cc7\u6599",level:3},{value:"4. \u8a2d\u5b9a\u4e2d\u65b7",id:"4-\u8a2d\u5b9a\u4e2d\u65b7",level:3},{value:"FIFO \u7684\u4f7f\u7528",id:"fifo-\u7684\u4f7f\u7528",level:2},{value:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",level:2},{value:"\u767c\u9001\u55ae\u500b\u5b57\u5143",id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",level:3},{value:"\u767c\u9001\u5b57\u4e32",id:"\u767c\u9001\u5b57\u4e32",level:3},{value:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",level:3},{value:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",level:2}];function _(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"UART \u7c21\u4ecb",type:"note",children:(0,r.jsx)(e.p,{children:"UART\uff08Universal Asynchronous Receiver/Transmitter,\u901a\u7528\u7570\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u53e3\u901a\u4fe1\u5354\u8b70,\u5ee3\u6cdb\u61c9\u7528\u65bc\u5d4c\u5165\u5f0f\u7cfb\u7d71\u4e2d\u3002\u5b83\u4ee5\u7570\u6b65\u7684\u65b9\u5f0f\u9032\u884c\u8cc7\u6599\u50b3\u8f38,\u900f\u904e TX\uff08\u767c\u9001\uff09\u548c RX\uff08\u63a5\u6536\uff09\u5169\u689d\u7dda\u4f86\u5be6\u73fe\u5168\u96d9\u5de5\u901a\u4fe1\u3002UART \u7684\u8cc7\u6599\u683c\u5f0f\u5305\u62ec\u8d77\u59cb\u4f4d\u3001\u8cc7\u6599\u4f4d\u3001\u6821\u9a57\u4f4d\uff08\u53ef\u9078\uff09\u548c\u505c\u6b62\u4f4d\u3002"})}),"\n",(0,r.jsx)(e.h2,{id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",children:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART"}),"\n",(0,r.jsx)(e.p,{children:"RP2040 \u662f Raspberry Pi Pico \u7684\u6838\u5fc3,\u5b83\u63d0\u4f9b\u4e86\u5169\u500b UART \u6a21\u7d44\uff08UART0 \u548c UART1\uff09,\u53ef\u4ee5\u7528\u65bc\u8207\u5176\u4ed6\u88dd\u7f6e\u9032\u884c\u4e32\u53e3\u901a\u4fe1\u3002\u8981\u5728 RP2040 \u4e2d\u4f7f\u7528 UART,\u6211\u5011\u9700\u8981\u57f7\u884c\u4ee5\u4e0b\u6b65\u9a5f:"}),"\n",(0,r.jsx)(e.h3,{id:"1-\u521d\u59cb\u5316-uart",children:"1. \u521d\u59cb\u5316 UART"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u53c3\u6578,\u5982\u6ce2\u7279\u7387\uff08baud rate\uff09\u3001\u8cc7\u6599\u4f4d\u5143\u6578\uff08data bits\uff09\u3001\u505c\u6b62\u4f4d\u5143\uff08stop bits\uff09\u548c\u540c\u4f4d\u6aa2\u67e5\u4f4d\u5143\uff08parity bit\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9078\u64c7\u8981\u4f7f\u7528\u7684 UART \u6a21\u7d44\uff08UART0 \u6216 UART1\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u914d\u7f6e UART \u4f7f\u7528\u7684 TX \u548c RX \u5f15\u8173\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"2-\u767c\u9001\u8cc7\u6599",children:"2. \u767c\u9001\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u51fd\u5f0f\u767c\u9001\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u51fd\u5f0f\u767c\u9001\u5b57\u4e32\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u5beb\u5165\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_writable()"}),"\uff09\u4f86\u907f\u514d\u8cc7\u6599\u8986\u5beb\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"3-\u63a5\u6536\u8cc7\u6599",children:"3. \u63a5\u6536\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u51fd\u5f0f\u63a5\u6536\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u8b80\u53d6\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_readable()"}),"\uff09\u4f86\u5224\u65b7\u662f\u5426\u6709\u65b0\u8cc7\u6599\u5230\u9054\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"4-\u8a2d\u5b9a\u4e2d\u65b7",children:"4. \u8a2d\u5b9a\u4e2d\u65b7"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 UART \u7684 RX \u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\nstatic int chars_rxed = 0;\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n // \u5728\u6b64\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\n // ...\n chars_rxed++;\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART\n uart_init(UART_ID, BAUD_RATE);\n \n // \u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n \n // \u8a2d\u5b9a UART \u8cc7\u6599\u683c\u5f0f\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n // \u767c\u9001\u521d\u59cb\u8a0a\u606f\n uart_puts(UART_ID, "Hello, UART!\\n");\n \n // \u4e3b\u8ff4\u5708\n while (1) {\n // \u5728\u6b64\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u9019\u500b\u7a0b\u5f0f\u78bc\u7bc4\u4f8b\u4e2d,\u6211\u5011\u9996\u5148\u5f15\u5165\u4e86\u5fc5\u8981\u7684\u6a19\u982d\u6a94,\u4e26\u5b9a\u7fa9\u4e86 UART \u7684\u76f8\u95dc\u53c3\u6578,\u5982\u6ce2\u7279\u7387\u3001\u8cc7\u6599\u4f4d\u5143\u6578\u3001\u505c\u6b62\u4f4d\u5143\u548c\u6821\u9a57\u4f4d\u5143\u3002\u63a5\u8457,\u6211\u5011\u521d\u59cb\u5316 UART,\u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd,\u4e26\u914d\u7f6e UART \u7684\u8cc7\u6599\u683c\u5f0f\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u70ba\u4e86\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u6211\u5011\u8a2d\u5b9a\u4e86 RX \u4e2d\u65b7,\u4e26\u5b9a\u7fa9\u4e86\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f ",(0,r.jsx)(e.code,{children:"on_uart_rx()"}),"\u3002\u7576 UART \u63a5\u6536\u5230\u8cc7\u6599\u6642,\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u6703\u88ab\u89f8\u767c,\u6211\u5011\u53ef\u4ee5\u5728\u5176\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u767c\u9001\u4e00\u500b\u521d\u59cb\u8a0a\u606f,\u8868\u793a UART \u5df2\u7d93\u5c31\u7dd2\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u53ef\u4ee5\u57f7\u884c\u5176\u4ed6\u4efb\u52d9,\u800c\u63a5\u6536\u5230\u7684\u8cc7\u6599\u6703\u900f\u904e\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u81ea\u52d5\u8655\u7406\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"fifo-\u7684\u4f7f\u7528",children:"FIFO \u7684\u4f7f\u7528"}),"\n",(0,r.jsx)(e.p,{children:"FIFO\uff08First In First Out,\u5148\u9032\u5148\u51fa\uff09\u662f\u4e00\u7a2e\u8cc7\u6599\u7de9\u885d\u5340,\u53ef\u4ee5\u7528\u65bc\u66ab\u5b58 UART \u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u5728 RP2040 \u4e2d,\u6bcf\u500b UART \u6a21\u7d44\u90fd\u6709\u4e00\u500b\u5c0d\u61c9\u7684 FIFO\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"\u555f\u7528 FIFO",type:"tip",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528 UART \u7684 FIFO \u529f\u80fd\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6,\u5373\u53ef\u5b58\u5132\u7684\u8cc7\u6599\u91cf\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4e0d\u555f\u7528 FIFO",type:"warning",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u5982\u679c\u4e0d\u555f\u7528 FIFO,\u6bcf\u6b21\u63a5\u6536\u5230\u8cc7\u6599\u90fd\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u9069\u7528\u65bc\u5c0d\u5373\u6642\u6027\u8981\u6c42\u8f03\u9ad8\u7684\u5834\u666f,\u4f46\u53ef\u80fd\u6703\u589e\u52a0 CPU \u7684\u8ca0\u64d4\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4f7f\u7528 FIFO \u7684\u597d\u8655",type:"info",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 FIFO \u5f8c,\u53ea\u6709\u7576 FIFO \u4e2d\u7d2f\u7a4d\u4e86\u4e00\u5b9a\u6578\u91cf\u7684\u8cc7\u6599\u6216\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u53ef\u4ee5\u6e1b\u5c11\u4e2d\u65b7\u7684\u983b\u7387,\u964d\u4f4e CPU \u7684\u8ca0\u64d4\u3002"}),"\n",(0,r.jsx)(e.li,{children:"FIFO \u63d0\u4f9b\u4e86\u7de9\u885d\u5340,\u53ef\u4ee5\u66ab\u5b58\u4e00\u5b9a\u91cf\u7684\u8cc7\u6599,\u907f\u514d\u8cc7\u6599\u4e1f\u5931\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u555f\u7528 FIFO \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"// \u555f\u7528 FIFO\nuart_set_fifo_enabled(UART_ID, true);\n\n// \u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6\nuart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528\u4e86 UART \u7684 FIFO \u529f\u80fd,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_threshold()"})," \u51fd\u5f0f\u8a2d\u5b9a\u4e86 FIFO \u7684\u6df1\u5ea6\u3002\u555f\u7528 FIFO \u5f8c,\u7576 FIFO \u4e2d\u7d2f\u7a4d\u7684\u8cc7\u6599\u91cf\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",children:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536"}),"\n",(0,r.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u51fd\u5f0f\u4f86\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599:"}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",children:"\u767c\u9001\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_putc(UART_ID, char_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u5b57\u4e32",children:"\u767c\u9001\u5b57\u4e32"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_puts(UART_ID, string_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",children:"\u63a5\u6536\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uint8_t received_char = uart_getc(UART_ID);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_readable(UART_ID)) {\n // \u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_writable(UART_ID)) {\n // \u53ef\u4ee5\u5beb\u5165\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u900f\u904e\u9019\u4e9b\u51fd\u5f0f,\u6211\u5011\u53ef\u4ee5\u65b9\u4fbf\u5730\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599\u3002\u5728\u767c\u9001\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u767c\u9001\u55ae\u500b\u5b57\u5143,\u6216\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u767c\u9001\u5b57\u4e32\u3002\u5728\u63a5\u6536\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u63a5\u6536\u55ae\u500b\u5b57\u5143,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_is_readable()"})," \u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b"}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u63a7\u5236 LED \u7684\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\n#define LED_PIN 25\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n switch (ch) {\n case \'o\':\n gpio_put(LED_PIN, 1);\n uart_puts(UART_ID, "LED ON\\n");\n break;\n case \'f\':\n gpio_put(LED_PIN, 0);\n uart_puts(UART_ID, "LED OFF\\n");\n break;\n default:\n uart_puts(UART_ID, "Invalid command\\n");\n break;\n }\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART \u548c LED\n uart_init(UART_ID, BAUD_RATE);\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n gpio_init(LED_PIN);\n gpio_set_dir(LED_PIN, GPIO_OUT);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n uart_puts(UART_ID, "UART LED Control\\n");\n uart_puts(UART_ID, "Commands: \'o\' - LED ON, \'f\' - LED OFF\\n");\n \n while (1) {\n tight_loop_contents();\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:'\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 UART \u63a5\u6536\u6307\u4ee4,\u4e26\u6839\u64da\u63a5\u6536\u5230\u7684\u6307\u4ee4\u63a7\u5236 LED \u7684\u4eae\u6ec5\u3002\u7576\u63a5\u6536\u5230\u5b57\u5143 \'o\' \u6642,LED \u6703\u4eae\u8d77,\u4e26\u56de\u50b3 "LED ON" \u7684\u8a0a\u606f;\u7576\u63a5\u6536\u5230\u5b57\u5143 \'f\' \u6642,LED \u6703\u7184\u6ec5,\u4e26\u56de\u50b3 "LED OFF" \u7684\u8a0a\u606f\u3002\u5982\u679c\u63a5\u6536\u5230\u5176\u4ed6\u5b57\u5143,\u5247\u56de\u50b3 "Invalid command" \u7684\u8a0a\u606f\u3002'}),"\n",(0,r.jsx)(e.p,{children:"\u900f\u904e\u9019\u7a2e\u65b9\u5f0f,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 UART \u767c\u9001\u7c21\u55ae\u7684\u6307\u4ee4\u4f86\u63a7\u5236 RP2040 \u4e0a\u7684 LED,\u5be6\u73fe\u9060\u7aef\u63a7\u5236\u7684\u529f\u80fd\u3002"})]})}function o(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(_,{...n})}):_(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>a,x:()=>s});var r=i(6540);const t={},l=r.createContext(t);function a(n){const e=r.useContext(l);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:a(n.components),r.createElement(l.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/873234d7.1a886d81.js b/assets/js/873234d7.1a886d81.js new file mode 100644 index 000000000..bc89bec73 --- /dev/null +++ b/assets/js/873234d7.1a886d81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[809],{7644:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var s=e(4848),l=e(8453);const r={slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},o="RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",t={id:"micro-controladores/RP2040/mastering-pio-programming",title:"Mastering PIO Programming on RP2040",description:"1. PIO \u7c21\u4ecb",source:"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/mastering-pio-programming-rp2040",permalink:"/micro-controladores/RP2040/mastering-pio-programming-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/mastering-pio-programming.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/tags/pio"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Timer and Alarm Usage in RP2040",permalink:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},next:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"1. PIO \u7c21\u4ecb",id:"1-pio-\u7c21\u4ecb",level:2},{value:"2. LED \u9583\u720d\u793a\u4f8b",id:"2-led-\u9583\u720d\u793a\u4f8b",level:2},{value:"2.1 PIO \u7a0b\u5e8f (blink.pio)",id:"21-pio-\u7a0b\u5e8f-blinkpio",level:3},{value:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)",id:"22-\u4e3b\u7a0b\u5e8f-maincpp",level:3},{value:"\u4ee3\u78bc\u89e3\u91cb\uff1a",id:"\u4ee3\u78bc\u89e3\u91cb",level:3},{value:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790",id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",level:2},{value:"4. \u983b\u7387\u8a08\u7b97",id:"4-\u983b\u7387\u8a08\u7b97",level:2},{value:"5. PIO \u7de8\u7a0b\u9650\u5236",id:"5-pio-\u7de8\u7a0b\u9650\u5236",level:2},{value:"6. \u512a\u5316\u6280\u5de7",id:"6-\u512a\u5316\u6280\u5de7",level:2},{value:"7. \u6ce8\u610f\u4e8b\u9805",id:"7-\u6ce8\u610f\u4e8b\u9805",level:2},{value:"\u5b8c\u6574\u4ee3\u7801",id:"\u5b8c\u6574\u4ee3\u7801",level:2}];function p(n){const i={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"rp2040-pio-\u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\u5f9e-led-\u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",children:"RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236"}),"\n",(0,s.jsx)(i.h2,{id:"1-pio-\u7c21\u4ecb",children:"1. PIO \u7c21\u4ecb"}),"\n",(0,s.jsx)(i.p,{children:"\u53ef\u7de8\u7a0b\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u662f RP2040 \u6676\u7247\u7684\u4e00\u500b\u5f37\u5927\u7279\u6027\u3002\u5b83\u5141\u8a31\u958b\u767c\u8005\u5275\u5efa\u81ea\u5b9a\u7fa9\u7684\u6578\u5b57\u63a5\u53e3\uff0c\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u5e8f\u63a7\u5236\u3002\u6bcf\u500b RP2040 \u6709\u5169\u500b PIO \u584a\uff0c\u6bcf\u500b\u584a\u6709\u56db\u500b\u72c0\u614b\u6a5f\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"2-led-\u9583\u720d\u793a\u4f8b",children:"2. LED \u9583\u720d\u793a\u4f8b"}),"\n",(0,s.jsx)(i.h3,{id:"21-pio-\u7a0b\u5e8f-blinkpio",children:"2.1 PIO \u7a0b\u5e8f (blink.pio)"}),"\n",(0,s.jsx)(i.p,{children:"\u8b93\u6211\u5011\u5f9e\u4e00\u500b\u7cbe\u78ba\u63a7\u5236\u7684 LED \u9583\u720d\u7a0b\u5e8f\u958b\u59cb\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{children:".program blink\n.wrap_target\n set pins, 1 [31] ; \u6253\u958b LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n set pins, 0 [31] ; \u95dc\u9589 LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n.wrap\n\n% c-sdk {\n// Helper function to initialize PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {\n pio_sm_config c = blink_program_get_default_config(offset);\n pio_gpio_init(pio, pin);\n sm_config_set_set_pins(&c, pin, 1);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n float div = clock_get_hz(clk_sys) / freq;\n sm_config_set_clkdiv(&c, div);\n pio_sm_init(pio, sm, offset, &c);\n}\n%}\n"})}),"\n",(0,s.jsx)(i.h3,{id:"22-\u4e3b\u7a0b\u5e8f-maincpp",children:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)"}),"\n",(0,s.jsx)(i.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5e8f\u4e2d\u8a2d\u7f6e\u548c\u904b\u884c\u9019\u500b PIO \u7a0b\u5e8f\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-cpp",children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "blink.pio.h"\n\nint main() {\n static const uint LED_PIN = 25;\n static const float PIO_FREQ = 2000; // \u8a2d\u7f6e PIO \u983b\u7387\u70ba 2000 Hz\n\n // \u9078\u64c7 PIO \u5be6\u4f8b\uff080 \u6216 1\uff09\n PIO pio = pio0;\n\n // \u7372\u53d6 PIO \u7a0b\u5e8f\u4e2d\u7684\u7b2c\u4e00\u500b\u7a7a\u9592\u72c0\u614b\u6a5f\n uint sm = pio_claim_unused_sm(pio, true);\n\n // \u5c07 PIO \u7a0b\u5e8f\u6dfb\u52a0\u5230 PIO \u6307\u4ee4\u5167\u5b58\u4e2d\n uint offset = pio_add_program(pio, &blink_program);\n\n // \u8a08\u7b97 PIO \u6642\u9418\u5206\u983b\u5668\n float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;\n\n // \u4f7f\u7528\u6211\u5011\u7684 .pio \u6587\u4ef6\u4e2d\u7684\u8f14\u52a9\u51fd\u6578\u521d\u59cb\u5316\u7a0b\u5e8f\n blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);\n\n // \u555f\u52d5 PIO \u7a0b\u5e8f\n pio_sm_set_enabled(pio, sm, true);\n\n // \u4e3b\u5faa\u74b0\u4fdd\u6301\u7a0b\u5e8f\u904b\u884c\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.h3,{id:"\u4ee3\u78bc\u89e3\u91cb",children:"\u4ee3\u78bc\u89e3\u91cb\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"PIO_FREQ"})," \u8a2d\u7f6e\u70ba 2000 Hz\uff0c\u9019\u6c7a\u5b9a\u4e86 PIO \u72c0\u614b\u6a5f\u7684\u904b\u884c\u901f\u5ea6\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"blink_program_init"})," \u51fd\u6578\u7528\u65bc\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\uff0c\u5305\u62ec\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u5668\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:["\u6642\u9418\u5206\u983b\u5668\u7684\u8a08\u7b97\uff1a",(0,s.jsx)(i.code,{children:"div = clock_get_hz(clk_sys) / PIO_FREQ"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"clock_get_hz(clk_sys)"})," \u7372\u53d6\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff08\u901a\u5e38\u70ba 125 MHz\uff09"]}),"\n",(0,s.jsx)(i.li,{children:"\u5206\u983b\u5f8c\uff0cPIO \u5c07\u4ee5 2000 Hz \u7684\u983b\u7387\u904b\u884c"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",children:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790"}),"\n",(0,s.jsx)(i.p,{children:"\u6bcf\u689d PIO \u6307\u4ee4\u7684\u57f7\u884c\u9031\u671f\u7531\u5169\u90e8\u5206\u7d44\u6210\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u672c\u8eab\u7684\u57f7\u884c\uff081 \u500b\u9031\u671f\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u5f8c\u7684\u984d\u5916\u5ef6\u9072\uff080 \u5230 31 \u500b\u9031\u671f\uff09"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u4f8b\u5982\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"set pins, 1 [31]"})," \u7e3d\u5171\u57f7\u884c 32 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c31 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [31]"})," \u4e5f\u57f7\u884c 32 \u500b\u9031\u671f"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [19]"})," \u57f7\u884c 20 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c19 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"4-\u983b\u7387\u8a08\u7b97",children:"4. \u983b\u7387\u8a08\u7b97"}),"\n",(0,s.jsx)(i.p,{children:"\u6839\u64da\u6211\u5011\u7684\u8a2d\u7f6e\uff0cPIO \u6642\u9418\u983b\u7387\u70ba 2000 Hz\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"LED \u958b\u555f\u72c0\u614b\uff1a(1 + 14) * 32 + 20 = 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"LED \u95dc\u9589\u72c0\u614b\uff1a\u540c\u6a23\u662f 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u5b8c\u6574\u5faa\u74b0\uff1a500 + 500 = 1000 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u9583\u720d\u983b\u7387\uff1a2000 Hz / 1000 = 2 Hz"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u9019\u89e3\u91cb\u4e86\u70ba\u4ec0\u9ebc LED \u4ee5 2 Hz \u7684\u983b\u7387\u9583\u720d\uff08\u6bcf\u79d2\u9583\u720d\u5169\u6b21\uff09\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"5-pio-\u7de8\u7a0b\u9650\u5236",children:"5. PIO \u7de8\u7a0b\u9650\u5236"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808 \u2264 31"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u4f54\u7528 5 \u4f4d"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"6-\u512a\u5316\u6280\u5de7",children:"6. \u512a\u5316\u6280\u5de7"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u5229\u7528\u5faa\u74b0\u6e1b\u5c11\u6307\u4ee4\u6578\u91cf"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\uff08side-set\uff09\u529f\u80fd\u540c\u6642\u57f7\u884c GPIO \u64cd\u4f5c\u548c\u5176\u4ed6\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u9069\u7576\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u9054\u5230\u6240\u9700\u7684\u6642\u5e8f"}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"7-\u6ce8\u610f\u4e8b\u9805",children:"7. \u6ce8\u610f\u4e8b\u9805"}),"\n",(0,s.jsx)(i.p,{children:"\u5728\u4f7f\u7528 RP2040 \u7684 PIO \u9032\u884c\u7de8\u7a0b\u6642\uff0c\u9700\u8981\u6ce8\u610f\u4ee5\u4e0b\u5e7e\u500b\u91cd\u8981\u7684\u9650\u5236\u548c\u8003\u616e\u56e0\u7d20\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808\u5c0f\u65bc\u6216\u7b49\u65bc 31 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "instruction delay must be < = 31"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u50c5\u4f54\u7528 5 \u4f4d\u4e8c\u9032\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "program instruction limit of 32 instruction(s) exceeded"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6642\u9418\u5206\u983b\u5668 (div) \u7bc4\u570d"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6709\u6548\u7bc4\u570d: 1.0 \u5230 65536.0"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5c0f\u503c 1.0 \u5c0d\u61c9\u6700\u5feb\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5927\u503c 65536.0 \u5c0d\u61c9\u6700\u6162\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\u9664\u4ee5 65536\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6ce8\u610f: \u7576\u8a08\u7b97\u51fa\u7684 div \u503c\u8d85\u51fa\u6b64\u7bc4\u570d\u6642\uff0c\u5be6\u969b\u904b\u884c\u983b\u7387\u53ef\u80fd\u8207\u9810\u671f\u4e0d\u7b26"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"GPIO \u5f15\u8173\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u53ef\u4ee5\u8a2a\u554f\u7684 GPIO \u5f15\u8173\u7bc4\u570d: 0-29"}),"\n",(0,s.jsx)(i.li,{children:"\u67d0\u4e9b\u7279\u6b8a\u529f\u80fd\u5f15\u8173\u53ef\u80fd\u6709\u984d\u5916\u9650\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u72c0\u614b\u6a5f\u6578\u91cf"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u584a\u6709 4 \u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f"}),"\n",(0,s.jsx)(i.li,{children:"\u7e3d\u5171\u6709 8 \u500b\u72c0\u614b\u6a5f\uff082 \u500b PIO \u584a * 4 \u500b\u72c0\u614b\u6a5f\uff09"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"FIFO \u6df1\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b\u72c0\u614b\u6a5f\u6709 4 \u500b\u5b57\uff0832 \u4f4d\uff09\u7684 TX FIFO \u548c 4 \u500b\u5b57\u7684 RX FIFO"}),"\n",(0,s.jsx)(i.li,{children:"\u5728\u6578\u64da\u5bc6\u96c6\u578b\u61c9\u7528\u4e2d\u9700\u8981\u8b39\u614e\u7ba1\u7406 FIFO"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u57f7\u884c\u901f\u5ea6\u8003\u616e"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u6307\u4ee4\u57f7\u884c\u901f\u5ea6\u53ef\u4ee5\u975e\u5e38\u5feb\uff08\u6700\u9ad8\u53ef\u9054\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u6642\u5e8f\u4ee5\u78ba\u4fdd\u9810\u671f\u7684\u64cd\u4f5c\u983b\u7387"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8207 CPU \u4ea4\u4e92"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u64cd\u4f5c\u662f\u7368\u7acb\u65bc CPU \u7684\uff0c\u9700\u8981\u6b63\u78ba\u914d\u7f6e\u4e2d\u65b7\u548c DMA \u4ee5\u5be6\u73fe\u9ad8\u6548\u7684\u6578\u64da\u4ea4\u63db"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u5074\u8a2d\uff08Side-set\uff09\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6700\u591a\u53ef\u4ee5\u4f7f\u7528 5 \u500b\u5074\u8a2d\u4f4d"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\u6703\u6e1b\u5c11\u53ef\u7528\u65bc\u5ef6\u9072\u7684\u4f4d\u6578"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8abf\u8a66\u96e3\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u96e3\u4ee5\u76f4\u63a5\u8abf\u8a66"}),"\n",(0,s.jsx)(i.li,{children:"\u5efa\u8b70\u4f7f\u7528\u6a21\u64ec\u5668\u6216\u793a\u6ce2\u5668\u7b49\u5de5\u5177\u8f14\u52a9\u958b\u767c\u548c\u6e2c\u8a66"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u7801",children:"\u5b8c\u6574\u4ee3\u7801"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "hello.pio.h"\n\nint main() {\n\n static const uint led_pin = 25;\n static const float pio_freq = 2000;\n\n // Choose PIO instance (0 or 1)\n PIO pio = pio0;\n\n // Get first free state machine in PIO 0\n uint sm = pio_claim_unused_sm(pio, true);\n\n // Add PIO program to PIO instruction memory. SDK will find location and\n // return with the memory offset of the program.\n uint offset = pio_add_program(pio, &blink_program);\n\n // Calculate the PIO clock divider\n float div = (float)clock_get_hz(clk_sys) / pio_freq;\n\n // Initialize the program using the helper function in our .pio file\n blink_program_init(pio, sm, offset, led_pin, div); //div\u6700\u5927\u5141\u8bb8\u6570\u503c65535\n\n // Start running our PIO program in the state machine\n pio_sm_set_enabled(pio, sm, true);\n\n // Do nothing\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="hello.pio"',children:".program blink\n\n; Turn on LED for 100 cycles and off for 100 cycles.\n; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)\n\n; instruction delay must be <= 31\n; program instruction limit of 32 instruction(s) exceeded\n.wrap_target\n set pins, 1 [31] ; Turn LED on and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n set pins, 0 [31] ; Turn LED off and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n.wrap\n\n% c-sdk {\n\n// Helper function (for use in C program) to initialize this PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {\n\n // Sets up state machine and wrap target. This function is automatically\n // generated in blink.pio.h.\n pio_sm_config c = blink_program_get_default_config(offset);\n\n // Allow PIO to control GPIO pin (as output)\n pio_gpio_init(pio, pin);\n\n // Connect pin to SET pin (control with 'set' instruction)\n sm_config_set_set_pins(&c, pin, 1);\n\n // Set the pin direction to output (in PIO)\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n // Set the clock divider for the state machine\n sm_config_set_clkdiv(&c, div);\n\n // Load configuration and jump to start of the program\n pio_sm_init(pio, sm, offset, &c);\n}\n\n%}\n"})})]})}function a(n={}){const{wrapper:i}={...(0,l.R)(),...n.components};return i?(0,s.jsx)(i,{...n,children:(0,s.jsx)(p,{...n})}):p(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>o,x:()=>t});var s=e(6540);const l={},r=s.createContext(l);function o(n){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function t(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:o(n.components),s.createElement(r.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/8cb1b30d.cb50becb.js b/assets/js/8cb1b30d.cb50becb.js new file mode 100644 index 000000000..d07aba78b --- /dev/null +++ b/assets/js/8cb1b30d.cb50becb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7422],{5498:r=>{r.exports=JSON.parse('{"tag":{"label":"Raspberry Pi Pico","permalink":"/tags/raspberry-pi-pico","allTagsPath":"/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/91a39dd0.39d3e8bf.js b/assets/js/91a39dd0.39d3e8bf.js new file mode 100644 index 000000000..48c2b2160 --- /dev/null +++ b/assets/js/91a39dd0.39d3e8bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1814],{8241:e=>{e.exports=JSON.parse('{"tag":{"label":"Docker","permalink":"/blog/tags/docker","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/docker","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/925b3f96.5503aaac.js b/assets/js/925b3f96.5503aaac.js new file mode 100644 index 000000000..798be977a --- /dev/null +++ b/assets/js/925b3f96.5503aaac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8609],{5026:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/blog/Docker-Getting-Srart-01"}},l={authorsImageUrls:[void 0]},u=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/928b9b77.b63e9685.js b/assets/js/928b9b77.b63e9685.js new file mode 100644 index 000000000..6fb939706 --- /dev/null +++ b/assets/js/928b9b77.b63e9685.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4183],{3203:e=>{e.exports=JSON.parse('{"tag":{"label":"state machine optimization","permalink":"/tags/state-machine-optimization","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.1e2fe8e5.js b/assets/js/9e4087bc.1e2fe8e5.js new file mode 100644 index 000000000..410752cdc --- /dev/null +++ b/assets/js/9e4087bc.1e2fe8e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2711],{9331:(e,r,t)=>{t.r(r),t.d(r,{default:()=>m});t(6540);var a=t(8774),n=t(1312),s=t(1213),i=t(6266),c=t(5733),l=t(1107),o=t(4848);function d(e){let{year:r,posts:t}=e;const n=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:r,children:r}),(0,o.jsx)("ul",{children:t.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(a.A,{to:e.metadata.permalink,children:[(r=e.metadata.date,n.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r}))})]})}function h(e){let{years:r}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r)))})})})}function m(e){let{archive:r}=e;const t=(0,n.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,n.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const r=e.reduce(((e,r)=>{const t=r.metadata.date.split("-")[0],a=e.get(t)??[];return e.set(t,[r,...a])}),new Map);return Array.from(r,(e=>{let[r,t]=e;return{year:r,posts:t}}))}(r.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.be,{title:t,description:a}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:t}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},6266:(e,r,t)=>{t.d(r,{i:()=>n});var a=t(4586);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:r}}=(0,a.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,a.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:t,...e})}}}]); \ No newline at end of file diff --git a/assets/js/9fab635f.209dd272.js b/assets/js/9fab635f.209dd272.js new file mode 100644 index 000000000..4b9c5e898 --- /dev/null +++ b/assets/js/9fab635f.209dd272.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9071],{6377:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=i(4848),l=i(8453);const a={slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},t=void 0,s={id:"micro-controladores/RP2040/rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",permalink:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/tags/rp-2040"},{inline:!0,label:"timer",permalink:"/tags/timer"},{inline:!0,label:"alarm",permalink:"/tags/alarm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},next:{title:"Mastering PIO Programming on RP2040",permalink:"/micro-controladores/RP2040/mastering-pio-programming-rp2040"}},c={},d=[{value:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",level:2},{value:"\u4ee3\u78bc\u793a\u4f8b",id:"\u4ee3\u78bc\u793a\u4f8b",level:2},{value:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",level:3},{value:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",level:3},{value:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09",id:"\u4f7f\u7528\u9b27\u9418alarm",level:3},{value:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09",id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",level:3},{value:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",level:2},{value:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",level:2},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function m(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",children:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5"}),"\n",(0,r.jsx)(n.p,{children:"\u5728 RP2040 \u4e2d,\u8a08\u6642\u5668\u548c\u9b27\u9418\u662f\u5169\u500b\u76f8\u95dc\u4f46\u53c8\u6709\u6240\u5340\u5225\u7684\u6982\u5ff5\u3002"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u8a08\u6642\u5668\uff08Timer\uff09: \u8a08\u6642\u5668\u662f\u4e00\u7a2e\u7528\u65bc\u6e2c\u91cf\u6642\u9593\u9593\u9694\u7684\u786c\u9ad4\u8a2d\u5099\u3002\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u8a08\u6642\u5668\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u9593\u63a7\u5236\u548c\u5b9a\u6642\u64cd\u4f5c\u3002\u8a08\u6642\u5668\u53ef\u4ee5\u88ab\u914d\u7f6e\u70ba\u5728\u7279\u5b9a\u6642\u9593\u9593\u9694\u5f8c\u89f8\u767c\u4e2d\u65b7,\u4ee5\u57f7\u884c\u76f8\u61c9\u7684\u64cd\u4f5c\u3002"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u9b27\u9418\uff08Alarm\uff09: \u9b27\u9418\u662f\u57fa\u65bc\u8a08\u6642\u5668\u7684\u4e00\u7a2e\u529f\u80fd\u64f4\u5c55\u3002\u5b83\u5141\u8a31\u6211\u5011\u5728\u6307\u5b9a\u7684\u6642\u9593\u9ede\u89f8\u767c\u4e00\u6b21\u6027\u7684\u64cd\u4f5c\u3002\u9b27\u9418\u901a\u5e38\u7528\u65bc\u5728\u672a\u4f86\u7684\u67d0\u500b\u6642\u9593\u9ede\u57f7\u884c\u7279\u5b9a\u7684\u4efb\u52d9,\u4f8b\u5982\u5728\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\u5f8c\u57f7\u884c\u67d0\u500b\u51fd\u6578\u3002"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u4ee3\u78bc\u793a\u4f8b",children:"\u4ee3\u78bc\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b\u4f86\u8aaa\u660e\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvolatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n\nbool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n\nint main() {\n stdio_init_all();\n printf("Hello Timer!\\n");\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n printf("Done\\n");\n return 0;\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u9010\u6b65\u5206\u6790\u4ee3\u78bc\u7684\u5404\u500b\u90e8\u5206:"}),"\n",(0,r.jsx)(n.h3,{id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",children:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'volatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b\u5168\u5c40\u8b8a\u91cf ",(0,r.jsx)(n.code,{children:"timer_fired"}),",\u7528\u65bc\u6a19\u8a18\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"alarm_callback"})," \u662f\u9b27\u9418\u7684\u56de\u8abf\u51fd\u6578,\u7576\u9b27\u9418\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u4e00\u689d\u6d88\u606f,\u8868\u793a\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c,\u4e26\u5c07 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"0"}),",\u8868\u793a\u4e0d\u9700\u8981\u91cd\u8907\u89f8\u767c\u6b64\u9b27\u9418\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",children:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'bool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u662f\u91cd\u8907\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578,\u7576\u91cd\u8907\u8a08\u6642\u5668\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u7576\u524d\u7684\u6642\u9593\u6233,\u8868\u793a\u91cd\u8907\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9700\u8981\u7e7c\u7e8c\u89f8\u767c\u6b64\u91cd\u8907\u8a08\u6642\u5668\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u9b27\u9418alarm",children:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:"int main() {\n // ...\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // ...\n}\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u9b27\u9418,\u8a2d\u7f6e\u5728 2 \u79d2\u5f8c\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"alarm_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u662f\u5426\u91cd\u8907\u89f8\u767c\u7684\u6a19\u8a8c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u9b27\u9418\u5f8c,\u6211\u5011\u4f7f\u7528\u4e00\u500b while \u5faa\u74b0\u7b49\u5f85 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8b8a\u91cf\u8b8a\u70ba ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9b27\u9418\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"tight_loop_contents()"})," \u51fd\u6578\u7528\u65bc\u5728\u7b49\u5f85\u671f\u9593\u907f\u514d\u7de8\u8b6f\u5668\u512a\u5316\u6389\u7a7a\u5faa\u74b0\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",children:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'int main() {\n // ...\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // ...\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8a2d\u7f6e\u6bcf\u9694 500 \u6beb\u79d2\u8abf\u7528\u4e00\u6b21 ",(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u4e00\u500b\u6307\u5411 ",(0,r.jsx)(n.code,{children:"repeating_timer"})," \u7d50\u69cb\u9ad4\u7684\u6307\u91dd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u91cd\u8907\u8a08\u6642\u5668\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"sleep_ms"})," \u51fd\u6578\u7b49\u5f85 3 \u79d2\u9418,\u671f\u9593\u91cd\u8907\u8a08\u6642\u5668\u6703\u6301\u7e8c\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"cancel_repeating_timer"})," \u51fd\u6578\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u4e26\u8f38\u51fa\u53d6\u6d88\u7684\u7d50\u679c\u3002\u6211\u5011\u518d\u6b21\u7b49\u5f85 2 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u505c\u6b62\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u4f46\u9019\u6b21\u4f7f\u7528\u4e86\u8ca0\u7684\u5ef6\u9072\u6642\u9593 ",(0,r.jsx)(n.code,{children:"-500"}),"\u3002\u9019\u610f\u5473\u8457\u91cd\u8907\u8a08\u6642\u5668\u6703\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500 \u6beb\u79d2\u518d\u6b21\u89f8\u767c,\u800c\u4e0d\u7ba1\u56de\u8abf\u51fd\u6578\u7684\u57f7\u884c\u6642\u9593\u3002\u6211\u5011\u7b49\u5f85 3 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u7684\u884c\u70ba\u3002"]}),"\n",(0,r.jsx)(n.li,{children:'\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u7b49\u5f85 2 \u79d2\u9418,\u4e26\u8f38\u51fa "Done" \u8868\u793a\u7a0b\u5e8f\u57f7\u884c\u5b8c\u7562\u3002'}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",children:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668"}),"\n",(0,r.jsx)(n.p,{children:"\u5982\u679c\u4f60\u60f3\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u7684\u5275\u5efa\u548c\u7ba1\u7406\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d\u3002\u9019\u6a23,\u4f60\u5c31\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u7a0b\u5e8f\u4e2d\u65b9\u4fbf\u5730\u8abf\u7528\u9019\u4e9b\u51fd\u6578,\u5be6\u73fe\u8a08\u6642\u5668\u7684\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u7c21\u55ae\u7684\u793a\u4f8b,\u5c55\u793a\u4e86\u5982\u4f55\u5c07\u8a08\u6642\u5668\u529f\u80fd\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u4e2d:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvoid timer_callback(void) {\n printf("Timer triggered!\\n");\n // \u57f7\u884c\u5b9a\u6642\u4efb\u52d9\n // ...\n}\n\nvoid start_timer(uint32_t delay_ms) {\n struct repeating_timer timer;\n add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);\n}\n\nint main() {\n stdio_init_all();\n \n // \u555f\u52d5\u5b9a\u6642\u5668,\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21\n start_timer(1000);\n \n // \u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n \n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d,\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"timer_callback"})," \u51fd\u6578,\u4f5c\u70ba\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578\u3002\u7136\u5f8c,\u6211\u5011\u5275\u5efa\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u7528\u65bc\u555f\u52d5\u8a08\u6642\u5668\u3002\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u8a2d\u7f6e\u8a08\u6642\u5668\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21,\u7136\u5f8c\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u901a\u904e\u9019\u7a2e\u65b9\u5f0f,\u4f60\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u529f\u80fd\u8207\u5176\u4ed6\u7a0b\u5e8f\u89e3\u8026,\u4f7f\u5f97\u7a0b\u5e8f\u7684\u7d50\u69cb\u66f4\u52a0\u6e05\u6670,\u4e14\u4fbf\u65bc\u7dad\u8b77\u548c\u64f4\u5c55\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",children:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u6642\uff0c\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u914d\u7f6e\u5404\u7a2e\u53c3\u6578\uff0c\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u9700\u6c42\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u5ef6\u9072\u6642\u9593\uff08Delay\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u7684\u5ef6\u9072\u6642\u9593\uff0c\u53ef\u4ee5\u662f\u6beb\u79d2\uff08ms\uff09\u6216\u5fae\u79d2\uff08us\uff09\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u9078\u64c7\u5408\u9069\u7684\u6642\u9593\u55ae\u4f4d\u548c\u503c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u56de\u8abf\u51fd\u6578\uff08Callback\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u6642\u8981\u57f7\u884c\u7684\u51fd\u6578\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u5be6\u969b\u9700\u6c42\u7de8\u5beb\u81ea\u5b9a\u7fa9\u7684\u56de\u8abf\u51fd\u6578\uff0c\u57f7\u884c\u6240\u9700\u7684\u64cd\u4f5c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7528\u6236\u6578\u64da\uff08User Data\uff09"}),"\uff1a\n\u53ef\u4ee5\u5c07\u81ea\u5b9a\u7fa9\u7684\u6578\u64da\u50b3\u905e\u7d66\u56de\u8abf\u51fd\u6578\uff0c\u4ee5\u4fbf\u5728\u56de\u8abf\u51fd\u6578\u4e2d\u4f7f\u7528\u3002\u9019\u53ef\u4ee5\u662f\u6307\u91dd\u3001\u7d50\u69cb\u9ad4\u6216\u5176\u4ed6\u985e\u578b\u7684\u6578\u64da\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u91cd\u8907\u89f8\u767c\uff08Repeat\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u662f\u5426\u9700\u8981\u91cd\u8907\u89f8\u767c\u3002\u5c0d\u65bc\u4e00\u6b21\u6027\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u91cd\u8907\u89f8\u767c\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"false"}),"\uff1b\u5c0d\u65bc\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u5176\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7cbe\u5ea6\uff08Precision\uff09"}),"\uff1a\n\u8a08\u6642\u5668\u7684\u7cbe\u5ea6\u53d6\u6c7a\u65bc\u786c\u9ad4\u548c\u8edf\u9ad4\u7684\u5be6\u73fe\u3002RP2040 \u63d0\u4f9b\u4e86\u9ad8\u7cbe\u5ea6\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u9054\u5230\u5fae\u79d2\u7d1a\u5225\u7684\u7cbe\u5ea6\u3002\u4f46\u662f\uff0c\u5be6\u969b\u7684\u7cbe\u5ea6\u9084\u53d6\u6c7a\u65bc\u7cfb\u7d71\u7684\u6642\u9418\u983b\u7387\u548c\u4e2d\u65b7\u8655\u7406\u7684\u5ef6\u9072\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u6df1\u5165\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd\u3002\u901a\u904e\u8a73\u7d30\u7684\u4ee3\u78bc\u793a\u4f8b\u548c\u89e3\u91cb,\u4f60\u61c9\u8a72\u5c0d\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406\u6709\u4e86\u66f4\u5168\u9762\u7684\u7406\u89e3\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6211\u5011\u8a0e\u8ad6\u4e86\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5,\u4e26\u5c55\u793a\u4e86\u5982\u4f55\u5275\u5efa\u548c\u4f7f\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u4e00\u6b21\u6027\u7684\u9b27\u9418\u9084\u662f\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668,\u4f60\u90fd\u53ef\u4ee5\u6839\u64da\u9700\u6c42\u9748\u6d3b\u5730\u914d\u7f6e\u548c\u4f7f\u7528\u5b83\u5011\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u5916,\u6211\u5011\u9084\u63a2\u8a0e\u4e86\u5982\u4f55\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u901a\u904e\u5c07\u8a08\u6642\u5668\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d,\u4f7f\u5176\u66f4\u52a0\u901a\u7528\u548c\u53ef\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u5f8c,\u6211\u5011\u4ecb\u7d39\u4e86\u8a08\u6642\u5668\u7684\u4e00\u4e9b\u5e38\u7528\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805,\u5e6b\u52a9\u4f60\u6839\u64da\u5be6\u969b\u9700\u6c42\u9032\u884c\u9748\u6d3b\u7684\u8a2d\u7f6e\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5e0c\u671b\u9019\u7bc7\u6587\u7ae0\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd,\u70ba\u4f60\u7684\u5d4c\u5165\u5f0f\u958b\u767c\u9805\u76ee\u63d0\u4f9b\u6709\u529b\u7684\u652f\u6301\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>s});var r=i(6540);const l={},a=r.createContext(l);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.63bb8777.js b/assets/js/a6aa9e1f.63bb8777.js new file mode 100644 index 000000000..9465080d9 --- /dev/null +++ b/assets/js/a6aa9e1f.63bb8777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7643],{5124:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});a(6540);var n=a(4164),i=a(4586),r=a(1213),o=a(7559),s=a(6535),l=a(7713),d=a(1463),c=a(3892),g=a(5260),p=a(6676),u=a(4848);function m(e){const t=(0,p.k)(e);return(0,u.jsx)(g.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function h(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.A)(),{blogDescription:n,blogTitle:o,permalink:s}=t,l="/"===s?a:o;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:l,description:n}),(0,u.jsx)(d.A,{tag:"blog_posts_list"})]})}function b(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(s.A,{sidebar:n,children:[(0,u.jsx)(c.A,{items:a}),(0,u.jsx)(l.A,{metadata:t})]})}function f(e){return(0,u.jsxs)(r.e3,{className:(0,n.A)(o.G.wrapper.blogPages,o.G.page.blogListPage),children:[(0,u.jsx)(h,{...e}),(0,u.jsx)(m,{...e}),(0,u.jsx)(b,{...e})]})}},7713:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(1312),i=a(9022),r=a(4848);function o(e){const{metadata:t}=e,{previousPage:a,nextPage:o}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(i.A,{permalink:a,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),o&&(0,r.jsx)(i.A,{permalink:o,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(7131),i=a(4651),r=a(4848);function o(e){let{items:t,component:a=i.A}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(n.i,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}},6676:(e,t,a)=>{a.d(t,{k:()=>c,J:()=>g});var n=a(6025),i=a(4586),r=a(6803);var o=a(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(p);return{author:1===t.length?t[0]:t}}function d(e,t,a){return e?{image:u({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function c(e){const{siteConfig:t}=(0,i.A)(),{withBaseUrl:a}=(0,n.hH)(),{metadata:{blogDescription:r,blogTitle:o,permalink:c}}=e,g=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":g,mainEntityOfPage:g,headline:o,description:r,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:i,metadata:r}=e,{date:o,title:c,description:g,lastUpdatedAt:p}=r,u=n.image??i.image,m=i.keywords??[],h=`${t.url}${r.permalink}`,b=p?s(p):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:c,name:c,description:g,datePublished:o,...b?{dateModified:b}:{},...l(r.authors),...d(u,a,c),...m?{keywords:m}:{}}}(e.content,t,a)))}}function g(){const e=function(){const e=(0,r.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:a}=(0,o.e)(),{siteConfig:c}=(0,i.A)(),{withBaseUrl:g}=(0,n.hH)(),{date:p,title:u,description:m,frontMatter:h,lastUpdatedAt:b}=a,f=t.image??h.image,x=h.keywords??[],j=b?s(b):void 0,A=`${c.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":A,mainEntityOfPage:A,url:A,headline:u,name:u,description:m,datePublished:p,...j?{dateModified:j}:{},...l(a.authors),...d(f,g,u),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${c.url}${e.blogBasePath}`,name:e.blogTitle}}}function p(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function u(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}}}]); \ No newline at end of file diff --git a/assets/js/a7456010.fc7a5d1f.js b/assets/js/a7456010.fc7a5d1f.js new file mode 100644 index 000000000..e988a1f5c --- /dev/null +++ b/assets/js/a7456010.fc7a5d1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.eec9f40b.js b/assets/js/a7bd4aaa.eec9f40b.js new file mode 100644 index 000000000..78b39696c --- /dev/null +++ b/assets/js/a7bd4aaa.eec9f40b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7098],{4532:(e,n,s)=>{s.r(n),s.d(n,{default:()=>u});s(6540);var r=s(1213),o=s(2967),t=s(2252),c=s(2831),i=s(1463),a=s(4848);function l(e){const{version:n}=e;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:n.version,tag:(0,o.tU)(n.pluginId,n.version)}),(0,a.jsx)(r.be,{children:n.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function d(e){const{version:n,route:s}=e;return(0,a.jsx)(r.e3,{className:n.className,children:(0,a.jsx)(t.n,{version:n,children:(0,c.v)(s.routes)})})}function u(e){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l,{...e}),(0,a.jsx)(d,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.c0f75d91.js b/assets/js/a94703ab.c0f75d91.js new file mode 100644 index 000000000..9bddeb02e --- /dev/null +++ b/assets/js/a94703ab.c0f75d91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9048],{2559:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(6540),o=n(4164),i=n(1213),s=n(7559),l=n(1754),r=n(6588),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),_=n(3465);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,b.jsx)(v,{className:A.collapseSidebarButtonIcon})})}var k=n(5041),C=n(9532);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var I=n(1422),B=n(9169),y=n(8774),w=n(2303);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),v=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:k}=(0,I.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new C.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,C.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=N&&N!==c&&f&&k(!0)}),[h,N,c,k,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":A?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(U,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(6654),H=n(3186);const G={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_M9Kj"};function R(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(R,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function F(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(N,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const U=(0,a.memo)(F),V={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",V.menu,l&&V.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:n,activePath:t,level:1})})})}const K="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",q="sidebarHidden_VK0M",J="sidebarLogo_isFc";function O(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(K,s&&z,i&&q),children:[s&&(0,b.jsx)(_.A,{tabIndex:-1,className:J}),(0,b.jsx)(Y,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const Q=a.memo(O);var X=n(5600),Z=n(9876);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Z.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(X.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Q,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(3363);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/aba21aa0.1562c573.js b/assets/js/aba21aa0.1562c573.js new file mode 100644 index 000000000..e47365ca9 --- /dev/null +++ b/assets/js/aba21aa0.1562c573.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/abc7995a.9232cf28.js b/assets/js/abc7995a.9232cf28.js new file mode 100644 index 000000000..bbebf3451 --- /dev/null +++ b/assets/js/abc7995a.9232cf28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[668],{7184:e=>{e.exports=JSON.parse('{"tag":{"label":"\u8edf\u4ef6","permalink":"/blog/tags/\u8edf\u4ef6","allTagsPath":"/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/blog/tags/\u8edf\u4ef6","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/acecf23e.6d51b0dd.js b/assets/js/acecf23e.6d51b0dd.js new file mode 100644 index 000000000..3f3306527 --- /dev/null +++ b/assets/js/acecf23e.6d51b0dd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1903],{1912:e=>{e.exports=JSON.parse('{"blogBasePath":"/blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b311d1e8.b80a3d18.js b/assets/js/b311d1e8.b80a3d18.js new file mode 100644 index 000000000..fabe609ff --- /dev/null +++ b/assets/js/b311d1e8.b80a3d18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4249],{5122:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>x,frontMatter:()=>l,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const l={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},o="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!1,label:"Misc",permalink:"/blog/tags/misc"},{inline:!1,label:"Linux",permalink:"/blog/tags/linux"},{inline:!1,label:"Linux",permalink:"/blog/tags/linux"},{inline:!1,label:"Docker",permalink:"/blog/tags/docker"},{inline:!1,label:"\u8edf\u4ef6",permalink:"/blog/tags/\u8edf\u4ef6"},{inline:!1,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>t});var c=r(6540);const i={},l=c.createContext(i);function o(e){const n=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),c.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c15d9823.880887ec.js b/assets/js/c15d9823.880887ec.js new file mode 100644 index 000000000..2d03509dd --- /dev/null +++ b/assets/js/c15d9823.880887ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8146],{9328:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/assets/js/c2aca3b0.a479cdf8.js b/assets/js/c2aca3b0.a479cdf8.js new file mode 100644 index 000000000..129caf78d --- /dev/null +++ b/assets/js/c2aca3b0.a479cdf8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1718],{5120:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>t,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var c=i(4848),l=i(8453);const s={slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},r="Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",d={id:"micro-controladores/STM32/stm32_cdc_develop",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",description:"Configuraci\xf3n de STM32CubeMX",source:"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",sourceDirName:"micro-controladores/STM32",slug:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",permalink:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/STM32/stm32_cdc_develop.md",tags:[{inline:!0,label:"stm32",permalink:"/tags/stm-32"},{inline:!0,label:"usb",permalink:"/tags/usb"},{inline:!0,label:"cdc",permalink:"/tags/cdc"}],version:"current",lastUpdatedAt:1720597722e3,frontMatter:{slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},sidebar:"tutorialSidebar",previous:{title:"Tutorial",permalink:"/tutorial"},next:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}},t={},a=[{value:"Configuraci\xf3n de STM32CubeMX",id:"configuraci\xf3n-de-stm32cubemx",level:2},{value:"Implementaci\xf3n del c\xf3digo",id:"implementaci\xf3n-del-c\xf3digo",level:2},{value:"En la funci\xf3n <code>CDC_Receive_FS()</code>:",id:"en-la-funci\xf3n-cdc_receive_fs",level:3},{value:"En la funci\xf3n <code>CDC_Transmit_FS()</code>:",id:"en-la-funci\xf3n-cdc_transmit_fs",level:3},{value:"Habilitaci\xf3n de interrupciones",id:"habilitaci\xf3n-de-interrupciones",level:2},{value:"Procesamiento de datos",id:"procesamiento-de-datos",level:2},{value:"STM32CubeMX Configuration",id:"stm32cubemx-configuration",level:2},{value:"Code Implementation",id:"code-implementation",level:2},{value:"In the <code>CDC_Receive_FS()</code> function:",id:"in-the-cdc_receive_fs-function",level:3},{value:"In the <code>CDC_Transmit_FS()</code> function:",id:"in-the-cdc_transmit_fs-function",level:3},{value:"Interrupt Enablement",id:"interrupt-enablement",level:2},{value:"Data Processing",id:"data-processing",level:2},{value:"STM32CubeMX \u8a2d\u5b9a",id:"stm32cubemx-\u8a2d\u5b9a",level:2},{value:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",level:2},{value:"\u5728 <code>CDC_Receive_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u5728 <code>CDC_Transmit_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u4e2d\u65b7\u555f\u7528",id:"\u4e2d\u65b7\u555f\u7528",level:2},{value:"\u8cc7\u6599\u8655\u7406",id:"\u8cc7\u6599\u8655\u7406",level:2}];function o(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",...(0,l.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.h1,{id:"desarrollo-de-comunicaci\xf3n-cdc-con-stm32cubemx",children:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"configuraci\xf3n-de-stm32cubemx",children:"Configuraci\xf3n de STM32CubeMX"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar el modo USB Device FS (Full Speed) en la pesta\xf1a de Pinout & Configuration."}),"\n",(0,c.jsx)(n.li,{children:"Seleccionar el modo CDC (Communication Device Class) en la pesta\xf1a de USB Device."}),"\n",(0,c.jsx)(n.li,{children:"Generar el c\xf3digo del proyecto."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"implementaci\xf3n-del-c\xf3digo",children:"Implementaci\xf3n del c\xf3digo"}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_receive_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de recepci\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," para indicar que el dispositivo est\xe1 listo para recibir m\xe1s datos."]}),"\n",(0,c.jsxs)(n.li,{children:["Si se desea enviar los datos recibidos de vuelta al host, llamar a ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Retornar ",(0,c.jsx)(n.code,{children:"USBD_OK"})," para indicar que los datos han sido procesados."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_transmit_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verificar el estado del b\xfafer de transmisi\xf3n USB (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de transmisi\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," para enviar los datos."]}),"\n",(0,c.jsx)(n.li,{children:"Retornar el resultado de la transmisi\xf3n."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"habilitaci\xf3n-de-interrupciones",children:"Habilitaci\xf3n de interrupciones"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implementar las funciones de callback de recepci\xf3n y transmisi\xf3n USB, como ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," y ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"procesamiento-de-datos",children:"Procesamiento de datos"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar."}),"\n",(0,c.jsxs)(n.li,{children:["Utilizar las funciones ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," y ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," para gestionar la recepci\xf3n y transmisi\xf3n de datos."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"cdc-development-with-stm32cubemx",children:"CDC Development with STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-configuration",children:"STM32CubeMX Configuration"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab."}),"\n",(0,c.jsx)(n.li,{children:"Select CDC (Communication Device Class) mode in the USB Device tab."}),"\n",(0,c.jsx)(n.li,{children:"Generate the project code."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"code-implementation",children:"Code Implementation"}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_receive_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Set the USB receive buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," to indicate the device is ready to receive more data."]}),"\n",(0,c.jsxs)(n.li,{children:["If you want to send the received data back to the host, call ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Return ",(0,c.jsx)(n.code,{children:"USBD_OK"})," to indicate the data has been processed."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_transmit_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verify the state of the USB transmit buffer (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Set the USB transmit buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," to send the data."]}),"\n",(0,c.jsx)(n.li,{children:"Return the result of the transmission."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"interrupt-enablement",children:"Interrupt Enablement"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable the USB interrupts in the project generated by STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implement the USB receive and transmit callback functions, such as ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," and ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"data-processing",children:"Data Processing"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"In the callback functions, process the received data and prepare the data to be sent."}),"\n",(0,c.jsxs)(n.li,{children:["Use the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," and ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," functions to manage the data reception and transmission."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"\u4f7f\u7528-stm32cubemx-\u958b\u767c-cdc-\u901a\u8a0a",children:"\u4f7f\u7528 STM32CubeMX \u958b\u767c CDC \u901a\u8a0a"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-\u8a2d\u5b9a",children:"STM32CubeMX \u8a2d\u5b9a"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 Pinout & Configuration \u6a19\u7c64\u4e2d\u555f\u7528 USB Device FS (Full Speed) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728 USB Device \u6a19\u7c64\u4e2d\u9078\u64c7 CDC (Communication Device Class) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u7522\u751f\u5c08\u6848\u7a0b\u5f0f\u78bc\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",children:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c"}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"})," \u8a2d\u5b9a\u63a5\u6536\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," \u8868\u793a\u8a2d\u5099\u5df2\u6e96\u5099\u597d\u63a5\u6536\u66f4\u591a\u8cc7\u6599\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u5982\u679c\u9700\u8981\u5c07\u6536\u5230\u7684\u8cc7\u6599\u56de\u50b3\u81f3\u4e3b\u6a5f, \u547c\u53eb ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u8fd4\u56de ",(0,c.jsx)(n.code,{children:"USBD_OK"})," \u8868\u793a\u8cc7\u6599\u5df2\u8655\u7406\u5b8c\u6210\u3002"]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u6aa2\u67e5\u50b3\u8f38\u7de9\u885d\u5340\u7684\u72c0\u614b (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"})," \u8a2d\u5b9a\u50b3\u8f38\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," \u50b3\u9001\u8cc7\u6599\u3002"]}),"\n",(0,c.jsx)(n.li,{children:"\u8fd4\u56de\u50b3\u8f38\u7d50\u679c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u4e2d\u65b7\u555f\u7528",children:"\u4e2d\u65b7\u555f\u7528"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 STM32CubeMX \u7522\u751f\u7684\u5c08\u6848\u4e2d\u555f\u7528 USB \u4e2d\u65b7\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u5be6\u4f5c\u63a5\u6536\u548c\u50b3\u8f38\u7684\u56de\u547c\u51fd\u6578, \u5982 ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"\u3002"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u8cc7\u6599\u8655\u7406",children:"\u8cc7\u6599\u8655\u7406"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u56de\u547c\u51fd\u6578\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599, \u4e26\u6e96\u5099\u8981\u50b3\u9001\u7684\u8cc7\u6599\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u7ba1\u7406\u8cc7\u6599\u7684\u63a5\u6536\u548c\u50b3\u8f38\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function r(e){const n=c.useContext(s);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),c.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.336a6011.js b/assets/js/c4f5d8e4.336a6011.js new file mode 100644 index 000000000..06e66e4f1 --- /dev/null +++ b/assets/js/c4f5d8e4.336a6011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2634],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>k});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,x,v,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,z=t(6540);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},F.apply(null,arguments)}const k=e=>{let{title:a,titleId:t,...k}=e;return z.createElement("svg",F({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},k),void 0===a?z.createElement("title",{id:t},"Focus on What Matters"):a?z.createElement("title",{id:t},a):null,l||(l=z.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=z.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=z.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=z.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=z.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=z.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=z.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=z.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=z.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=z.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=z.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=z.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=z.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=z.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),x||(x=z.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),v||(v=z.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=z.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=z.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=z.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=z.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=z.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=z.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=z.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=z.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=z.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},192:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/tutorial",children:"\ud83d\udc49 \xa1Descubre El Jard\xedn Secreto de w0x7ce! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.27f6c228.js b/assets/js/ccc49370.27f6c228.js new file mode 100644 index 000000000..d2ed42653 --- /dev/null +++ b/assets/js/ccc49370.27f6c228.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3249],{3858:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(6540);var i=n(4164),a=n(1213),o=n(7559),r=n(7131),s=n(6535),l=n(4651),c=n(1312),d=n(9022),u=n(4848);function m(e){const{nextItem:t,prevItem:n}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,u.jsx)(d.A,{...n,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),t&&(0,u.jsx)(d.A,{...t,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.e)(),{title:n,description:i,date:o,tags:s,authors:l,frontMatter:c}=t,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.be,{title:n,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:o}),l.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:l.map((e=>e.url)).filter(Boolean).join(",")}),s.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:s.map((e=>e.label)).join(",")})]})}var h=n(5260),f=n(6676);function p(){const e=(0,f.J)();return(0,u.jsx)(h.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var v=n(7763),x=n(996);function b(e){let{sidebar:t,children:n}=e;const{metadata:i,toc:a}=(0,r.e)(),{nextItem:o,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:h,toc_min_heading_level:f,toc_max_heading_level:p}=d;return(0,u.jsxs)(s.A,{sidebar:t,toc:!h&&a.length>0?(0,u.jsx)(v.A,{toc:a,minHeadingLevel:f,maxHeadingLevel:p}):void 0,children:[g&&(0,u.jsx)(x.A,{}),(0,u.jsx)(l.A,{children:n}),(o||c)&&(0,u.jsx)(m,{nextItem:o,prevItem:c})]})}function j(e){const t=e.content;return(0,u.jsx)(r.i,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.e3,{className:(0,i.A)(o.G.wrapper.blogPages,o.G.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(p,{}),(0,u.jsx)(b,{sidebar:e.sidebar,children:(0,u.jsx)(t,{})})]})})}},7763:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var i=n(4164),a=n(5195);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(4848);const s="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,i.A)(o.tableOfContents,"thin-scrollbar",t),children:(0,r.jsx)(a.A,{...n,linkClassName:s,linkActiveClassName:l})})}},5195:(e,t,n)=>{n.d(t,{A:()=>f});var i=n(6540),a=n(6342);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function l(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(s(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.p)();return(0,i.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,i.useRef)(void 0),n=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:r}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:r}),c=l(s,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}var u=n(8774),m=n(4848);function g(e){let{toc:t,className:n,linkClassName:i,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:i})]},e.id)))}):null}const h=i.memo(g);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const f=(0,a.p)(),p=c??f.tableOfContents.minHeadingLevel,v=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>r({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:v});return d((0,i.useMemo)((()=>{if(s&&l)return{linkClassName:s,linkActiveClassName:l,minHeadingLevel:p,maxHeadingLevel:v}}),[s,l,p,v])),(0,m.jsx)(h,{toc:x,className:n,linkClassName:s,...g})}},996:(e,t,n)=>{n.d(t,{A:()=>g});n(6540);var i=n(4164),a=n(1312),o=n(5260),r=n(4848);function s(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(o.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),u=n(7293);function m(e){let{className:t}=e;return(0,r.jsx)(u.A,{type:"caution",title:(0,r.jsx)(s,{}),className:(0,i.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(l,{})})}function g(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(m,{...e})]})}},6676:(e,t,n)=>{n.d(t,{k:()=>d,J:()=>u});var i=n(6025),a=n(4586),o=n(6803);var r=n(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(m);return{author:1===t.length?t[0]:t}}function c(e,t,n){return e?{image:g({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${n}`})}:{}}function d(e){const{siteConfig:t}=(0,a.A)(),{withBaseUrl:n}=(0,i.hH)(),{metadata:{blogDescription:o,blogTitle:r,permalink:d}}=e,u=`${t.url}${d}`;return{"@context":"https://schema.org","@type":"Blog","@id":u,mainEntityOfPage:u,headline:r,description:o,blogPost:e.items.map((e=>function(e,t,n){const{assets:i,frontMatter:a,metadata:o}=e,{date:r,title:d,description:u,lastUpdatedAt:m}=o,g=i.image??a.image,h=a.keywords??[],f=`${t.url}${o.permalink}`,p=m?s(m):void 0;return{"@type":"BlogPosting","@id":f,mainEntityOfPage:f,url:f,headline:d,name:d,description:u,datePublished:r,...p?{dateModified:p}:{},...l(o.authors),...c(g,n,d),...h?{keywords:h}:{}}}(e.content,t,n)))}}function u(){const e=function(){const e=(0,o.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:n}=(0,r.e)(),{siteConfig:d}=(0,a.A)(),{withBaseUrl:u}=(0,i.hH)(),{date:m,title:g,description:h,frontMatter:f,lastUpdatedAt:p}=n,v=t.image??f.image,x=f.keywords??[],b=p?s(p):void 0,j=`${d.url}${n.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:g,name:g,description:h,datePublished:m,...b?{dateModified:b}:{},...l(n.authors),...c(v,u,g),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${d.url}${e.blogBasePath}`,name:e.blogTitle}}}function m(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function g(e){let{imageUrl:t,caption:n}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:n}}}}]); \ No newline at end of file diff --git a/assets/js/d19b9b26.f5c494c9.js b/assets/js/d19b9b26.f5c494c9.js new file mode 100644 index 000000000..13dbbc234 --- /dev/null +++ b/assets/js/d19b9b26.f5c494c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8814],{8192:e=>{e.exports=JSON.parse('{"tag":{"label":"usb","permalink":"/tags/usb","allTagsPath":"/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/db03f91b.298a23ee.js b/assets/js/db03f91b.298a23ee.js new file mode 100644 index 000000000..24a741f7d --- /dev/null +++ b/assets/js/db03f91b.298a23ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9716],{7735:r=>{r.exports=JSON.parse('{"tag":{"label":"RP2040","permalink":"/tags/rp-2040","allTagsPath":"/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/df203c0f.07cad923.js b/assets/js/df203c0f.07cad923.js new file mode 100644 index 000000000..fce697c24 --- /dev/null +++ b/assets/js/df203c0f.07cad923.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4279],{7293:(e,n,t)=>{t.d(n,{A:()=>M});var i=t(6540),s=t(4848);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(4164),r=t(1312),a=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.A)(a.G.common.admonition,a.G.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[i||t?(0,s.jsx)(u,{title:i,icon:t}):null,(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,s.jsx)(m,{...x,...e,className:(0,l.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.A)("alert alert--success",e.className),children:e.children})}function A(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...N,...e,className:(0,l.A)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const _={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const C={...{note:f,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(f,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{..._,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,C[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),C.info));var i;return(0,s.jsx)(t,{...n})}},5921:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(6540);var i=t(4164),s=t(8774),o=t(5846),l=t(1213),r=t(7559),a=t(1312),c=t(1463),d=t(996),u=t(1107),h=t(4848);function m(e){const n=function(){const{selectMessage:e}=(0,o.W)();return n=>e(n,(0,a.T)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One doc tagged|{count} docs tagged"},{count:n}))}();return(0,a.T)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.A,{to:n.permalink,children:(0,h.jsx)(u.A,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function x(e){let{title:n,tag:t}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.be,{title:n,description:t.description}),(0,h.jsx)(c.A,{tag:"doc_tag_doc_list"})]})}function f(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.e3,{className:(0,i.A)(r.G.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.A,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.A,{as:"h1",children:t}),n.description&&(0,h.jsx)("p",{children:n.description}),(0,h.jsx)(s.A,{href:n.allTagsPath,children:(0,h.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x,{...e,title:n}),(0,h.jsx)(f,{...e,title:n})]})}},996:(e,n,t)=>{t.d(n,{A:()=>m});t(6540);var i=t(4164),s=t(1312),o=t(5260),l=t(4848);function r(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function a(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(o.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function h(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,i.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(a,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(h,{...e})]})}},5846:(e,n,t)=>{t.d(n,{W:()=>c});var i=t(6540),s=t(4586);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const r={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function a(){const{i18n:{currentLocale:e}}=(0,s.A)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),r}}),[e])}function c(){const e=a();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/assets/js/dff1c289.1f7787e7.js b/assets/js/dff1c289.1f7787e7.js new file mode 100644 index 000000000..fbde6744e --- /dev/null +++ b/assets/js/dff1c289.1f7787e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1724],{8043:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>a});var o=n(4848),r=n(8453);const i={sidebar_position:1},d="Manage Docs Versions",t={id:"tutorial-extras/manage-docs-versions",title:"Manage Docs Versions",description:"Docusaurus can manage multiple versions of your docs.",source:"@site/docs/tutorial-extras/manage-docs-versions.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/manage-docs-versions",permalink:"/tutorial-extras/manage-docs-versions",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/manage-docs-versions.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},c={},a=[{value:"Create a docs version",id:"create-a-docs-version",level:2},{value:"Add a Version Dropdown",id:"add-a-version-dropdown",level:2},{value:"Update an existing version",id:"update-an-existing-version",level:2}];function l(e){const s={code:"code",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h1,{id:"manage-docs-versions",children:"Manage Docs Versions"}),"\n",(0,o.jsx)(s.p,{children:"Docusaurus can manage multiple versions of your docs."}),"\n",(0,o.jsx)(s.h2,{id:"create-a-docs-version",children:"Create a docs version"}),"\n",(0,o.jsx)(s.p,{children:"Release a version 1.0 of your project:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-bash",children:"npm run docusaurus docs:version 1.0\n"})}),"\n",(0,o.jsxs)(s.p,{children:["The ",(0,o.jsx)(s.code,{children:"docs"})," folder is copied into ",(0,o.jsx)(s.code,{children:"versioned_docs/version-1.0"})," and ",(0,o.jsx)(s.code,{children:"versions.json"})," is created."]}),"\n",(0,o.jsx)(s.p,{children:"Your docs now have 2 versions:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"1.0"})," at ",(0,o.jsx)(s.code,{children:"http://localhost:3000/docs/"})," for the version 1.0 docs"]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"current"})," at ",(0,o.jsx)(s.code,{children:"http://localhost:3000/docs/next/"})," for the ",(0,o.jsx)(s.strong,{children:"upcoming, unreleased docs"})]}),"\n"]}),"\n",(0,o.jsx)(s.h2,{id:"add-a-version-dropdown",children:"Add a Version Dropdown"}),"\n",(0,o.jsx)(s.p,{children:"To navigate seamlessly across versions, add a version dropdown."}),"\n",(0,o.jsxs)(s.p,{children:["Modify the ",(0,o.jsx)(s.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,o.jsx)(s.p,{children:"The docs version dropdown appears in your navbar:"}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"Docs Version Dropdown",src:n(8281).A+"",width:"370",height:"302"})}),"\n",(0,o.jsx)(s.h2,{id:"update-an-existing-version",children:"Update an existing version"}),"\n",(0,o.jsx)(s.p,{children:"It is possible to edit versioned docs in their respective folder:"}),"\n",(0,o.jsxs)(s.ul,{children:["\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"versioned_docs/version-1.0/hello.md"})," updates ",(0,o.jsx)(s.code,{children:"http://localhost:3000/docs/hello"})]}),"\n",(0,o.jsxs)(s.li,{children:[(0,o.jsx)(s.code,{children:"docs/hello.md"})," updates ",(0,o.jsx)(s.code,{children:"http://localhost:3000/docs/next/hello"})]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8281:(e,s,n)=>{n.d(s,{A:()=>o});const o=n.p+"assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png"},8453:(e,s,n)=>{n.d(s,{R:()=>d,x:()=>t});var o=n(6540);const r={},i=o.createContext(r);function d(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function t(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e273c56f.26aae418.js b/assets/js/e273c56f.26aae418.js new file mode 100644 index 000000000..48878f050 --- /dev/null +++ b/assets/js/e273c56f.26aae418.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9328],{4014:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/blog/Docker-Getting-Srart-01"}},l={authorsImageUrls:[void 0]},u=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/e2e7a3a0.43dcef6b.js b/assets/js/e2e7a3a0.43dcef6b.js new file mode 100644 index 000000000..a7f20851b --- /dev/null +++ b/assets/js/e2e7a3a0.43dcef6b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2189],{9310:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>x,frontMatter:()=>l,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const l={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},o="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!1,label:"Misc",permalink:"/blog/tags/misc"},{inline:!1,label:"Linux",permalink:"/blog/tags/linux"},{inline:!1,label:"Linux",permalink:"/blog/tags/linux"},{inline:!1,label:"Docker",permalink:"/blog/tags/docker"},{inline:!1,label:"\u8edf\u4ef6",permalink:"/blog/tags/\u8edf\u4ef6"},{inline:!1,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>t});var c=r(6540);const i={},l=c.createContext(i);function o(e){const n=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),c.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e44a2883.5e8ca417.js b/assets/js/e44a2883.5e8ca417.js new file mode 100644 index 000000000..947da8db9 --- /dev/null +++ b/assets/js/e44a2883.5e8ca417.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4736],{8350:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=t(4848),s=t(8453);const o={sidebar_position:2},a="Translate your site",i={id:"tutorial-extras/translate-your-site",title:"Translate your site",description:"Let's translate docs/intro.md to French.",source:"@site/docs/tutorial-extras/translate-your-site.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/translate-your-site",permalink:"/tutorial-extras/translate-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/translate-your-site.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},l={},d=[{value:"Configure i18n",id:"configure-i18n",level:2},{value:"Translate a doc",id:"translate-a-doc",level:2},{value:"Start your localized site",id:"start-your-localized-site",level:2},{value:"Add a Locale Dropdown",id:"add-a-locale-dropdown",level:2},{value:"Build your localized site",id:"build-your-localized-site",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"translate-your-site",children:"Translate your site"}),"\n",(0,r.jsxs)(n.p,{children:["Let's translate ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," to French."]}),"\n",(0,r.jsx)(n.h2,{id:"configure-i18n",children:"Configure i18n"}),"\n",(0,r.jsxs)(n.p,{children:["Modify ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," to add support for the ",(0,r.jsx)(n.code,{children:"fr"})," locale:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n};\n"})}),"\n",(0,r.jsx)(n.h2,{id:"translate-a-doc",children:"Translate a doc"}),"\n",(0,r.jsxs)(n.p,{children:["Copy the ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," file to the ",(0,r.jsx)(n.code,{children:"i18n/fr"})," folder:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/\n\ncp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Translate ",(0,r.jsx)(n.code,{children:"i18n/fr/docusaurus-plugin-content-docs/current/intro.md"})," in French."]}),"\n",(0,r.jsx)(n.h2,{id:"start-your-localized-site",children:"Start your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Start your site on the French locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run start -- --locale fr\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Your localized site is accessible at ",(0,r.jsx)(n.a,{href:"http://localhost:3000/fr/",children:"http://localhost:3000/fr/"})," and the ",(0,r.jsx)(n.code,{children:"Getting Started"})," page is translated."]}),"\n",(0,r.jsx)(n.admonition,{type:"caution",children:(0,r.jsx)(n.p,{children:"In development, you can only use one locale at a time."})}),"\n",(0,r.jsx)(n.h2,{id:"add-a-locale-dropdown",children:"Add a Locale Dropdown"}),"\n",(0,r.jsx)(n.p,{children:"To navigate seamlessly across languages, add a locale dropdown."}),"\n",(0,r.jsxs)(n.p,{children:["Modify the ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,r.jsx)(n.p,{children:"The locale dropdown now appears in your navbar:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Locale Dropdown",src:t(6728).A+"",width:"370",height:"302"})}),"\n",(0,r.jsx)(n.h2,{id:"build-your-localized-site",children:"Build your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Build your site for a specific locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build -- --locale fr\n"})}),"\n",(0,r.jsx)(n.p,{children:"Or build your site to include all the locales at once:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},6728:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>i});var r=t(6540);const s={},o=r.createContext(s);function a(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f55d3e7a.d0872e36.js b/assets/js/f55d3e7a.d0872e36.js new file mode 100644 index 000000000..daa74c5ac --- /dev/null +++ b/assets/js/f55d3e7a.d0872e36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8863],{745:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>n,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=t(4848),o=t(8453);const i={sidebar_position:5},n="Deploy your site",l={id:"tutorial-basics/deploy-your-site",title:"Deploy your site",description:"Docusaurus is a static-site-generator (also called Jamstack).",source:"@site/docs/tutorial-basics/deploy-your-site.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/deploy-your-site",permalink:"/tutorial-basics/deploy-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/deploy-your-site.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:5,frontMatter:{sidebar_position:5}},c={},d=[{value:"Build your site",id:"build-your-site",level:2},{value:"Deploy your site",id:"deploy-your-site-1",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h1,{id:"deploy-your-site",children:"Deploy your site"}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus is a ",(0,r.jsx)(s.strong,{children:"static-site-generator"})," (also called ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://jamstack.org/",children:"Jamstack"})}),")."]}),"\n",(0,r.jsxs)(s.p,{children:["It builds your site as simple ",(0,r.jsx)(s.strong,{children:"static HTML, JavaScript and CSS files"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"build-your-site",children:"Build your site"}),"\n",(0,r.jsxs)(s.p,{children:["Build your site ",(0,r.jsx)(s.strong,{children:"for production"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The static files are generated in the ",(0,r.jsx)(s.code,{children:"build"})," folder."]}),"\n",(0,r.jsx)(s.h2,{id:"deploy-your-site-1",children:"Deploy your site"}),"\n",(0,r.jsx)(s.p,{children:"Test your production build locally:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run serve\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"build"})," folder is now served at ",(0,r.jsx)(s.a,{href:"http://localhost:3000/",children:"http://localhost:3000/"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["You can now deploy the ",(0,r.jsx)(s.code,{children:"build"})," folder ",(0,r.jsx)(s.strong,{children:"almost anywhere"})," easily, ",(0,r.jsx)(s.strong,{children:"for free"})," or very small cost (read the ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://docusaurus.io/docs/deployment",children:"Deployment Guide"})}),")."]})]})}function u(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>n,x:()=>l});var r=t(6540);const o={},i=r.createContext(o);function n(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f81c1134.6e3278cb.js b/assets/js/f81c1134.6e3278cb.js new file mode 100644 index 000000000..aac66f62a --- /dev/null +++ b/assets/js/f81c1134.6e3278cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8130],{116:n=>{n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"Docker-Getting-Srart-01","metadata":{"permalink":"/blog/Docker-Getting-Srart-01","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md","source":"@site/blog/2021-09-14-Docker-Getting-Srart-01.md","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","description":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002","date":"2021-09-14T00:00:00.000Z","tags":[{"inline":false,"label":"Misc","permalink":"/blog/tags/misc"},{"inline":false,"label":"Linux","permalink":"/blog/tags/linux"},{"inline":false,"label":"Linux","permalink":"/blog/tags/linux"},{"inline":false,"label":"Docker","permalink":"/blog/tags/docker"},{"inline":false,"label":"\u8edf\u4ef6","permalink":"/blog/tags/\u8edf\u4ef6"},{"inline":false,"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],"readingTime":7.345,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"Docker-Getting-Srart-01","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},"unlisted":false,"nextItem":{"title":"First Blog Post","permalink":"/blog/first-blog-post"}},"content":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002\\n- \u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002\\n- \u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002\\n- \u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002\\n\\n# Docker \u7684\u512a\u9ede\\nDocker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002\\n\\n1. \u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002\\n\\n\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a\\n\\n\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002\\n\\n\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002\\n\\n\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002\\n\\n\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002\\n\\n2. \u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002\\n\\nDocker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002\\n\\n3. \u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5\\n\\n# Docker\u5b89\u88dd\\n```\\ncurl -sSL https://get.daocloud.io/docker | sh\\n```\\n\\n# Docker\u5378\u8f09\\n```\\n sudo apt-get remove docker docker-engine docker.io containerd runc\\n```\\n\\n\\n# Docker\u4f7f\u7528\u57fa\u790e\\n## Docker Hello World\\nDocker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002\\n\\n\u8f38\u51faHello world\\n```\\nw0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo \\"Hello world\\"\\nHello world\\n```\\n\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\ndocker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\\n\\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\\n\\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\\n\\n/bin/echo \\"Hello world\\": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\\n```\\n\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo \\"Hello world\\"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002\\n\\n## \u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668\\n\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe\\"\u5c0d\u8a71\\"\u7684\u80fd\u529b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\\nroot@0123ce188bd8:/#\\n```\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\n-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\\n\\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\\n```\\n\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668\\n\\n\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868\\n```\\nroot@0123ce188bd8:/# cat /proc/version\\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\\nroot@0123ce188bd8:/# ls\\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\\nroot@0123ce188bd8:/# \\n```\\n\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002\\n```\\nroot@0123ce188bd8:/# exit\\nexit\\nroot@w0x7ce:~# \\n```\\n\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002\\n\\n## \u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09\\n\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668\\n```\\nw0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c \\"while true; do echo hello world; sleep 1; done\\"\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n```\\n\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 \\"hello world\\"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26\\n\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n\\n\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002\\n\\n\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\nCONTAINER ID IMAGE COMMAND ... \\n5917eac21c36 ubuntu:15.10 \\"/bin/sh -c \'while t\u2026\\" ...\\n```\\n\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a\\n```\\nCONTAINER ID: \u5bb9\u5668 ID\u3002\\n\\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\\n\\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\\n\\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\\n\\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\\n\\n\u72c0\u614b\u67097\u7a2e\uff1a\\n\\ncreated\uff08\u5df2\u5275\u5efa\uff09\\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\\nremoving\uff08\u9077\u79fb\u4e2d\uff09\\npaused\uff08\u66ab\u505c\uff09\\nexited\uff08\u505c\u6b62\uff09\\ndead\uff08\u6b7b\u4ea1\uff09\\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\\\udp\uff09\u3002\\n\\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\\n```\\n\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\\n```\\n```\\nw0x7ce@w0x7ce:~$ docker logs amazing_cori\\n```\\n\\n## \u505c\u6b62\u5bb9\u5668\\n\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:\\n\\n\\n\\n\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\n```\\n\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002\\n\\n\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:\\n```\\nw0x7ce@w0x7ce:~$ docker stop amazing_cori\\n```"},{"id":"first-blog-post","metadata":{"permalink":"/blog/first-blog-post","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md","source":"@site/blog/2019-05-28-first-blog-post.md","title":"First Blog Post","description":"","date":"2019-05-28T00:00:00.000Z","tags":[{"inline":false,"label":"Hola","permalink":"/blog/tags/hola","description":"Hola tag description"},{"inline":false,"label":"Docusaurus","permalink":"/blog/tags/docusaurus","description":"Docusaurus tag description"}],"readingTime":0,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"first-blog-post","title":"First Blog Post","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["hola","docusaurus"]},"unlisted":false,"prevItem":{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/blog/Docker-Getting-Srart-01"}},"content":""}]}}')}}]); \ No newline at end of file diff --git a/assets/js/f9e7e5f4.7c14ad4d.js b/assets/js/f9e7e5f4.7c14ad4d.js new file mode 100644 index 000000000..15ba9b6e6 --- /dev/null +++ b/assets/js/f9e7e5f4.7c14ad4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5524],{7757:e=>{e.exports=JSON.parse('{"tag":{"label":"embedded systems","permalink":"/tags/embedded-systems","allTagsPath":"/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/assets/js/main.3a058c14.js b/assets/js/main.3a058c14.js new file mode 100644 index 000000000..399e77acd --- /dev/null +++ b/assets/js/main.3a058c14.js @@ -0,0 +1,2 @@ +/*! For license information please see main.3a058c14.js.LICENSE.txt */ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9140)),"@theme/BlogTagsListPage",9140],"028cb135":[()=>n.e(1061).then(n.t.bind(n,9755,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-stm-32-6de.json",9755],"05d90159":[()=>n.e(9780).then(n.t.bind(n,1609,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-timer-88d.json",1609],"0b9fe6f3":[()=>n.e(3048).then(n.t.bind(n,9236,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-resource-management-81c.json",9236],"0db954b6":[()=>n.e(6615).then(n.t.bind(n,431,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-interrupts-2b3.json",431],"0e384e19":[()=>n.e(3976).then(n.bind(n,619)),"@site/docs/intro.md",619],"14d3eb87":[()=>n.e(6725).then(n.bind(n,5427)),"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",5427],17896441:[()=>Promise.all([n.e(1869),n.e(1538),n.e(8401)]).then(n.bind(n,2447)),"@theme/DocItem",2447],"18c41134":[()=>n.e(9262).then(n.bind(n,3849)),"@site/docs/tutorial-basics/markdown-features.mdx",3849],"1e4232ab":[()=>n.e(1953).then(n.bind(n,3976)),"@site/docs/tutorial-basics/create-a-document.md",3976],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(1538),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"22dd74f7":[()=>n.e(1567).then(n.t.bind(n,5226,19)),"@generated/docusaurus-plugin-content-docs/default/p/index-466.json",5226],"2b149dc3":[()=>n.e(3225).then(n.t.bind(n,5519,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-cdc-73c.json",5519],"2c06c927":[()=>n.e(3929).then(n.t.bind(n,5535,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-misc-e7a.json",5535],"2c14e4d0":[()=>n.e(6630).then(n.t.bind(n,4589,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-\u6a5f\u5668\u5b78\u7fd2-c03.json",4589],"3217192f":[()=>n.e(8462).then(n.t.bind(n,8174,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-docusaurus-f20.json",8174],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"3720c009":[()=>Promise.all([n.e(1869),n.e(4787)]).then(n.bind(n,2194)),"@theme/DocTagsListPage",2194],"393be207":[()=>n.e(4134).then(n.bind(n,633)),"@site/src/pages/markdown-page.md",633],"395e5342":[()=>n.e(8375).then(n.t.bind(n,5753,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-alarm-f1e.json",5753],"3a2db09e":[()=>n.e(8121).then(n.t.bind(n,8070,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-df9.json",8070],"3ea259e6":[()=>Promise.all([n.e(1869),n.e(7733)]).then(n.bind(n,8154)),"@site/src/pages/index.zh-hk.js",8154],"533a09ca":[()=>n.e(3098).then(n.bind(n,4700)),"@site/docs/tutorial-basics/create-a-blog-post.md",4700],"59af61a6":[()=>n.e(9174).then(n.t.bind(n,5332,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-b9f.json",5332],"5c868d36":[()=>n.e(1974).then(n.bind(n,5254)),"@site/docs/tutorial-basics/create-a-page.md",5254],"5da542a3":[()=>n.e(5732).then(n.t.bind(n,8103,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-linux-f9d.json",8103],"5e28b2f4":[()=>n.e(6221).then(n.bind(n,105)),"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",105],"5e90a9b3":[()=>n.e(8025).then(n.t.bind(n,7134,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-hola-73f.json",7134],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5eeb21e4":[()=>n.e(4816).then(n.t.bind(n,6658,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-serial-communication-b63.json",6658],"60875e34":[()=>n.e(9661).then(n.bind(n,7315)),"@site/docs/tutorial.md",7315],"60f48b9d":[()=>n.e(1850).then(n.bind(n,4277)),"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",4277],62424562:[()=>n.e(4676).then(n.t.bind(n,7481,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-led-control-bae.json",7481],"675103b9":[()=>n.e(3268).then(n.t.bind(n,8783,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-pio-9c9.json",8783],"6875c492":[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"712d17a8":[()=>n.e(7118).then(n.t.bind(n,3628,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-uart-143.json",3628],"810d738c":[()=>n.e(5843).then(n.t.bind(n,2943,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-pwm-8b7.json",2943],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"822bd8ab":[()=>n.e(2748).then(n.bind(n,8611)),"@site/docs/tutorial-basics/congratulations.md",8611],"85e08f6c":[()=>n.e(8210).then(n.bind(n,2392)),"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",2392],"873234d7":[()=>n.e(809).then(n.bind(n,7644)),"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",7644],"8cb1b30d":[()=>n.e(7422).then(n.t.bind(n,5498,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-raspberry-pi-pico-c2c.json",5498],"91a39dd0":[()=>n.e(1814).then(n.t.bind(n,8241,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-docker-eea.json",8241],"925b3f96":[()=>n.e(8609).then(n.bind(n,5026)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",5026],"928b9b77":[()=>n.e(4183).then(n.t.bind(n,3203,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-state-machine-optimization-3e4.json",3203],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],"9fab635f":[()=>n.e(9071).then(n.bind(n,6377)),"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",6377],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(7643)]).then(n.bind(n,5124)),"@theme/BlogListPage",5124],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],abc7995a:[()=>n.e(668).then(n.t.bind(n,7184,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-tags-\u8edf\u4ef6-9cc.json",7184],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],b311d1e8:[()=>n.e(4249).then(n.bind(n,5122)),"@site/blog/2021-09-14-Docker-Getting-Srart-01.md?truncated=true",5122],c15d9823:[()=>n.e(8146).then(n.t.bind(n,9328,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-bd9.json",9328],c2aca3b0:[()=>n.e(1718).then(n.bind(n,5120)),"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",5120],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,192)),"@site/src/pages/index.js",192],ccc49370:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(3249)]).then(n.bind(n,3858)),"@theme/BlogPostPage",3858],d19b9b26:[()=>n.e(8814).then(n.t.bind(n,8192,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-usb-d73.json",8192],db03f91b:[()=>n.e(9716).then(n.t.bind(n,7735,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-rp-2040-592.json",7735],df203c0f:[()=>Promise.all([n.e(1869),n.e(4279)]).then(n.bind(n,5921)),"@theme/DocTagDocListPage",5921],dff1c289:[()=>n.e(1724).then(n.bind(n,8043)),"@site/docs/tutorial-extras/manage-docs-versions.md",8043],e273c56f:[()=>n.e(9328).then(n.bind(n,4014)),"@site/blog/2019-05-28-first-blog-post.md",4014],e2e7a3a0:[()=>n.e(2189).then(n.bind(n,9310)),"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",9310],e44a2883:[()=>n.e(4736).then(n.bind(n,8350)),"@site/docs/tutorial-extras/translate-your-site.md",8350],f55d3e7a:[()=>n.e(8863).then(n.bind(n,745)),"@site/docs/tutorial-basics/deploy-your-site.md",745],f81c1134:[()=>n.e(8130).then(n.t.bind(n,116,19)),"@generated/docusaurus-plugin-content-blog/default/p/blog-archive-f05.json",116],f9e7e5f4:[()=>n.e(5524).then(n.t.bind(n,7757,19)),"@generated/docusaurus-plugin-content-docs/default/p/tags-embedded-systems-be7.json",7757]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const p=[{path:"/blog",component:d("/blog","974"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","182"),exact:!0},{path:"/blog/Docker-Getting-Srart-01",component:d("/blog/Docker-Getting-Srart-01","63b"),exact:!0},{path:"/blog/first-blog-post",component:d("/blog/first-blog-post","89a"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","287"),exact:!0},{path:"/blog/tags/docker",component:d("/blog/tags/docker","476"),exact:!0},{path:"/blog/tags/docusaurus",component:d("/blog/tags/docusaurus","cf7"),exact:!0},{path:"/blog/tags/hola",component:d("/blog/tags/hola","00d"),exact:!0},{path:"/blog/tags/linux",component:d("/blog/tags/linux","d19"),exact:!0},{path:"/blog/tags/misc",component:d("/blog/tags/misc","c94"),exact:!0},{path:"/blog/tags/\u6a5f\u5668\u5b78\u7fd2",component:d("/blog/tags/\u6a5f\u5668\u5b78\u7fd2","63d"),exact:!0},{path:"/blog/tags/\u8edf\u4ef6",component:d("/blog/tags/\u8edf\u4ef6","599"),exact:!0},{path:"/index.zh-hk",component:d("/index.zh-hk","df1"),exact:!0},{path:"/markdown-page",component:d("/markdown-page","3d7"),exact:!0},{path:"/",component:d("/","2e1"),exact:!0},{path:"/",component:d("/","ea1"),routes:[{path:"/",component:d("/","a00"),routes:[{path:"/tags",component:d("/tags","ce1"),exact:!0},{path:"/tags/alarm",component:d("/tags/alarm","4cb"),exact:!0},{path:"/tags/cdc",component:d("/tags/cdc","493"),exact:!0},{path:"/tags/embedded-systems",component:d("/tags/embedded-systems","010"),exact:!0},{path:"/tags/interrupts",component:d("/tags/interrupts","615"),exact:!0},{path:"/tags/led-control",component:d("/tags/led-control","39e"),exact:!0},{path:"/tags/pio",component:d("/tags/pio","492"),exact:!0},{path:"/tags/pwm",component:d("/tags/pwm","c12"),exact:!0},{path:"/tags/raspberry-pi-pico",component:d("/tags/raspberry-pi-pico","341"),exact:!0},{path:"/tags/resource-management",component:d("/tags/resource-management","788"),exact:!0},{path:"/tags/rp-2040",component:d("/tags/rp-2040","016"),exact:!0},{path:"/tags/serial-communication",component:d("/tags/serial-communication","3ac"),exact:!0},{path:"/tags/state-machine-optimization",component:d("/tags/state-machine-optimization","d9b"),exact:!0},{path:"/tags/stm-32",component:d("/tags/stm-32","531"),exact:!0},{path:"/tags/timer",component:d("/tags/timer","578"),exact:!0},{path:"/tags/uart",component:d("/tags/uart","183"),exact:!0},{path:"/tags/usb",component:d("/tags/usb","9f6"),exact:!0},{path:"/",component:d("/","104"),routes:[{path:"/intro",component:d("/intro","914"),exact:!0},{path:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",component:d("/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","cdb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/RP2040/mastering-pio-programming-rp2040",component:d("/micro-controladores/RP2040/mastering-pio-programming-rp2040","b10"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/RP2040/pio-uart-implementation-rp2040",component:d("/micro-controladores/RP2040/pio-uart-implementation-rp2040","51b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",component:d("/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","52c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",component:d("/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","0e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",component:d("/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","2e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",component:d("/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","b8f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorial",component:d("/tutorial","e5f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/tutorial-basics/congratulations",component:d("/tutorial-basics/congratulations","87e"),exact:!0},{path:"/tutorial-basics/create-a-blog-post",component:d("/tutorial-basics/create-a-blog-post","ded"),exact:!0},{path:"/tutorial-basics/create-a-document",component:d("/tutorial-basics/create-a-document","5ad"),exact:!0},{path:"/tutorial-basics/create-a-page",component:d("/tutorial-basics/create-a-page","965"),exact:!0},{path:"/tutorial-basics/deploy-your-site",component:d("/tutorial-basics/deploy-your-site","d03"),exact:!0},{path:"/tutorial-basics/markdown-features",component:d("/tutorial-basics/markdown-features","3fa"),exact:!0},{path:"/tutorial-extras/manage-docs-versions",component:d("/tutorial-extras/manage-docs-versions","aa7"),exact:!0},{path:"/tutorial-extras/translate-your-site",component:d("/tutorial-extras/translate-your-site","b4f"),exact:!0}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(545),i=n(4625),l=n(4784),s=n(8193);const u=[n(119),n(6134),n(6294),n(1043)];var c=n(8328),d=n(6347),p=n(2831),f=n(4848);function m(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var g=n(5260),h=n(4586),b=n(6025),y=n(6342),v=n(1213),w=n(2131),k=n(4090),x=n(2967),S=n(440),E=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,w.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(g.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,d.zy)();return e+(0,S.applyTrailingSlash)((0,b.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(g.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function A(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(g.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(_,{}),(0,f.jsx)(E.A,{tag:x.Cy,locale:e}),(0,f.jsx)(g.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;var j=n(6125),L=n(6988),P=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=u.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const I=D,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,f.jsx)(f.Fragment,{children:!s.A.canUseDOM&&(0,f.jsx)(g.A,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,f.jsx)($,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.A)(),o=(0,b.Ay)(e),{htmlLang:i,direction:l}=a[r];return(0,f.jsxs)(g.A,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:o})]})}var H=n(7489),V=n(2303);function G(){const e=(0,V.A)();return(0,f.jsx)(g.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const W=(0,p.v)(c.A);function Q(){const e=function(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,p.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(I,{location:e,children:W})}function K(){return(0,f.jsx)(H.A,{children:(0,f.jsx)(L.l,{children:(0,f.jsxs)(j.x,{children:[(0,f.jsxs)(m,{children:[(0,f.jsx)(q,{}),(0,f.jsx)(A,{}),(0,f.jsx)(U,{}),(0,f.jsx)(Q,{})]}),(0,f.jsx)(G,{})]})})})}var Y=n(4054);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var X=n(6921);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,p.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),O(e))},re=Object.freeze(ne);function ae(e){let{children:t}=e;return"hash"===l.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const oe=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(o.vd,{children:(0,f.jsx)(ae,{children:(0,f.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(oe)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};O(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"tutorial","docs":[{"id":"intro","path":"/intro"},{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","path":"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/mastering-pio-programming","path":"/micro-controladores/RP2040/mastering-pio-programming-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/pio-uart-implementation","path":"/micro-controladores/RP2040/pio-uart-implementation-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","path":"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","path":"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","path":"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/STM32/stm32_cdc_develop","path":"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","sidebar":"tutorialSidebar"},{"id":"tutorial","path":"/tutorial","sidebar":"tutorialSidebar"},{"id":"tutorial-basics/congratulations","path":"/tutorial-basics/congratulations"},{"id":"tutorial-basics/create-a-blog-post","path":"/tutorial-basics/create-a-blog-post"},{"id":"tutorial-basics/create-a-document","path":"/tutorial-basics/create-a-document"},{"id":"tutorial-basics/create-a-page","path":"/tutorial-basics/create-a-page"},{"id":"tutorial-basics/deploy-your-site","path":"/tutorial-basics/deploy-your-site"},{"id":"tutorial-basics/markdown-features","path":"/tutorial-basics/markdown-features"},{"id":"tutorial-extras/manage-docs-versions","path":"/tutorial-extras/manage-docs-versions"},{"id":"tutorial-extras/translate-your-site","path":"/tutorial-extras/translate-your-site"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/tutorial","label":"Tutorial"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"es","locales":["es","zh-hk","en"],"path":"i18n","currentLocale":"es","localeConfigs":{"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es-ES","calendar":"gregory","path":"es"},"zh-hk":{"label":"\u7e41\u9ad4\u4e2d\u6587","direction":"ltr","htmlLang":"zh-HK","calendar":"gregory","path":"zh-hk"},"en":{"label":"English","direction":"ltr","htmlLang":"en-US","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.4.0"}}}');var u=n(4848);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(5733),s=n(3102),u=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)(p,{children:(0,u.jsxs)(g,{fallback:()=>(0,u.jsx)(c,{error:t,tryAgain:n}),children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:t,tryAgain:n})})]})})}const m=e=>(0,u.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,c.hH)(),E=(0,u.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>_.current));const C=p||f;const A=(0,l.A)(C),T=C?.replace("pathname://","");let j=void 0!==T?(L=T,b&&(e=>e.startsWith("/"))(L)?S(L):L):void 0;var L;"hash"===x&&j?.startsWith("./")&&(j=j?.slice(1)),j&&A&&(j=(0,o.applyTrailingSlash)(j,{trailingSlash:w,baseUrl:k}));const P=(0,r.useRef)(!1),R=n?a.k2:a.N_,N=s.A.canUseIntersectionObserver,O=(0,r.useRef)(),D=()=>{P.current||null==j||(window.docusaurus.preload(j),P.current=!0)};(0,r.useEffect)((()=>(!N&&A&&null!=j&&window.docusaurus.prefetch(j),()=>{N&&O.current&&O.current.disconnect()})),[O,j,N,A]);const I=j?.startsWith("#")??!1,M=!y.target||"_self"===y.target,F=!j||!A||!M;return h||!I&&F||E.collectLink(j),y.id&&E.collectAnchor(y.id),F?(0,d.jsx)("a",{ref:_,href:j,...C&&!A&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(R,{...y,onMouseEnter:D,onTouchStart:D,innerRef:e=>{_.current=e,N&&e&&A&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),O.current.observe(e))},to:j,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),a=n(4848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:a=!1,absolute:i=!1}={},router:l}=e;if(!r||r.startsWith("#")||(0,o.z)(r))return r;if("hash"===l)return r.startsWith("/")?`.${r}`:`./${r}`;if(a)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const s=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+s:s}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:l}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>p,Gy:()=>c,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),a=n(4586),o=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},5733:(e,t,n)=>{"use strict";n.d(t,{A:()=>mt});var r=n(6540),a=n(4164),o=n(7489),i=n(1213),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(g,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),L=n(3104);var P=n(9532),R=n(5600);const N=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(N.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(N);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=I();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.G)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(G,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.A)(a),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,m&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(Z.A,{href:s?f:a,...u,...g}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),le=n(9169),se=n(4586);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.A)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(_e,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),(0,c.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.A)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(_e,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(418);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.A)(n,ye.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,l.zy)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(ve,{className:n,children:(0,c.jsx)(be.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.QB)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,ke.Vd)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),g=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],h=(0,ke.Vd)(n)[0],b=t&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:Se(h).path;return g.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function _e(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ee[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function Ce(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(_e,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(M,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Ce,{}),secondaryMenu:(0,c.jsx)(Te,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Pe,{onClick:i.toggle}),(0,c.jsx)(je,{})]})}var Ne=n(440);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Ne.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Me extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Fe="right";function ze(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Me,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(_e,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function He(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Fe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(qe,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(Be,{}),(0,c.jsx)(Q,{}),(0,c.jsx)(Ue,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Ue,{items:r}),(0,c.jsx)(G,{className:$e.colorModeToggle}),!a&&(0,c.jsx)(ve,{children:(0,c.jsx)(be.A,{})})]})})}function Ve(){return(0,c.jsx)(Re,{children:(0,c.jsx)(He,{})})}function Ge(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.Ay)(n),s=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function We(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(Ge,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(We,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(Ge,{item:t})}function Xe(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Ze,{item:e}),t.length!==n+1&&(0,c.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ke,{columns:t}):(0,c.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(et.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,c.jsx)(nt,{logo:t})}):(0,c.jsx)(nt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(ot,{style:a,links:n&&n.length>0&&(0,c.jsx)(Je,{links:n}),logo:r&&(0,c.jsx)(rt,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const lt=r.memo(it);function st(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(lt,{...e})})}const ut=(0,P.fM)([F.a,k.o,L.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(R.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,c.jsx)(ut,{children:t})}var dt=n(1107);function pt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(dt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(De,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Ie,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,c.jsxs)(ct,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(Ve,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(h.G.wrapper.main,ft.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:e=>(0,c.jsx)(pt,{...e}),children:t})}),!n&&(0,c.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,a.Ay)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:g,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,o.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>u});var r=n(6540),a=n(8193),o=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.A.canUseDOM)return e?c:d}function g(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:a})}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(g,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>g,o:()=>m});var r=n(6540),a=n(2303),o=n(679),i=n(9532),l=n(6342),s=n(4848);const u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(6540),a=n(8193),o=n(9532),i=n(679),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&g(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(u);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(679),c=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,c.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.C5?(0,c.jsx)(h,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>h,C5:()=>p,B5:()=>E,Vd:()=>k,QB:()=>S,fW:()=>x,OF:()=>w,Y:()=>y});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.ys)(e,t),g=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||g(e.items,t))}function b(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||h(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,a.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.v)(i),sidebarName:u,sidebarItems:c}}},1213:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>c,Jx:()=>f});var r=n(6540),a=n(4164),o=n(5260),i=n(6803),l=n(6025),s=n(4586);var u=n(4848);function c(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const c=function(e){const{siteConfig:t}=(0,s.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.hH)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:c}),t&&(0,u.jsx)("meta",{property:"og:title",content:c}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.A)(i,t);return(0,u.jsxs)(d.Provider,{value:l,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:l})}),n]})}function f(e){let{children:t}=e;const n=(0,i.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(p,{className:(0,a.A)(r,o),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>a});n(4586);const r="default";function a(e,t){return`docs-${e}-${t}`}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),a=r.N;function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const a=i(t?.persistence);return null===a?s:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(2566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,n?a(s):o(s));var s;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return a.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return a.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return a.removeTrailingSlash}});var o=n(2566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return o.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return o.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return o.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return o.removePrefix}});var i=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var g=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?h:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var T=m();function j(e){(0,r.A)($,e),$.length=n.length,T.notifyListeners($.location,$.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(v()))}var R=!1;function N(e){if(R)R=!1,j();else{T.confirmTransitionTo(e,"POP",x,(function(t){t?j({action:"POP",location:e}):function(e){var t=$.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(R=!0,M(a))}(e)}))}}var O=C(v()),D=[O.key];function I(e){return _+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(y,P)):0===F&&(window.removeEventListener(b,L),o&&window.removeEventListener(y,P))}var B=!1;var $={length:n.length,action:"POP",location:O,createHref:I,push:function(e,t){var r="PUSH",o=f(e,t,A(),$.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=I(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf($.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,j({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,A(),$.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=I(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf($.location.key);-1!==s&&(D[s]=o.key),j({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=T.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",y=x[u],v=y.encodePath,w=y.decodePath;function C(){var e=w(E());return b&&(e=c(e,b)),f(e)}var A=m();function T(e){(0,r.A)(B,e),B.length=t.length,A.notifyListeners(B.location,B.action)}var j=!1,L=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!j&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(j)j=!1,T();else{var t="POP";A.confirmTransitionTo(e,t,o,(function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(j=!0,I(a))}(e)}))}}(a)}}var R=E(),N=v(R);R!==N&&_(N);var O=C(),D=[p(O)];function I(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,P):0===M&&window.removeEventListener(k,P)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(E()!==a){L=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(B.location)),i=D.slice(0,o+1);i.push(t),D=i,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);E()!==a&&(L=t,_(a));var o=D.indexOf(p(B.location));-1!==o&&(D[o]=t),T({action:n,location:r})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=A.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function A(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function g(){return Math.random().toString(36).substr(2,u)}var h=A(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?g():e.key||g())})),y=p;function v(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[h],index:h,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,g(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,g(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||r&&r[b]||g&&g[b]||l&&l[b])){var y=p(n,b);try{u(t,b,y)}catch(v){}}}}return t}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(8380),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8692},3157:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var y in f(b))if(y in c){p[b]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),a=n(194);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){h[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=h.hasOwnProperty(t)?h[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),A=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),R=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var N=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var I,M=Object.assign;function F(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function $(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case j:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case R:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function V(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=V(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=V(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Z(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function ge(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ge(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Ae(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Te(e,t){return e(t)}function je(){}var Le=!1;function Pe(e,t,n){if(Le)return e(t,n);Le=!0;try{return Te(e,t,n)}finally{Le=!1,(null!==Se||null!==Ee)&&(je(),Ae())}}function Re(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Ne=!1;if(c)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Ne=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ce){Ne=!1}function De(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Ie=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){Ie=!0,Me=e}};function $e(e,t,n,r,a,o,i,l,s){Ie=!1,Me=null,De.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(o(188))}function Ve(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,Qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&!(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&4194240&o))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gt(){var e=ut;return!(4194240&(ut<<=1))&&(ut=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,At=[],Tt=null,jt=null,Lt=null,Pt=new Map,Rt=new Map,Nt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Rt.delete(t.pointerId)}}function It(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Tt&&Ft(Tt)&&(Tt=null),null!==jt&&Ft(jt)&&(jt=null),null!==Lt&&Ft(Lt)&&(Lt=null),Pt.forEach(zt),Rt.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<At.length){$t(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Tt&&$t(Tt,e),null!==jt&&$t(jt,e),null!==Lt&&$t(Lt,e),Pt.forEach(t),Rt.forEach(t),n=0;n<Nt.length;n++)(r=Nt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Nt.length&&null===(n=Nt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Nt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Vt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Gt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Wt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,Qt,n),Dt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Tt=It(Tt,e,t,n,r,a),!0;case"dragenter":return jt=It(jt,e,t,n,r,a),!0;case"mouseover":return Lt=It(Lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pt.set(o,It(Pt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Rt.set(o,It(Rt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,Qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Qt=null;function Kt(e,t,n,r){if(Qt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=M({},un,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=an(fn),gn=an(M({},fn,{dataTransfer:0})),hn=an(M({},dn,{relatedTarget:0})),bn=an(M({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=M({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(M({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=an(Cn),Tn=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=an(M({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Rn=an(Pn),Nn=[9,13,27,32],On=c&&"CompositionEvent"in window,Dn=null;c&&"documentMode"in document&&(Dn=document.documentMode);var In=c&&"TextEvent"in window&&!Dn,Mn=c&&(!On||Dn&&8<Dn&&11>=Dn),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ce(r),0<(t=Gr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Wn=null;function Qn(e){Fr(e,0)}function Kn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Gn&&(Gn.detachEvent("onpropertychange",nr),Wn=Gn=null)}function nr(e){if("value"===e.propertyName&&Kn(Wn)){var t=[];Vn(t,Wn,e,ke(e)),Pe(Qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Gn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Wn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var gr=c&&"documentMode"in document&&11>=document.documentMode,hr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==hr||hr!==Q(r)||("selectionStart"in(r=hr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&sr(yr,r)||(yr=r,0<(r=Gr(br,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Ar=_r("animationiteration"),Tr=_r("animationstart"),jr=_r("transitionend"),Lr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rr(e,t){Lr.set(e,t),s(t,[e])}for(var Nr=0;Nr<Pr.length;Nr++){var Or=Pr[Nr];Rr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Rr(Cr,"onAnimationEnd"),Rr(Ar,"onAnimationIteration"),Rr(Tr,"onAnimationStart"),Rr("dblclick","onDoubleClick"),Rr("focusin","onFocus"),Rr("focusout","onBlur"),Rr(jr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if($e.apply(this,arguments),Ie){if(!Ie)throw Error(o(198));var c=Me;Ie=!1,Me=null,Fe||(Fe=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ga];void 0===n&&(n=t[ga]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Ir.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Vt;break;case 4:a=Gt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Ne||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ya(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Pe((function(){var r=o,a=ke(n),i=[];e:{var l=Lr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=An;break;case"focusin":u="focus",s=hn;break;case"focusout":u="blur",s=hn;break;case"beforeblur":case"afterblur":s=hn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=jn;break;case Cr:case Ar:case Tr:s=bn;break;case jr:s=Ln;break;case"scroll":s=pn;break;case"wheel":s=Rn;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Tn}var c=!!(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var g=(f=m).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&(null!=(g=Re(m,p))&&c.push(Vr(m,g,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(!(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ya(u)&&!u[ma])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ya(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=mn,g="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,g="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:wa(s),f=null==u?l:wa(u),(l=new c(g,m+"leave",s,n,a)).target=d,l.relatedTarget=f,g=null,ya(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,g=c),d=g,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Wr(f))m++;for(f=0,g=p;g;g=Wr(g))f++;for(;0<m-f;)c=Wr(c),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Wr(c),p=Wr(p)}c=null}else c=null;null!==s&&Qr(i,l,s,c,!1),null!==u&&null!==d&&Qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var h=Yn;else if(Hn(l))if(Zn)h=ir;else{h=ar;var b=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(h=or);switch(h&&(h=h(e,r))?Vn(i,h,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ee(l,"number",l.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(hr=b,br=r,yr=null);break;case"focusout":yr=br=hr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(gr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Zt=a)?Zt.value:Zt.textContent,Un=!0)),0<(b=Gr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=In?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Zt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Fr(i,t)}))}function Vr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Re(e,n))&&r.unshift(Vr(e,o,a)),null!=(o=Re(e,t))&&r.push(Vr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Re(n,o))&&i.unshift(Vr(n,s,l)):a||null!=(s=Re(n,o))&&i.push(Vr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ga="__reactEvents$"+da,ha="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[pa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Aa={},Ta=Ea(Aa),ja=Ea(!1),La=Aa;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Aa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ra(e){return null!=(e=e.childContextTypes)}function Na(){_a(ja),_a(Ta)}function Oa(e,t,n){if(Ta.current!==Aa)throw Error(o(168));Ca(Ta,t),Ca(ja,n)}function Da(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Ia(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Aa,La=Ta.current,Ca(Ta,e),Ca(ja,ja.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Da(e,t,La),r.__reactInternalMemoizedMergedChildContext=e,_a(ja),_a(Ta),Ca(Ta,e)):_a(ja),Ca(ja,n)}var Fa=null,za=!1,Ba=!1;function $a(e){null===Fa?Fa=[e]:Fa.push(e)}function Ua(){if(!Ba&&null!==Fa){Ba=!0;var e=0,t=vt;try{var n=Fa;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,za=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var qa=[],Ha=0,Va=null,Ga=0,Wa=[],Qa=0,Ka=null,Ya=1,Za="";function Xa(e,t){qa[Ha++]=Ga,qa[Ha++]=Va,Va=e,Ga=t}function Ja(e,t,n){Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ka=e;var r=Ya;e=Za;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Za=o+e}else Ya=1<<o|n<<a|r,Za=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Va;)Va=qa[--Ha],qa[Ha]=null,Ga=qa[--Ha],qa[Ha]=null;for(;e===Ka;)Ka=Wa[--Qa],Wa[Qa]=null,Za=Wa[--Qa],Wa[Qa]=null,Ya=Wa[--Qa],Wa[Qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Pu(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pu(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return!(!(1&e.mode)||128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ua(e.nextSibling)}function mo(){ro=no=null,ao=!1}function go(e){null===oo?oo=[e]:oo.push(e)}var ho=w.ReactCurrentBatchConfig;function bo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function yo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function vo(e){return(0,e._init)(e._payload)}function wo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Nu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===R&&vo(o)===t.type)?((r=a(t,n.props)).ref=bo(e,t,n),r.return=e,r):((r=Ou(n.type,n.key,n.props,null,e.mode,r)).ref=bo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Fu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Du(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ou(t.type,t.key,t.props,null,e.mode,n)).ref=bo(e,null,t),n.return=e,n;case x:return(t=Fu(t,e.mode,n)).return=e,t;case R:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Du(t,e.mode,n,null)).return=e,t;yo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?u(e,t,n,r):null;case x:return n.key===a?c(e,t,n,r):null;case R:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||D(n))return null!==a?null:d(e,t,n,r,null);yo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case R:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,a,null);yo(t,r)}return null}function g(a,o,l,s){for(var u=null,c=null,d=o,g=o=0,h=null;null!==d&&g<l.length;g++){d.index>g?(h=d,d=null):h=d.sibling;var b=f(a,d,l[g],s);if(null===b){null===d&&(d=h);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,g),null===c?u=b:c.sibling=b,c=b,d=h}if(g===l.length)return n(a,d),ao&&Xa(a,g),u;if(null===d){for(;g<l.length;g++)null!==(d=p(a,l[g],s))&&(o=i(d,o,g),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,g),u}for(d=r(a,d);g<l.length;g++)null!==(h=m(d,a,g,l[g],s))&&(e&&null!==h.alternate&&d.delete(null===h.key?g:h.key),o=i(h,o,g),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),u}function h(a,l,s,u){var c=D(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,g=l,h=l=0,b=null,y=s.next();null!==g&&!y.done;h++,y=s.next()){g.index>h?(b=g,g=null):b=g.sibling;var v=f(a,g,y.value,u);if(null===v){null===g&&(g=b);break}e&&g&&null===v.alternate&&t(a,g),l=i(v,l,h),null===d?c=v:d.sibling=v,d=v,g=b}if(y.done)return n(a,g),ao&&Xa(a,h),c;if(null===g){for(;!y.done;h++,y=s.next())null!==(y=p(a,y.value,u))&&(l=i(y,l,h),null===d?c=y:d.sibling=y,d=y);return ao&&Xa(a,h),c}for(g=r(a,g);!y.done;h++,y=s.next())null!==(y=m(g,a,h,y.value,u))&&(e&&null!==y.alternate&&g.delete(null===y.key?h:y.key),l=i(y,l,h),null===d?c=y:d.sibling=y,d=y);return e&&g.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===R&&vo(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=bo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Du(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=Ou(i.type,i.key,i.props,null,r.mode,s)).ref=bo(r,o,i),s.return=r,r=s)}return l(r);case x:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Fu(i,r.mode,s)).return=r,r=o}return l(r);case R:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return g(r,o,i,s);if(D(i))return h(r,o,i,s);yo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Mu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var ko=wo(!0),xo=wo(!1),So=Ea(null),Eo=null,_o=null,Co=null;function Ao(){Co=_o=Eo=null}function To(e){var t=So.current;_a(So),e._currentValue=t}function jo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Lo(e,t){Eo=e,Co=_o=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(vl=!0),e.firstContext=null)}function Po(e){var t=e._currentValue;if(Co!==e)if(e={context:e,memoizedValue:t,next:null},null===_o){if(null===Eo)throw Error(o(308));_o=e,Eo.dependencies={lanes:0,firstContext:e}}else _o=_o.next=e;return t}var Ro=null;function No(e){null===Ro?Ro=[e]:Ro.push(e)}function Oo(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,No(t)):(n.next=a.next,a.next=n),t.interleaved=n,Do(e,r)}function Do(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Io=!1;function Mo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function zo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Bo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Ts){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Do(e,n)}return null===(a=r.interleaved)?(t.next=t,No(r)):(t.next=a.next,a.next=t),r.interleaved=t,Do(e,n)}function $o(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Uo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function qo(e,t,n,r){var a=e.updateQueue;Io=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,g=l;switch(p=t,f=n,g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=g.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Io=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=f,s=d):c=c.next=f,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Is|=i,e.lanes=i,e.memoizedState=d}}function Ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Vo={},Go=Ea(Vo),Wo=Ea(Vo),Qo=Ea(Vo);function Ko(e){if(e===Vo)throw Error(o(174));return e}function Yo(e,t){switch(Ca(Qo,t),Ca(Wo,e),Ca(Go,Vo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(Go),Ca(Go,t)}function Zo(){_a(Go),_a(Wo),_a(Qo)}function Xo(e){Ko(Qo.current);var t=Ko(Go.current),n=se(t,e.type);t!==n&&(Ca(Wo,e),Ca(Go,n))}function Jo(e){Wo.current===e&&(_a(Go),_a(Wo))}var ei=Ea(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var ai=w.ReactCurrentDispatcher,oi=w.ReactCurrentBatchConfig,ii=0,li=null,si=null,ui=null,ci=!1,di=!1,pi=0,fi=0;function mi(){throw Error(o(321))}function gi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function hi(e,t,n,r,a,i){if(ii=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ai.current=null===e||null===e.memoizedState?Ji:el,e=n(r,a),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(o(301));i+=1,ui=si=null,t.updateQueue=null,ai.current=tl,e=n(r,a)}while(di)}if(ai.current=Xi,t=null!==si&&null!==si.next,ii=0,ui=si=li=null,ci=!1,t)throw Error(o(300));return e}function bi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ui?li.memoizedState=ui=e:ui=ui.next=e,ui}function vi(){if(null===si){var e=li.alternate;e=null!==e?e.memoizedState:null}else e=si.next;var t=null===ui?li.memoizedState:ui.next;if(null!==t)ui=t,si=e;else{if(null===e)throw Error(o(310));e={memoizedState:(si=e).memoizedState,baseState:si.baseState,baseQueue:si.baseQueue,queue:si.queue,next:null},null===ui?li.memoizedState=ui=e:ui=ui.next=e}return ui}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=si,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((ii&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=p,l=r):u=u.next=p,li.lanes|=d,Is|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(vl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,li.lanes|=i,Is|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xi(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(vl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function Ei(e,t){var n=li,r=vi(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,vl=!0),r=r.queue,Ii(Ai.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ui&&1&ui.memoizedState.tag){if(n.flags|=2048,Pi(9,Ci.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));30&ii||_i(n,t,a)}return a}function _i(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ci(e,t,n,r){t.value=n,t.getSnapshot=r,Ti(t)&&ji(e)}function Ai(e,t,n){return n((function(){Ti(t)&&ji(e)}))}function Ti(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function ji(e){var t=Do(e,1);null!==t&&nu(t,e,1,-1)}function Li(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Qi.bind(null,li,e),[t.memoizedState,e]}function Pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ri(){return vi().memoizedState}function Ni(e,t,n,r){var a=yi();li.flags|=e,a.memoizedState=Pi(1|t,n,void 0,void 0===r?null:r)}function Oi(e,t,n,r){var a=vi();r=void 0===r?null:r;var o=void 0;if(null!==si){var i=si.memoizedState;if(o=i.destroy,null!==r&&gi(r,i.deps))return void(a.memoizedState=Pi(t,n,o,r))}li.flags|=e,a.memoizedState=Pi(1|t,n,o,r)}function Di(e,t){return Ni(8390656,8,e,t)}function Ii(e,t){return Oi(2048,8,e,t)}function Mi(e,t){return Oi(4,2,e,t)}function Fi(e,t){return Oi(4,4,e,t)}function zi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Bi(e,t,n){return n=null!=n?n.concat([e]):null,Oi(4,4,zi.bind(null,t,e),n)}function $i(){}function Ui(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(lr(n,t)||(n=gt(),li.lanes|=n,Is|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vl=!0),e.memoizedState=n)}function Vi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=oi.transition;oi.transition={};try{e(!1),t()}finally{vt=n,oi.transition=r}}function Gi(){return vi().memoizedState}function Wi(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=Oo(e,t,n,r))){nu(n,e,r,eu()),Zi(n,t,r)}}function Qi(e,t,n){var r=tu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ki(e))Yi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,No(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=Oo(e,t,a,r))&&(nu(n,e,r,a=eu()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===li||null!==t&&t===li}function Yi(e,t){di=ci=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Xi={readContext:Po,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Ji={readContext:Po,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Po,useEffect:Di,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ni(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ni(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ni(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Li,useDebugValue:$i,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Li(!1),t=e[0];return e=Vi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=li,a=yi();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));30&ii||_i(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Di(Ai.bind(null,r,i,e),[e]),r.flags|=2048,Pi(9,Ci.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=js.identifierPrefix;if(ao){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:ki,useRef:Ri,useState:function(){return ki(wi)},useDebugValue:$i,useDeferredValue:function(e){return Hi(vi(),si.memoizedState,e)},useTransition:function(){return[ki(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Gi,unstable_isNewReconciler:!1},tl={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:xi,useRef:Ri,useState:function(){return xi(wi)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===si?t.memoizedState=e:Hi(t,si.memoizedState,e)},useTransition:function(){return[xi(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Gi,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var al={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=eu(),r=tu(e),a=zo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Bo(e,a,r))&&(nu(t,e,r,n),$o(t,e,r))}};function ol(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function il(e,t,n){var r=!1,a=Aa,o=t.contextType;return"object"==typeof o&&null!==o?o=Po(o):(a=Ra(t)?La:Ta.current,o=(r=null!=(r=t.contextTypes))?Pa(e,a):Aa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=al,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ll(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&al.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},Mo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Po(o):(o=Ra(t)?La:Ta.current,a.context=Pa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(rl(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&al.enqueueReplaceState(a,a.state,null),qo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function ul(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function cl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=zo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Vs=r),dl(0,t)},n}function ml(e,t,n){(n=zo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){dl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Gs?Gs=new Set([this]):Gs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=_u.bind(null,e,t,n),t.then(e,e))}function hl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,a){return 1&e.mode?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=zo(-1,1)).tag=2,Bo(n,t,1))),n.lanes|=1),e)}var yl=w.ReactCurrentOwner,vl=!1;function wl(e,t,n,r){t.child=null===e?xo(t,null,n,r):ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return Lo(t,a),r=hi(e,t,n,r,o,a),n=bi(),null===e||vl?(ao&&n&&eo(t),t.flags|=1,wl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function xl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Ru(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ou(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Sl(e,t,o,r,a))}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,a)}return t.flags|=1,(e=Nu(o,r)).ref=t.ref,e.return=t,t.child=e}function Sl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(vl=!1,t.pendingProps=r=o,!(e.lanes&a))return t.lanes=e.lanes,Hl(e,t,a);131072&e.flags&&(vl=!0)}}return Cl(e,t,n,r,a)}function El(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ns,Rs),Rs|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ns,Rs),Rs|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ns,Rs),Rs|=n;else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ns,Rs),Rs|=r;return wl(e,t,a,n),t.child}function _l(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cl(e,t,n,r,a){var o=Ra(n)?La:Ta.current;return o=Pa(t,o),Lo(t,a),n=hi(e,t,n,r,o,a),r=bi(),null===e||vl?(ao&&r&&eo(t),t.flags|=1,wl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Al(e,t,n,r,a){if(Ra(n)){var o=!0;Ia(t)}else o=!1;if(Lo(t,a),null===t.stateNode)ql(e,t),il(t,n,r),sl(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Po(u):u=Pa(t,u=Ra(n)?La:Ta.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ll(t,i,r,u),Io=!1;var p=t.memoizedState;i.state=p,qo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||ja.current||Io?("function"==typeof c&&(rl(t,n,c,r),s=t.memoizedState),(l=Io||ol(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Fo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:nl(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Po(s):s=Pa(t,s=Ra(n)?La:Ta.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,i,r,s),Io=!1,p=t.memoizedState,i.state=p,qo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||ja.current||Io?("function"==typeof f&&(rl(t,n,f,r),m=t.memoizedState),(u=Io||ol(t,n,u,r,p,m,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Tl(e,t,n,r,o,a)}function Tl(e,t,n,r,a,o){_l(e,t);var i=!!(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Hl(e,t,o);r=t.stateNode,yl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ko(t,e.child,null,o),t.child=ko(t,null,l,o)):wl(e,t,l,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),Yo(e,t.containerInfo)}function Ll(e,t,n,r,a){return mo(),go(a),t.flags|=256,wl(e,t,n,r),t.child}var Pl,Rl,Nl,Ol,Dl={dehydrated:null,treeContext:null,retryLane:0};function Il(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,a=t.pendingProps,i=ei.current,l=!1,s=!!(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(ei,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},1&a||null===l?l=Iu(s,a,0,null):(l.childLanes=0,l.pendingProps=s),e=Du(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Il(n),t.memoizedState=Dl,e):Fl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,zl(e,t,l,r=cl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Iu({mode:"visible",children:r.children},a,0,null),(i=Du(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ko(t,e.child,null,l),t.child.memoizedState=Il(l),t.memoizedState=Dl,i);if(!(1&t.mode))return zl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,zl(e,t,l,r=cl(i=Error(o(419)),r,void 0))}if(s=!!(l&e.childLanes),vl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=a&(r.suspendedLanes|l)?0:a)&&a!==i.retryLane&&(i.retryLane=a,Do(e,a),nu(r,e,a,-1))}return gu(),zl(e,t,l,r=cl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Au.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ya=e.id,Za=e.overflow,Ka=t),t=Fl(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 1&s||t.child===i?(a=Nu(i,u)).subtreeFlags=14680064&i.subtreeFlags:((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null),null!==r?l=Nu(r,l):(l=Du(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Il(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Dl,a}return e=(l=e.child).sibling,a=Nu(l,{mode:"visible",children:a.children}),!(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Fl(e,t){return(t=Iu({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zl(e,t,n,r){return null!==r&&go(r),ko(t,e.child,null,n),(e=Fl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),jo(e.return,t,n)}function $l(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ul(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(wl(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bl(e,n,t);else if(19===e.tag)Bl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(ei,r),1&t.mode)switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),$l(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ti(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}$l(t,!0,n,null,o);break;case"together":$l(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function ql(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Is|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Nu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Vl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Gl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gl(t),null;case 1:case 17:return Ra(t.type)&&Na(),Gl(t),null;case 3:return r=t.stateNode,Zo(),_a(ja),_a(Ta),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==oo&&(iu(oo),oo=null))),Rl(e,t),Gl(t),null;case 5:Jo(t);var a=Ko(Qo.current);if(n=t.type,null!==e&&null!=t.stateNode)Nl(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Gl(t),null}if(e=Ko(Go.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=!!(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Dr.length;a++)zr(Dr[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var s in ye(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":G(r),J(r,i,!0);break;case"textarea":G(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[pa]=t,e[fa]=r,Pl(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Dr.length;a++)zr(Dr[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in ye(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?he(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&pe(e,c):"number"==typeof c&&pe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":G(e),J(e,r,!1);break;case"textarea":G(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Gl(t),null;case 6:if(e&&null!=t.stateNode)Ol(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=Ko(Qo.current),Ko(Go.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Gl(t),null;case 13:if(_a(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&1&t.mode&&!(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Gl(t),i=!1}else null!==oo&&(iu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Os&&(Os=3):gu())),null!==t.updateQueue&&(t.flags|=4),Gl(t),null);case 4:return Zo(),Rl(e,t),null===e&&Ur(t.stateNode.containerInfo),Gl(t),null;case 10:return To(t.type._context),Gl(t),null;case 19:if(_a(ei),null===(i=t.memoizedState))return Gl(t),null;if(r=!!(128&t.flags),null===(s=i.rendering))if(r)Vl(i,!1);else{if(0!==Os||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(s=ti(e))){for(t.flags|=128,Vl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>Us&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Vl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Gl(t),null}else 2*Ze()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,Ca(ei,r?1&n|2:1&n),t):(Gl(t),null);case 22:case 23:return du(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Rs)&&(Gl(t),6&t.subtreeFlags&&(t.flags|=8192)):Gl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ql(e,t){switch(to(t),t.tag){case 1:return Ra(t.type)&&Na(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Zo(),_a(ja),_a(Ta),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Jo(t),null;case 13:if(_a(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(ei),null;case 4:return Zo(),null;case 10:return To(t.type._context),null;case 22:case 23:return du(),null;default:return null}}Pl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Rl=function(){},Nl=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ko(Go.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in ye(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Ol=function(e,t,n,r){n!==r&&(t.flags|=4)};var Kl=!1,Yl=!1,Zl="function"==typeof WeakSet?WeakSet:Set,Xl=null;function Jl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Eu(e,t,r)}else n.current=null}function es(e,t,n){try{n()}catch(r){Eu(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&es(t,n,o)}a=a.next}while(a!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function as(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function os(e){var t=e.alternate;null!==t&&(e.alternate=null,os(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ga],delete t[ha],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function is(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||is(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var cs=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Yl||Jl(n,t);case 6:var r=cs,a=ds;cs=null,ps(e,t,n),ds=a,null!==(cs=r)&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cs.removeChild(n.stateNode));break;case 18:null!==cs&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),Ut(e)):sa(cs,n.stateNode));break;case 4:r=cs,a=ds,cs=n.stateNode.containerInfo,ds=!0,ps(e,t,n),cs=r,ds=a;break;case 0:case 11:case 14:case 15:if(!Yl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(2&o||4&o)&&es(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Yl&&(Jl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Eu(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Yl=(r=Yl)||null!==n.memoizedState,ps(e,t,n),Yl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zl),t.forEach((function(t){var r=Tu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:cs=s.stateNode,ds=!1;break e;case 3:case 4:cs=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===cs)throw Error(o(160));fs(i,l,a),cs=null,ds=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){Eu(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)hs(t,e),t=t.sibling}function hs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gs(t,e),bs(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(h){Eu(e,e.return,h)}try{ns(5,e,e.return)}catch(h){Eu(e,e.return,h)}}break;case 1:gs(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return);break;case 5:if(gs(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(h){Eu(e,e.return,h)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&Z(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],p=u[l+1];"style"===d?he(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(h){Eu(e,e.return,h)}}break;case 6:if(gs(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(h){Eu(e,e.return,h)}}break;case 3:if(gs(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(h){Eu(e,e.return,h)}break;case 4:default:gs(t,e),bs(e);break;case 13:gs(t,e),bs(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||($s=Ze())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Yl=(c=Yl)||d,gs(t,e),Yl=c):gs(t,e),bs(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&1&e.mode)for(Xl=e,d=e.child;null!==d;){for(p=Xl=d;null!==Xl;){switch(m=(f=Xl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Jl(f,f.return);var g=f.stateNode;if("function"==typeof g.componentWillUnmount){r=f,n=f.return;try{t=r,g.props=t.memoizedProps,g.state=t.memoizedState,g.componentWillUnmount()}catch(h){Eu(r,n,h)}}break;case 5:Jl(f,f.return);break;case 22:if(null!==f.memoizedState){ks(p);continue}}null!==m?(m.return=f,Xl=m):ks(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=p.stateNode,l=null!=(u=p.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=ge("display",l))}catch(h){Eu(e,e.return,h)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=c?"":p.memoizedProps}catch(h){Eu(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gs(t,e),bs(e),4&r&&ms(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(is(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),us(e,ls(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;ss(e,ls(e),i);break;default:throw Error(o(161))}}catch(l){Eu(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function ys(e,t,n){Xl=e,vs(e,t,n)}function vs(e,t,n){for(var r=!!(1&e.mode);null!==Xl;){var a=Xl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Kl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Yl;l=Kl;var u=Yl;if(Kl=i,(Yl=s)&&!u)for(Xl=a;null!==Xl;)s=(i=Xl).child,22===i.tag&&null!==i.memoizedState?xs(a):null!==s?(s.return=i,Xl=s):xs(a);for(;null!==o;)Xl=o,vs(o,t,n),o=o.sibling;Xl=a,Kl=l,Yl=u}ws(e)}else 8772&a.subtreeFlags&&null!==o?(o.return=a,Xl=o):ws(e)}}function ws(e){for(;null!==Xl;){var t=Xl;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Yl||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Yl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ho(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ho(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Yl||512&t.flags&&as(t)}catch(f){Eu(t,t.return,f)}}if(t===e){Xl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xl=n;break}Xl=t.return}}function ks(e){for(;null!==Xl;){var t=Xl;if(t===e){Xl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xl=n;break}Xl=t.return}}function xs(e){for(;null!==Xl;){var t=Xl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){Eu(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){Eu(t,a,s)}}var o=t.return;try{as(t)}catch(s){Eu(t,o,s)}break;case 5:var i=t.return;try{as(t)}catch(s){Eu(t,i,s)}}}catch(s){Eu(t,t.return,s)}if(t===e){Xl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Xl=l;break}Xl=t.return}}var Ss,Es=Math.ceil,_s=w.ReactCurrentDispatcher,Cs=w.ReactCurrentOwner,As=w.ReactCurrentBatchConfig,Ts=0,js=null,Ls=null,Ps=0,Rs=0,Ns=Ea(0),Os=0,Ds=null,Is=0,Ms=0,Fs=0,zs=null,Bs=null,$s=0,Us=1/0,qs=null,Hs=!1,Vs=null,Gs=null,Ws=!1,Qs=null,Ks=0,Ys=0,Zs=null,Xs=-1,Js=0;function eu(){return 6&Ts?Ze():-1!==Xs?Xs:Xs=Ze()}function tu(e){return 1&e.mode?2&Ts&&0!==Ps?Ps&-Ps:null!==ho.transition?(0===Js&&(Js=gt()),Js):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nu(e,t,n,r){if(50<Ys)throw Ys=0,Zs=null,Error(o(185));bt(e,n,r),2&Ts&&e===js||(e===js&&(!(2&Ts)&&(Ms|=n),4===Os&&lu(e,Ps)),ru(e,r),1===n&&0===Ts&&!(1&t.mode)&&(Us=Ze()+500,za&&Ua()))}function ru(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?l&n&&!(l&r)||(a[i]=ft(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=pt(e,e===js?Ps:0);if(0===r)null!==n&&Qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Qe(n),1===t)0===e.tag?function(e){za=!0,$a(e)}(su.bind(null,e)):$a(su.bind(null,e)),ia((function(){!(6&Ts)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,au.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function au(e,t){if(Xs=-1,Js=0,6&Ts)throw Error(o(327));var n=e.callbackNode;if(xu()&&e.callbackNode!==n)return null;var r=pt(e,e===js?Ps:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=hu(e,r);else{t=r;var a=Ts;Ts|=2;var i=mu();for(js===e&&Ps===t||(qs=null,Us=Ze()+500,pu(e,t));;)try{yu();break}catch(s){fu(e,s)}Ao(),_s.current=i,Ts=a,null!==Ls?t=0:(js=null,Ps=0,t=Os)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ou(e,a))),1===t)throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;if(6===t)lu(e,r);else{if(a=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)||(t=hu(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ou(e,i))),1!==t)))throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,Bs,qs);break;case 3:if(lu(e,r),(130023424&r)===r&&10<(t=$s+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){eu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),t);break}ku(e,Bs,qs);break;case 4:if(lu(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),r);break}ku(e,Bs,qs);break;default:throw Error(o(329))}}}return ru(e,Ze()),e.callbackNode===n?au.bind(null,e):null}function ou(e,t){var n=zs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=hu(e,t))&&(t=Bs,Bs=n,null!==t&&iu(t)),e}function iu(e){null===Bs?Bs=e:Bs.push.apply(Bs,e)}function lu(e,t){for(t&=~Fs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function su(e){if(6&Ts)throw Error(o(327));xu();var t=pt(e,0);if(!(1&t))return ru(e,Ze()),null;var n=hu(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ou(e,r))}if(1===n)throw n=Ds,pu(e,0),lu(e,t),ru(e,Ze()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,Bs,qs),ru(e,Ze()),null}function uu(e,t){var n=Ts;Ts|=1;try{return e(t)}finally{0===(Ts=n)&&(Us=Ze()+500,za&&Ua())}}function cu(e){null!==Qs&&0===Qs.tag&&!(6&Ts)&&xu();var t=Ts;Ts|=1;var n=As.transition,r=vt;try{if(As.transition=null,vt=1,e)return e()}finally{vt=r,As.transition=n,!(6&(Ts=t))&&Ua()}}function du(){Rs=Ns.current,_a(Ns)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ls)for(n=Ls.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Na();break;case 3:Zo(),_a(ja),_a(Ta),ri();break;case 5:Jo(r);break;case 4:Zo();break;case 13:case 19:_a(ei);break;case 10:To(r.type._context);break;case 22:case 23:du()}n=n.return}if(js=e,Ls=e=Nu(e.current,null),Ps=Rs=t,Os=0,Ds=null,Fs=Ms=Is=0,Bs=zs=null,null!==Ro){for(t=0;t<Ro.length;t++)if(null!==(r=(n=Ro[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}Ro=null}return e}function fu(e,t){for(;;){var n=Ls;try{if(Ao(),ai.current=Xi,ci){for(var r=li.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ci=!1}if(ii=0,ui=si=li=null,di=!1,pi=0,Cs.current=null,null===n||null===n.return){Os=1,Ds=t,Ls=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=Ps,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=hl(l);if(null!==m){m.flags&=-257,bl(m,l,s,0,t),1&m.mode&&gl(i,c,t),u=c;var g=(t=m).updateQueue;if(null===g){var h=new Set;h.add(u),t.updateQueue=h}else g.add(u);break e}if(!(1&t)){gl(i,c,t),gu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var b=hl(l);if(null!==b){!(65536&b.flags)&&(b.flags|=256),bl(b,l,s,0,t),go(ul(u,s));break e}}i=u=ul(u,s),4!==Os&&(Os=2),null===zs?zs=[i]:zs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,fl(0,u,t));break e;case 1:s=u;var y=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof y.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Gs&&Gs.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}wu(n)}catch(w){t=w,Ls===n&&null!==n&&(Ls=n=n.return);continue}break}}function mu(){var e=_s.current;return _s.current=Xi,null===e?Xi:e}function gu(){0!==Os&&3!==Os&&2!==Os||(Os=4),null===js||!(268435455&Is)&&!(268435455&Ms)||lu(js,Ps)}function hu(e,t){var n=Ts;Ts|=2;var r=mu();for(js===e&&Ps===t||(qs=null,pu(e,t));;)try{bu();break}catch(a){fu(e,a)}if(Ao(),Ts=n,_s.current=r,null!==Ls)throw Error(o(261));return js=null,Ps=0,Os}function bu(){for(;null!==Ls;)vu(Ls)}function yu(){for(;null!==Ls&&!Ke();)vu(Ls)}function vu(e){var t=Ss(e.alternate,e,Rs);e.memoizedProps=e.pendingProps,null===t?wu(e):Ls=t,Cs.current=null}function wu(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ql(n,t)))return n.flags&=32767,void(Ls=n);if(null===e)return Os=6,void(Ls=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Wl(n,t,Rs)))return void(Ls=n);if(null!==(t=t.sibling))return void(Ls=t);Ls=t=e}while(null!==t);0===Os&&(Os=5)}function ku(e,t,n){var r=vt,a=As.transition;try{As.transition=null,vt=1,function(e,t,n,r){do{xu()}while(null!==Qs);if(6&Ts)throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ls=js=null,Ps=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Ws||(Ws=!0,ju(tt,(function(){return xu(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=As.transition,As.transition=null;var l=vt;vt=1;var s=Ts;Ts|=4,Cs.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(s=l+a),p!==i||0!==r&&3!==p.nodeType||(u=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++c===a&&(s=l),f===i&&++d===r&&(u=l),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Xl=t;null!==Xl;)if(e=(t=Xl).child,1028&t.subtreeFlags&&null!==e)e.return=t,Xl=e;else for(;null!==Xl;){t=Xl;try{var g=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==g){var h=g.memoizedProps,b=g.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?h:nl(t.type,h),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Eu(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Xl=e;break}Xl=t.return}g=ts,ts=!1}(e,n),hs(n,e),mr(ta),Ht=!!ea,ta=ea=null,e.current=n,ys(n,e,a),Ye(),Ts=s,vt=l,As.transition=i}else e.current=n;if(Ws&&(Ws=!1,Qs=e,Ks=a),i=e.pendingLanes,0===i&&(Gs=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),ru(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hs)throw Hs=!1,e=Vs,Vs=null,e;!!(1&Ks)&&0!==e.tag&&xu(),i=e.pendingLanes,1&i?e===Zs?Ys++:(Ys=0,Zs=e):Ys=0,Ua()}(e,t,n,r)}finally{As.transition=a,vt=r}return null}function xu(){if(null!==Qs){var e=wt(Ks),t=As.transition,n=vt;try{if(As.transition=null,vt=16>e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ks=0,6&Ts)throw Error(o(331));var a=Ts;for(Ts|=4,Xl=e.current;null!==Xl;){var i=Xl,l=i.child;if(16&Xl.flags){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Xl=c;null!==Xl;){var d=Xl;switch(d.tag){case 0:case 11:case 15:ns(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xl=p;else for(;null!==Xl;){var f=(d=Xl).sibling,m=d.return;if(os(d),d===c){Xl=null;break}if(null!==f){f.return=m,Xl=f;break}Xl=m}}}var g=i.alternate;if(null!==g){var h=g.child;if(null!==h){g.child=null;do{var b=h.sibling;h.sibling=null,h=b}while(null!==h)}}Xl=i}}if(2064&i.subtreeFlags&&null!==l)l.return=i,Xl=l;else e:for(;null!==Xl;){if(2048&(i=Xl).flags)switch(i.tag){case 0:case 11:case 15:ns(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Xl=y;break e}Xl=i.return}}var v=e.current;for(Xl=v;null!==Xl;){var w=(l=Xl).child;if(2064&l.subtreeFlags&&null!==w)w.return=l,Xl=w;else e:for(l=v;null!==Xl;){if(2048&(s=Xl).flags)try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(x){Eu(s,s.return,x)}if(s===l){Xl=null;break e}var k=s.sibling;if(null!==k){k.return=s.return,Xl=k;break e}Xl=s.return}}if(Ts=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,As.transition=t}}return!1}function Su(e,t,n){e=Bo(e,t=fl(0,t=ul(n,t),1),1),t=eu(),null!==e&&(bt(e,1,t),ru(e,t))}function Eu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Gs||!Gs.has(r))){t=Bo(t,e=ml(t,e=ul(n,e),1),1),e=eu(),null!==t&&(bt(t,1,e),ru(t,e));break}}t=t.return}}function _u(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=eu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(Ps&n)===n&&(4===Os||3===Os&&(130023424&Ps)===Ps&&500>Ze()-$s?pu(e,0):Fs|=n),ru(e,t)}function Cu(e,t){0===t&&(1&e.mode?(t=ct,!(130023424&(ct<<=1))&&(ct=4194304)):t=1);var n=eu();null!==(e=Do(e,t))&&(bt(e,t,n),ru(e,n))}function Au(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cu(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Cu(e,n)}function ju(e,t){return We(e,t)}function Lu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pu(e,t,n,r){return new Lu(e,t,n,r)}function Ru(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nu(e,t){var n=e.alternate;return null===n?((n=Pu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ou(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Ru(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Du(n.children,a,i,t);case E:l=8,a|=8;break;case _:return(e=Pu(12,n,t,2|a)).elementType=_,e.lanes=i,e;case j:return(e=Pu(13,n,t,a)).elementType=j,e.lanes=i,e;case L:return(e=Pu(19,n,t,a)).elementType=L,e.lanes=i,e;case N:return Iu(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case A:l=9;break e;case T:l=11;break e;case P:l=14;break e;case R:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pu(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Du(e,t,n,r){return(e=Pu(7,e,r,t)).lanes=n,e}function Iu(e,t,n,r){return(e=Pu(22,e,r,t)).elementType=N,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Pu(6,e,null,t)).lanes=n,e}function Fu(e,t,n){return(t=Pu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,a,o,i,l,s){return e=new zu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pu(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Mo(o),e}function $u(e){if(!e)return Aa;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ra(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Ra(n))return Da(e,n,t)}return t}function Uu(e,t,n,r,a,o,i,l,s){return(e=Bu(n,r,!0,e,0,o,0,l,s)).context=$u(null),n=e.current,(o=zo(r=eu(),a=tu(n))).callback=null!=t?t:null,Bo(n,o,a),e.current.lanes=a,bt(e,a,r),ru(e,r),e}function qu(e,t,n,r){var a=t.current,o=eu(),i=tu(a);return n=$u(n),null===t.context?t.context=n:t.pendingContext=n,(t=zo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Bo(a,t,i))&&(nu(e,a,i,o),$o(e,a,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Gu(e,t){Vu(e,t),(e=e.alternate)&&Vu(e,t)}Ss=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||ja.current)vl=!0;else{if(!(e.lanes&n||128&t.flags))return vl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),mo();break;case 5:Xo(t);break;case 1:Ra(t.type)&&Ia(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(So,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ml(e,t,n):(Ca(ei,1&ei.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ca(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ul(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,El(e,t,n)}return Hl(e,t,n)}(e,t,n);vl=!!(131072&e.flags)}else vl=!1,ao&&1048576&t.flags&&Ja(t,Ga,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ql(e,t),e=t.pendingProps;var a=Pa(t,Ta.current);Lo(t,n),a=hi(null,t,r,e,a,n);var i=bi();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ra(r)?(i=!0,Ia(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Mo(t),a.updater=al,t.stateNode=a,a._reactInternals=t,sl(t,r,e,n),t=Tl(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),wl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ql(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Ru(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===P)return 14}return 2}(r),e=nl(r,e),a){case 0:t=Cl(null,t,r,e,n);break e;case 1:t=Al(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=xl(null,t,r,nl(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Cl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 1:return r=t.type,a=t.pendingProps,Al(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Fo(e,t),qo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ll(e,t,r,n,a=ul(Error(o(423)),t));break e}if(r!==a){t=Ll(e,t,r,n,a=ul(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Hl(e,t,n);break e}wl(e,t,r,n)}t=t.child}return t;case 5:return Xo(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),_l(e,t),wl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Ml(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ko(t,null,r,n):wl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 7:return wl(e,t,t.pendingProps,n),t.child;case 8:case 12:return wl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ca(So,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!ja.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=zo(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),jo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),jo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}wl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Lo(t,n),r=r(a=Po(a)),t.flags|=1,wl(e,t,r,n),t.child;case 14:return a=nl(r=t.type,t.pendingProps),xl(e,t,r,a=nl(r.type,a),n);case 15:return Sl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:nl(r,a),ql(e,t),t.tag=1,Ra(r)?(e=!0,Ia(t)):e=!1,Lo(t,n),il(t,r,a),sl(t,r,a,n),Tl(null,t,r,!0,e,n);case 19:return Ul(e,t,n);case 22:return El(e,t,n)}throw Error(o(156,t.tag))};var Wu="function"==typeof reportError?reportError:function(e){console.error(e)};function Qu(e){this._internalRoot=e}function Ku(e){this._internalRoot=e}function Yu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xu(){}function Ju(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Hu(i);l.call(e)}}qu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Hu(i);o.call(e)}}var i=Uu(t,r,e,0,null,!1,0,"",Xu);return e._reactRootContainer=i,e[ma]=i.current,Ur(8===e.nodeType?e.parentNode:e),cu(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=Bu(e,0,!1,null,0,!1,0,"",Xu);return e._reactRootContainer=s,e[ma]=s.current,Ur(8===e.nodeType?e.parentNode:e),cu((function(){qu(t,s,n,r)})),s}(n,t,e,a,r);return Hu(i)}Ku.prototype.render=Qu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));qu(e,t,null,null)},Ku.prototype.unmount=Qu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;cu((function(){qu(null,e,null,null)})),t[ma]=null}},Ku.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nt.length&&0!==t&&t<Nt[n].priority;n++);Nt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ru(t,Ze()),!(6&Ts)&&(Us=Ze()+500,Ua()))}break;case 13:cu((function(){var t=Do(e,1);if(null!==t){var n=eu();nu(t,e,1,n)}})),Gu(e,1)}},xt=function(e){if(13===e.tag){var t=Do(e,134217728);if(null!==t)nu(t,e,134217728,eu());Gu(e,134217728)}},St=function(e){if(13===e.tag){var t=tu(e),n=Do(e,t);if(null!==n)nu(n,e,t,eu());Gu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Te=uu,je=cu;var ec={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Ae,uu]},tc={findFiberByHostInstance:ya,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ve(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rc.isDisabled&&rc.supportsFiber)try{at=rc.inject(nc),ot=rc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ec,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yu(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yu(e))throw Error(o(299));var n=!1,r="",a=Wu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Bu(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Qu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ve(t))?null:e.stateNode},t.flushSync=function(e){return cu(e)},t.hydrate=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yu(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=Wu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Uu(t,null,e,1,null!=n?n:null,a,0,i,l),e[ma]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ku(t)},t.render=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zu(e))throw Error(o(40));return!!e._reactRootContainer&&(cu((function(){Ju(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return Ju(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5338:(e,t,n)=>{"use strict";var r=n(961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(2551)},8731:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,p=null,f=3,m=!1,g=!1,h=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function k(e){if(h=!1,w(e),!g)if(null!==r(u))g=!0,N(x);else{var t=r(c);null!==t&&O(k,t.startTime-e)}}function x(e,n){g=!1,h&&(h=!1,y(C),C=-1),m=!0;var o=f;try{for(w(n),p=r(u);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(u)&&a(u),w(n)}else a(u);p=r(u)}if(null!==p)var s=!0;else{var d=r(c);null!==d&&O(k,d.startTime-n),s=!1}return s}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,A=5,T=-1;function j(){return!(t.unstable_now()-T<A)}function L(){if(null!==_){var e=t.unstable_now();T=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(L)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,R=P.port2;P.port1.onmessage=L,S=function(){R.postMessage(null)}}else S=function(){b(L,0)};function N(e){_=e,E||(E=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||m||(g=!0,N(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(h?(y(C),C=-1):h=!0,O(k,o-i))):(e.sortIndex=l,n(u,e),g||m||(g=!0,N(x))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},194:(e,t,n)=>{"use strict";e.exports=n(8731)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>V});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function g(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map((function(e){return h[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,h.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},T=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[h.NOSCRIPT,h.SCRIPT,h.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=I(n,a),[r.createElement(h.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,b),i=P(n,y);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,a.priority),M(h.LINK,o.priority),M(h.SCRIPT,i.priority))},toString:function(){return F(h.META,a.priority,r)+" "+F(h.LINK,o.priority,r)+" "+F(h.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(h.LINK,c,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,o,r),script:F(h.SCRIPT,p,r),style:F(h.STYLE,i,r),title:F(h.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,V=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);V.canUseDOM=H,V.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},V.defaultProps={context:{}},V.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(h.BODY,e.bodyAttributes),W(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),W(h.TITLE,t)}(c,d);var p={baseTag:G(h.BASE,n),linkTags:G(h.LINK,a),metaTags:G(h.META,o),noscriptTags:G(h.NOSCRIPT,i),scriptTags:G(h.SCRIPT,s),styleTags:G(h.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(h.LINK,["rel","href"],e),metaTags:T(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:T(h.SCRIPT,["src","innerHTML"],e),styleTags:T(h.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});V.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Q(t,(function(){K=null}))})):(Q(t),K=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Z=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case h.BODY:return p({},a,{bodyAttributes:p({},o)});case h.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=g(r,Z),l=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case h:case g:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===h},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(6540),s=[],u=[];var c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),g=null;function h(){return g||(g=e(m.loader)),g.promise}return s.push(h),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return h()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),g=e(m.loader),r._loadModule()})),h(),r.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.report(t)})),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),p}function g(e){return m(d,e)}g.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var h=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}g.Capture=h,g.preloadAll=function(){return new Promise((function(e,t){b(s).then(e,t)}))},g.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=g},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},4625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>b,k2:()=>w});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var p=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},g=o.forwardRef;void 0===g&&(g=m);var h=g((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=m!==g&&t||n,o.createElement("a",c)}));var b=g((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,d=e.to,b=e.innerRef,y=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},y,{href:s,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(c||r?n.replace:n.push)(t)}});return m!==g?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),y=function(e){return e},v=o.forwardRef;void 0===v&&(v=y);var w=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,g=e.exact,h=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=w||e.location,i=f(p(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=A?(0,r.B6)(n.pathname,{path:A,exact:g,sensitive:k,strict:x}):null,j=!!(h?h(T,n):T),L="function"==typeof m?m(j):m,P="function"==typeof S?S(j):S;j&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,c),P=(0,l.A)({},P,d));var R=(0,l.A)({"aria-current":j&&a||null,className:L,style:P,to:i},C);return y!==v?R.ref=t||_:R.innerRef=_,o.createElement(b,R)}))}))},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>R,XZ:()=>y,dO:()=>L,qh:()=>E,zy:()=>N});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),u=n(8168),c=n(8505),d=n.n(c),p=(n(4363),n(8587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var g=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},h=function(e){var t=g();return t.displayName=e,t},b=h("Router-History"),y=h("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(y.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function T(e){return function(){(0,s.A)(!1)}}function j(){}a.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function R(){return P(b)}function N(){return P(y).location}},9375:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},8505:(e,t,n)=>{var r=n(9375);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=b||y;r.push({name:h||o++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),g=i.slice(-m.length)===m;return a||(i=(g?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&g?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},1020:(e,t,n)=>{"use strict";var r=n(6540),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},5287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,g(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function j(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+T(s,0):o,k(i)?(a="",null!=e&&(a=e.replace(A,"$&/")+"/"),j(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",k(e))for(var u=0;u<e.length;u++){var c=o+T(l=e[u],u);s+=j(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=j(l=l.value,t,a,c=o+T(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function L(e,t,n){if(null==e)return e;var r=[],a=0;return j(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var R={current:null},N={transition:null},O={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};function D(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.act=D,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=g({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)x.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=D,t.useCallback=function(e,t){return R.current.useCallback(e,t)},t.useContext=function(e){return R.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return R.current.useDeferredValue(e)},t.useEffect=function(e,t){return R.current.useEffect(e,t)},t.useId=function(){return R.current.useId()},t.useImperativeHandle=function(e,t,n){return R.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return R.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return R.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return R.current.useMemo(e,t)},t.useReducer=function(e,t,n){return R.current.useReducer(e,t,n)},t.useRef=function(e){return R.current.useRef(e)},t.useState=function(e){return R.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return R.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return R.current.useTransition()},t.version="18.3.1"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},4848:(e,t,n)=>{"use strict";e.exports=n(1020)},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"\ud83c\udf35 El Jard\xedn Secreto \ud83c\udf35 ",tagline:"\u270d\ufe0f Escribo, \ud83d\udcbb Comparto, \ud83c\udf34 Vivo, \ud83d\udd0d Exploro, \ud83c\udfa8 Creo, \ud83d\udcad Pienso \u2728 de w0x7ce",favicon:"img/favicon.ico",url:"https://me.w0x7ce.eu",baseUrl:"/",organizationName:"tianrking",projectName:"tianrking.github.io",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"es",locales:["es","zh-hk","en"],path:"i18n",localeConfigs:{es:{label:"Espa\xf1ol",direction:"ltr",htmlLang:"es-ES",calendar:"gregory",path:"es"},"zh-hk":{label:"\u7e41\u9ad4\u4e2d\u6587",direction:"ltr",htmlLang:"zh-HK",calendar:"gregory",path:"zh-hk"},en:{label:"English",direction:"ltr",htmlLang:"en-US",calendar:"gregory",path:"en"}}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",routeBasePath:"/",showLastUpdateTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},blog:{showReadingTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},image:"img/docusaurus-social-card.jpg",navbar:{hideOnScroll:!0,style:"dark",title:"\ud83c\udf35 El Jard\xedn Secreto \ud83c\udf35",logo:{alt:"Logo de El Jard\xedn Secreto",src:"https://github.com/tianrking.png"},items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Tutorial"},{to:"/blog",label:"Blog",position:"left"},{href:"https://github.com/tianrking",label:"GitHub",position:"right"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}]},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Tutorial",to:"/docs/intro"}]},{title:"Community",items:[{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/docusaurus"},{label:"Discord",href:"https://discordapp.com/invite/docusaurus"},{label:"Twitter",href:"https://twitter.com/docusaurus"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/tianrking/tianrking.github.io"}]}],copyright:"Copyright \xa9 2024 w0x7ce. Thanks @meta"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},2892:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ee});var r,a,o,i,l,s,u,c=n(6540),d=n(4164),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,g=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,h(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var g=f[m],h=g.inside,b=!!g.lookbehind,y=!!g.greedy,v=g.alias;if(y&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var k=g.pattern||g,x=l.next,S=c;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(y){if(!(_=o(k,S,e,b))||_.index>=e.length)break;var A=_.index,T=_.index+_[0].length,j=S;for(j+=x.value.length;A>=j;)j+=(x=x.next).value.length;if(S=j-=x.value.length,x.value instanceof a)continue;for(var L=x;L!==t.tail&&(j<T||"string"==typeof L.value);L=L.next)C++,j+=L.value.length;C--,E=e.slice(S,j),_.index-=S}else if(!(_=o(k,0,E,b)))continue;A=_.index;var P=_[0],R=E.slice(0,A),N=E.slice(A+P.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var D=x.prev;if(R&&(D=s(t,D,R),S+=R.length),u(t,D,C),x=s(t,D,new a(p,h?r.tokenize(P,h):P,v,P)),N&&s(t,x,N),C>1){var I={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),A=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());A.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},A.languages.markup.tag.inside["attr-value"].inside.entity=A.languages.markup.entity,A.languages.markup.doctype.inside["internal-subset"].inside=A.languages.markup,A.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(A.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(A.languages.markup.tag,"addAttribute",{value:function(e,t){A.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:A.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),A.languages.html=A.languages.markup,A.languages.mathml=A.languages.markup,A.languages.svg=A.languages.markup,A.languages.xml=A.languages.extend("markup",{}),A.languages.ssml=A.languages.xml,A.languages.atom=A.languages.xml,A.languages.rss=A.languages.xml,o=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},A.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},A.languages.javascript=A.languages.extend("clike",{"class-name":[A.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),A.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,A.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:A.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:A.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:A.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:A.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:A.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),A.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:A.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),A.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),A.languages.markup&&(A.languages.markup.tag.addInlined("script","javascript"),A.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),A.languages.js=A.languages.javascript,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(A),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|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|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(A),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(A),A.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:A.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},A.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),0<a.length)){var l=p(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),A.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,p,f,m,g,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[u],-1!==(h=(g="string"==typeof b?b:b.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=g.substring(h+i.length),m=[],s&&m.push(s),m.push(p),f&&(t(g=[f]),m.push.apply(m,g)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):(h=b.content,Array.isArray(h)?t(h):t([h]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(A),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(A),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(A),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=A.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),A.languages.c=A.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),A.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),A.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},A.languages.c.string],char:A.languages.c.char,comment:A.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:A.languages.c}}}}),A.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete A.languages.c.boolean,A.languages.objectivec=A.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete A.languages.objectivec["class-name"],A.languages.objc=A.languages.objectivec,A.languages.reason=A.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),A.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete A.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),A.languages.go=A.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),A.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete A.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(A),A.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},A.languages.python["string-interpolation"].inside.interpolation.inside.rest=A.languages.python,A.languages.py=A.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>j,duotoneLight:()=>L,github:()=>P,jettwaveDark:()=>H,jettwaveLight:()=>V,nightOwl:()=>R,nightOwlLight:()=>N,oceanicNext:()=>I,okaidia:()=>M,oneDark:()=>G,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},j={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},L={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},R={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},N={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",D="#8dc891",I={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:D}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:D}},{types:["punctuation"],style:{color:D}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},K=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=Z(u,c.type),c.alias&&(u=Z(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(K),p=d.length;l.push({types:u,content:d[0]});for(let t=1;t<p;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(Q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(Q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||A,theme:e.theme||U,code:e.code,language:e.language}))},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},2654:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"Cerrar","theme.BackToTopButton.buttonAriaLabel":"Volver al principio","theme.CodeBlock.copied":"Copiado","theme.CodeBlock.copy":"Copiar","theme.CodeBlock.copyButtonAriaLabel":"Copiar c\xf3digo","theme.CodeBlock.wordWrapToggle":"Alternar ajuste de palabras","theme.DocSidebarItem.collapseCategoryAriaLabel":"Colapsar categor\xeda \'{label}\' de barra lateral","theme.DocSidebarItem.expandCategoryAriaLabel":"Ampliar la categor\xeda \'{label}\' de la barra lateral","theme.ErrorPageContent.title":"Esta p\xe1gina ha fallado.","theme.ErrorPageContent.tryAgain":"Intente de nuevo","theme.NavBar.navAriaLabel":"Principal","theme.NotFound.p1":"No pudimos encontrar lo que buscaba.","theme.NotFound.p2":"Comun\xedquese con el due\xf1o del sitio que lo vincul\xf3 a la URL original y h\xe1gale saber que su v\xednculo est\xe1 roto.","theme.NotFound.title":"P\xe1gina No Encontrada","theme.TOCCollapsible.toggleButtonLabel":"En esta p\xe1gina","theme.admonition.caution":"precauci\xf3n","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.admonition.warning":"warning","theme.blog.archive.description":"Archivo","theme.blog.archive.title":"Archivo","theme.blog.paginator.navAriaLabel":"Navegaci\xf3n por la p\xe1gina de la lista de blogs ","theme.blog.paginator.newerEntries":"Entradas m\xe1s recientes","theme.blog.paginator.olderEntries":"Entradas m\xe1s antiguas","theme.blog.post.paginator.navAriaLabel":"Barra de paginaci\xf3n de publicaciones del blog","theme.blog.post.paginator.newerPost":"Publicaci\xf3n m\xe1s reciente","theme.blog.post.paginator.olderPost":"Publicaci\xf3n m\xe1s antigua","theme.blog.post.plurals":"Una publicaci\xf3n|{count} publicaciones","theme.blog.post.readMore":"Leer M\xe1s","theme.blog.post.readMoreLabel":"Leer m\xe1s acerca {title}","theme.blog.post.readingTime.plurals":"Lectura de un minuto|{readingTime} min de lectura","theme.blog.sidebar.navAriaLabel":"Navegaci\xf3n de publicaciones recientes","theme.blog.tagTitle":"{nPosts} etiquetados con \\"{tagName}\\"","theme.colorToggle.ariaLabel":"Cambiar entre modo oscuro y claro (actualmente {mode})","theme.colorToggle.ariaLabel.mode.dark":"modo oscuro","theme.colorToggle.ariaLabel.mode.light":"modo claro","theme.common.editThisPage":"Editar esta p\xe1gina","theme.common.headingLinkTitle":"Enlace directo al {heading}","theme.common.skipToMainContent":"Saltar al contenido principal","theme.docs.DocCard.categoryDescription.plurals":"1 art\xedculo|{count} art\xedculos","theme.docs.breadcrumbs.home":"P\xe1gina de Inicio","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.paginator.navAriaLabel":"P\xe1gina del documento","theme.docs.paginator.next":"Siguiente","theme.docs.paginator.previous":"Anterior","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Cerrar barra de lateral","theme.docs.sidebar.collapseButtonAriaLabel":"Colapsar barra lateral","theme.docs.sidebar.collapseButtonTitle":"Colapsar barra lateral","theme.docs.sidebar.expandButtonAriaLabel":"Expandir barra lateral","theme.docs.sidebar.expandButtonTitle":"Expandir barra lateral","theme.docs.sidebar.navAriaLabel":"Barra lateral de Documentos","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Alternar barra lateral","theme.docs.tagDocListPageTitle":"{nDocsTagged} con \\"{tagName}\\"","theme.docs.tagDocListPageTitle.nDocsTagged":"Un documento etiquetado|{count} documentos etiquetados","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\xfaltima versi\xf3n","theme.docs.versions.latestVersionSuggestionLabel":"Para la documentaci\xf3n actualizada, vea {latestVersionLink} ({versionLabel}).","theme.docs.versions.unmaintainedVersionLabel":"Esta es documentaci\xf3n para {siteTitle} {versionLabel}, que ya no se mantiene activamente.","theme.docs.versions.unreleasedVersionLabel":"Esta es documentaci\xf3n sin liberar para {siteTitle} {versionLabel} versi\xf3n.","theme.lastUpdated.atDate":" en {date}","theme.lastUpdated.byUser":" por {user}","theme.lastUpdated.lastUpdatedAtBy":"\xdaltima actualizaci\xf3n{atDate}{byUser}","theme.navbar.mobileLanguageDropdown.label":"Lenguajes","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Volver al men\xfa principal","theme.navbar.mobileVersionsDropdown.label":"Versiones","theme.tags.tagsListLabel":"Etiquetas:","theme.tags.tagsPageLink":"Ver Todas las Etiquetas","theme.tags.tagsPageTitle":"Etiquetas","theme.unlistedContent.message":"Esta p\xe1gina est\xe1 sin clasificar. Los motores de b\xfasqueda no la indexaran, y solo los usuarios con el enlace directo podr\xe1n acceder a esta.","theme.unlistedContent.title":"P\xe1gina sin clasificar"}')},4054:e=>{"use strict";e.exports=JSON.parse('{"/blog-974":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"},{"content":"925b3f96"}],"__props":"c15d9823"},"/blog/archive-182":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"f81c1134"},"/blog/Docker-Getting-Srart-01-63b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e2e7a3a0"},"/blog/first-blog-post-89a":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e273c56f"},"/blog/tags-287":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"3a2db09e"},"/blog/tags/docker-476":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"91a39dd0"},"/blog/tags/docusaurus-cf7":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"__props":"3217192f"},"/blog/tags/hola-00d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"__props":"5e90a9b3"},"/blog/tags/linux-d19":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"5da542a3"},"/blog/tags/misc-c94":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"2c06c927"},"/blog/tags/\u6a5f\u5668\u5b78\u7fd2-63d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"2c14e4d0"},"/blog/tags/\u8edf\u4ef6-599":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"abc7995a"},"/index.zh-hk-df1":{"__comp":"3ea259e6","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/markdown-page-3d7":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"393be207"},"/-2e1":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/-ea1":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/-a00":{"__comp":"a7bd4aaa","__props":"22dd74f7"},"/tags-ce1":{"__comp":"3720c009","__props":"59af61a6"},"/tags/alarm-4cb":{"__comp":"df203c0f","__props":"395e5342"},"/tags/cdc-493":{"__comp":"df203c0f","__props":"2b149dc3"},"/tags/embedded-systems-010":{"__comp":"df203c0f","__props":"f9e7e5f4"},"/tags/interrupts-615":{"__comp":"df203c0f","__props":"0db954b6"},"/tags/led-control-39e":{"__comp":"df203c0f","__props":"62424562"},"/tags/pio-492":{"__comp":"df203c0f","__props":"675103b9"},"/tags/pwm-c12":{"__comp":"df203c0f","__props":"810d738c"},"/tags/raspberry-pi-pico-341":{"__comp":"df203c0f","__props":"8cb1b30d"},"/tags/resource-management-788":{"__comp":"df203c0f","__props":"0b9fe6f3"},"/tags/rp-2040-016":{"__comp":"df203c0f","__props":"db03f91b"},"/tags/serial-communication-3ac":{"__comp":"df203c0f","__props":"5eeb21e4"},"/tags/state-machine-optimization-d9b":{"__comp":"df203c0f","__props":"928b9b77"},"/tags/stm-32-531":{"__comp":"df203c0f","__props":"028cb135"},"/tags/timer-578":{"__comp":"df203c0f","__props":"05d90159"},"/tags/uart-183":{"__comp":"df203c0f","__props":"712d17a8"},"/tags/usb-9f6":{"__comp":"df203c0f","__props":"d19b9b26"},"/-104":{"__comp":"a94703ab"},"/intro-914":{"__comp":"17896441","content":"0e384e19"},"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040-cdb":{"__comp":"17896441","content":"5e28b2f4"},"/micro-controladores/RP2040/mastering-pio-programming-rp2040-b10":{"__comp":"17896441","content":"873234d7"},"/micro-controladores/RP2040/pio-uart-implementation-rp2040-51b":{"__comp":"17896441","content":"14d3eb87"},"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples-52c":{"__comp":"17896441","content":"60f48b9d"},"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage-0e3":{"__comp":"17896441","content":"9fab635f"},"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage-2e0":{"__comp":"17896441","content":"85e08f6c"},"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx-b8f":{"__comp":"17896441","content":"c2aca3b0"},"/tutorial-e5f":{"__comp":"17896441","content":"60875e34"},"/tutorial-basics/congratulations-87e":{"__comp":"17896441","content":"822bd8ab"},"/tutorial-basics/create-a-blog-post-ded":{"__comp":"17896441","content":"533a09ca"},"/tutorial-basics/create-a-document-5ad":{"__comp":"17896441","content":"1e4232ab"},"/tutorial-basics/create-a-page-965":{"__comp":"17896441","content":"5c868d36"},"/tutorial-basics/deploy-your-site-d03":{"__comp":"17896441","content":"f55d3e7a"},"/tutorial-basics/markdown-features-3fa":{"__comp":"17896441","content":"18c41134"},"/tutorial-extras/manage-docs-versions-aa7":{"__comp":"17896441","content":"dff1c289"},"/tutorial-extras/translate-your-site-b4f":{"__comp":"17896441","content":"e44a2883"}}')}},e=>{e.O(0,[1869],(()=>{return t=8536,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.3a058c14.js.LICENSE.txt b/assets/js/main.3a058c14.js.LICENSE.txt new file mode 100644 index 000000000..91dc89499 --- /dev/null +++ b/assets/js/main.3a058c14.js.LICENSE.txt @@ -0,0 +1,64 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.dd0b75ad.js b/assets/js/runtime~main.dd0b75ad.js new file mode 100644 index 000000000..414353347 --- /dev/null +++ b/assets/js/runtime~main.dd0b75ad.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],d=e[i][1],f=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(f,b),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({668:"abc7995a",809:"873234d7",1061:"028cb135",1235:"a7456010",1567:"22dd74f7",1718:"c2aca3b0",1724:"dff1c289",1814:"91a39dd0",1850:"60f48b9d",1903:"acecf23e",1953:"1e4232ab",1974:"5c868d36",2189:"e2e7a3a0",2634:"c4f5d8e4",2711:"9e4087bc",2748:"822bd8ab",3048:"0b9fe6f3",3098:"533a09ca",3225:"2b149dc3",3249:"ccc49370",3268:"675103b9",3929:"2c06c927",3976:"0e384e19",4134:"393be207",4183:"928b9b77",4249:"b311d1e8",4279:"df203c0f",4676:"62424562",4736:"e44a2883",4787:"3720c009",4813:"6875c492",4816:"5eeb21e4",5524:"f9e7e5f4",5732:"5da542a3",5742:"aba21aa0",5843:"810d738c",6061:"1f391b9e",6221:"5e28b2f4",6615:"0db954b6",6630:"2c14e4d0",6725:"14d3eb87",7098:"a7bd4aaa",7118:"712d17a8",7422:"8cb1b30d",7472:"814f3328",7643:"a6aa9e1f",7733:"3ea259e6",8025:"5e90a9b3",8121:"3a2db09e",8130:"f81c1134",8146:"c15d9823",8209:"01a85c17",8210:"85e08f6c",8375:"395e5342",8401:"17896441",8462:"3217192f",8609:"925b3f96",8814:"d19b9b26",8863:"f55d3e7a",9048:"a94703ab",9071:"9fab635f",9174:"59af61a6",9262:"18c41134",9328:"e273c56f",9647:"5e95c892",9661:"60875e34",9716:"db03f91b",9780:"05d90159",9858:"36994c47"}[e]||e)+"."+{668:"9232cf28",809:"1a886d81",1061:"1dc19fda",1235:"fc7a5d1f",1538:"bcfcd850",1567:"8a90972e",1718:"a479cdf8",1724:"1f7787e7",1814:"39d3e8bf",1850:"c7ff861a",1903:"6d51b0dd",1953:"81f85e5b",1974:"e8d435f2",2189:"43dcef6b",2237:"e0c95162",2634:"336a6011",2711:"1e2fe8e5",2748:"a9d00c4e",3048:"bb3846c5",3098:"669e7e47",3225:"39ddbb7a",3242:"35bb0ee0",3249:"27f6c228",3268:"756f4557",3929:"73da377c",3976:"38d62581",4134:"a6e53343",4183:"b63e9685",4249:"b80a3d18",4279:"07cad923",4676:"cb5af537",4736:"5e8ca417",4787:"f8828a1d",4813:"27fa3488",4816:"13bb8d9a",5524:"7c14ad4d",5732:"eaae6618",5742:"1562c573",5843:"2d6ccfcd",6061:"1479ec8d",6221:"c725741f",6615:"32e1ad0c",6630:"113c919b",6725:"fc191249",7098:"eec9f40b",7118:"14edf328",7422:"cb50becb",7472:"bec831f0",7643:"63bb8777",7733:"ca948adc",8025:"1c94554a",8121:"2dd30aa3",8130:"6e3278cb",8146:"880887ec",8209:"1f01f224",8210:"890575cf",8375:"5144fa96",8401:"620a8489",8462:"bb3d91e2",8609:"5503aaac",8814:"f5c494c9",8863:"d0872e36",9048:"c0f75d91",9071:"209dd272",9174:"b4dfef7b",9262:"17123bc7",9328:"26aae418",9647:"794757cd",9661:"7fde8b26",9716:"298a23ee",9780:"e5d0a379",9858:"77d49b04"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="El_Jardin_Secreto_de_w0x7ce:",r.l=(e,a,c,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==f+c){t=l;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",f+c),t.src=e),d[e]=[a];var u=(a,c)=>{t.onerror=t.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",62424562:"4676",abc7995a:"668","873234d7":"809","028cb135":"1061",a7456010:"1235","22dd74f7":"1567",c2aca3b0:"1718",dff1c289:"1724","91a39dd0":"1814","60f48b9d":"1850",acecf23e:"1903","1e4232ab":"1953","5c868d36":"1974",e2e7a3a0:"2189",c4f5d8e4:"2634","9e4087bc":"2711","822bd8ab":"2748","0b9fe6f3":"3048","533a09ca":"3098","2b149dc3":"3225",ccc49370:"3249","675103b9":"3268","2c06c927":"3929","0e384e19":"3976","393be207":"4134","928b9b77":"4183",b311d1e8:"4249",df203c0f:"4279",e44a2883:"4736","3720c009":"4787","6875c492":"4813","5eeb21e4":"4816",f9e7e5f4:"5524","5da542a3":"5732",aba21aa0:"5742","810d738c":"5843","1f391b9e":"6061","5e28b2f4":"6221","0db954b6":"6615","2c14e4d0":"6630","14d3eb87":"6725",a7bd4aaa:"7098","712d17a8":"7118","8cb1b30d":"7422","814f3328":"7472",a6aa9e1f:"7643","3ea259e6":"7733","5e90a9b3":"8025","3a2db09e":"8121",f81c1134:"8130",c15d9823:"8146","01a85c17":"8209","85e08f6c":"8210","395e5342":"8375","3217192f":"8462","925b3f96":"8609",d19b9b26:"8814",f55d3e7a:"8863",a94703ab:"9048","9fab635f":"9071","59af61a6":"9174","18c41134":"9262",e273c56f:"9328","5e95c892":"9647","60875e34":"9661",db03f91b:"9716","05d90159":"9780","36994c47":"9858"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+b+")",t.name="ChunkLoadError",t.type=f,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(c);n<b.length;n++)f=b[n],r.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return r.O(i)},c=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/blog/Docker-Getting-Srart-01/index.html b/blog/Docker-Getting-Srart-01/index.html new file mode 100644 index 000000000..690a95e9f --- /dev/null +++ b/blog/Docker-Getting-Srart-01/index.html @@ -0,0 +1,82 @@ +<!doctype html> +<html lang="es-ES" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.4.0"> +<title data-rh="true">Docker使用方法(一) | 🌵 El Jardín Secreto 🌵 + + + + + +

Docker使用方法(一)

· 8 min de lectura
w0x7ce
MySelf
    +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • +
+

Docker 的優點

+

Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

+
    +
  1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
  2. +
+

容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

+

您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

+

他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

+

當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

+

測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

+
    +
  1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
  2. +
+

Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

+
    +
  1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
  2. +
+

Docker安裝

+
curl -sSL https://get.daocloud.io/docker | sh
+

Docker卸載

+
 sudo apt-get remove docker docker-engine docker.io containerd runc
+

Docker使用基礎

+

Docker Hello World

+

Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

+

輸出Hello world

+
w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world
+

各個參數解析:

+
docker: Docker 的二進制執行文件。

run: 與前面的 docker 組合來運行一個容器。

ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

/bin/echo "Hello world": 在啟動的容器裡執行的命令
+

以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

+

運行交互式的容器

+

我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

+
w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
+

各個參數解析:

+
-t: 在新容器內指定一個偽終端或終端。

-i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
+

注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

+

我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

+
root@0123ce188bd8:/#  cat /proc/version
Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
root@0123ce188bd8:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@0123ce188bd8:/#
+

我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

+
root@0123ce188bd8:/#  exit
exit
root@w0x7ce:~#
+

注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

+

啟動容器(後台模式)

+

使用以下命令創建一個以進程方式運行的容器

+
w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
+

在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

+

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

+

這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

+

首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

+
w0x7ce@w0x7ce:~$ docker ps
CONTAINER ID IMAGE COMMAND ...
5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
+

輸出詳情介紹:

+
CONTAINER ID: 容器 ID。

IMAGE: 使用的鏡像。

COMMAND: 啟動容器時運行的命令。

CREATED: 容器的創建時間。

STATUS: 容器狀態。

狀態有7種:

created(已創建)
restarting(重啟中)
running 或 Up(運行中)
removing(遷移中)
paused(暫停)
exited(停止)
dead(死亡)
PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

NAMES: 自動分配的容器名稱。
+

在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

+
w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
+
w0x7ce@w0x7ce:~$ docker logs amazing_cori
+

停止容器

+

我們使用 docker stop 命令來停止容器:

+

通過 docker ps 查看,容器已經停止工作:

+
w0x7ce@w0x7ce:~$ docker ps
+

可以看到容器已經不在了。

+

也可以用下面的命令來停止:

+
w0x7ce@w0x7ce:~$ docker stop amazing_cori
+ + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html new file mode 100644 index 000000000..63d065a51 --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,14 @@ + + + + + +Archivo | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 000000000..24509f8d7 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,108 @@ + + + https://me.w0x7ce.eu/blog + 🌵 El Jardín Secreto 🌵 Blog + 2021-09-14T00:00:00.000Z + https://github.com/jpmonette/feed + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/img/favicon.ico + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/blog/Docker-Getting-Srart-01 + + 2021-09-14T00:00:00.000Z + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + + w0x7ce + https://github.com/tianrking + + + + + + + +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/blog/first-blog-post + + 2019-05-28T00:00:00.000Z + + w0x7ce + https://github.com/tianrking + + + + +
    \ No newline at end of file diff --git a/blog/first-blog-post/index.html b/blog/first-blog-post/index.html new file mode 100644 index 000000000..6c5c5be55 --- /dev/null +++ b/blog/first-blog-post/index.html @@ -0,0 +1,14 @@ + + + + + +First Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 000000000..8f8417d94 --- /dev/null +++ b/blog/index.html @@ -0,0 +1,82 @@ + + + + + +Blog | 🌵 El Jardín Secreto 🌵 + + + + + +

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 000000000..7393f41cc --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,102 @@ + + + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/blog + 🌵 El Jardín Secreto 🌵 Blog + Tue, 14 Sep 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + es + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/blog/Docker-Getting-Srart-01 + https://me.w0x7ce.eu/blog/Docker-Getting-Srart-01 + Tue, 14 Sep 2021 00:00:00 GMT + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + Misc + Linux + Linux + Docker + 軟件 + 機器學習 +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/blog/first-blog-post + https://me.w0x7ce.eu/blog/first-blog-post + Tue, 28 May 2019 00:00:00 GMT + Hola + Docusaurus + +
    +
    \ No newline at end of file diff --git a/blog/tags/docker/index.html b/blog/tags/docker/index.html new file mode 100644 index 000000000..f281e87ca --- /dev/null +++ b/blog/tags/docker/index.html @@ -0,0 +1,82 @@ + + + + + +Una publicación etiquetados con "Docker" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "Docker"

    Ver Todas las Etiquetas

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html new file mode 100644 index 000000000..59300042b --- /dev/null +++ b/blog/tags/docusaurus/index.html @@ -0,0 +1,14 @@ + + + + + +Una publicación etiquetados con "Docusaurus" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "Docusaurus"

    Docusaurus tag description

    Ver Todas las Etiquetas
    + + \ No newline at end of file diff --git a/blog/tags/hola/index.html b/blog/tags/hola/index.html new file mode 100644 index 000000000..65155937b --- /dev/null +++ b/blog/tags/hola/index.html @@ -0,0 +1,14 @@ + + + + + +Una publicación etiquetados con "Hola" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "Hola"

    Hola tag description

    Ver Todas las Etiquetas
    + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html new file mode 100644 index 000000000..ea85b8276 --- /dev/null +++ b/blog/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Etiquetas | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/blog/tags/linux/index.html b/blog/tags/linux/index.html new file mode 100644 index 000000000..e8b955cda --- /dev/null +++ b/blog/tags/linux/index.html @@ -0,0 +1,82 @@ + + + + + +Una publicación etiquetados con "Linux" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "Linux"

    Ver Todas las Etiquetas

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/blog/tags/misc/index.html b/blog/tags/misc/index.html new file mode 100644 index 000000000..05242d657 --- /dev/null +++ b/blog/tags/misc/index.html @@ -0,0 +1,82 @@ + + + + + +Una publicación etiquetados con "Misc" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "Misc"

    Ver Todas las Etiquetas

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" "b/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" new file mode 100644 index 000000000..317f48e9b --- /dev/null +++ "b/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" @@ -0,0 +1,82 @@ + + + + + +Una publicación etiquetados con "機器學習" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "機器學習"

    Ver Todas las Etiquetas

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/blog/tags/\350\273\237\344\273\266/index.html" "b/blog/tags/\350\273\237\344\273\266/index.html" new file mode 100644 index 000000000..7aa2c838d --- /dev/null +++ "b/blog/tags/\350\273\237\344\273\266/index.html" @@ -0,0 +1,82 @@ + + + + + +Una publicación etiquetados con "軟件" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Una publicación etiquetados con "軟件"

    Ver Todas las Etiquetas

    Docker使用方法(一)

    · 8 min de lectura
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/.nojekyll b/en/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/en/404.html b/en/404.html new file mode 100644 index 000000000..e04a0afec --- /dev/null +++ b/en/404.html @@ -0,0 +1,14 @@ + + + + + +🌵 El Jardín Secreto 🌵 + + + + + +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    + + \ No newline at end of file diff --git a/en/assets/css/styles.952d87a7.css b/en/assets/css/styles.952d87a7.css new file mode 100644 index 000000000..c784a6394 --- /dev/null +++ b/en/assets/css/styles.952d87a7.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}footer.footer{background-color:#34c759;color:#1b200f;padding:2rem 0}footer.footer a{color:#140e0e}footer.footer a:hover{color:#fff}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.heroSecretGarden_pfpy{background-color:#45f76b;background-position:50%;background-repeat:no-repeat;background-size:cover}.mainContent_EI1P{background-color:#12af1f;padding:0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/en/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png b/en/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png new file mode 100644 index 0000000000000000000000000000000000000000..97e4164618b5f8beda34cfa699720aba0ad2e342 GIT binary patch literal 25427 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 literal 0 HcmV?d00001 diff --git a/en/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png b/en/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png new file mode 100644 index 0000000000000000000000000000000000000000..e257edc1f932985396bf59584c7ccfaddf955779 GIT binary patch literal 27841 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 JrC|B>e*nH7H{}2T literal 0 HcmV?d00001 diff --git a/en/assets/js/01a85c17.1f01f224.js b/en/assets/js/01a85c17.1f01f224.js new file mode 100644 index 000000000..c6a16454d --- /dev/null +++ b/en/assets/js/01a85c17.1f01f224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8209],{6535:(e,t,s)=>{s.d(t,{A:()=>_});var a=s(6540),i=s(4164),r=s(5733),l=s(4581),n=s(8774),c=s(1312),d=s(6347),o=s(9169);function m(e){const{pathname:t}=(0,d.zy)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,o.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var b=s(4848);function g(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("aside",{className:"col col--3",children:(0,b.jsxs)("nav",{className:(0,i.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,b.jsx)("div",{className:(0,i.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,b.jsx)("ul",{className:(0,i.A)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,b.jsx)("li",{className:u.sidebarItem,children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var h=s(5600);function j(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,b.jsx)("li",{className:"menu__list-item",children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,b.jsx)(h.GX,{component:j,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.l)();return t?.items.length?"mobile"===s?(0,b.jsx)(p,{sidebar:t}):(0,b.jsx)(g,{sidebar:t}):null}function _(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,b.jsx)(r.A,{...l,children:(0,b.jsx)("div",{className:"container margin-vert--lg",children:(0,b.jsxs)("div",{className:"row",children:[(0,b.jsx)(x,{sidebar:t}),(0,b.jsx)("main",{className:(0,i.A)("col",{"col--7":n,"col--9 col--offset-1":!n}),children:a}),s&&(0,b.jsx)("div",{className:"col col--2",children:s})]})})})}},9140:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(6540);var a=s(4164),i=s(6820),r=s(1213),l=s(7559),n=s(6535),c=s(2557),d=s(1463),o=s(1107),m=s(4848);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.b)();return(0,m.jsxs)(r.e3,{className:(0,a.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,m.jsx)(r.be,{title:u}),(0,m.jsx)(d.A,{tag:"blog_tags_list"}),(0,m.jsxs)(n.A,{sidebar:s,children:[(0,m.jsx)(o.A,{as:"h1",children:u}),(0,m.jsx)(c.A,{tags:t})]})]})}},6133:(e,t,s)=>{s.d(t,{A:()=>n});s(6540);var a=s(4164),i=s(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(4848);function n(e){let{permalink:t,label:s,count:n,description:c}=e;return(0,l.jsxs)(i.A,{href:t,title:c,className:(0,a.A)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},2557:(e,t,s)=>{s.d(t,{A:()=>d});s(6540);var a=s(6820),i=s(6133),r=s(1107);const l={tag:"tag_Nnez"};var n=s(4848);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.A,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.A,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function d(e){let{tags:t}=e;const s=(0,a.Q)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},6820:(e,t,s)=>{s.d(t,{Q:()=>r,b:()=>i});var a=s(1312);const i=()=>(0,a.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/en/assets/js/0e384e19.ddaa16e6.js b/en/assets/js/0e384e19.ddaa16e6.js new file mode 100644 index 000000000..492033947 --- /dev/null +++ b/en/assets/js/0e384e19.ddaa16e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3976],{619:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>u});var r=n(4848),o=n(8453);const i={},c=void 0,s={id:"intro",title:"intro",description:"\x3c!-- ---",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/en/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/intro.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,frontMatter:{}},a={},u=[];function d(t){return(0,r.jsx)(r.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d()}},8453:(t,e,n)=>{n.d(e,{R:()=>c,x:()=>s});var r=n(6540);const o={},i=r.createContext(o);function c(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/116e21e2.cbab0ed1.js b/en/assets/js/116e21e2.cbab0ed1.js new file mode 100644 index 000000000..c4bc334d3 --- /dev/null +++ b/en/assets/js/116e21e2.cbab0ed1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2512],{2658:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Tutorial","href":"/en/tutorial","docId":"tutorial","unlisted":false},{"type":"category","label":"Micro-Controladores","collapsed":false,"items":[{"type":"category","label":"STM32","collapsed":false,"items":[{"type":"link","label":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","href":"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","docId":"micro-controladores/STM32/stm32_cdc_develop","unlisted":false}],"collapsible":true},{"type":"category","label":"ESP32","collapsed":false,"items":[{"type":"link","label":" ","href":"#"}],"collapsible":true},{"type":"category","label":"RP2040","collapsed":false,"items":[{"type":"link","label":" ","href":"#"},{"type":"link","label":"UART Interrupt Handling and Data Transmission in RP2040","href":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","docId":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","unlisted":false},{"type":"link","label":"Detailed Explanation of PWM Usage and Examples in RP2040","href":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","docId":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","unlisted":false},{"type":"link","label":"Timer and Alarm Usage in RP2040","href":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","docId":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","unlisted":false},{"type":"link","label":"Mastering PIO Programming on RP2040","href":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040","docId":"micro-controladores/RP2040/mastering-pio-programming","unlisted":false},{"type":"link","label":"Implementing UART (TX )with PIO on RP2040","href":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040","docId":"micro-controladores/RP2040/pio-uart-implementation","unlisted":false},{"type":"link","label":"Advanced PIO LED Control and Resource Management on RP2040","href":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","docId":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","unlisted":false}],"collapsible":true}],"collapsible":true}]},"docs":{"intro":{"id":"intro","title":"intro","description":"\x3c!-- ---"},"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management":{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/mastering-pio-programming":{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/pio-uart-implementation":{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-pwm-usage-and-examples":{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-timer-and-alarm-usage":{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage":{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"micro-controladores/STM32/stm32_cdc_develop":{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","sidebar":"tutorialSidebar"},"tutorial":{"id":"tutorial","title":"Tutorial","description":"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.","sidebar":"tutorialSidebar"},"tutorial-basics/congratulations":{"id":"tutorial-basics/congratulations","title":"Congratulations!","description":"You have just learned the basics of Docusaurus and made some changes to the initial template."},"tutorial-basics/create-a-blog-post":{"id":"tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed..."},"tutorial-basics/create-a-document":{"id":"tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:"},"tutorial-basics/create-a-page":{"id":"tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:"},"tutorial-basics/deploy-your-site":{"id":"tutorial-basics/deploy-your-site","title":"Deploy your site","description":"Docusaurus is a static-site-generator (also called Jamstack)."},"tutorial-basics/markdown-features":{"id":"tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features."},"tutorial-extras/manage-docs-versions":{"id":"tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs."},"tutorial-extras/translate-your-site":{"id":"tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French."}}}}')}}]); \ No newline at end of file diff --git a/en/assets/js/14d3eb87.ba112984.js b/en/assets/js/14d3eb87.ba112984.js new file mode 100644 index 000000000..8b818cc78 --- /dev/null +++ b/en/assets/js/14d3eb87.ba112984.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6725],{5427:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var l=e(4848),s=e(8453);const t={slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},r="RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",o={id:"micro-controladores/RP2040/pio-uart-implementation",title:"Implementing UART (TX )with PIO on RP2040",description:"1. UART \u57fa\u672c\u539f\u7406",source:"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/pio-uart-implementation-rp2040",permalink:"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/pio-uart-implementation.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/en/tags/pio"},{inline:!0,label:"UART",permalink:"/en/tags/uart"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/en/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/en/tags/serial-communication"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Mastering PIO Programming on RP2040",permalink:"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"},next:{title:"Advanced PIO LED Control and Resource Management on RP2040",permalink:"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}},c={},d=[{value:"1. UART \u57fa\u672c\u539f\u7406",id:"1-uart-\u57fa\u672c\u539f\u7406",level:2},{value:"2. PIO \u7a0b\u5e8f\u7d50\u69cb",id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",level:2},{value:"2.1 UART TX PIO \u7a0b\u5e8f",id:"21-uart-tx-pio-\u7a0b\u5e8f",level:3},{value:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",level:3},{value:"FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09",id:"fifo-\u586b\u5145\u793a\u4f8babcd",level:4},{value:"2.3 \u6642\u5e8f\u63a7\u5236",id:"23-\u6642\u5e8f\u63a7\u5236",level:3},{value:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e",id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",level:2},{value:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406",id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",level:2},{value:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe",id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",level:2},{value:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",level:2},{value:"7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"",id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",level:2},{value:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09",id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",level:3},{value:"7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a",id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",level:3},{value:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3",id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",level:3},{value:"7.4 FIFO \u64cd\u4f5c",id:"74-fifo-\u64cd\u4f5c",level:3},{value:"7.5 \u6642\u5e8f\u5206\u6790",id:"75-\u6642\u5e8f\u5206\u6790",level:3},{value:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",level:2},{value:"9. \u8abf\u8a66\u6280\u5de7",id:"9-\u8abf\u8a66\u6280\u5de7",level:2},{value:"10. \u6027\u80fd\u8003\u616e",id:"10-\u6027\u80fd\u8003\u616e",level:2},{value:"11. \u672a\u4f86\u64f4\u5c55",id:"11-\u672a\u4f86\u64f4\u5c55",level:2},{value:"\u5b8c\u6574\u4ee3\u78bc",id:"\u5b8c\u6574\u4ee3\u78bc",level:2}];function a(n){const i={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...n.components},{Details:e}=i;return e||function(n,i){throw new Error("Expected "+(i?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.h1,{id:"rp2040-pio-uarttx-\u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",children:"RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50"}),"\n",(0,l.jsx)(i.h2,{id:"1-uart-\u57fa\u672c\u539f\u7406",children:"1. UART \u57fa\u672c\u539f\u7406"}),"\n",(0,l.jsxs)(i.admonition,{type:"info",children:[(0,l.jsx)(i.p,{children:"UART\uff08\u901a\u7528\u975e\u540c\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u884c\u901a\u4fe1\u5354\u8b70\u3002\u5728\u6211\u5011\u7684\u5be6\u73fe\u4e2d\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 8 \u6578\u64da\u4f4d\uff0c1 \u8d77\u59cb\u4f4d\uff0c1 \u505c\u6b62\u4f4d\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u4e0d\u4f7f\u7528\u6d41\u63a7\u5236\u548c\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u9810\u8a2d\u6ce2\u7279\u7387\u8a2d\u7f6e\u70ba 9600 bps"}),"\n"]})]}),"\n",(0,l.jsx)(i.h2,{id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",children:"2. PIO \u7a0b\u5e8f\u7d50\u69cb"}),"\n",(0,l.jsx)(i.h3,{id:"21-uart-tx-pio-\u7a0b\u5e8f",children:"2.1 UART TX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-pio",metastring:'title="uart_tx.pio"',children:".program uart_tx\n.side_set 1 opt\n\n pull side 1 [7] ; \u5f9e FIFO \u7372\u53d6\u6578\u64da\uff0c\u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09\n set x, 7 side 0 [7] ; \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\uff0c\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09\nbitloop:\n out pins, 1 ; \u767c\u9001\u4e00\u4f4d\u6578\u64da\n jmp x-- bitloop [6] ; \u5faa\u74b0\u76f4\u5230\u767c\u9001\u5b8c 8 \u4f4d\u6578\u64da\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u9ede",type:"tip",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:".side_set 1 opt"}),": \u5b9a\u7fa9\u4e00\u500b\u53ef\u9078\u7684 1 \u4f4d\u5074\u8a2d\uff0c\u7528\u65bc\u63a7\u5236 TX \u5f15\u8173"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"pull"}),": \u5f9e TX FIFO \u7372\u53d6 32 \u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"set x, 7"}),": \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\u70ba 7\uff088\u4f4d\u6578\u64da\uff09"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u8f38\u51fa\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u5faa\u74b0\u767c\u9001 8 \u4f4d\u6578\u64da\uff0c\u6bcf\u6b21\u8fed\u4ee3 8 \u500b\u9031\u671f"]}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",children:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u57fa\u672c\u5bb9\u91cf\u548c\u5408\u4f75"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u65b9\u5411\uff08TX \u6216 RX\uff09\u7684 FIFO \u53ef\u4ee5\u5b58\u5132 4 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b 32 \u4f4d\u5b57\u7406\u8ad6\u4e0a\u53ef\u5b58\u5132 4 \u500b char\uff08\u6bcf\u500b char 8 \u4f4d\uff09\u3002"}),"\n",(0,l.jsx)(i.li,{children:"TX \u548c RX FIFO \u5408\u4f75\u5f8c\uff0c\u6df1\u5ea6\u589e\u52a0\u5230 8 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"\u7406\u8ad6\u4e0a\u5408\u4f75\u5f8c\u53ef\u5b58\u5132 32 \u500b char\u3002"}),"\n"]})]}),"\n",(0,l.jsx)(i.admonition,{title:"\u5be6\u969b\u4f7f\u7528\u4e2d\u7684 char \u5b58\u5132",type:"caution",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5178\u578b UART \u5be6\u73fe\u4e2d\uff0c\u901a\u5e38\u6bcf\u6b21\u53ea\u653e\u5165\u4e00\u500b char\uff088 \u4f4d\uff09\u5230 FIFO\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u6bcf\u6b21\u5f9e FIFO \u53d6\u51fa 32 \u4f4d\u6578\u64da\uff0c\u4f46\u901a\u5e38\u53ea\u4f7f\u7528\u5176\u4e2d\u7684 8 \u4f4d\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h4,{id:"fifo-\u586b\u5145\u793a\u4f8babcd",children:'FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09'}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"32\u4f4dFIFO\u689d\u76ee1: [A] [ ] [ ] [ ] \uff08\u53ea\u6709 'A' \u88ab\u5b58\u5132\uff0c\u5176\u9918\u672a\u4f7f\u7528\uff09\n32\u4f4dFIFO\u689d\u76ee2: [B] [ ] [ ] [ ] \uff08\u53ea\u6709 'B' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee3: [C] [ ] [ ] [ ] \uff08\u53ea\u6709 'C' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee4: [D] [ ] [ ] [ ] \uff08\u53ea\u6709 'D' \u88ab\u5b58\u5132\uff09\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"FIFO \u4f7f\u7528\u7b56\u7565",type:"note",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u901a\u5e38\u9010\u500b char \u586b\u5145 FIFO\uff0c\u7c21\u5316 PIO \u7a0b\u5e8f\u908f\u8f2f\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u8a2d\u8a08\u70ba\u5728 FIFO \u6709\u6578\u64da\u6642\u7acb\u5373\u8655\u7406\uff0c\u4e0d\u7b49\u5f85 FIFO \u586b\u6eff\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"23-\u6642\u5e8f\u63a7\u5236",children:"2.3 \u6642\u5e8f\u63a7\u5236"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b UART \u4f4d\u4f7f\u7528 8 \u500b PIO \u6642\u9418\u9031\u671f"}),"\n",(0,l.jsxs)(i.li,{children:["\u4f7f\u7528\u6307\u4ee4\u5f8c\u7684\u5ef6\u9072\uff08\u5982 ",(0,l.jsx)(i.code,{children:"[7]"}),"\uff09\u4f86\u7cbe\u78ba\u63a7\u5236\u6642\u5e8f"]}),"\n",(0,l.jsx)(i.li,{children:"\u7e3d\u5e40\u9577\u5ea6\uff1a1\uff08\u8d77\u59cb\u4f4d\uff09+ 8\uff08\u6578\u64da\u4f4d\uff09+ 1\uff08\u505c\u6b62\u4f4d\uff09= 10 \u4f4d * 8 \u9031\u671f = 80 PIO \u6642\u9418\u9031\u671f/\u5e40"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",children:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="uart_tx_init.c"',children:"static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n \n sm_config_set_sideset_pins(&c, pin_tx);\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n \n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_gpio_init(pio, pin_tx);\n pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u914d\u7f6e\u6b65\u9a5f",type:"info",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5074\u8a2d\uff08side-set\uff09\u548c\u8f38\u51fa\u5f15\u8173"}),"\n",(0,l.jsx)(i.li,{children:"\u914d\u7f6e FIFO \u70ba\u50c5 TX \u6a21\u5f0f"}),"\n",(0,l.jsx)(i.li,{children:"\u8a08\u7b97\u4e26\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u5339\u914d\u76ee\u6a19\u6ce2\u7279\u7387"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 GPIO \u548c\u8a2d\u7f6e\u5f15\u8173\u65b9\u5411"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316\u548c\u555f\u7528\u72c0\u614b\u6a5f"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",children:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u64cd\u4f5c\u793a\u4f8b"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",children:"static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s) {\n uart_tx_program_putc(pio, sm, *s++);\n }\n}\n"})})]}),"\n",(0,l.jsx)(i.h2,{id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",children:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="main.c"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n const uint PIN_TX = 0;\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.admonition,{title:"\u4e3b\u7a0b\u5e8f\u6b65\u9a5f",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u9078\u64c7 PIO \u5be6\u4f8b\u548c\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u5c07 PIO \u7a0b\u5e8f\u52a0\u8f09\u5230 PIO \u6307\u4ee4\u5167\u5b58"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 UART TX \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u4e3b\u5faa\u74b0\u4e2d\u767c\u9001\u6578\u64da"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",children:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6"}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5be6\u969b\u6ce2\u7279\u7387\u8a08\u7b97",type:"note",children:[(0,l.jsx)(i.p,{children:"\u5be6\u969b\u6ce2\u7279\u7387 = (\u7cfb\u7d71\u6642\u9418\u983b\u7387) / (\u6642\u9418\u5206\u983b * \u6bcf\u5e40\u9031\u671f\u6578)\n= 125,000,000 / (div * 80)"}),(0,l.jsxs)(i.p,{children:["\u5176\u4e2d\uff0c",(0,l.jsx)(i.code,{children:"div"})," \u662f\u521d\u59cb\u5316\u6642\u8a08\u7b97\u7684\u5206\u983b\u503c\u3002"]})]}),"\n",(0,l.jsx)(i.p,{children:"\u6ce8\u610f\uff1a\u5be6\u969b\u6ce2\u7279\u7387\u53ef\u80fd\u8207\u76ee\u6a19\u6ce2\u7279\u7387\u7565\u6709\u504f\u5dee\uff0c\u9019\u53d6\u6c7a\u65bc\u7cfb\u7d71\u6642\u9418\u983b\u7387\u548c\u53ef\u7528\u7684\u5206\u983b\u503c\u3002"}),"\n",(0,l.jsx)(i.h2,{id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",children:'7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"'}),"\n",(0,l.jsx)(i.h3,{id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",children:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.p,{children:"\u6bcf\u500b UART \u5b57\u7b26\u5e40\u5305\u542b 10 \u4f4d\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"1 \u500b\u8d77\u59cb\u4f4d\uff08\u59cb\u7d42\u70ba 0\uff09"}),"\n",(0,l.jsx)(i.li,{children:"8 \u500b\u6578\u64da\u4f4d\uff08\u6700\u4f4e\u6709\u6548\u4f4d LSB \u5148\u767c\u9001\uff09"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b\u505c\u6b62\u4f4d\uff08\u59cb\u7d42\u70ba 1\uff09"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",children:'7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a'}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'A': ASCII 65 = 0100 0001"}),"\n",(0,l.jsx)(i.li,{children:"'B': ASCII 66 = 0100 0010"}),"\n",(0,l.jsx)(i.li,{children:"'C': ASCII 67 = 0100 0011"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",children:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"\u5b57\u7b26 'A' \u7684\u767c\u9001\u904e\u7a0b"}),(0,l.jsx)(i.p,{children:"\u5b8c\u6574\u5e40\uff1a"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"0 01000001 1\n\u2191 \u2191 \u2191\n| | |\n| | \u505c\u6b62\u4f4d\n| \u6578\u64da\u4f4d\n\u8d77\u59cb\u4f4d\n"})}),(0,l.jsx)(i.p,{children:"PIO \u7a0b\u5e8f\u57f7\u884c\u904e\u7a0b\uff1a"}),(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"pull side 1 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5f9e FIFO \u7372\u53d6 'A'\uff080x41\uff09"}),"\n",(0,l.jsx)(i.li,{children:"TX \u5f15\u8173\u4fdd\u6301\u9ad8\u96fb\u5e73\uff08\u505c\u6b62\u4f4d\u72c0\u614b\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"set x, 7 side 0 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668 x = 7"}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"bitloop:"})," \u5faa\u74b0 8 \u6b21\uff1a"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u767c\u9001\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u6e1b\u5c11\u8a08\u6578\u5668\u4e26\u8df3\u8f49"]}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u9806\u5e8f\uff1a1, 0, 0, 0, 0, 0, 1, 0 (LSB first)"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:["\u5faa\u74b0\u7d50\u675f\u5f8c\uff0c\u901a\u904e ",(0,l.jsx)(i.code,{children:"side 1"})," \u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09"]}),"\n"]}),"\n"]})]}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5b57\u7b26 'B' \u548c 'C' \u7684\u767c\u9001",type:"info",children:[(0,l.jsx)(i.p,{children:"'B' \u548c 'C' \u7684\u767c\u9001\u904e\u7a0b\u8207 'A' \u76f8\u540c\uff0c\u53ea\u662f\u6578\u64da\u4f4d\u4e0d\u540c\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'B': 0 01000010 1"}),"\n",(0,l.jsx)(i.li,{children:"'C': 0 01000011 1"}),"\n"]})]}),"\n",(0,l.jsx)(i.h3,{id:"74-fifo-\u64cd\u4f5c",children:"7.4 FIFO \u64cd\u4f5c"}),"\n",(0,l.jsxs)(i.p,{children:["\u7576\u8abf\u7528 ",(0,l.jsx)(i.code,{children:'uart_tx_program_puts(pio, sm, "ABC")'})," \u6642\uff1a"]}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"'A' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u5f9e FIFO \u62c9\u53d6 'A' \u4e26\u958b\u59cb\u767c\u9001"}),"\n",(0,l.jsx)(i.li,{children:"\u540c\u6642\uff0c'B' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'A' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u7acb\u5373\u62c9\u53d6\u4e26\u767c\u9001 'B'"}),"\n",(0,l.jsx)(i.li,{children:"'C' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'B' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u62c9\u53d6\u4e26\u767c\u9001 'C'"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"75-\u6642\u5e8f\u5206\u6790",children:"7.5 \u6642\u5e8f\u5206\u6790"}),"\n",(0,l.jsx)(i.p,{children:"\u5047\u8a2d UART \u6ce2\u7279\u7387\u70ba 9600 bps\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u4f4d\u6301\u7e8c\u6642\u9593\uff1a1/9600 \u79d2 \u2248 104.17 \u5fae\u79d2"}),"\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u5b57\u7b26\uff0810 \u4f4d\uff09\u50b3\u8f38\u6642\u9593\uff1a104.17 * 10 \u2248 1.0417 \u6beb\u79d2"}),"\n",(0,l.jsx)(i.li,{children:'"ABC" \u7e3d\u50b3\u8f38\u6642\u9593\uff1a3 * 1.0417 \u2248 3.125 \u6beb\u79d2'}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",children:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20"}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u932f\u8aa4\u8655\u7406\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO \u4e0d\u63d0\u4f9b\u5167\u7f6e\u7684\u5e40\u932f\u8aa4\u6aa2\u6e2c"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u901a\u904e\u984d\u5916\u7684 PIO \u7a0b\u5e8f\u908f\u8f2f\u6216\u8edf\u4ef6\u5c64\u9762\u5be6\u73fe\u932f\u8aa4\u6aa2\u6e2c"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u96d9\u5411\u901a\u4fe1\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u55ae\u7368\u7684 RX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u80fd\u9700\u8981\u4f7f\u7528\u984d\u5916\u7684\u72c0\u614b\u6a5f\u6216 PIO \u5be6\u4f8b"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"DMA \u4f7f\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u5927\u91cf\u6578\u64da\u50b3\u8f38\uff0c\u53ef\u4ee5\u914d\u5408 DMA \u4f7f\u7528"}),"\n",(0,l.jsx)(i.li,{children:"DMA \u53ef\u4ee5\u81ea\u52d5\u586b\u5145 TX FIFO\uff0c\u6e1b\u5c11 CPU \u5e72\u9810"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u8cc7\u6e90\u5229\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4e00\u500b UART \u5be6\u4f8b\u4f54\u7528\u4e00\u500b PIO \u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u8003\u616e PIO \u6307\u4ee4\u5167\u5b58\u7684\u4f7f\u7528"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u8f15\u9b06\u4fee\u6539 PIO \u7a0b\u5e8f\u4ee5\u652f\u6301\u4e0d\u540c\u7684\u6578\u64da\u683c\u5f0f\uff08\u5982 7 \u4f4d\u6578\u64da\u30012 \u500b\u505c\u6b62\u4f4d\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u5be6\u73fe\u81ea\u5b9a\u7fa9\u5354\u8b70\u6216\u975e\u6a19\u6e96\u6ce2\u7279\u7387"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"9-\u8abf\u8a66\u6280\u5de7",children:"9. \u8abf\u8a66\u6280\u5de7"}),"\n",(0,l.jsx)(i.admonition,{title:"\u8abf\u8a66\u65b9\u6cd5",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528\u908f\u8f2f\u5206\u6790\u5100\u6216\u793a\u6ce2\u5668\u9a57\u8b49\u4fe1\u865f\u6642\u5e8f"}),"\n",(0,l.jsxs)(i.li,{children:["\u5229\u7528 ",(0,l.jsx)(i.code,{children:"printf"})," \u8abf\u8a66\u8f38\u51fa\u4f86\u76e3\u63a7\u6578\u64da\u6d41"]}),"\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 Pico \u7684 LED \u9032\u884c\u7c21\u55ae\u7684\u53ef\u8996\u5316\u8abf\u8a66"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u95dc\u9375\u9ede\u6dfb\u52a0 GPIO \u89f8\u767c\uff0c\u65b9\u4fbf\u4f7f\u7528\u793a\u6ce2\u5668\u6355\u7372\u7279\u5b9a\u4e8b\u4ef6"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"10-\u6027\u80fd\u8003\u616e",children:"10. \u6027\u80fd\u8003\u616e"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO UART \u5be6\u73fe\u5141\u8a31\u9ad8\u901f\u6578\u64da\u50b3\u8f38\uff0c\u50c5\u53d7 PIO \u6642\u9418\u983b\u7387\u9650\u5236"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u7c21\u55ae\u7684\u6578\u64da\u767c\u9001\uff0cPIO \u65b9\u6cd5\u53ef\u80fd\u6bd4\u786c\u4ef6 UART \u66f4\u9748\u6d3b"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u8907\u96dc\u7684\u5354\u8b70\u6216\u9700\u8981\u983b\u7e41\u66f4\u6539\u914d\u7f6e\u7684\u5834\u666f\uff0cPIO \u65b9\u6cd5\u5c24\u5176\u6709\u512a\u52e2"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"11-\u672a\u4f86\u64f4\u5c55",children:"11. \u672a\u4f86\u64f4\u5c55"}),"\n",(0,l.jsx)(i.admonition,{title:"\u53ef\u80fd\u7684\u64f4\u5c55\u65b9\u5411",type:"note",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe UART \u63a5\u6536\u529f\u80fd"}),"\n",(0,l.jsx)(i.li,{children:"\u6dfb\u52a0\u6d41\u63a7\u5236\u652f\u6301"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u652f\u6301\u53ef\u8b8a\u6578\u64da\u4f4d\u6578\uff085-8 \u4f4d\uff09\u548c\u505c\u6b62\u4f4d\u6578"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u81ea\u52d5\u6ce2\u7279\u7387\u6aa2\u6e2c"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u78bc",children:"\u5b8c\u6574\u4ee3\u78bc"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n // We\'re going to use PIO to print "Hello, world!" on the same GPIO which we\n // normally attach UART0 to.\n const uint PIN_TX = 7;\n // This is the same as the default UART baud rate on Pico\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="uart_tx.pio"',children:';\n; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.\n;\n; SPDX-License-Identifier: BSD-3-Clause\n;\n\n.program uart_tx\n.side_set 1 opt\n\n; An 8n1 UART transmit program.\n; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.\n\n pull side 1 [7] ; Assert stop bit, or stall with line in idle state\n set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks\nbitloop: ; This loop will run 8 times (8n1 UART)\n out pins, 1 ; Shift 1 bit from OSR to the first OUT pin\n jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.\n\n\n% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n // Tell PIO to initially drive output-high on the selected pin, then map PIO\n // onto that pin with the IO muxes.\n pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_gpio_init(pio, pin_tx);\n\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n\n // OUT shifts to right, no autopull\n sm_config_set_out_shift(&c, true, false, 32);\n\n // We are mapping both OUT and side-set to the same pin, because sometimes\n // we need to assert user data onto the pin (with OUT) and sometimes\n // assert constant values (start/stop bit)\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_sideset_pins(&c, pin_tx);\n\n // We only need TX, so get an 8-deep FIFO!\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n\n // SM transmits 1 bit per 8 execution cycles.\n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n\nstatic inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s)\n uart_tx_program_putc(pio, sm, *s++);\n}\n\n%}\n\n\n\n'})})]})}function h(n={}){const{wrapper:i}={...(0,s.R)(),...n.components};return i?(0,l.jsx)(i,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>r,x:()=>o});var l=e(6540);const s={},t=l.createContext(s);function r(n){const i=l.useContext(t);return l.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function o(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:r(n.components),l.createElement(t.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1538.bcfcd850.js b/en/assets/js/1538.bcfcd850.js new file mode 100644 index 000000000..ca835d2a4 --- /dev/null +++ b/en/assets/js/1538.bcfcd850.js @@ -0,0 +1 @@ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1538],{7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>L});var s=n(6540),o=n(4848);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}var c=n(4164),r=n(1312),i=n(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:t,className:n,children:s}=e;return(0,o.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:a,className:c}=e;return(0,o.jsxs)(d,{type:t,className:c,children:[s||n?(0,o.jsx)(u,{title:s,icon:n}):null,(0,o.jsx)(m,{children:a})]})}function p(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,o.jsx)(p,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(h,{...f,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,o.jsx)(h,{...j,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function N(e){return(0,o.jsx)(h,{...y,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const E={...{note:x,tip:g,info:N,warning:function(e){return(0,o.jsx)(h,{...B,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...w,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(N,{title:"important",...e}),success:e=>(0,o.jsx)(g,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function L(e){const t=a(e),n=(s=t.type,E[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),E.info));var s;return(0,o.jsx)(n,{...t})}},4336:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),o=n(1312),a=n(7559),c=n(8774);const r={iconEdit:"iconEdit_Z9Sw"};var i=n(4848);function l(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(r.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d(e){let{editUrl:t}=e;return(0,i.jsxs)(c.A,{to:t,className:a.G.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(o.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(6266);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(o.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(o.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:a.G.common.lastUpdated,children:[(0,i.jsx)(o.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_JAkA"};function x(e){let{className:t,editUrl:n,lastUpdatedAt:o,lastUpdatedBy:a}=e;return(0,i.jsxs)("div",{className:(0,s.A)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(d,{editUrl:n})}),(0,i.jsx)("div",{className:(0,s.A)("col",f.lastUpdated),children:(o||a)&&(0,i.jsx)(p,{lastUpdatedAt:o,lastUpdatedBy:a})})]})}},5533:(e,t,n)=>{"use strict";n.d(t,{A:()=>ie});var s=n(6540),o=n(8453),a=n(5260),c=n(2303),r=n(4164),i=n(5293),l=n(6342);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,i.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(7559),m=n(8426),h=n.n(m);const p=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,x={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...x,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},j=Object.keys(x);function g(e,t){const n=e.map((e=>{const{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:a}=t;if(a&&f.test(a)){const e=a.match(f).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],t);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],t);case"html":return g(["js","jsBlock","html"],t);case"python":case"py":case"bash":return g(["bash"],t);case"markdown":case"md":return g(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return g(["tex"],t);case"lua":case"haskell":case"sql":return g(["lua"],t);case"wasm":return g(["wasm"],t);case"vb":case"vba":case"visual-basic":return g(["vb","rem"],t);case"vbnet":return g(["vbnet","rem"],t);case"batch":return g(["rem"],t);case"basic":return g(["rem","f90"],t);case"fsharp":return g(["js","ml"],t);case"ocaml":case"sml":return g(["ml"],t);case"fortran":return g(["f90"],t);case"cobol":return g(["cobol"],t);default:return g(j,t)}}(s,o),r=n.split("\n"),i=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<r.length;){const e=r[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?i[l[t]].range+=`${h},`:d[t]?i[d[t]].start=h:u[t]&&(i[u[t]].range+=`${i[u[t]].start}-${h-1},`),r.splice(h,1)}n=r.join("\n");const m={};return Object.entries(i).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Ckt0"};var N=n(4848);function A(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const a=t[s];a&&"string"==typeof o&&(n[a]=o)})),n}(d());return(0,N.jsx)(t,{...n,style:s,className:(0,r.A)(n.className,y.codeBlockContainer,u.G.common.codeBlock)})}const B={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function k(e){let{children:t,className:n}=e;return(0,N.jsx)(A,{as:"pre",tabIndex:0,className:(0,r.A)(B.codeBlockStandalone,"thin-scrollbar",n),children:(0,N.jsx)("code",{className:B.codeBlockLines,children:t})})}var w=n(9532);const C={attributes:!0,characterData:!0,childList:!0,subtree:!0};function E(e,t){const[n,o]=(0,s.useState)(),a=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=C);const o=(0,w._q)(t),a=(0,w.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,a),()=>t.disconnect()}),[e,o,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var L=n(1765);const T={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function _(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:o,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=o({line:t,className:(0,r.A)(n,s&&T.codeLine)}),i=t.map(((e,t)=>(0,N.jsx)("span",{...a({token:e})},t)));return(0,N.jsxs)("span",{...c,children:[s?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("span",{className:T.codeLineNumber}),(0,N.jsx)("span",{className:T.codeLineContent,children:i})]}):i,(0,N.jsx)("br",{})]})}var S=n(1312);function U(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function M(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function I(e){let{code:t,className:n}=e;const[o,a]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),i=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const a=document.getSelection(),c=a.rangeCount>0&&a.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}s.remove(),c&&(a.removeAllRanges(),a.addRange(c)),o&&o.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,N.jsx)("button",{type:"button","aria-label":o?(0,S.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,S.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,S.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,r.A)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:i,children:(0,N.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,N.jsx)(U,{className:z.copyButtonIcon}),(0,N.jsx)(M,{className:z.copyButtonSuccessIcon})]})})}function H(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const R={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function V(e){let{className:t,onClick:n,isEnabled:s}=e;const o=(0,S.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,N.jsx)("button",{type:"button",onClick:n,className:(0,r.A)("clean-btn",t,s&&R.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,N.jsx)(H,{className:R.wordWrapButtonIcon,"aria-hidden":"true"})})}function $(e){let{children:t,className:n="",metastring:o,title:a,showLineNumbers:c,language:i}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.p)(),h=function(e){return e?.toLowerCase()}(i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),x=function(){const[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),a=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),r=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");o(n)}),[a]);return E(a,r),(0,s.useEffect)((()=>{r()}),[e,r]),(0,s.useEffect)((()=>(window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("resize",r)})),[r]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),b=function(e){return e?.match(p)?.groups.title??""}(o)||a,{lineClassNames:j,code:g}=v(t,{metastring:o,language:h,magicComments:m}),y=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,N.jsxs)(A,{as:"div",className:(0,r.A)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[b&&(0,N.jsx)("div",{className:B.codeBlockTitle,children:b}),(0,N.jsxs)("div",{className:B.codeBlockContent,children:[(0,N.jsx)(L.f4,{theme:f,code:g,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:o,getTokenProps:a}=e;return(0,N.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,r.A)(t,B.codeBlock,"thin-scrollbar"),style:n,children:(0,N.jsx)("code",{className:(0,r.A)(B.codeBlockLines,y&&B.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,N.jsx)(_,{line:e,getLineProps:o,getTokenProps:a,classNames:j[t],showLineNumbers:y},t)))})})}}),(0,N.jsxs)("div",{className:B.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,N.jsx)(V,{className:B.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,N.jsx)(I,{className:B.codeButton,code:g})]})]})]})}function W(e){let{children:t,...n}=e;const o=(0,c.A)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),r="string"==typeof a?$:k;return(0,N.jsx)(r,{...n,children:a},String(o))}function D(e){return(0,N.jsx)("code",{...e})}var P=n(8774);var q=n(3427),G=n(1422);const O={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function F(e){return!!e&&("SUMMARY"===e.tagName||F(e.parentElement))}function J(e,t){return!!e&&(e===t||J(e.parentElement,t))}function Z(e){let{summary:t,children:n,...o}=e;(0,q.A)().collectAnchor(o.id);const a=(0,c.A)(),i=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,G.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(t)?t:(0,N.jsx)("summary",{children:t??"Details"});return(0,N.jsxs)("details",{...o,ref:i,open:u,"data-collapsed":l,className:(0,r.A)(O.details,a&&O.isBrowser,o.className),onMouseDown:e=>{F(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;F(t)&&J(t,i.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,N.jsx)(G.N,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,N.jsx)("div",{className:O.collapsibleContent,children:n})})]})}const Y={details:"details_b_Ee"},K="alert alert--info";function Q(e){let{...t}=e;return(0,N.jsx)(Z,{...t,className:(0,r.A)(K,Y.details,t.className)})}function X(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,N.jsx)(N.Fragment,{children:t.filter((e=>e!==n))});return(0,N.jsx)(Q,{...e,summary:n,children:o})}var ee=n(1107);function te(e){return(0,N.jsx)(ee.A,{...e})}const ne={containsTaskList:"containsTaskList_mC6p"};function se(e){if(void 0!==e)return(0,r.A)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const oe={img:"img_ev3q"};var ae=n(7293),ce=n(418);const re={Head:a.A,details:X,Details:X,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,N.jsx)(D,{...e}):(0,N.jsx)(W,{...e})},a:function(e){return(0,N.jsx)(P.A,{...e})},pre:function(e){return(0,N.jsx)(N.Fragment,{children:e.children})},ul:function(e){return(0,N.jsx)("ul",{...e,className:se(e.className)})},li:function(e){return(0,q.A)().collectAnchor(e.id),(0,N.jsx)("li",{...e})},img:function(e){return(0,N.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,r.A)(t,oe.img))});var t},h1:e=>(0,N.jsx)(te,{as:"h1",...e}),h2:e=>(0,N.jsx)(te,{as:"h2",...e}),h3:e=>(0,N.jsx)(te,{as:"h3",...e}),h4:e=>(0,N.jsx)(te,{as:"h4",...e}),h5:e=>(0,N.jsx)(te,{as:"h5",...e}),h6:e=>(0,N.jsx)(te,{as:"h6",...e}),admonition:ae.A,mermaid:ce.A};function ie(e){let{children:t}=e;return(0,N.jsx)(o.x,{components:re,children:t})}},6266:(e,t,n)=>{"use strict";n.d(t,{i:()=>o});var s=n(4586);function o(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,a]=t;if(s&&a){s=parseInt(s),a=parseInt(a);const e=s<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=s;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>c,x:()=>r});var s=n(6540);const o={},a=s.createContext(o);function c(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/17896441.620a8489.js b/en/assets/js/17896441.620a8489.js new file mode 100644 index 000000000..a473484cf --- /dev/null +++ b/en/assets/js/17896441.620a8489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8401],{2447:(e,n,t)=>{t.r(n),t.d(n,{default:()=>ae});var s=t(6540),a=t(1213),i=t(9532),l=t(4848);const o=s.createContext(null);function r(e){let{children:n,content:t}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(t);return(0,l.jsx)(o.Provider,{value:a,children:n})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(4164),m=t(4581),h=t(1312),v=t(9022);function x(e){const{previous:n,next:t}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,l.jsx)(v.A,{...n,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),t&&(0,l.jsx)(v.A,{...t,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=c();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var g=t(4586),p=t(8774),f=t(4070),j=t(7559),A=t(5597),_=t(2252);const C={unreleased:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function L(e){const n=C[e.versionMetadata.banner];return(0,l.jsx)(n,{...e})}function N(e){let{versionLabel:n,to:t,onClick:s}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:n,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(p.A,{to:t,onClick:s,children:(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k(e){let{className:n,versionMetadata:t}=e;const{siteConfig:{title:s}}=(0,g.A)(),{pluginId:a}=(0,f.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,A.g1)(a),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,f.HW)(a),c=o??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,l.jsxs)("div",{className:(0,u.A)(n,j.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(L,{siteTitle:s,versionMetadata:t})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(N,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:n}=e;const t=(0,_.r)();return t.banner?(0,l.jsx)(k,{className:n,versionMetadata:t}):null}function H(e){let{className:n}=e;const t=(0,_.r)();return t.badge?(0,l.jsx)("span",{className:(0,u.A)(n,j.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}var M=t(2053),w=t(4336);function y(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(M.A,{tags:a})})}),o&&(0,l.jsx)(w.A,{className:(0,u.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var E=t(1422),I=t(5195);const B={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function O(e){let{collapsed:n,...t}=e;return(0,l.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",B.tocCollapsibleButton,!n&&B.tocCollapsibleButtonExpanded,t.className),children:(0,l.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const V={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function S(e){let{toc:n,className:t,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,E.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(V.tocCollapsible,!i&&V.tocCollapsibleExpanded,t),children:[(0,l.jsx)(O,{collapsed:i,onClick:o}),(0,l.jsx)(E.N,{lazy:!0,className:V.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(I.A,{toc:n,minHeadingLevel:s,maxHeadingLevel:a})})]})}const G={tocMobile:"tocMobile_ITEo"};function R(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(S,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(j.G.docs.docTocMobile,G.tocMobile)})}var P=t(7763);function F(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(P.A,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var U=t(1107),D=t(5533);function z(e){let{children:n}=e;const t=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(j.G.docs.docMarkdown,"markdown"),children:[t&&(0,l.jsx)("header",{children:(0,l.jsx)(U.A,{as:"h1",children:t})}),(0,l.jsx)(D.A,{children:n})]})}var W=t(1754),q=t(9169),$=t(6025);function J(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Q={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function X(){const e=(0,$.Ay)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(p.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(J,{className:Q.breadcrumbHomeIcon})})})}const Y={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Z(e){let{children:n,href:t,isLast:s}=e;const a="breadcrumbs__link";return s?(0,l.jsx)("span",{className:a,itemProp:"name",children:n}):t?(0,l.jsx)(p.A,{className:a,href:t,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:n})}):(0,l.jsx)("span",{className:a,children:n})}function K(e){let{children:n,active:t,index:s,addMicrodata:a}=e;return(0,l.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[n,(0,l.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,W.OF)(),n=(0,q.Dt)();return e?(0,l.jsx)("nav",{className:(0,u.A)(j.G.docs.docBreadcrumbs,Y.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[n&&(0,l.jsx)(X,{}),e.map(((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,l.jsx)(K,{active:s,index:t,addMicrodata:!!a,children:(0,l.jsx)(Z,{href:a,isLast:s,children:n.label})},t)}))]})}):null}var ne=t(996);const te={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function se(e){let{children:n}=e;const t=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,l.jsx)(R,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,l.jsx)(F,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&te.docItemCol),children:[s&&(0,l.jsx)(ne.A,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:te.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ee,{}),(0,l.jsx)(H,{}),t.mobile,(0,l.jsx)(z,{children:n}),(0,l.jsx)(y,{})]}),(0,l.jsx)(b,{})]})]}),t.desktop&&(0,l.jsx)("div",{className:"col col--3",children:t.desktop})]})}function ae(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:n,children:[(0,l.jsx)(d,{}),(0,l.jsx)(se,{children:(0,l.jsx)(t,{})})]})})}},9022:(e,n,t)=>{t.d(n,{A:()=>l});t(6540);var s=t(4164),a=t(8774),i=t(4848);function l(e){const{permalink:n,title:t,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:t})]})}},7763:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(a.A,{...t,linkClassName:o,linkActiveClassName:r})})}},5195:(e,n,t)=>{t.d(n,{A:()=>x});var s=t(6540),a=t(6342);function i(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)})),s}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:s});return function(e){return e.level>=t&&e.level<=s}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const s=e.find((e=>o(e).top>=t));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.p)();return(0,s.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const s=[];for(let a=n;a<=t;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}var u=t(8774),m=t(4848);function h(e){let{toc:n,className:t,linkClassName:s,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function x(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,a.p)(),b=c??x.tableOfContents.minHeadingLevel,g=u??x.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:b,maxHeadingLevel:g});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:b,maxHeadingLevel:g}}),[o,r,b,g])),(0,m.jsx)(v,{toc:p,className:t,linkClassName:o,...h})}},6133:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(4848);function o(e){let{permalink:n,label:t,count:o,description:r}=e;return(0,l.jsxs)(a.A,{href:n,title:r,className:(0,s.A)(i.tag,o?i.tagWithCount:i.tagRegular),children:[t,o&&(0,l.jsx)("span",{children:o})]})}},2053:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=t(4848);function r(e){let{tags:n}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:n.map((e=>(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.A,{...e})},e.permalink)))})]})}},996:(e,n,t)=>{t.d(n,{A:()=>h});t(6540);var s=t(4164),a=t(1312),i=t(5260),l=t(4848);function o(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function m(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/18c41134.a34db062.js b/en/assets/js/18c41134.a34db062.js new file mode 100644 index 000000000..d6bc7367a --- /dev/null +++ b/en/assets/js/18c41134.a34db062.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9262],{3849:(e,n,s)=>{s.r(n),s.d(n,{Highlight:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var r=s(4848),t=s(8453);const a={sidebar_position:4},i="Markdown Features",o={id:"tutorial-basics/markdown-features",title:"Markdown Features",description:"Docusaurus supports Markdown and a few additional features.",source:"@site/docs/tutorial-basics/markdown-features.mdx",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/markdown-features",permalink:"/en/tutorial-basics/markdown-features",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/markdown-features.mdx",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:4,frontMatter:{sidebar_position:4}},c={},d=({children:e,color:n})=>{const s={span:"span",...(0,t.R)()};return(0,r.jsx)(s.span,{style:{backgroundColor:n,borderRadius:"20px",color:"#fff",padding:"10px",cursor:"pointer"},onClick:()=>{alert(`You clicked the color ${n} with label ${e}`)},children:e})},l=[{value:"Front Matter",id:"front-matter",level:2},{value:"Links",id:"links",level:2},{value:"Images",id:"images",level:2},{value:"Code Blocks",id:"code-blocks",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"MDX and React Components",id:"mdx-and-react-components",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"markdown-features",children:"Markdown Features"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus supports ",(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://daringfireball.net/projects/markdown/syntax",children:"Markdown"})})," and a few ",(0,r.jsx)(n.strong,{children:"additional features"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"front-matter",children:"Front Matter"}),"\n",(0,r.jsxs)(n.p,{children:["Markdown documents have metadata at the top called ",(0,r.jsx)(n.a,{href:"https://jekyllrb.com/docs/front-matter/",children:"Front Matter"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",metastring:'title="my-doc.md"',children:"// highlight-start\n---\nid: my-doc-id\ntitle: My document title\ndescription: My document description\nslug: /my-custom-url\n---\n// highlight-end\n\n## Markdown heading\n\nMarkdown text with [links](./hello.md)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"links",children:"Links"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown links are supported, using url paths or relative file paths."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](/create-a-page).\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](./create-a-page.md).\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Result:"})," Let's see how to ",(0,r.jsx)(n.a,{href:"/en/tutorial-basics/create-a-page",children:"Create a page"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"images",children:"Images"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown images are supported."}),"\n",(0,r.jsxs)(n.p,{children:["You can use absolute paths to reference images in the static directory (",(0,r.jsx)(n.code,{children:"static/img/docusaurus.png"}),"):"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](/img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Docusaurus logo",src:s(9335).A+"",width:"200",height:"200"})}),"\n",(0,r.jsx)(n.p,{children:"You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](./img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"code-blocks",children:"Code Blocks"}),"\n",(0,r.jsx)(n.p,{children:"Markdown code blocks are supported with Syntax highlighting."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:'```jsx title="src/components/HelloDocusaurus.js"\nfunction HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n```\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",metastring:'title="src/components/HelloDocusaurus.js"',children:"function HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n"})}),"\n",(0,r.jsx)(n.h2,{id:"admonitions",children:"Admonitions"}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus has a special syntax to create admonitions and callouts:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::tip[My tip]\n\nUse this awesome feature option\n\n:::\n\n:::danger[Take care]\n\nThis action is dangerous\n\n:::\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"My tip",type:"tip",children:(0,r.jsx)(n.p,{children:"Use this awesome feature option"})}),"\n",(0,r.jsx)(n.admonition,{title:"Take care",type:"danger",children:(0,r.jsx)(n.p,{children:"This action is dangerous"})}),"\n",(0,r.jsx)(n.h2,{id:"mdx-and-react-components",children:"MDX and React Components"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://mdxjs.com/",children:"MDX"})," can make your documentation more ",(0,r.jsx)(n.strong,{children:"interactive"})," and allows using any ",(0,r.jsx)(n.strong,{children:"React components inside Markdown"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",children:"export const Highlight = ({children, color}) => (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '20px',\n color: '#fff',\n padding: '10px',\n cursor: 'pointer',\n }}\n onClick={() => {\n alert(`You clicked the color ${color} with label ${children}`)\n }}>\n {children}\n </span>\n);\n\nThis is <Highlight color=\"#25c2a0\">Docusaurus green</Highlight> !\n\nThis is <Highlight color=\"#1877F2\">Facebook blue</Highlight> !\n"})}),"\n","\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#25c2a0",children:"Docusaurus green"})," !"]}),"\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#1877F2",children:"Facebook blue"})," !"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},9335:(e,n,s)=>{s.d(n,{A:()=>r});const r="data:image/png;base64,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"},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var r=s(6540);const t={},a=r.createContext(t);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1e4232ab.7170d644.js b/en/assets/js/1e4232ab.7170d644.js new file mode 100644 index 000000000..562c7800a --- /dev/null +++ b/en/assets/js/1e4232ab.7170d644.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1953],{3976:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=n(4848),r=n(8453);const i={sidebar_position:2},o="Create a Document",a={id:"tutorial-basics/create-a-document",title:"Create a Document",description:"Documents are groups of pages connected through:",source:"@site/docs/tutorial-basics/create-a-document.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-document",permalink:"/en/tutorial-basics/create-a-document",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-document.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},c={},l=[{value:"Create your first Doc",id:"create-your-first-doc",level:2},{value:"Configure the Sidebar",id:"configure-the-sidebar",level:2}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"create-a-document",children:"Create a Document"}),"\n",(0,s.jsxs)(t.p,{children:["Documents are ",(0,s.jsx)(t.strong,{children:"groups of pages"})," connected through:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["a ",(0,s.jsx)(t.strong,{children:"sidebar"})]}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"previous/next navigation"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"versioning"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-your-first-doc",children:"Create your first Doc"}),"\n",(0,s.jsxs)(t.p,{children:["Create a Markdown file at ",(0,s.jsx)(t.code,{children:"docs/hello.md"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md"',children:"# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["A new document is now available at ",(0,s.jsx)(t.a,{href:"http://localhost:3000/docs/hello",children:"http://localhost:3000/docs/hello"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"configure-the-sidebar",children:"Configure the Sidebar"}),"\n",(0,s.jsxs)(t.p,{children:["Docusaurus automatically ",(0,s.jsx)(t.strong,{children:"creates a sidebar"})," from the ",(0,s.jsx)(t.code,{children:"docs"})," folder."]}),"\n",(0,s.jsx)(t.p,{children:"Add metadata to customize the sidebar label and position:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md" {1-4}',children:"---\nsidebar_label: 'Hi!'\nsidebar_position: 3\n---\n\n# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["It is also possible to create your sidebar explicitly in ",(0,s.jsx)(t.code,{children:"sidebars.js"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n tutorialSidebar: [\n 'intro',\n // highlight-next-line\n 'hello',\n {\n type: 'category',\n label: 'Tutorial',\n items: ['tutorial-basics/create-a-document'],\n },\n ],\n};\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>a});var s=n(6540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/1f391b9e.1479ec8d.js b/en/assets/js/1f391b9e.1479ec8d.js new file mode 100644 index 000000000..a511c185c --- /dev/null +++ b/en/assets/js/1f391b9e.1479ec8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6061],{7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(6540);var a=t(4164),i=t(1213),s=t(7559),l=t(5733),r=t(5533),c=t(7763),o=t(996),d=t(4336);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var u=t(4848);function f(e){const{content:n}=e,{metadata:{title:t,editUrl:f,description:v,frontMatter:h,unlisted:g,lastUpdatedBy:x,lastUpdatedAt:p},assets:L}=n,{keywords:j,wrapperClassName:A,hide_table_of_contents:N}=h,_=L.image??h.image,C=!!(f||p||x);return(0,u.jsx)(i.e3,{className:(0,a.A)(A??s.G.wrapper.mdxPages,s.G.page.mdxPage),children:(0,u.jsxs)(l.A,{children:[(0,u.jsx)(i.be,{title:t,description:v,keywords:j,image:_}),(0,u.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,u.jsxs)("div",{className:(0,a.A)("row",m.mdxPageWrapper),children:[(0,u.jsxs)("div",{className:(0,a.A)("col",!N&&"col--8"),children:[g&&(0,u.jsx)(o.A,{}),(0,u.jsx)("article",{children:(0,u.jsx)(r.A,{children:(0,u.jsx)(n,{})})}),C&&(0,u.jsx)(d.A,{className:(0,a.A)("margin-top--sm",s.G.pages.pageFooterEditMetaRow),editUrl:f,lastUpdatedAt:p,lastUpdatedBy:x})]}),!N&&n.toc.length>0&&(0,u.jsx)("div",{className:"col col--2",children:(0,u.jsx)(c.A,{toc:n.toc,minHeadingLevel:h.toc_min_heading_level,maxHeadingLevel:h.toc_max_heading_level})})]})})]})})}},7763:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(5195);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const r="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,a.A)(s.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(i.A,{...t,linkClassName:r,linkActiveClassName:c})})}},5195:(e,n,t)=>{t.d(n,{A:()=>h});var a=t(6540),i=t(6342);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)})),a}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function r(e){const n=e.getBoundingClientRect();return n.top===n.bottom?r(e.parentNode):n}function c(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>r(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(r(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function o(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:n}}=(0,i.p)();return(0,a.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=o();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:l}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),r=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let i=n;i<=t;i+=1)a.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:s,maxHeadingLevel:l}),o=c(r,{anchorTopOffset:t.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,t])}var m=t(8774),u=t(4848);function f(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?(0,u.jsx)("ul",{className:i?void 0:t,children:n.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:t,linkClassName:a})]},e.id)))}):null}const v=a.memo(f);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:c,minHeadingLevel:o,maxHeadingLevel:m,...f}=e;const h=(0,i.p)(),g=o??h.tableOfContents.minHeadingLevel,x=m??h.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>l({toc:s(n),minHeadingLevel:t,maxHeadingLevel:i})),[n,t,i])}({toc:n,minHeadingLevel:g,maxHeadingLevel:x});return d((0,a.useMemo)((()=>{if(r&&c)return{linkClassName:r,linkActiveClassName:c,minHeadingLevel:g,maxHeadingLevel:x}}),[r,c,g,x])),(0,u.jsx)(v,{toc:p,className:t,linkClassName:r,...f})}},996:(e,n,t)=>{t.d(n,{A:()=>f});t(6540);var a=t(4164),i=t(1312),s=t(5260),l=t(4848);function r(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,l.jsx)(s.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),m=t(7293);function u(e){let{className:n}=e;return(0,l.jsx)(m.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,a.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(c,{})})}function f(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/2237.e0c95162.js b/en/assets/js/2237.e0c95162.js new file mode 100644 index 000000000..561471393 --- /dev/null +++ b/en/assets/js/2237.e0c95162.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2237],{3363:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var i=n(4164),o=n(1312),r=n(1107),s=n(4848);function a(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,i.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(r.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(6540);var i=n(1312),o=n(1213),r=n(5733),s=n(3363),a=n(4848);function d(){const e=(0,i.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(r.A,{children:(0,a.jsx)(s.A,{})})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/22f9ffc3.eae2b12b.js b/en/assets/js/22f9ffc3.eae2b12b.js new file mode 100644 index 000000000..d9e545155 --- /dev/null +++ b/en/assets/js/22f9ffc3.eae2b12b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2782],{6004:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/en/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/3242.35bb0ee0.js b/en/assets/js/3242.35bb0ee0.js new file mode 100644 index 000000000..77f82d5a9 --- /dev/null +++ b/en/assets/js/3242.35bb0ee0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3242],{6535:(e,t,a)=>{a.d(t,{A:()=>b});var s=a(6540),n=a(4164),r=a(5733),l=a(4581),i=a(8774),o=a(1312),c=a(6347),d=a(9169);function m(e){const{pathname:t}=(0,c.zy)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,d.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=a(4848);function g(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,n.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,n.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,n.A)(u.sidebarItemList,"clean-list"),children:a.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var x=a(5600);function j(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:a.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,h.jsx)(x.GX,{component:j,props:e})}function f(e){let{sidebar:t}=e;const a=(0,l.l)();return t?.items.length?"mobile"===a?(0,h.jsx)(p,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function b(e){const{sidebar:t,toc:a,children:s,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(r.A,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(f,{sidebar:t}),(0,h.jsx)("main",{className:(0,n.A)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:s}),a&&(0,h.jsx)("div",{className:"col col--2",children:a})]})})})}},4651:(e,t,a)=>{a.d(t,{A:()=>R});a(6540);var s=a(4164),n=a(7131),r=a(4848);function l(e){let{children:t,className:a}=e;return(0,r.jsx)("article",{className:a,children:t})}var i=a(8774);const o={title:"title_f1Hy"};function c(e){let{className:t}=e;const{metadata:a,isBlogPostPage:l}=(0,n.e)(),{permalink:c,title:d}=a,m=l?"h1":"h2";return(0,r.jsx)(m,{className:(0,s.A)(o.title,t),children:l?d:(0,r.jsx)(i.A,{to:c,children:d})})}var d=a(1312),m=a(5846),u=a(6266);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,m.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:a(t)})}function x(e){let{date:t,formattedDate:a}=e;return(0,r.jsx)("time",{dateTime:t,children:a})}function j(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function p(e){let{className:t}=e;const{metadata:a}=(0,n.e)(),{date:l,readingTime:i}=a,o=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,s.A)(h.container,"margin-vert--md",t),children:[(0,r.jsx)(x,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(j,{}),(0,r.jsx)(g,{readingTime:i})]})]});var c}function f(e){return e.href?(0,r.jsx)(i.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function b(e){let{author:t,className:a}=e;const{name:n,title:l,url:i,imageURL:o,email:c}=t,d=i||c&&`mailto:${c}`||void 0;return(0,r.jsxs)("div",{className:(0,s.A)("avatar margin-bottom--sm",a),children:[o&&(0,r.jsx)(f,{href:d,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:"avatar__photo",src:o,alt:n})}),n&&(0,r.jsxs)("div",{className:"avatar__intro",children:[(0,r.jsx)("div",{className:"avatar__name",children:(0,r.jsx)(f,{href:d,children:(0,r.jsx)("span",{children:n})})}),l&&(0,r.jsx)("small",{className:"avatar__subtitle",children:l})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function _(e){let{className:t}=e;const{metadata:{authors:a},assets:l}=(0,n.e)();if(0===a.length)return null;const i=a.every((e=>{let{name:t}=e;return!t}));return(0,r.jsx)("div",{className:(0,s.A)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:a.map(((e,t)=>(0,r.jsx)("div",{className:(0,s.A)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,r.jsx)(b,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function A(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(p,{}),(0,r.jsx)(_,{})]})}var N=a(440),k=a(5533);function P(e){let{children:t,className:a}=e;const{isBlogPostPage:l}=(0,n.e)();return(0,r.jsx)("div",{id:l?N.blogPostContainerID:void 0,className:(0,s.A)("markdown",a),children:(0,r.jsx)(k.A,{children:t})})}var w=a(7559),T=a(4336),I=a(2053);function L(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function y(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(i.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(L,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,n.e)(),{tags:a,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=a.length>0;if(!(u||m||i))return null;if(t){const e=!!(i||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("row","margin-top--sm",w.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(I.A,{tags:a})})}),e&&(0,r.jsx)(T.A,{className:(0,s.A)("margin-top--sm",w.G.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("col",{"col--9":m}),children:(0,r.jsx)(I.A,{tags:a})}),m&&(0,r.jsx)("div",{className:(0,s.A)("col text--right",{"col--3":u}),children:(0,r.jsx)(y,{blogPostTitle:l,to:e.permalink})})]})}function R(e){let{children:t,className:a}=e;const i=function(){const{isBlogPostPage:e}=(0,n.e)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(l,{className:(0,s.A)(i,a),children:[(0,r.jsx)(A,{}),(0,r.jsx)(P,{children:t}),(0,r.jsx)(C,{})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var s=a(4164),n=a(8774),r=a(4848);function l(e){const{permalink:t,title:a,subLabel:l,isNext:i}=e;return(0,r.jsxs)(n.A,{className:(0,s.A)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[l&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,r.jsx)("div",{className:"pagination-nav__label",children:a})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var s=a(4164),n=a(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=a(4848);function i(e){let{permalink:t,label:a,count:i,description:o}=e;return(0,l.jsxs)(n.A,{href:t,title:o,className:(0,s.A)(r.tag,i?r.tagWithCount:r.tagRegular),children:[a,i&&(0,l.jsx)("span",{children:i})]})}},2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(4164),n=a(1312),r=a(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var i=a(4848);function o(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(n.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:l.tag,children:(0,i.jsx)(r.A,{...e})},e.permalink)))})]})}},7131:(e,t,a)=>{a.d(t,{e:()=>o,i:()=>i});var s=a(6540),n=a(9532),r=a(4848);const l=s.createContext(null);function i(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const i=function(e){let{content:t,isBlogPostPage:a}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return(0,r.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,s.useContext)(l);if(null===e)throw new n.dV("BlogPostProvider");return e}},5846:(e,t,a)=>{a.d(t,{W:()=>c});var s=a(6540),n=a(4586);const r=["zero","one","two","few","many","other"];function l(e){return r.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,a)=>function(e,t,a){const s=e.split("|");if(1===s.length)return s[0];s.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return s[Math.min(r,s.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/en/assets/js/36994c47.77d49b04.js b/en/assets/js/36994c47.77d49b04.js new file mode 100644 index 000000000..10c144817 --- /dev/null +++ b/en/assets/js/36994c47.77d49b04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9858],{5516:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/en/assets/js/3720c009.f8828a1d.js b/en/assets/js/3720c009.f8828a1d.js new file mode 100644 index 000000000..29a033a87 --- /dev/null +++ b/en/assets/js/3720c009.f8828a1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4787],{2194:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(6540);var s=a(4164),r=a(1213),l=a(7559),n=a(6820),c=a(2557),i=a(1463),o=a(1107),g=a(4848);function d(e){let{title:t}=e;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(r.be,{title:t}),(0,g.jsx)(i.A,{tag:"doc_tags_list"})]})}function u(e){let{tags:t,title:a}=e;return(0,g.jsx)(r.e3,{className:(0,s.A)(l.G.page.docsTagsListPage),children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsx)("div",{className:"row",children:(0,g.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,g.jsx)(o.A,{as:"h1",children:a}),(0,g.jsx)(c.A,{tags:t})]})})})})}function h(e){const t=(0,n.b)();return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(d,{...e,title:t}),(0,g.jsx)(u,{...e,title:t})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>c});a(6540);var s=a(4164),r=a(8774);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(4848);function c(e){let{permalink:t,label:a,count:c,description:i}=e;return(0,n.jsxs)(r.A,{href:t,title:i,className:(0,s.A)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},2557:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(6820),r=a(6133),l=a(1107);const n={tag:"tag_Nnez"};var c=a(4848);function i(e){let{letterEntry:t}=e;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.A,{as:"h2",id:t.letter,children:t.letter}),(0,c.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.A,{...e})},e.permalink)))}),(0,c.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const a=(0,s.Q)(t);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((e=>(0,c.jsx)(i,{letterEntry:e},e.letter)))})}},6820:(e,t,a)=>{a.d(t,{Q:()=>l,b:()=>r});var s=a(1312);const r=()=>(0,s.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/en/assets/js/393be207.ef0b2c2d.js b/en/assets/js/393be207.ef0b2c2d.js new file mode 100644 index 000000000..619c73e30 --- /dev/null +++ b/en/assets/js/393be207.ef0b2c2d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4134],{633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var o=t(4848),a=t(8453);const r={title:"Markdown page example"},s="Markdown page example",c={type:"mdx",permalink:"/en/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},p={},d=[];function i(e){const n={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,o.jsx)(n.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var o=t(6540);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/3ea259e6.ca948adc.js b/en/assets/js/3ea259e6.ca948adc.js new file mode 100644 index 000000000..8ba1f75e9 --- /dev/null +++ b/en/assets/js/3ea259e6.ca948adc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7733],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>F});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,v,x,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,k=t(6540);function z(){return z=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},z.apply(null,arguments)}const F=e=>{let{title:a,titleId:t,...F}=e;return k.createElement("svg",z({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},F),void 0===a?k.createElement("title",{id:t},"Focus on What Matters"):a?k.createElement("title",{id:t},a):null,l||(l=k.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=k.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=k.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=k.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=k.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=k.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=k.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=k.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=k.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=k.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=k.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=k.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=k.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=k.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),v||(v=k.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),x||(x=k.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=k.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=k.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=k.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=k.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=k.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=k.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=k.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=k.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=k.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},8154:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/blog",children:"\ud83d\udc49 \xa1hjk! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/en/assets/js/42a17d8a.fa814ac3.js b/en/assets/js/42a17d8a.fa814ac3.js new file mode 100644 index 000000000..26d11746d --- /dev/null +++ b/en/assets/js/42a17d8a.fa814ac3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9779],{4271:e=>{e.exports=JSON.parse('{"tag":{"label":"Docker","permalink":"/en/blog/tags/docker","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/docker","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/447560db.f1e22e3b.js b/en/assets/js/447560db.f1e22e3b.js new file mode 100644 index 000000000..495b56d85 --- /dev/null +++ b/en/assets/js/447560db.f1e22e3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3475],{4173:e=>{e.exports=JSON.parse('{"tag":{"label":"Misc","permalink":"/en/blog/tags/misc","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/misc","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/5311454b.63590fb0.js b/en/assets/js/5311454b.63590fb0.js new file mode 100644 index 000000000..151965903 --- /dev/null +++ b/en/assets/js/5311454b.63590fb0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5430],{2185:e=>{e.exports=JSON.parse('{"tags":[{"label":"Misc","permalink":"/en/blog/tags/misc","count":1},{"label":"Linux","permalink":"/en/blog/tags/linux","count":1},{"label":"Docker","permalink":"/en/blog/tags/docker","count":1},{"label":"\u8edf\u4ef6","permalink":"/en/blog/tags/\u8edf\u4ef6","count":1},{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2","count":1},{"label":"Hola","permalink":"/en/blog/tags/hola","description":"Hola tag description","count":1},{"label":"Docusaurus","permalink":"/en/blog/tags/docusaurus","description":"Docusaurus tag description","count":1}]}')}}]); \ No newline at end of file diff --git a/en/assets/js/533a09ca.daccee1a.js b/en/assets/js/533a09ca.daccee1a.js new file mode 100644 index 000000000..ee3d5233a --- /dev/null +++ b/en/assets/js/533a09ca.daccee1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3098],{4700:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>g,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var o=s(4848),r=s(8453);const n={sidebar_position:3},a="Create a Blog Post",i={id:"tutorial-basics/create-a-blog-post",title:"Create a Blog Post",description:"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...",source:"@site/docs/tutorial-basics/create-a-blog-post.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-blog-post",permalink:"/en/tutorial-basics/create-a-blog-post",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-blog-post.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:3,frontMatter:{sidebar_position:3}},c={},l=[{value:"Create your first Post",id:"create-your-first-post",level:2}];function u(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"create-a-blog-post",children:"Create a Blog Post"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus creates a ",(0,o.jsx)(t.strong,{children:"page for each blog post"}),", but also a ",(0,o.jsx)(t.strong,{children:"blog index page"}),", a ",(0,o.jsx)(t.strong,{children:"tag system"}),", an ",(0,o.jsx)(t.strong,{children:"RSS"})," feed..."]}),"\n",(0,o.jsx)(t.h2,{id:"create-your-first-post",children:"Create your first Post"}),"\n",(0,o.jsxs)(t.p,{children:["Create a file at ",(0,o.jsx)(t.code,{children:"blog/2021-02-28-greetings.md"}),":"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="blog/2021-02-28-greetings.md"',children:"---\nslug: greetings\ntitle: Greetings!\nauthors:\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n - name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\ntags: [greetings]\n---\n\nCongratulations, you have made your first post!\n\nFeel free to play around and edit this post as much as you like.\n"})}),"\n",(0,o.jsxs)(t.p,{children:["A new blog post is now available at ",(0,o.jsx)(t.a,{href:"http://localhost:3000/blog/greetings",children:"http://localhost:3000/blog/greetings"}),"."]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var o=s(6540);const r={},n=o.createContext(r);function a(e){const t=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5c868d36.635685dc.js b/en/assets/js/5c868d36.635685dc.js new file mode 100644 index 000000000..0cff9b4bb --- /dev/null +++ b/en/assets/js/5c868d36.635685dc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1974],{5254:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var r=t(4848),n=t(8453);const s={sidebar_position:1},o="Create a Page",c={id:"tutorial-basics/create-a-page",title:"Create a Page",description:"Add Markdown or React files to src/pages to create a standalone page:",source:"@site/docs/tutorial-basics/create-a-page.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-page",permalink:"/en/tutorial-basics/create-a-page",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-page.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},i={},l=[{value:"Create your first React Page",id:"create-your-first-react-page",level:2},{value:"Create your first Markdown Page",id:"create-your-first-markdown-page",level:2}];function d(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h1,{id:"create-a-page",children:"Create a Page"}),"\n",(0,r.jsxs)(a.p,{children:["Add ",(0,r.jsx)(a.strong,{children:"Markdown or React"})," files to ",(0,r.jsx)(a.code,{children:"src/pages"})," to create a ",(0,r.jsx)(a.strong,{children:"standalone page"}),":"]}),"\n",(0,r.jsxs)(a.ul,{children:["\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/index.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo.md"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo/bar.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo/bar"})]}),"\n"]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-react-page",children:"Create your first React Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-react-page.js"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-jsx",metastring:'title="src/pages/my-react-page.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\nexport default function MyReactPage() {\n return (\n <Layout>\n <h1>My React page</h1>\n <p>This is a React page</p>\n </Layout>\n );\n}\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-react-page",children:"http://localhost:3000/my-react-page"}),"."]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-markdown-page",children:"Create your first Markdown Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-markdown-page.md"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-mdx",metastring:'title="src/pages/my-markdown-page.md"',children:"# My Markdown page\n\nThis is a Markdown page\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-markdown-page",children:"http://localhost:3000/my-markdown-page"}),"."]})]})}function p(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>c});var r=t(6540);const n={},s=r.createContext(n);function o(e){const a=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function c(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5cbf0a5d.8e48066a.js b/en/assets/js/5cbf0a5d.8e48066a.js new file mode 100644 index 000000000..74778598d --- /dev/null +++ b/en/assets/js/5cbf0a5d.8e48066a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2929],{7403:e=>{e.exports=JSON.parse('{"tag":{"label":"stm32","permalink":"/en/tags/stm-32","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/5e28b2f4.9696a466.js b/en/assets/js/5e28b2f4.9696a466.js new file mode 100644 index 000000000..1775555ba --- /dev/null +++ b/en/assets/js/5e28b2f4.9696a466.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6221],{105:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var l=i(4848),o=i(8453);const r={slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},s="RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",t={id:"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management",title:"Advanced PIO LED Control and Resource Management on RP2040",description:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002",source:"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",permalink:"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/en/tags/pio"},{inline:!0,label:"LED Control",permalink:"/en/tags/led-control"},{inline:!0,label:"Resource Management",permalink:"/en/tags/resource-management"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/en/tags/embedded-systems"},{inline:!0,label:"state machine optimization",permalink:"/en/tags/state-machine-optimization"}],version:"current",lastUpdatedAt:1720759604e3,frontMatter:{slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},sidebar:"tutorialSidebar",previous:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f",id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",level:2},{value:"\u7a0b\u5f0f\u89e3\u6790",id:"\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"PIO \u521d\u59cb\u5316\u51fd\u6578",id:"pio-\u521d\u59cb\u5316\u51fd\u6578",level:2},{value:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",level:2},{value:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"\u7de8\u8b6f\u548c\u904b\u884c",id:"\u7de8\u8b6f\u548c\u904b\u884c",level:2},{value:"\u6e2c\u8a66\u7d50\u679c",id:"\u6e2c\u8a66\u7d50\u679c",level:2},{value:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",level:2},{value:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",level:2},{value:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",level:3},{value:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",level:3},{value:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",level:3},{value:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",level:3},{value:"\u64f4\u5c55\u6027\u8003\u616e",id:"\u64f4\u5c55\u6027\u8003\u616e",level:3}];function a(n){const e={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.h1,{id:"rp2040-\u4e0a\u7684\u9032\u968e-pio-led-\u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",children:"RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",children:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f"}),"\n",(0,l.jsx)(e.p,{children:"\u9996\u5148\uff0c\u8b93\u6211\u5011\u4f86\u770b\u6211\u5011\u7684 PIO \u7a0b\u5f0f\uff0c\u5b83\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u5b9a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-asm",metastring:'title="hello.pio"',children:".program led_controller\n.side_set 1 opt\n\n.wrap_target\n pull block ; \u5f9e FIFO \u63d0\u53d6\u6578\u64da\u5230 OSR\n out x, 32 ; \u5c07 32 \u4f4d\u6578\u64da\u79fb\u81f3 x \u5bc4\u5b58\u5668\n \n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 0\n jmp !x, off ; \u5982\u679c x \u70ba 0\uff0c\u8df3\u8f49\u81f3 off\n\n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 3\u30018\u300115 \u6216 21\n mov y, x ; \u5c07 x \u8907\u88fd\u5230 y\n set x, 2 ; \u8a2d\u7f6e x \u70ba 3\uff08\u4e8c\u9032\u5236 11\uff09\n jmp x!=y, check_8 ; \u5982\u679c\u4e0d\u662f 3\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp off ; \u5982\u679c\u662f 3\uff0c\u95dc\u9589 LED\n\ncheck_8:\n set x, 8 ; \u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp x!=y, check_15 ; \u5982\u679c\u4e0d\u662f 8\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp off ; \u5982\u679c\u662f 8\uff0c\u95dc\u9589 LED\n\ncheck_15:\n set x, 15 ; \u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp x!=y, check_21 ; \u5982\u679c\u4e0d\u662f 15\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp off ; \u5982\u679c\u662f 15\uff0c\u95dc\u9589 LED\n\ncheck_21:\n set x, 21 ; \u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp x!=y, on ; \u5982\u679c\u4e0d\u662f 21\uff0c\u958b\u555f LED\n jmp off ; \u5982\u679c\u662f 21\uff0c\u95dc\u9589 LED\n\noff:\n nop side 0 ; \u95dc\u9589 LED\n jmp continue\n\non:\n nop side 1 ; \u958b\u555f LED\n\ncontinue:\n nop ; \u78ba\u4fdd\u6700\u5f8c\u6a19\u7c64\u5f8c\u6709\u6307\u4ee4\n.wrap\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u7a0b\u5f0f\u89e3\u6790",children:"\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:".side_set 1 opt"}),"\uff1a\u8a2d\u7f6e\u4e00\u500b\u53ef\u9078\u7684\u5074\u8a2d\u7f6e\u5f15\u8173\uff0c\u7528\u65bc\u63a7\u5236 LED\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"pull block"})," \u548c ",(0,l.jsx)(e.code,{children:"out x, 32"}),"\uff1a\u5f9e FIFO \u8b80\u53d6 32 \u4f4d\u6578\u64da\u5230 x \u5bc4\u5b58\u5668\u3002"]}),"\n",(0,l.jsx)(e.li,{children:"\u63a5\u4e0b\u4f86\u7684\u908f\u8f2f\u6aa2\u67e5\u8f38\u5165\u503c\u662f\u5426\u70ba 0\u30013\u30018\u300115 \u6216 21\uff0c\u5982\u679c\u662f\u5247\u95dc\u9589 LED\uff0c\u5426\u5247\u958b\u555f LED\u3002"}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"side 0"})," \u548c ",(0,l.jsx)(e.code,{children:"side 1"})," \u7528\u65bc\u63a7\u5236 LED \u7684\u958b\u95dc\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u9019\u500b\u7a0b\u5f0f\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u6b8a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a\u7576\u8f38\u5165\u503c\u70ba 0\u30013\u30018\u300115 \u6216 21 \u6642\u95dc\u9589 LED\uff0c\u5176\u4ed6\u503c\u5247\u958b\u555f LED\u3002"})}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u521d\u59cb\u5316\u51fd\u6578",children:"PIO \u521d\u59cb\u5316\u51fd\u6578"}),"\n",(0,l.jsx)(e.p,{children:"\u5728 PIO \u7a0b\u5f0f\u4e4b\u5f8c\uff0c\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b C \u51fd\u6578\u4f86\u521d\u59cb\u5316 PIO \u72c0\u614b\u6a5f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="hello.pio"',children:'% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {\n pio_sm_config c = led_controller_program_get_default_config(offset);\n \n sm_config_set_set_pins(&c, pin, 1);\n sm_config_set_sideset_pins(&c, pin);\n pio_gpio_init(pio, pin);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n sm_config_set_clkdiv(&c, 1);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n%}\n'})}),"\n",(0,l.jsx)(e.p,{children:"\u9019\u500b\u51fd\u6578\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\u7684\u914d\u7f6e\uff0c\u5305\u62ec\u8a2d\u7f6e\u5f15\u8173\u3001\u6642\u9418\u5206\u983b\u7b49\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",children:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe"}),"\n",(0,l.jsx)(e.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5f0f\u4e2d\u4f7f\u7528\u9019\u500b PIO \u7a0b\u5f0f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="main.c"',children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hello.pio.h"\n\nint main() {\n stdio_init_all();\n printf("LED Controller Test\\n");\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &led_controller_program);\n led_controller_program_init(pio, sm, offset, 25); // \u5047\u8a2d LED \u9023\u63a5\u5230 GPIO 25\n\n while (true) {\n for (int i = 1; i <= 25; i++) {\n if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {\n printf("LED off (%d)\\n", i);\n } else {\n printf("LED on (%d)\\n", i);\n }\n pio_sm_put_blocking(pio, sm, i);\n sleep_ms(1000); // \u7b49\u5f85 1 \u79d2\n }\n printf("\\nRestarting sequence...\\n\\n");\n sleep_ms(2000); // \u91cd\u65b0\u958b\u59cb\u524d\u7b49\u5f85 2 \u79d2\n }\n\n return 0;\n}\n'})}),"\n",(0,l.jsx)(e.h3,{id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",children:"\u4e3b\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u521d\u59cb\u5316\u6a19\u6e96\u8f38\u5165\u8f38\u51fa\u548c PIO\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c07 PIO \u7a0b\u5f0f\u52a0\u8f09\u5230 pio0 \u7684\u72c0\u614b\u6a5f 0 \u4e2d\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5728\u4e00\u500b\u7121\u9650\u5faa\u74b0\u4e2d\uff0c\u904d\u6b77 1 \u5230 25 \u7684\u6578\u5b57\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6578\u5b57\uff0c\u5c07\u5176\u767c\u9001\u5230 PIO \u72c0\u614b\u6a5f\uff0c\u4e26\u5370\u51fa LED \u7684\u9810\u671f\u72c0\u614b\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u6b21\u64cd\u4f5c\u5f8c\u7b49\u5f85 1 \u79d2\uff0c\u6bcf\u8f2a\u5faa\u74b0\u5f8c\u7b49\u5f85 2 \u79d2\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u7de8\u8b6f\u548c\u904b\u884c",children:"\u7de8\u8b6f\u548c\u904b\u884c"}),"\n",(0,l.jsxs)(e.p,{children:["\u8981\u7de8\u8b6f\u9019\u500b\u7a0b\u5f0f\uff0c\u60a8\u9700\u8981\u78ba\u4fdd\u60a8\u7684 ",(0,l.jsx)(e.code,{children:"CMakeLists.txt"})," \u6587\u4ef6\u6b63\u78ba\u8a2d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u793a\u4f8b\uff1a"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-cmake",metastring:'title="CMakeLists.txt"',children:"cmake_minimum_required(VERSION 3.13)\ninclude(pico_sdk_import.cmake)\nproject(led_controller C CXX ASM)\nset(CMAKE_C_STANDARD 11)\nset(CMAKE_CXX_STANDARD 17)\npico_sdk_init()\n\nadd_executable(led_controller\n main.c\n)\n\npico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)\n\ntarget_link_libraries(led_controller \n pico_stdlib \n hardware_pio\n)\n\npico_enable_stdio_usb(led_controller 1)\npico_enable_stdio_uart(led_controller 0)\n\npico_add_extra_outputs(led_controller)\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u7de8\u8b6f\u5b8c\u6210\u5f8c\uff0c\u5c07\u7a0b\u5f0f\u4e0a\u50b3\u5230\u60a8\u7684 Raspberry Pi Pico\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u6e2c\u8a66\u7d50\u679c",children:"\u6e2c\u8a66\u7d50\u679c"}),"\n",(0,l.jsx)(e.p,{children:"\u7576\u60a8\u904b\u884c\u9019\u500b\u7a0b\u5f0f\u6642\uff0c\u60a8\u61c9\u8a72\u6703\u5728\u4e32\u53e3\u7d42\u7aef\u770b\u5230\u985e\u4f3c\u4ee5\u4e0b\u7684\u8f38\u51fa\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"LED Controller Test\nLED on (1)\nLED on (2)\nLED off (3)\nLED on (4)\nLED on (5)\nLED on (6)\nLED on (7)\nLED off (8)\n...\nLED off (21)\nLED on (22)\nLED on (23)\nLED on (24)\nLED on (25)\n\nRestarting sequence...\n\nLED on (1)\nLED on (2)\nLED off (3)\n...\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u540c\u6642\uff0c\u60a8\u61c9\u8a72\u80fd\u89c0\u5bdf\u5230\u9023\u63a5\u5230 GPIO 25 \u7684 LED \u76f8\u61c9\u5730\u958b\u555f\u548c\u95dc\u9589\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",children:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u9019\u500b\u4f8b\u5b50\u4e2d\uff0c\u6211\u5011\u7684 PIO \u7a0b\u5f0f\u4f7f\u7528\u4e86 12 \u500b\u6307\u4ee4\u69fd\u3002RP2040 \u7684\u6bcf\u500b PIO \u5be6\u4f8b\u6709 32 \u500b\u6307\u4ee4\u69fd\uff0c\u56e0\u6b64\u6211\u5011\u9084\u6709 20 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u65bc\u5176\u4ed6\u76ee\u7684\u3002"}),"\n",(0,l.jsx)(e.admonition,{title:"\u512a\u5316\u8003\u616e",type:"tip",children:(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u5982\u679c\u9700\u8981\u5728\u540c\u4e00\u500b PIO \u4e2d\u904b\u884c\u591a\u500b\u7a0b\u5f0f\uff0c\u53ef\u4ee5\u8003\u616e\u6e1b\u5c11\u6bcf\u500b\u7a0b\u5f0f\u7684\u6307\u4ee4\u6578\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528 pio1 \u4f86\u904b\u884c\u984d\u5916\u7684\u7a0b\u5f0f\uff0c\u5b83\u6709\u5b8c\u6574\u7684 32 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u8003\u616e\u8b93\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u90e8\u5206\u6307\u4ee4\uff0c\u4ee5\u6700\u5927\u5316\u6307\u4ee4\u4f7f\u7528\u6548\u7387\u3002"}),"\n"]})}),"\n",(0,l.jsx)(e.p,{children:"\u60a8\u63d0\u51fa\u4e86\u4e00\u500b\u5f88\u597d\u7684\u89c0\u9ede\u3002\u6211\u6703\u70ba\u60a8\u6dfb\u52a0\u9019\u4e9b\u91cd\u8981\u7684\u77e5\u8b58\u9ede\uff0c\u8a73\u7d30\u89e3\u91cb PIO \u7684\u6574\u9ad4\u67b6\u69cb\u3001\u591a\u72c0\u614b\u6a5f\u4f7f\u7528\u4ee5\u53ca\u6307\u4ee4\u9650\u5236\u3002\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u6bb5\u843d\uff0c\u60a8\u53ef\u4ee5\u5c07\u5176\u63d2\u5165\u5230\u9069\u7576\u7684\u4f4d\u7f6e\uff1a"}),"\n",(0,l.jsx)(e.hr,{}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",children:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.h3,{id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",children:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(e.p,{children:"RP2040 \u64c1\u6709\u5169\u500b PIO \u5be6\u4f8b\uff08PIO0 \u548c PIO1\uff09\uff0c\u6bcf\u500b PIO \u5be6\u4f8b\u5305\u542b\u56db\u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f\u3002\u9019\u7a2e\u8a2d\u8a08\u63d0\u4f9b\u4e86\u6975\u5927\u7684\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u53ef\u4ee5\u540c\u6642\u904b\u884c\u6700\u591a\u56db\u500b\u7368\u7acb\u7684\u7a0b\u5e8f\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u72c0\u614b\u6a5f\u53ef\u4ee5\u7368\u7acb\u904b\u884c\uff0c\u4e5f\u53ef\u4ee5\u5354\u540c\u5de5\u4f5c\uff0c\u5be6\u73fe\u8907\u96dc\u7684\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u4f8b\u5982\uff0c\u5728 VGA \u4fe1\u865f\u751f\u6210\u4e2d\uff0c\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u80fd\u8ca0\u8cac\u6c34\u5e73\u540c\u6b65\uff0c\u53e6\u4e00\u500b\u8ca0\u8cac\u5782\u76f4\u540c\u6b65\uff0c\u800c\u7b2c\u4e09\u500b\u8655\u7406\u50cf\u7d20\u6578\u64da\u8f38\u51fa\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",children:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab"}),"\n",(0,l.jsx)(e.p,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u64c1\u6709 32 \u689d\u6307\u4ee4\u7684\u5171\u4eab\u5167\u5b58\u3002\u9019\u662f\u4e00\u500b\u95dc\u9375\u7684\u9650\u5236\u548c\u8a2d\u8a08\u8003\u616e\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6240\u6709\u56db\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u9019 32 \u689d\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b\u7a0b\u5e8f\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u6578\u91cf\u7684\u6307\u4ee4\uff0c\u53ea\u8981\u7e3d\u548c\u4e0d\u8d85\u904e 32\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u5168\u90e8 32 \u689d\u6307\u4ee4\uff0c\u6216\u8005\u591a\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u6578\u91cf\u7684\u6307\u4ee4\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"caution",children:(0,l.jsx)(e.p,{children:"\u7576\u8a2d\u8a08 PIO \u7a0b\u5e8f\u6642\uff0c\u5fc5\u9808\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u9019\u8981\u6c42\u958b\u767c\u8005\u5728\u529f\u80fd\u5be6\u73fe\u548c\u8cc7\u6e90\u4f7f\u7528\u4e4b\u9593\u53d6\u5f97\u5e73\u8861\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",children:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565"}),"\n",(0,l.jsx)(e.p,{children:"\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u512a\u5316\u7b56\u7565\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u6307\u4ee4\u91cd\u7528"}),"\uff1a\u8a2d\u8a08\u53ef\u4ee5\u88ab\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u7684\u6307\u4ee4\u5e8f\u5217\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u529f\u80fd\u5283\u5206"}),"\uff1a\u5c07\u8907\u96dc\u529f\u80fd\u5206\u89e3\u70ba\u591a\u500b\u7c21\u55ae\u7a0b\u5e8f\uff0c\u5206\u914d\u7d66\u4e0d\u540c\u7684\u72c0\u614b\u6a5f\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5be6\u4f8b\u8a2d\u8a08"}),"\uff1a\u5982\u679c\u4e00\u500b PIO \u5be6\u4f8b\u7684\u8cc7\u6e90\u4e0d\u8db3\uff0c\u8003\u616e\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u6211\u5011\u7684 LED \u63a7\u5236\u5668\u793a\u4f8b\u4e2d\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6211\u5011\u4f7f\u7528\u4e86 12 \u689d\u6307\u4ee4\uff0c\u4f54\u7528\u4e86 PIO \u5be6\u4f8b\u7d04 37.5% \u7684\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u9019\u610f\u5473\u8457\u6211\u5011\u9084\u6709\u8db3\u5920\u7684\u7a7a\u9593\u5728\u540c\u4e00 PIO \u5be6\u4f8b\u4e2d\u5be6\u73fe\u5176\u4ed6\u529f\u80fd\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f8b\u5982\uff0c\u6211\u5011\u53ef\u4ee5\u6dfb\u52a0\u53e6\u4e00\u500b\u7a0b\u5e8f\u4f86\u63a7\u5236\u4e0d\u540c\u7684 LED \u6a21\u5f0f\uff0c\u6216\u5be6\u73fe\u5176\u4ed6 I/O \u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-python",children:"\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - \u7576\u524d\u7a0b\u5e8f\u4f7f\u7528\u7684\u6307\u4ee4\u6578\n\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - 12 = 20 \u689d\u6307\u4ee4\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u64f4\u5c55\u6027\u8003\u616e",children:"\u64f4\u5c55\u6027\u8003\u616e"}),"\n",(0,l.jsx)(e.p,{children:"\u7406\u89e3 PIO \u67b6\u69cb\u548c\u8cc7\u6e90\u9650\u5236\u5f8c\uff0c\u6211\u5011\u53ef\u4ee5\u66f4\u597d\u5730\u898f\u5283\u8907\u96dc\u9805\u76ee\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u4e26\u884c\u4efb\u52d9"}),"\uff1a\u5229\u7528\u591a\u500b\u72c0\u614b\u6a5f\u540c\u6642\u57f7\u884c\u4e0d\u540c\u4efb\u52d9\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8cc7\u6e90\u5206\u914d"}),"\uff1a\u5728\u8a2d\u8a08\u521d\u671f\u5c31\u8003\u616e\u6307\u4ee4\u4f7f\u7528\uff0c\u5408\u7406\u5206\u914d\u8cc7\u6e90\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5354\u4f5c"}),"\uff1a\u5c0d\u65bc\u66f4\u8907\u96dc\u7684\u9805\u76ee\uff0c\u8003\u616e PIO0 \u548c PIO1 \u7684\u5354\u540c\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"tip",children:(0,l.jsx)(e.p,{children:"\u5728\u958b\u767c\u904e\u7a0b\u4e2d\uff0c\u5b9a\u671f\u6aa2\u67e5\u6307\u4ee4\u4f7f\u7528\u60c5\u6cc1\uff0c\u78ba\u4fdd\u4e0d\u6703\u8d85\u51fa 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u5982\u679c\u63a5\u8fd1\u9650\u5236\uff0c\u8003\u616e\u91cd\u69cb\u4ee3\u78bc\u6216\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"})})]})}function p(n={}){const{wrapper:e}={...(0,o.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>s,x:()=>t});var l=i(6540);const o={},r=l.createContext(o);function s(n){const e=l.useContext(r);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:s(n.components),l.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/5e87523e.bdcf1c3b.js b/en/assets/js/5e87523e.bdcf1c3b.js new file mode 100644 index 000000000..2ebf85773 --- /dev/null +++ b/en/assets/js/5e87523e.bdcf1c3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6251],{1357:e=>{e.exports=JSON.parse('{"tag":{"label":"cdc","permalink":"/en/tags/cdc","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/5e95c892.794757cd.js b/en/assets/js/5e95c892.794757cd.js new file mode 100644 index 000000000..cbedc4ab1 --- /dev/null +++ b/en/assets/js/5e95c892.794757cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9647],{7121:(e,r,c)=>{c.r(r),c.d(r,{default:()=>l});c(6540);var s=c(4164),a=c(1213),d=c(7559),n=c(2831),t=c(5733),u=c(4848);function l(e){return(0,u.jsx)(a.e3,{className:(0,s.A)(d.G.wrapper.docsPages),children:(0,u.jsx)(t.A,{children:(0,n.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/en/assets/js/5f361db7.96711c71.js b/en/assets/js/5f361db7.96711c71.js new file mode 100644 index 000000000..f93ccd96f --- /dev/null +++ b/en/assets/js/5f361db7.96711c71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3047],{9547:e=>{e.exports=JSON.parse('{"tag":{"label":"Resource Management","permalink":"/en/tags/resource-management","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/60875e34.216852b1.js b/en/assets/js/60875e34.216852b1.js new file mode 100644 index 000000000..bf392c0a9 --- /dev/null +++ b/en/assets/js/60875e34.216852b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9661],{7315:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var n=o(4848),r=o(8453);const i={sidebar_position:1},a="Tutorial",s={id:"tutorial",title:"Tutorial",description:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.",source:"@site/docs/tutorial.md",sourceDirName:".",slug:"/tutorial",permalink:"/en/tutorial",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial.md",tags:[],version:"current",lastUpdatedAt:1720597722e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}},c={},d=[];function l(e){const t={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"tutorial",children:"Tutorial"}),"\n",(0,n.jsx)(t.p,{children:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial."}),"\n",(0,n.jsx)(t.p,{children:'Desde aqu\xed, puedes enlazar a las p\xe1ginas de art\xedculos espec\xedficos, como los contenidos bajo "Micro-controladores".'})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(6540);const r={},i=n.createContext(r);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/60f48b9d.db9183aa.js b/en/assets/js/60f48b9d.db9183aa.js new file mode 100644 index 000000000..9fbf7e561 --- /dev/null +++ b/en/assets/js/60f48b9d.db9183aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1850],{6658:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>t,contentTitle:()=>_,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var c=i(4848),l=i(8453);const s={slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},_=void 0,d={id:"micro-controladores/RP2040/rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",permalink:"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"PWM",permalink:"/en/tags/pwm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"Embedded Systems",permalink:"/en/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},sidebar:"tutorialSidebar",previous:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"},next:{title:"Timer and Alarm Usage in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}},t={},r=[{value:"PWM \u57fa\u790e\u77e5\u8b58",id:"pwm-\u57fa\u790e\u77e5\u8b58",level:2},{value:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",level:2},{value:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09",id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",level:3},{value:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09",id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",level:3},{value:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09",id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",level:3},{value:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4",id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",level:3},{value:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f",id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6",id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",level:2},{value:"\u55ae\u7368\u4f7f\u7528 PWM",id:"\u55ae\u7368\u4f7f\u7528-pwm",level:2},{value:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",level:3},{value:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",level:3},{value:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",level:4},{value:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",level:5},{value:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM",id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",level:5},{value:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053",id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",level:5},{value:"\u914d\u7f6e PWM \u5207\u7247",id:"\u914d\u7f6e-pwm-\u5207\u7247",level:5},{value:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u751f\u6210\u6b65\u9032\u8108\u885d",id:"\u751f\u6210\u6b65\u9032\u8108\u885d",level:5},{value:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",level:5},{value:"\u5176\u4ed6 PWM \u914d\u7f6e",id:"\u5176\u4ed6-pwm-\u914d\u7f6e",level:5},{value:"\u63a7\u5236\u4f3a\u670d\u6a5f",id:"\u63a7\u5236\u4f3a\u670d\u6a5f",level:3},{value:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372",id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",level:3},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function o(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...n.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u57fa\u790e\u77e5\u8b58",children:"PWM \u57fa\u790e\u77e5\u8b58"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u662f\u4e00\u7a2e\u5e38\u7528\u7684\u6578\u4f4d\u4fe1\u865f\u8655\u7406\u6280\u8853,\u901a\u904e\u6539\u8b8a\u8108\u885d\u7684\u5bec\u5ea6\u4f86\u8abf\u88fd\u4fe1\u865f\u7684\u5e73\u5747\u503c\u3002\u5728 RP2040 \u4e2d,PWM \u529f\u80fd\u7531\u5c08\u9580\u7684\u786c\u9ad4\u6a21\u7d44\u63d0\u4f9b,\u53ef\u4ee5\u751f\u6210 PWM \u4fe1\u865f\u4e26\u63a7\u5236\u5176\u53c3\u6578,\u5982\u983b\u7387\u3001\u4f54\u7a7a\u6bd4\u7b49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u4fe1\u865f\u7531\u4e00\u7cfb\u5217\u8108\u885d\u7d44\u6210,\u6bcf\u500b\u8108\u885d\u7684\u5bec\u5ea6\u6c7a\u5b9a\u4e86\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u4f54\u7a7a\u6bd4\u662f\u6307\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6642\u9593\u8207\u6574\u500b\u9031\u671f\u7684\u6bd4\u503c,\u901a\u5e38\u4ee5\u767e\u5206\u6bd4\u8868\u793a\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u5be6\u73fe\u5c0d\u9023\u63a5\u8a2d\u5099\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"RP2040 \u7684 PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u500b PWM \u901a\u9053,\u6bcf\u500b\u901a\u9053\u90fd\u53ef\u4ee5\u7368\u7acb\u914d\u7f6e\u548c\u63a7\u5236\u3002\u9019\u4f7f\u5f97\u6211\u5011\u53ef\u4ee5\u540c\u6642\u8f38\u51fa\u591a\u500b PWM \u4fe1\u865f,\u4e26\u5c0d\u5b83\u5011\u9032\u884c\u7cbe\u78ba\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u958b\u982d\u6bb5\u843d,\u8a73\u7d30\u4ecb\u7d39\u4e86 PWM \u7684\u5404\u7a2e\u914d\u7f6e\u6a21\u5f0f\u3001\u4f5c\u7528\u4ee5\u53ca\u5982\u4f55\u8a2d\u7f6e:"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",children:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u7a2e\u914d\u7f6e\u6a21\u5f0f,\u53ef\u4ee5\u6839\u64da\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u9032\u884c\u8a2d\u7f6e\u3002\u6bcf\u7a2e\u6a21\u5f0f\u90fd\u6709\u5176\u7279\u5b9a\u7684\u4f5c\u7528\u548c\u914d\u7f6e\u65b9\u6cd5\u3002\u4e0b\u9762\u6211\u5011\u4f86\u8a73\u7d30\u4ecb\u7d39\u4e00\u4e0b\u9019\u4e9b\u6a21\u5f0f:"}),"\n",(0,c.jsx)(e.h3,{id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",children:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09"}),"\n",(0,c.jsxs)(e.p,{children:["\u81ea\u7531\u904b\u884c\u6a21\u5f0f\u662f PWM \u7684\u9ed8\u8a8d\u6a21\u5f0f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u4e0d\u65b7\u5730\u5f9e 0 \u8a08\u6578\u5230\u8a2d\u5b9a\u7684\u6700\u5927\u503c\uff08\u901a\u904e ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e\uff09,\u7136\u5f8c\u518d\u5f9e 0 \u958b\u59cb\u91cd\u8907\u8a08\u6578\u3002\u7576\u8a08\u6578\u5668\u7684\u503c\u8207\u6bd4\u8f03\u5668\u7684\u503c\u76f8\u7b49\u6642,PWM \u8f38\u51fa\u6703\u6839\u64da\u8a2d\u7f6e\u7684\u96fb\u5e73\uff08\u9ad8\u96fb\u5e73\u6216\u4f4e\u96fb\u5e73\uff09\u9032\u884c\u5207\u63db\u3002"]}),"\n",(0,c.jsx)(e.p,{children:"\u9002\u7528\u573a\u666f\uff1a\u7528\u65bc\u666e\u901a\u7684PWM\u8f38\u51fa\uff0c\u4f8b\u5982LED\u4eae\u5ea6\u8abf\u7bc0\u3001\u96fb\u6a5f\u901f\u5ea6\u63a7\u5236\u7b49\uff0c\u9700\u8981\u5b9a\u671f\u7684\u5468\u671f\u6027PWM\u4fe1\u53f7\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u81ea\u7531\u904b\u884c\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u6700\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",children:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u8a08\u6578\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u6839\u64da\u5916\u90e8\u8f38\u5165\u7684\u8108\u885d\u4fe1\u865f\u9032\u884c\u8a08\u6578\u3002\u9019\u7a2e\u6a21\u5f0f\u901a\u5e38\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\u3002\n\u9069\u7528\u5834\u666f\uff1a\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u8108\u885d\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\uff0c\u901a\u5e38\u8207\u5916\u90e8\u8f38\u5165\u4fe1\u865f\u540c\u6b65\u8a08\u6578\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u8a08\u6578\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\npwm_init(slice_num, &config, false);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv_mode"})," \u51fd\u6578\u5c07 PWM \u7684\u6642\u9418\u5206\u983b\u6a21\u5f0f\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_RISING"}),",\u8868\u793a\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u9032\u884c\u8a08\u6578\u3002\u7136\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u662f\u4e00\u7a2e\u7279\u6b8a\u7684 PWM \u6a21\u5f0f,\u5b83\u53ef\u4ee5\u7522\u751f\u5c0d\u7a31\u7684 PWM \u4fe1\u865f,\u4e26\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\n\u9002\u7528\u573a\u666f\uff1a\u7522\u751f\u5c0d\u7a31\u7684PWM\u4fe1\u53f7\uff0c\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\uff0c\u9069\u5408\u5c0dPWM\u4fe1\u865f\u8cea\u91cf\u8981\u6c42\u8f03\u9ad8\u7684\u61c9\u7528\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_phase_correct(&config, true);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"})," \u51fd\u6578\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",children:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u7121\u8ad6\u4f7f\u7528\u54ea\u7a2e PWM \u6a21\u5f0f,\u6211\u5011\u90fd\u9700\u8981\u8a2d\u7f6e PWM \u4fe1\u865f\u7684\u983b\u7387\u548c\u4f54\u7a7a\u6bd4\u3002PWM \u983b\u7387\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u7684\u9031\u671f,\u800c\u4f54\u7a7a\u6bd4\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u6bd4\u4f8b\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u983b\u7387,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6642\u9418\u5206\u983b\u5668\u548c\u5305\u88f9\u503c\u3002\u6642\u9418\u5206\u983b\u5668\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u8a08\u6578\u901f\u5ea6,\u800c\u5305\u88f9\u503c\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u3002PWM \u983b\u7387\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = \u7cfb\u7d71\u6642\u9418\u983b\u7387 / (\u6642\u9418\u5206\u983b\u5668 * (\u5305\u88f9\u503c + 1))\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u7cfb\u7d71\u6642\u9418\u983b\u7387\u70ba 125 MHz,\u6642\u9418\u5206\u983b\u5668\u8a2d\u7f6e\u70ba 1.0\uff08\u4e0d\u5206\u983b\uff09,\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u5247 PWM \u983b\u7387\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u4f54\u7a7a\u6bd4,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6bd4\u8f03\u5668\u503c\u3002\u6bd4\u8f03\u5668\u503c\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u3002PWM \u4f54\u7a7a\u6bd4\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = \u6bd4\u8f03\u5668\u503c / (\u5305\u88f9\u503c + 1)\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u6bd4\u8f03\u5668\u503c\u8a2d\u7f6e\u70ba 624,\u5247 PWM \u4f54\u7a7a\u6bd4\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = 624 / (1249 + 1) = 0.4992 \u2248 50%\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u7d9c\u4e0a\u6240\u8ff0,\u901a\u904e\u5408\u7406\u914d\u7f6e PWM \u7684\u6a21\u5f0f\u3001\u983b\u7387\u548c\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u7522\u751f\u5404\u7a2e\u4e0d\u540c\u7279\u6027\u7684 PWM \u4fe1\u865f,\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,\u90fd\u53ef\u4ee5\u901a\u904e\u9748\u6d3b\u914d\u7f6e PWM \u4f86\u5be6\u73fe\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",children:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f"}),"\n",(0,c.jsx)(e.p,{children:"\u9996\u5148,\u8b93\u6211\u5011\u4f86\u770b\u4e00\u500b\u7c21\u55ae\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u5728 RP2040 \u4e0a\u8f38\u51fa PWM \u4fe1\u865f:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nint main() {\n // \u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM\n gpio_set_function(0, GPIO_FUNC_PWM);\n gpio_set_function(1, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(0);\n\n // \u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0\uff080 \u5230 3\uff09\n pwm_set_wrap(slice_num, 3);\n\n // \u8a2d\u7f6e\u901a\u9053 A \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e00\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);\n\n // \u8a2d\u7f6e\u901a\u9053 B \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u521d\u59cb\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e09\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);\n\n // \u555f\u52d5 PWM\n pwm_set_enabled(slice_num, true);\n}\n'})}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM \u529f\u80fd,\u4e26\u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\u3002\u7136\u5f8c,\u6211\u5011\u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0,\u4e26\u914d\u7f6e\u901a\u9053 A \u548c\u901a\u9053 B \u7684\u8f38\u51fa\u96fb\u5e73\u3002\u6700\u5f8c,\u6211\u5011\u555f\u52d5 PWM,\u958b\u59cb\u8f38\u51fa PWM \u4fe1\u865f\u3002"})}),"\n",(0,c.jsxs)(e.p,{children:["\u503c\u5f97\u6ce8\u610f\u7684\u662f,\u6211\u5011\u4e5f\u53ef\u4ee5\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_gpio_level(gpio, x)"})," \u51fd\u6578,\u5b83\u6703\u81ea\u52d5\u67e5\u627e\u7d66\u5b9a GPIO \u7684\u6b63\u78ba\u5207\u7247\u548c\u901a\u9053,\u4e26\u8a2d\u7f6e\u8f38\u51fa\u96fb\u5e73\u3002"]}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",children:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u8b93\u6211\u5011\u770b\u4e00\u500b\u66f4\u5be6\u7528\u7684\u4f8b\u5b50,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include <stdio.h>\n#include "pico/time.h"\n#include "hardware/irq.h"\n#include "hardware/pwm.h"\n\n#ifdef PICO_DEFAULT_LED_PIN\nvoid on_pwm_wrap() {\n static int fade = 0;\n static bool going_up = true;\n\n // \u6e05\u9664\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));\n\n if (going_up) {\n ++fade;\n if (fade > 255) {\n fade = 255;\n going_up = false;\n }\n } else {\n --fade;\n if (fade < 0) {\n fade = 0;\n going_up = true;\n }\n }\n\n // \u5c07 fade \u503c\u5e73\u65b9,\u4f7f LED \u7684\u4eae\u5ea6\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027\n // \u6ce8\u610f,\u9019\u500b\u7bc4\u570d\u8207 wrap \u503c\u5339\u914d\n pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);\n}\n#endif\n\nint main() {\n#ifndef PICO_DEFAULT_LED_PIN\n#warning pwm/led_fade example requires a board with a regular LED\n#else\n // \u544a\u8a34 LED \u5f15\u8173,PWM \u8ca0\u8cac\u63a7\u5236\u5176\u503c\n gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);\n\n // \u5c07\u6211\u5011\u7684\u5207\u7247\u7684 IRQ \u8f38\u51fa\u906e\u7f69\u5230 PWM \u584a\u7684\u55ae\u500b\u4e2d\u65b7\u7dda,\n // \u4e26\u8a3b\u518a\u6211\u5011\u7684\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\n pwm_clear_irq(slice_num);\n pwm_set_irq_enabled(slice_num, true);\n irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);\n irq_set_enabled(PWM_IRQ_WRAP, true);\n\n // \u70ba\u5207\u7247\u914d\u7f6e\u7372\u53d6\u4e00\u4e9b\u5408\u7406\u7684\u9810\u8a2d\u503c\n // \u9810\u8a2d\u60c5\u6cc1\u4e0b,\u8a08\u6578\u5668\u53ef\u4ee5\u5728\u5176\u6700\u5927\u7bc4\u570d\uff080 \u5230 2^16-1\uff09\u5167\u5305\u88f9\n pwm_config config = pwm_get_default_config();\n\n // \u8a2d\u7f6e\u5206\u983b\u5668,\u5c07\u8a08\u6578\u5668\u6642\u9418\u6e1b\u5c11\u5230 sysclock/4\n pwm_config_set_clkdiv(&config, 4.f);\n\n // \u5c07\u914d\u7f6e\u8f09\u5165\u5230\u6211\u5011\u7684 PWM \u5207\u7247\u4e2d,\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n pwm_init(slice_num, &config, true);\n\n // \u5728\u9019\u4e00\u9ede\u4e4b\u5f8c\u7684\u6240\u6709\u64cd\u4f5c\u90fd\u5728 PWM \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d\u9032\u884c,\n // \u6240\u4ee5\u6211\u5011\u53ef\u4ee5\u5728\u4e3b\u8ff4\u5708\u4e2d\u4ec0\u9ebc\u4e5f\u4e0d\u505a\n while (1)\n tight_loop_contents();\n#endif\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6,\u5be6\u73fe\u6f38\u8b8a\u6548\u679c\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u5c07 LED \u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\u3002"}),"\n",(0,c.jsxs)(e.li,{children:["\u8a2d\u7f6e PWM \u4e2d\u65b7,\u8a3b\u518a\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u548c\u8a08\u6578\u5668\u7bc4\u570d\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u4e26\u5728\u4e3b\u8ff4\u5708\u4e2d\u7b49\u5f85\u4e2d\u65b7\u89f8\u767c\u3002"}),"\n"]}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"})," \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d,\u6211\u5011\u901a\u904e\u6539\u8b8a ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u4f86\u63a7\u5236 LED \u7684\u4eae\u5ea6\u3002\u6bcf\u6b21\u4e2d\u65b7\u89f8\u767c\u6642,\u6211\u5011\u6839\u64da ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u7684\u8b8a\u5316\u65b9\u5411\uff08\u589e\u52a0\u6216\u6e1b\u5c11\uff09\u4f86\u66f4\u65b0 LED \u7684\u4eae\u5ea6\u3002\u70ba\u4e86\u4f7f\u4eae\u5ea6\u8b8a\u5316\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027,\u6211\u5011\u5c07 ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u5e73\u65b9\u5f8c\u518d\u8a2d\u7f6e\u7d66 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u4f7f\u7528\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u53ef\u4ee5\u5728\u4e0d\u5f71\u97ff\u4e3b\u7a0b\u5e8f\u57f7\u884c\u7684\u60c5\u6cc1\u4e0b\u5be6\u73fe LED \u4eae\u5ea6\u7684\u5e73\u6ed1\u8b8a\u5316\u3002\u9019\u7a2e\u65b9\u5f0f\u975e\u5e38\u9069\u5408\u9700\u8981\u6301\u7e8c\u66f4\u65b0\u8f38\u51fa\u7684\u5834\u666f\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",children:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u6700\u5f8c,\u8b93\u6211\u5011\u770b\u4e00\u500b\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint OUTPUT_PIN = 2;\nconst uint MEASURE_PIN = 5;\n\nfloat measure_duty_cycle(uint gpio) {\n // \u53ea\u6709 PWM B \u5f15\u8173\u53ef\u4ee5\u7528\u4f5c\u8f38\u5165\n assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);\n\n uint slice_num = pwm_gpio_to_slice_num(gpio);\n\n // \u6bcf 100 \u500b\u5faa\u74b0,PWM B \u8f38\u5165\u70ba\u9ad8\u96fb\u5e73\u6642\u8a08\u6578\u4e00\u6b21\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);\n pwm_config_set_clkdiv(&cfg, 100);\n pwm_init(slice_num, &cfg, false);\n\n gpio_set_function(gpio, GPIO_FUNC_PWM);\n pwm_set_enabled(slice_num, true);\n sleep_ms(10);\n pwm_set_enabled(slice_num, false);\n\n float counting_rate = clock_get_hz(clk_sys) / 100;\n float max_possible_count = counting_rate * 0.01;\n\n return pwm_get_counter(slice_num) / max_possible_count;\n}\n\nconst float test_duty_cycles[] = {\n 0.f,\n 0.1f,\n 0.5f,\n 0.9f,\n 1.f\n};\n\nint main() {\n stdio_init_all();\n printf("\\nPWM duty cycle measurement example\\n");\n\n // \u914d\u7f6e PWM \u5207\u7247\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n const uint count_top = 1000;\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_wrap(&cfg, count_top);\n pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);\n\n // \u6ce8\u610f,\u6211\u5011\u9084\u6c92\u6709\u89f8\u78b0\u53e6\u4e00\u500b\u5f15\u8173 -- PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\n // \u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\n // \u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!\n gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);\n\n // \u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u9a45\u52d5\u8a72\u96fb\u5e73,\n // \u7136\u5f8c\u4f7f\u7528\u53e6\u4e00\u500b\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002\u9019\u5169\u500b\u503c\u61c9\u8a72\u975e\u5e38\u63a5\u8fd1!\n for (int i = 0; i < count_of(test_duty_cycles); ++i) {\n float output_duty_cycle = test_duty_cycles[i];\n pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));\n\n float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);\n printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\\n",\n output_duty_cycle * 100.f, measured_duty_cycle * 100.f);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u6f14\u793a\u4e86\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsxs)(e.li,{children:["\u5b9a\u7fa9\u8f38\u51fa\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"OUTPUT_PIN"})," \u548c\u6e2c\u91cf\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"MEASURE_PIN"}),"\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5be6\u73fe ",(0,c.jsx)(e.code,{children:"measure_duty_cycle()"})," \u51fd\u6578,\u7528\u65bc\u6e2c\u91cf\u7d66\u5b9a GPIO \u5f15\u8173\u4e0a\u7684 PWM \u4fe1\u865f\u4f54\u7a7a\u6bd4\u3002","\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:["\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u6a21\u5f0f\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_HIGH"}),",\u5373\u6bcf 100 \u500b\u5faa\u74b0\u8a08\u6578\u4e00\u6b21\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u7b49\u5f85\u4e00\u6bb5\u6642\u9593,\u7136\u5f8c\u505c\u6b62 PWM\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a08\u7b97\u6700\u5927\u53ef\u80fd\u8a08\u6578\u503c,\u4e26\u6839\u64da\u5be6\u969b\u8a08\u6578\u503c\u8a08\u7b97\u4f54\u7a7a\u6bd4\u3002"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main()"})," \u51fd\u6578\u4e2d,\u914d\u7f6e\u8f38\u51fa\u5f15\u8173\u7684 PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba ",(0,c.jsx)(e.code,{children:"count_top"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u8a2d\u7f6e\u76f8\u61c9\u7684\u96fb\u5e73,\u7136\u5f8c\u4f7f\u7528\u6e2c\u91cf\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5c07\u8f38\u51fa\u4f54\u7a7a\u6bd4\u548c\u6e2c\u91cf\u4f54\u7a7a\u6bd4\u6253\u5370\u51fa\u4f86,\u6aa2\u67e5\u5b83\u5011\u662f\u5426\u63a5\u8fd1\u3002"}),"\n"]}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u5728\u5c07\u5169\u500b\u5f15\u8173\u9023\u63a5\u5728\u4e00\u8d77\u4e4b\u524d,\u9700\u8981\u6ce8\u610f PWM \u5f15\u8173\u7684\u9ed8\u8a8d\u72c0\u614b\u3002PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!"})}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u9019\u500b\u793a\u4f8b,\u6211\u5011\u53ef\u4ee5\u770b\u5230\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u7cbe\u78ba\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u9019\u5728\u9700\u8981\u5c0d PWM \u4fe1\u865f\u9032\u884c\u5206\u6790\u548c\u63a7\u5236\u7684\u5834\u666f\u4e2d\u975e\u5e38\u6709\u7528\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u55ae\u7368\u4f7f\u7528-pwm",children:"\u55ae\u7368\u4f7f\u7528 PWM"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u793a\u4f8b\u4e2d\u7684\u7528\u6cd5,\u6211\u5011\u9084\u53ef\u4ee5\u55ae\u7368\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u5404\u7a2e\u8a2d\u5099,\u5982\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u3001\u4f3a\u670d\u6a5f\u7b49\u3002\u4e0b\u9762\u6211\u5011\u5c07\u8a73\u7d30\u4ecb\u7d39\u5982\u4f55\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u9019\u4e9b\u8a2d\u5099,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",children:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f7f\u7528 PWM \u53ef\u4ee5\u65b9\u4fbf\u5730\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u5230\u96fb\u6a5f\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u63a7\u5236\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint MOTOR_PIN = 2;\n\nint main() {\n // \u5c07\u96fb\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);\n uint channel = pwm_gpio_to_channel(MOTOR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u4f54\u7a7a\u6bd4,\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\n pwm_set_chan_level(slice_num, channel, 32768); // 50% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 16384); // 25% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 49152); // 75% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u96fb\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u7136\u5f8c,\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 65535,\u4ee5\u7372\u5f97\u66f4\u9ad8\u7684\u89e3\u6790\u5ea6\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u4f54\u7a7a\u6bd4\u4f86\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\u3002\u4f54\u7a7a\u6bd4\u7684\u53d6\u503c\u7bc4\u570d\u70ba 0 \u5230 65535,\u5206\u5225\u5c0d\u61c9 0% \u5230 100% \u7684\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u6839\u64da\u96fb\u6a5f\u7684\u898f\u683c\u548c\u96fb\u6e90\u96fb\u58d3,\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u5b89\u5168\u5730\u9a45\u52d5\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u7528\u4f86\u63a7\u5236 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u5f9e\u800c\u8abf\u7bc0\u96fb\u6a5f\u8f49\u901f\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",children:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u7cbe\u5bc6\u5b9a\u4f4d\u8a2d\u5099,\u53ef\u4ee5\u901a\u904e\u63a7\u5236\u8108\u885d\u4fe1\u865f\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u89d2\u5ea6\u63a7\u5236\u3002\u4f7f\u7528 PWM,\u6211\u5011\u53ef\u4ee5\u751f\u6210\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u6240\u9700\u7684\u8108\u885d\u4fe1\u865f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n\nint main() {\n // \u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\n gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\n uint channel_step = pwm_gpio_to_channel(STEP_PIN);\n uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\n uint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num_step, &config, true);\n pwm_init(slice_num_dir, &config, true);\n\n // \u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n\n while (1) {\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n\n // \u6539\u8b8a\u65b9\u5411\u70ba\u53cd\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528\u5169\u500b PWM \u901a\u9053\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u4e00\u500b\u901a\u9053\u7528\u65bc\u751f\u6210\u6b65\u9032\u8108\u885d,\u53e6\u4e00\u500b\u901a\u9053\u7528\u65bc\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65b9\u5411\u3002\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u8108\u885d\u7684\u4f54\u7a7a\u6bd4\u548c\u983b\u7387\u4f86\u751f\u6210\u6240\u9700\u7684\u6b65\u9032\u8108\u885d,\u4e26\u901a\u904e\u6539\u8b8a\u65b9\u5411\u901a\u9053\u7684\u96fb\u5e73\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65cb\u8f49\u65b9\u5411\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u9ad8\u7684\u96fb\u6d41\u9a45\u52d5,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u4f5c\u70ba\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u7528\u65bc\u63a7\u5236\u6b65\u9032\u8108\u885d\u548c\u65b9\u5411\u3002"})}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u6211\u6703\u6839\u64da\u60a8\u7684\u8981\u6c42,\u9032\u4e00\u6b65\u512a\u5316\u9019\u90e8\u5206\u5167\u5bb9,\u4e26\u5584\u7528 Markdown \u548c Docusaurus \u7684\u7279\u6027,\u4f7f\u76ee\u9304\u66f4\u52a0\u6e05\u6670\u3002\u4ee5\u4e0b\u662f\u512a\u5316\u5f8c\u7684\u5167\u5bb9:"}),"\n",(0,c.jsx)(e.h4,{id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",children:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc"}),"\n",(0,c.jsx)(e.p,{children:"\u8b93\u6211\u5011\u4f86\u8a73\u7d30\u8b1b\u89e3\u4e0a\u8ff0\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u7a0b\u5f0f\u78bc,\u4e26\u89e3\u91cb\u5176\u4e2d\u6d89\u53ca\u7684\u53c3\u6578\u548c\u8a2d\u7f6e\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",children:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"const uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u9996\u5148,\u6211\u5011\u5b9a\u7fa9\u4e86\u5169\u500b\u5e38\u91cf ",(0,c.jsx)(e.code,{children:"STEP_PIN"})," \u548c ",(0,c.jsx)(e.code,{children:"DIR_PIN"}),",\u5206\u5225\u8868\u793a\u9023\u63a5\u6b65\u9032\u96fb\u6a5f\u7684\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u3002\u9019\u88e1\u6211\u5011\u5c07\u5b83\u5011\u8a2d\u7f6e\u70ba GPIO2 \u548c GPIO3\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",children:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\ngpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"gpio_set_function"})," \u51fd\u6578\u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u9019\u6a23\u6211\u5011\u5c31\u53ef\u4ee5\u901a\u904e PWM \u4f86\u63a7\u5236\u9019\u5169\u500b\u5f15\u8173\u7684\u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",children:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\nuint channel_step = pwm_gpio_to_channel(STEP_PIN);\nuint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\nuint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_slice_num"})," \u548c ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_channel"})," \u51fd\u6578\u7372\u53d6\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5c0d\u61c9\u7684 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\u3002\u6bcf\u500b PWM \u5207\u7247\u53ef\u4ee5\u63a7\u5236\u5169\u500b\u901a\u9053,\u901a\u5e38\u6a19\u8a18\u70ba A \u548c B\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u914d\u7f6e-pwm-\u5207\u7247",children:"\u914d\u7f6e PWM \u5207\u7247"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num_step, &config, true);\npwm_init(slice_num_dir, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u4e26\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86 PWM \u7684\u89e3\u6790\u5ea6,\u8a2d\u7f6e\u70ba 65535 \u53ef\u4ee5\u63d0\u4f9b\u8f03\u9ad8\u7684\u89e3\u6790\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u8457,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5728\u7684 PWM \u5207\u7247,\u4e26\u5c07 ",(0,c.jsx)(e.code,{children:"config"})," \u61c9\u7528\u5230\u9019\u4e9b\u5207\u7247\u4e0a\u3002\u6700\u5f8c\u4e00\u500b\u53c3\u6578\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"true"}),",\u8868\u793a\u7acb\u5373\u555f\u7528 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\u6642,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0\u3002\u9019\u901a\u5e38\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u6b63\u5411\u65cb\u8f49\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u751f\u6210\u6b65\u9032\u8108\u885d",children:"\u751f\u6210\u6b65\u9032\u8108\u885d"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n}\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e3b\u5faa\u74b0\u4e2d,\u6211\u5011\u9996\u5148\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d\u3002\u6bcf\u500b\u8108\u885d\u7531\u4e00\u500b\u9ad8\u96fb\u5e73\u548c\u4e00\u500b\u4f4e\u96fb\u5e73\u7d44\u6210,\u9ad8\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2,\u4f4e\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2\u3002\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba 32768\uff0850% \u4f54\u7a7a\u6bd4\uff09\u4f86\u751f\u6210\u9ad8\u96fb\u5e73,\u7136\u5f8c\u5ef6\u9072 500 \u5fae\u79d2\u3002\u63a5\u8457,\u6211\u5011\u5c07\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0 \u4f86\u751f\u6210\u4f4e\u96fb\u5e73,\u518d\u5ef6\u9072 500 \u5fae\u79d2\u3002\u9019\u6a23\u5c31\u751f\u6210\u4e86\u4e00\u500b\u5b8c\u6574\u7684\u6b65\u9032\u8108\u885d\u3002"]}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u751f\u6210\u6b65\u9032\u8108\u885d\u7684\u904e\u7a0b\u53ef\u4ee5\u5206\u70ba\u4ee5\u4e0b\u5e7e\u500b\u6b65\u9a5f:"}),(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u9ad8\u96fb\u5e73\uff0850% \u4f54\u7a7a\u6bd4\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u4f4e\u96fb\u5e73\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u91cd\u8907\u6b65\u9a5f 1-4,\u76f4\u5230\u751f\u6210\u8db3\u5920\u6578\u91cf\u7684\u6b65\u9032\u8108\u885d\u3002"}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u751f\u6210\u5b8c 200 \u500b\u6b65\u9032\u8108\u885d\u5f8c,\u6211\u5011\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d,\u4f46\u9019\u6b21\u6b65\u9032\u96fb\u6a5f\u5c07\u5411\u76f8\u53cd\u65b9\u5411\u65cb\u8f49\u3002\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u91cd\u8907\u6574\u500b\u904e\u7a0b\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",children:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578"}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u9019\u6bb5\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578\u7684\u542b\u7fa9\u5982\u4e0b:"}),(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"32768"}),": \u8868\u793a 50% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u56e0\u70ba\u6211\u5011\u5c07 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u8a2d\u7f6e\u70ba 65535,\u6240\u4ee5 32768 \u5927\u7d04\u662f\u6700\u5927\u503c\u7684\u4e00\u534a,\u5c0d\u61c9 50% \u7684\u4f54\u7a7a\u6bd4\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"500"}),": \u8868\u793a\u6b65\u9032\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u548c\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593,\u55ae\u4f4d\u70ba\u5fae\u79d2\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u964d\u4f4e\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u63d0\u9ad8\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"200"}),": \u8868\u793a\u751f\u6210\u7684\u6b65\u9032\u8108\u885d\u6578\u91cf\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u589e\u52a0\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u6e1b\u5c0f\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"65535"}),": \u8868\u793a PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c,\u4e5f\u8868\u793a 100% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u7576\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535 \u6642,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"]}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u5176\u4ed6-pwm-\u914d\u7f6e",children:"\u5176\u4ed6 PWM \u914d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u53c3\u6578,\u6211\u5011\u9084\u53ef\u4ee5\u8a2d\u7f6e\u5176\u4ed6\u7684 PWM \u914d\u7f6e,\u4f8b\u5982:"}),"\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv"}),": \u8a2d\u7f6e PWM \u6642\u9418\u5206\u983b\u5668,\u53ef\u4ee5\u6539\u8b8a PWM \u7684\u983b\u7387\u3002\u589e\u5927\u5206\u983b\u503c\u6703\u964d\u4f4e PWM \u983b\u7387,\u6e1b\u5c0f\u5206\u983b\u503c\u6703\u63d0\u9ad8 PWM \u983b\u7387\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"}),": \u8a2d\u7f6e\u662f\u5426\u4f7f\u7528\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u3002\u5728\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\u9019\u53ef\u4ee5\u6e1b\u5c11 PWM \u8f38\u51fa\u7684\u5c16\u5cf0\u566a\u8072\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_output_polarity"}),": \u8a2d\u7f6e PWM \u8f38\u51fa\u7684\u6975\u6027\u3002\u53ef\u4ee5\u9078\u64c7\u5728 PWM \u8a08\u6578\u5668\u9054\u5230\u6bd4\u8f03\u503c\u6642\u8f38\u51fa\u9ad8\u96fb\u5e73\u9084\u662f\u4f4e\u96fb\u5e73\u3002"]}),"\n"]}),"\n",(0,c.jsx)(e.p,{children:"\u8abf\u6574\u9019\u4e9b PWM \u914d\u7f6e\u53ef\u4ee5\u6539\u8b8a PWM \u8f38\u51fa\u7684\u7279\u6027,\u5f9e\u800c\u5f71\u97ff\u6b65\u9032\u96fb\u6a5f\u7684\u904b\u884c\u65b9\u5f0f,\u5982\u901f\u5ea6\u3001\u626d\u77e9\u3001\u566a\u8072\u7b49\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u9700\u8981\u6ce8\u610f\u7684\u662f,\u9019\u6bb5\u7a0b\u5f0f\u78bc\u53ea\u662f\u4e00\u500b\u57fa\u672c\u7684\u793a\u4f8b,\u7528\u65bc\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u5728\u5be6\u969b\u61c9\u7528\u4e2d,\u4f60\u53ef\u80fd\u9700\u8981\u6839\u64da\u5177\u9ad4\u7684\u6b65\u9032\u96fb\u6a5f\u578b\u865f\u548c\u9a45\u52d5\u5668\u4f86\u8abf\u6574\u53c3\u6578\u548c\u8a2d\u7f6e,\u4ee5\u7372\u5f97\u6700\u4f73\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\u3002\u6b64\u5916,\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u5927\u7684\u96fb\u6d41,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668,\u800c\u4e0d\u662f\u76f4\u63a5\u901a\u904e PWM \u5f15\u8173\u9a45\u52d5\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u4f3a\u670d\u6a5f",children:"\u63a7\u5236\u4f3a\u670d\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4f4d\u7f6e\u63a7\u5236\u8a2d\u5099,\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint SERVO_PIN = 2;\n\nint main() {\n // \u5c07\u4f3a\u670d\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);\n uint channel = pwm_gpio_to_channel(SERVO_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 19999);\n pwm_config_set_clkdiv(&config, 9.6f);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u8108\u5bec,\u63a7\u5236\u4f3a\u670d\u6a5f\u89d2\u5ea6\n pwm_set_chan_level(slice_num, channel, 1000); // 0 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 1500); // 90 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 2000); // 180 \u5ea6\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u4f3a\u670d\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 19999,\u6642\u9418\u5206\u983b\u5668\u70ba 9.6,\u4ee5\u7372\u5f97 50Hz \u7684 PWM \u983b\u7387\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u8108\u5bec\u7684\u5178\u578b\u503c\u70ba 1000us\uff080 \u5ea6\uff09\u30011500us\uff0890 \u5ea6\uff09\u548c 2000us\uff08180 \u5ea6\uff09,\u4f46\u5177\u9ad4\u503c\u53ef\u80fd\u56e0\u4f3a\u670d\u6a5f\u578b\u865f\u800c\u6709\u6240\u4e0d\u540c\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u7684\u63a7\u5236\u4fe1\u865f\u9700\u8981\u7cbe\u78ba\u7684\u8108\u5bec\u548c\u983b\u7387,\u56e0\u6b64\u5728\u914d\u7f6e PWM \u6642\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u5305\u88f9\u503c\u548c\u6642\u9418\u5206\u983b\u5668,\u4ee5\u7372\u5f97\u6240\u9700\u7684\u8108\u5bec\u548c\u983b\u7387\u3002\u6b64\u5916,\u4f3a\u670d\u6a5f\u901a\u5e38\u9700\u8981\u55ae\u7368\u7684\u96fb\u6e90\u4f9b\u96fb,\u4ee5\u63d0\u4f9b\u8db3\u5920\u7684\u96fb\u6d41\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",children:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u7528\u65bc\u8f38\u51fa\u63a7\u5236\u4fe1\u865f,PWM \u9084\u53ef\u4ee5\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint INPUT_PIN = 2;\n\nint main() {\n // \u5c07\u8f38\u5165\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f\n pwm_config config = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\n pwm_init(slice_num, &config, false);\n \n // \u4f7f\u80fd\u8f38\u5165\u6355\u7372\n pwm_set_enabled(slice_num, true);\n\n while (1) {\n // \u7b49\u5f85\u8f38\u5165\u4fe1\u865f\n while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));\n\n // \u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\n uint32_t period = pwm_get_counter(slice_num);\n uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);\n float frequency = clock_get_hz(clk_sys) / period;\n float duty_cycle = (float)pulse_width / period;\n\n printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\\n", \n frequency, pulse_width, duty_cycle * 100);\n\n // \u6e05\u9664\u8f38\u5165\u6355\u7372\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(slice_num);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u8f38\u5165\u4fe1\u865f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f,\u4e26\u4f7f\u80fd\u8f38\u5165\u6355\u7372\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u7b49\u5f85\u8f38\u5165\u4fe1\u865f\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u7136\u5f8c\u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u983b\u7387\u53ef\u4ee5\u901a\u904e\u6642\u9418\u983b\u7387\u9664\u4ee5\u9031\u671f\u8a08\u6578\u5668\u503c\u4f86\u8a08\u7b97,\u8108\u5bec\u53ef\u4ee5\u76f4\u63a5\u5f9e\u6355\u7372\u6bd4\u8f03\u8a08\u6578\u5668\u4e2d\u8b80\u53d6,\u4f54\u7a7a\u6bd4\u53ef\u4ee5\u901a\u904e\u8108\u5bec\u9664\u4ee5\u9031\u671f\u4f86\u8a08\u7b97\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u8f38\u5165\u6355\u7372\u6a21\u5f0f\u4e0b,PWM \u5207\u7247\u6703\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u6216\u4e0b\u964d\u6cbf\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u4e26\u8a18\u9304\u7576\u524d\u7684\u8a08\u6578\u5668\u503c\u3002\u901a\u904e\u6bd4\u8f03\u9023\u7e8c\u5169\u6b21\u6355\u7372\u7684\u8a08\u6578\u5668\u503c,\u53ef\u4ee5\u8a08\u7b97\u51fa\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u8a73\u7d30\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM \u529f\u80fd\u3002\u9664\u4e86\u4e4b\u524d\u4ecb\u7d39\u7684\u57fa\u672c\u7528\u6cd5,\u6211\u5011\u9084\u6df1\u5165\u8b1b\u89e3\u4e86\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u548c\u4f3a\u670d\u6a5f,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u5b78\u7fd2\u672c\u6587\u63d0\u4f9b\u7684\u8a73\u7d30\u89e3\u91cb\u548c\u793a\u4f8b\u4ee3\u78bc,\u4f60\u61c9\u8a72\u80fd\u5920\u638c\u63e1 RP2040 \u4e2d PWM \u7684\u5404\u7a2e\u7528\u6cd5,\u4e26\u5c07\u5176\u61c9\u7528\u5230\u81ea\u5df1\u7684\u5d4c\u5165\u5f0f\u9805\u76ee\u4e2d\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,PWM \u90fd\u662f\u4e00\u500b\u5f37\u5927\u800c\u9748\u6d3b\u7684\u5de5\u5177\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u5e0c\u671b\u672c\u6587\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684 PWM \u529f\u80fd\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function p(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,c.jsx)(e,{...n,children:(0,c.jsx)(o,{...n})}):o(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>_,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function _(n){const e=c.useContext(s);return c.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:_(n.components),c.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/6875c492.27fa3488.js b/en/assets/js/6875c492.27fa3488.js new file mode 100644 index 000000000..b45d42818 --- /dev/null +++ b/en/assets/js/6875c492.27fa3488.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4813],{7713:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(1312),a=n(9022),i=n(4848);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.A,{permalink:n,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,i.jsx)(a.A,{permalink:r,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(7131),a=n(4651),i=n(4848);function r(e){let{items:t,component:n=a.A}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.i,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},3069:(e,t,n)=>{n.r(t),n.d(t,{default:()=>A});n(6540);var s=n(4164),a=n(1312),i=n(5846),r=n(1213),l=n(7559),o=n(8774),c=n(6535),d=n(7713),g=n(1463),u=n(3892),p=n(996),h=n(1107),m=n(4848);function x(e){const t=function(){const{selectMessage:e}=(0,i.W)();return t=>e(t,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(r.be,{title:n,description:t.description}),(0,m.jsx)(g.A,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const r=x(t);return(0,m.jsxs)(c.A,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(p.A,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(h.A,{as:"h1",children:r}),t.description&&(0,m.jsx)("p",{children:t.description}),(0,m.jsx)(o.A,{href:t.allTagsPath,children:(0,m.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.A,{items:n}),(0,m.jsx)(d.A,{metadata:i})]})}function A(e){return(0,m.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},996:(e,t,n)=>{n.d(t,{A:()=>p});n(6540);var s=n(4164),a=n(1312),i=n(5260),r=n(4848);function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),g=n(7293);function u(e){let{className:t}=e;return(0,r.jsx)(g.A,{type:"caution",title:(0,r.jsx)(l,{}),className:(0,s.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(o,{})})}function p(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/773c270b.9d644822.js b/en/assets/js/773c270b.9d644822.js new file mode 100644 index 000000000..4e0d3dbaa --- /dev/null +++ b/en/assets/js/773c270b.9d644822.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5012],{1976:e=>{e.exports=JSON.parse('{"tag":{"label":"Raspberry Pi Pico","permalink":"/en/tags/raspberry-pi-pico","allTagsPath":"/en/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/7b649237.8db914d1.js b/en/assets/js/7b649237.8db914d1.js new file mode 100644 index 000000000..f48dd0d2f --- /dev/null +++ b/en/assets/js/7b649237.8db914d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3837],{5149:e=>{e.exports=JSON.parse('{"tag":{"label":"RP2040","permalink":"/en/tags/rp-2040","allTagsPath":"/en/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/7c014d8d.27574798.js b/en/assets/js/7c014d8d.27574798.js new file mode 100644 index 000000000..2205ae4bf --- /dev/null +++ b/en/assets/js/7c014d8d.27574798.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[72],{5962:e=>{e.exports=JSON.parse('{"tag":{"label":"serial communication","permalink":"/en/tags/serial-communication","allTagsPath":"/en/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/7d68e24f.396f2b10.js b/en/assets/js/7d68e24f.396f2b10.js new file mode 100644 index 000000000..d1e631c82 --- /dev/null +++ b/en/assets/js/7d68e24f.396f2b10.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5759],{8658:e=>{e.exports=JSON.parse('{"tag":{"label":"interrupts","permalink":"/en/tags/interrupts","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/814f3328.5614a049.js b/en/assets/js/814f3328.5614a049.js new file mode 100644 index 000000000..15eb8f639 --- /dev/null +++ b/en/assets/js/814f3328.5614a049.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/en/blog/Docker-Getting-Srart-01","unlisted":false},{"title":"First Blog Post","permalink":"/en/blog/first-blog-post","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/en/assets/js/822bd8ab.1d1eb612.js b/en/assets/js/822bd8ab.1d1eb612.js new file mode 100644 index 000000000..ead59a652 --- /dev/null +++ b/en/assets/js/822bd8ab.1d1eb612.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2748],{8611:(s,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var e=n(4848),i=n(8453);const o={sidebar_position:6},r="Congratulations!",a={id:"tutorial-basics/congratulations",title:"Congratulations!",description:"You have just learned the basics of Docusaurus and made some changes to the initial template.",source:"@site/docs/tutorial-basics/congratulations.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/congratulations",permalink:"/en/tutorial-basics/congratulations",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/congratulations.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:6,frontMatter:{sidebar_position:6}},c={},u=[{value:"What's next?",id:"whats-next",level:2}];function d(s){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...s.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.h1,{id:"congratulations",children:"Congratulations!"}),"\n",(0,e.jsxs)(t.p,{children:["You have just learned the ",(0,e.jsx)(t.strong,{children:"basics of Docusaurus"})," and made some changes to the ",(0,e.jsx)(t.strong,{children:"initial template"}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Docusaurus has ",(0,e.jsx)(t.strong,{children:"much more to offer"}),"!"]}),"\n",(0,e.jsxs)(t.p,{children:["Have ",(0,e.jsx)(t.strong,{children:"5 more minutes"}),"? Take a look at ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/en/tutorial-extras/manage-docs-versions",children:"versioning"})})," and ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/en/tutorial-extras/translate-your-site",children:"i18n"})}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Anything ",(0,e.jsx)(t.strong,{children:"unclear"})," or ",(0,e.jsx)(t.strong,{children:"buggy"})," in this tutorial? ",(0,e.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/discussions/4610",children:"Please report it!"})]}),"\n",(0,e.jsx)(t.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,e.jsxs)(t.ul,{children:["\n",(0,e.jsxs)(t.li,{children:["Read the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/",children:"official documentation"})]}),"\n",(0,e.jsxs)(t.li,{children:["Modify your site configuration with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/docusaurus-config",children:(0,e.jsx)(t.code,{children:"docusaurus.config.js"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add navbar and footer items with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/themes/configuration",children:(0,e.jsx)(t.code,{children:"themeConfig"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a custom ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/styling-layout",children:"Design and Layout"})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/search",children:"search bar"})]}),"\n",(0,e.jsxs)(t.li,{children:["Find inspirations in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/showcase",children:"Docusaurus showcase"})]}),"\n",(0,e.jsxs)(t.li,{children:["Get involved in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/community/support",children:"Docusaurus Community"})]}),"\n"]})]})}function l(s={}){const{wrapper:t}={...(0,i.R)(),...s.components};return t?(0,e.jsx)(t,{...s,children:(0,e.jsx)(d,{...s})}):d(s)}},8453:(s,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var e=n(6540);const i={},o=e.createContext(i);function r(s){const t=e.useContext(o);return e.useMemo((function(){return"function"==typeof s?s(t):{...t,...s}}),[t,s])}function a(s){let t;return t=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:r(s.components),e.createElement(o.Provider,{value:t},s.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/85d15f38.6e56a438.js b/en/assets/js/85d15f38.6e56a438.js new file mode 100644 index 000000000..71cb3d94b --- /dev/null +++ b/en/assets/js/85d15f38.6e56a438.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[163],{8834:e=>{e.exports=JSON.parse('{"tag":{"label":"embedded systems","permalink":"/en/tags/embedded-systems","allTagsPath":"/en/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/85e08f6c.88d08cc4.js b/en/assets/js/85e08f6c.88d08cc4.js new file mode 100644 index 000000000..af585e045 --- /dev/null +++ b/en/assets/js/85e08f6c.88d08cc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8210],{2392:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>a,default:()=>o,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var r=i(4848),t=i(8453);const l={slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},a=void 0,s={id:"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",permalink:"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"UART",permalink:"/en/tags/uart"},{inline:!0,label:"interrupts",permalink:"/en/tags/interrupts"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/en/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/en/tags/serial-communication"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"},next:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}},d={},c=[{value:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART",id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",level:2},{value:"1. \u521d\u59cb\u5316 UART",id:"1-\u521d\u59cb\u5316-uart",level:3},{value:"2. \u767c\u9001\u8cc7\u6599",id:"2-\u767c\u9001\u8cc7\u6599",level:3},{value:"3. \u63a5\u6536\u8cc7\u6599",id:"3-\u63a5\u6536\u8cc7\u6599",level:3},{value:"4. \u8a2d\u5b9a\u4e2d\u65b7",id:"4-\u8a2d\u5b9a\u4e2d\u65b7",level:3},{value:"FIFO \u7684\u4f7f\u7528",id:"fifo-\u7684\u4f7f\u7528",level:2},{value:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",level:2},{value:"\u767c\u9001\u55ae\u500b\u5b57\u5143",id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",level:3},{value:"\u767c\u9001\u5b57\u4e32",id:"\u767c\u9001\u5b57\u4e32",level:3},{value:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",level:3},{value:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",level:2}];function _(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"UART \u7c21\u4ecb",type:"note",children:(0,r.jsx)(e.p,{children:"UART\uff08Universal Asynchronous Receiver/Transmitter,\u901a\u7528\u7570\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u53e3\u901a\u4fe1\u5354\u8b70,\u5ee3\u6cdb\u61c9\u7528\u65bc\u5d4c\u5165\u5f0f\u7cfb\u7d71\u4e2d\u3002\u5b83\u4ee5\u7570\u6b65\u7684\u65b9\u5f0f\u9032\u884c\u8cc7\u6599\u50b3\u8f38,\u900f\u904e TX\uff08\u767c\u9001\uff09\u548c RX\uff08\u63a5\u6536\uff09\u5169\u689d\u7dda\u4f86\u5be6\u73fe\u5168\u96d9\u5de5\u901a\u4fe1\u3002UART \u7684\u8cc7\u6599\u683c\u5f0f\u5305\u62ec\u8d77\u59cb\u4f4d\u3001\u8cc7\u6599\u4f4d\u3001\u6821\u9a57\u4f4d\uff08\u53ef\u9078\uff09\u548c\u505c\u6b62\u4f4d\u3002"})}),"\n",(0,r.jsx)(e.h2,{id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",children:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART"}),"\n",(0,r.jsx)(e.p,{children:"RP2040 \u662f Raspberry Pi Pico \u7684\u6838\u5fc3,\u5b83\u63d0\u4f9b\u4e86\u5169\u500b UART \u6a21\u7d44\uff08UART0 \u548c UART1\uff09,\u53ef\u4ee5\u7528\u65bc\u8207\u5176\u4ed6\u88dd\u7f6e\u9032\u884c\u4e32\u53e3\u901a\u4fe1\u3002\u8981\u5728 RP2040 \u4e2d\u4f7f\u7528 UART,\u6211\u5011\u9700\u8981\u57f7\u884c\u4ee5\u4e0b\u6b65\u9a5f:"}),"\n",(0,r.jsx)(e.h3,{id:"1-\u521d\u59cb\u5316-uart",children:"1. \u521d\u59cb\u5316 UART"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u53c3\u6578,\u5982\u6ce2\u7279\u7387\uff08baud rate\uff09\u3001\u8cc7\u6599\u4f4d\u5143\u6578\uff08data bits\uff09\u3001\u505c\u6b62\u4f4d\u5143\uff08stop bits\uff09\u548c\u540c\u4f4d\u6aa2\u67e5\u4f4d\u5143\uff08parity bit\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9078\u64c7\u8981\u4f7f\u7528\u7684 UART \u6a21\u7d44\uff08UART0 \u6216 UART1\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u914d\u7f6e UART \u4f7f\u7528\u7684 TX \u548c RX \u5f15\u8173\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"2-\u767c\u9001\u8cc7\u6599",children:"2. \u767c\u9001\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u51fd\u5f0f\u767c\u9001\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u51fd\u5f0f\u767c\u9001\u5b57\u4e32\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u5beb\u5165\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_writable()"}),"\uff09\u4f86\u907f\u514d\u8cc7\u6599\u8986\u5beb\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"3-\u63a5\u6536\u8cc7\u6599",children:"3. \u63a5\u6536\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u51fd\u5f0f\u63a5\u6536\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u8b80\u53d6\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_readable()"}),"\uff09\u4f86\u5224\u65b7\u662f\u5426\u6709\u65b0\u8cc7\u6599\u5230\u9054\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"4-\u8a2d\u5b9a\u4e2d\u65b7",children:"4. \u8a2d\u5b9a\u4e2d\u65b7"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 UART \u7684 RX \u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\nstatic int chars_rxed = 0;\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n // \u5728\u6b64\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\n // ...\n chars_rxed++;\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART\n uart_init(UART_ID, BAUD_RATE);\n \n // \u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n \n // \u8a2d\u5b9a UART \u8cc7\u6599\u683c\u5f0f\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n // \u767c\u9001\u521d\u59cb\u8a0a\u606f\n uart_puts(UART_ID, "Hello, UART!\\n");\n \n // \u4e3b\u8ff4\u5708\n while (1) {\n // \u5728\u6b64\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u9019\u500b\u7a0b\u5f0f\u78bc\u7bc4\u4f8b\u4e2d,\u6211\u5011\u9996\u5148\u5f15\u5165\u4e86\u5fc5\u8981\u7684\u6a19\u982d\u6a94,\u4e26\u5b9a\u7fa9\u4e86 UART \u7684\u76f8\u95dc\u53c3\u6578,\u5982\u6ce2\u7279\u7387\u3001\u8cc7\u6599\u4f4d\u5143\u6578\u3001\u505c\u6b62\u4f4d\u5143\u548c\u6821\u9a57\u4f4d\u5143\u3002\u63a5\u8457,\u6211\u5011\u521d\u59cb\u5316 UART,\u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd,\u4e26\u914d\u7f6e UART \u7684\u8cc7\u6599\u683c\u5f0f\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u70ba\u4e86\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u6211\u5011\u8a2d\u5b9a\u4e86 RX \u4e2d\u65b7,\u4e26\u5b9a\u7fa9\u4e86\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f ",(0,r.jsx)(e.code,{children:"on_uart_rx()"}),"\u3002\u7576 UART \u63a5\u6536\u5230\u8cc7\u6599\u6642,\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u6703\u88ab\u89f8\u767c,\u6211\u5011\u53ef\u4ee5\u5728\u5176\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u767c\u9001\u4e00\u500b\u521d\u59cb\u8a0a\u606f,\u8868\u793a UART \u5df2\u7d93\u5c31\u7dd2\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u53ef\u4ee5\u57f7\u884c\u5176\u4ed6\u4efb\u52d9,\u800c\u63a5\u6536\u5230\u7684\u8cc7\u6599\u6703\u900f\u904e\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u81ea\u52d5\u8655\u7406\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"fifo-\u7684\u4f7f\u7528",children:"FIFO \u7684\u4f7f\u7528"}),"\n",(0,r.jsx)(e.p,{children:"FIFO\uff08First In First Out,\u5148\u9032\u5148\u51fa\uff09\u662f\u4e00\u7a2e\u8cc7\u6599\u7de9\u885d\u5340,\u53ef\u4ee5\u7528\u65bc\u66ab\u5b58 UART \u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u5728 RP2040 \u4e2d,\u6bcf\u500b UART \u6a21\u7d44\u90fd\u6709\u4e00\u500b\u5c0d\u61c9\u7684 FIFO\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"\u555f\u7528 FIFO",type:"tip",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528 UART \u7684 FIFO \u529f\u80fd\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6,\u5373\u53ef\u5b58\u5132\u7684\u8cc7\u6599\u91cf\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4e0d\u555f\u7528 FIFO",type:"warning",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u5982\u679c\u4e0d\u555f\u7528 FIFO,\u6bcf\u6b21\u63a5\u6536\u5230\u8cc7\u6599\u90fd\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u9069\u7528\u65bc\u5c0d\u5373\u6642\u6027\u8981\u6c42\u8f03\u9ad8\u7684\u5834\u666f,\u4f46\u53ef\u80fd\u6703\u589e\u52a0 CPU \u7684\u8ca0\u64d4\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4f7f\u7528 FIFO \u7684\u597d\u8655",type:"info",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 FIFO \u5f8c,\u53ea\u6709\u7576 FIFO \u4e2d\u7d2f\u7a4d\u4e86\u4e00\u5b9a\u6578\u91cf\u7684\u8cc7\u6599\u6216\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u53ef\u4ee5\u6e1b\u5c11\u4e2d\u65b7\u7684\u983b\u7387,\u964d\u4f4e CPU \u7684\u8ca0\u64d4\u3002"}),"\n",(0,r.jsx)(e.li,{children:"FIFO \u63d0\u4f9b\u4e86\u7de9\u885d\u5340,\u53ef\u4ee5\u66ab\u5b58\u4e00\u5b9a\u91cf\u7684\u8cc7\u6599,\u907f\u514d\u8cc7\u6599\u4e1f\u5931\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u555f\u7528 FIFO \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"// \u555f\u7528 FIFO\nuart_set_fifo_enabled(UART_ID, true);\n\n// \u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6\nuart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528\u4e86 UART \u7684 FIFO \u529f\u80fd,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_threshold()"})," \u51fd\u5f0f\u8a2d\u5b9a\u4e86 FIFO \u7684\u6df1\u5ea6\u3002\u555f\u7528 FIFO \u5f8c,\u7576 FIFO \u4e2d\u7d2f\u7a4d\u7684\u8cc7\u6599\u91cf\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",children:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536"}),"\n",(0,r.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u51fd\u5f0f\u4f86\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599:"}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",children:"\u767c\u9001\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_putc(UART_ID, char_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u5b57\u4e32",children:"\u767c\u9001\u5b57\u4e32"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_puts(UART_ID, string_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",children:"\u63a5\u6536\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uint8_t received_char = uart_getc(UART_ID);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_readable(UART_ID)) {\n // \u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_writable(UART_ID)) {\n // \u53ef\u4ee5\u5beb\u5165\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u900f\u904e\u9019\u4e9b\u51fd\u5f0f,\u6211\u5011\u53ef\u4ee5\u65b9\u4fbf\u5730\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599\u3002\u5728\u767c\u9001\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u767c\u9001\u55ae\u500b\u5b57\u5143,\u6216\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u767c\u9001\u5b57\u4e32\u3002\u5728\u63a5\u6536\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u63a5\u6536\u55ae\u500b\u5b57\u5143,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_is_readable()"})," \u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b"}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u63a7\u5236 LED \u7684\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\n#define LED_PIN 25\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n switch (ch) {\n case \'o\':\n gpio_put(LED_PIN, 1);\n uart_puts(UART_ID, "LED ON\\n");\n break;\n case \'f\':\n gpio_put(LED_PIN, 0);\n uart_puts(UART_ID, "LED OFF\\n");\n break;\n default:\n uart_puts(UART_ID, "Invalid command\\n");\n break;\n }\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART \u548c LED\n uart_init(UART_ID, BAUD_RATE);\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n gpio_init(LED_PIN);\n gpio_set_dir(LED_PIN, GPIO_OUT);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n uart_puts(UART_ID, "UART LED Control\\n");\n uart_puts(UART_ID, "Commands: \'o\' - LED ON, \'f\' - LED OFF\\n");\n \n while (1) {\n tight_loop_contents();\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:'\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 UART \u63a5\u6536\u6307\u4ee4,\u4e26\u6839\u64da\u63a5\u6536\u5230\u7684\u6307\u4ee4\u63a7\u5236 LED \u7684\u4eae\u6ec5\u3002\u7576\u63a5\u6536\u5230\u5b57\u5143 \'o\' \u6642,LED \u6703\u4eae\u8d77,\u4e26\u56de\u50b3 "LED ON" \u7684\u8a0a\u606f;\u7576\u63a5\u6536\u5230\u5b57\u5143 \'f\' \u6642,LED \u6703\u7184\u6ec5,\u4e26\u56de\u50b3 "LED OFF" \u7684\u8a0a\u606f\u3002\u5982\u679c\u63a5\u6536\u5230\u5176\u4ed6\u5b57\u5143,\u5247\u56de\u50b3 "Invalid command" \u7684\u8a0a\u606f\u3002'}),"\n",(0,r.jsx)(e.p,{children:"\u900f\u904e\u9019\u7a2e\u65b9\u5f0f,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 UART \u767c\u9001\u7c21\u55ae\u7684\u6307\u4ee4\u4f86\u63a7\u5236 RP2040 \u4e0a\u7684 LED,\u5be6\u73fe\u9060\u7aef\u63a7\u5236\u7684\u529f\u80fd\u3002"})]})}function o(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(_,{...n})}):_(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>a,x:()=>s});var r=i(6540);const t={},l=r.createContext(t);function a(n){const e=r.useContext(l);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:a(n.components),r.createElement(l.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/873234d7.dda28c05.js b/en/assets/js/873234d7.dda28c05.js new file mode 100644 index 000000000..36ca0faee --- /dev/null +++ b/en/assets/js/873234d7.dda28c05.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[809],{7644:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var s=e(4848),l=e(8453);const r={slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},o="RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",t={id:"micro-controladores/RP2040/mastering-pio-programming",title:"Mastering PIO Programming on RP2040",description:"1. PIO \u7c21\u4ecb",source:"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/mastering-pio-programming-rp2040",permalink:"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/mastering-pio-programming.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/en/tags/pio"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/en/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Timer and Alarm Usage in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},next:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"1. PIO \u7c21\u4ecb",id:"1-pio-\u7c21\u4ecb",level:2},{value:"2. LED \u9583\u720d\u793a\u4f8b",id:"2-led-\u9583\u720d\u793a\u4f8b",level:2},{value:"2.1 PIO \u7a0b\u5e8f (blink.pio)",id:"21-pio-\u7a0b\u5e8f-blinkpio",level:3},{value:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)",id:"22-\u4e3b\u7a0b\u5e8f-maincpp",level:3},{value:"\u4ee3\u78bc\u89e3\u91cb\uff1a",id:"\u4ee3\u78bc\u89e3\u91cb",level:3},{value:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790",id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",level:2},{value:"4. \u983b\u7387\u8a08\u7b97",id:"4-\u983b\u7387\u8a08\u7b97",level:2},{value:"5. PIO \u7de8\u7a0b\u9650\u5236",id:"5-pio-\u7de8\u7a0b\u9650\u5236",level:2},{value:"6. \u512a\u5316\u6280\u5de7",id:"6-\u512a\u5316\u6280\u5de7",level:2},{value:"7. \u6ce8\u610f\u4e8b\u9805",id:"7-\u6ce8\u610f\u4e8b\u9805",level:2},{value:"\u5b8c\u6574\u4ee3\u7801",id:"\u5b8c\u6574\u4ee3\u7801",level:2}];function p(n){const i={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"rp2040-pio-\u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\u5f9e-led-\u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",children:"RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236"}),"\n",(0,s.jsx)(i.h2,{id:"1-pio-\u7c21\u4ecb",children:"1. PIO \u7c21\u4ecb"}),"\n",(0,s.jsx)(i.p,{children:"\u53ef\u7de8\u7a0b\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u662f RP2040 \u6676\u7247\u7684\u4e00\u500b\u5f37\u5927\u7279\u6027\u3002\u5b83\u5141\u8a31\u958b\u767c\u8005\u5275\u5efa\u81ea\u5b9a\u7fa9\u7684\u6578\u5b57\u63a5\u53e3\uff0c\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u5e8f\u63a7\u5236\u3002\u6bcf\u500b RP2040 \u6709\u5169\u500b PIO \u584a\uff0c\u6bcf\u500b\u584a\u6709\u56db\u500b\u72c0\u614b\u6a5f\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"2-led-\u9583\u720d\u793a\u4f8b",children:"2. LED \u9583\u720d\u793a\u4f8b"}),"\n",(0,s.jsx)(i.h3,{id:"21-pio-\u7a0b\u5e8f-blinkpio",children:"2.1 PIO \u7a0b\u5e8f (blink.pio)"}),"\n",(0,s.jsx)(i.p,{children:"\u8b93\u6211\u5011\u5f9e\u4e00\u500b\u7cbe\u78ba\u63a7\u5236\u7684 LED \u9583\u720d\u7a0b\u5e8f\u958b\u59cb\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{children:".program blink\n.wrap_target\n set pins, 1 [31] ; \u6253\u958b LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n set pins, 0 [31] ; \u95dc\u9589 LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n.wrap\n\n% c-sdk {\n// Helper function to initialize PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {\n pio_sm_config c = blink_program_get_default_config(offset);\n pio_gpio_init(pio, pin);\n sm_config_set_set_pins(&c, pin, 1);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n float div = clock_get_hz(clk_sys) / freq;\n sm_config_set_clkdiv(&c, div);\n pio_sm_init(pio, sm, offset, &c);\n}\n%}\n"})}),"\n",(0,s.jsx)(i.h3,{id:"22-\u4e3b\u7a0b\u5e8f-maincpp",children:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)"}),"\n",(0,s.jsx)(i.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5e8f\u4e2d\u8a2d\u7f6e\u548c\u904b\u884c\u9019\u500b PIO \u7a0b\u5e8f\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-cpp",children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "blink.pio.h"\n\nint main() {\n static const uint LED_PIN = 25;\n static const float PIO_FREQ = 2000; // \u8a2d\u7f6e PIO \u983b\u7387\u70ba 2000 Hz\n\n // \u9078\u64c7 PIO \u5be6\u4f8b\uff080 \u6216 1\uff09\n PIO pio = pio0;\n\n // \u7372\u53d6 PIO \u7a0b\u5e8f\u4e2d\u7684\u7b2c\u4e00\u500b\u7a7a\u9592\u72c0\u614b\u6a5f\n uint sm = pio_claim_unused_sm(pio, true);\n\n // \u5c07 PIO \u7a0b\u5e8f\u6dfb\u52a0\u5230 PIO \u6307\u4ee4\u5167\u5b58\u4e2d\n uint offset = pio_add_program(pio, &blink_program);\n\n // \u8a08\u7b97 PIO \u6642\u9418\u5206\u983b\u5668\n float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;\n\n // \u4f7f\u7528\u6211\u5011\u7684 .pio \u6587\u4ef6\u4e2d\u7684\u8f14\u52a9\u51fd\u6578\u521d\u59cb\u5316\u7a0b\u5e8f\n blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);\n\n // \u555f\u52d5 PIO \u7a0b\u5e8f\n pio_sm_set_enabled(pio, sm, true);\n\n // \u4e3b\u5faa\u74b0\u4fdd\u6301\u7a0b\u5e8f\u904b\u884c\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.h3,{id:"\u4ee3\u78bc\u89e3\u91cb",children:"\u4ee3\u78bc\u89e3\u91cb\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"PIO_FREQ"})," \u8a2d\u7f6e\u70ba 2000 Hz\uff0c\u9019\u6c7a\u5b9a\u4e86 PIO \u72c0\u614b\u6a5f\u7684\u904b\u884c\u901f\u5ea6\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"blink_program_init"})," \u51fd\u6578\u7528\u65bc\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\uff0c\u5305\u62ec\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u5668\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:["\u6642\u9418\u5206\u983b\u5668\u7684\u8a08\u7b97\uff1a",(0,s.jsx)(i.code,{children:"div = clock_get_hz(clk_sys) / PIO_FREQ"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"clock_get_hz(clk_sys)"})," \u7372\u53d6\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff08\u901a\u5e38\u70ba 125 MHz\uff09"]}),"\n",(0,s.jsx)(i.li,{children:"\u5206\u983b\u5f8c\uff0cPIO \u5c07\u4ee5 2000 Hz \u7684\u983b\u7387\u904b\u884c"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",children:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790"}),"\n",(0,s.jsx)(i.p,{children:"\u6bcf\u689d PIO \u6307\u4ee4\u7684\u57f7\u884c\u9031\u671f\u7531\u5169\u90e8\u5206\u7d44\u6210\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u672c\u8eab\u7684\u57f7\u884c\uff081 \u500b\u9031\u671f\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u5f8c\u7684\u984d\u5916\u5ef6\u9072\uff080 \u5230 31 \u500b\u9031\u671f\uff09"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u4f8b\u5982\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"set pins, 1 [31]"})," \u7e3d\u5171\u57f7\u884c 32 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c31 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [31]"})," \u4e5f\u57f7\u884c 32 \u500b\u9031\u671f"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [19]"})," \u57f7\u884c 20 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c19 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"4-\u983b\u7387\u8a08\u7b97",children:"4. \u983b\u7387\u8a08\u7b97"}),"\n",(0,s.jsx)(i.p,{children:"\u6839\u64da\u6211\u5011\u7684\u8a2d\u7f6e\uff0cPIO \u6642\u9418\u983b\u7387\u70ba 2000 Hz\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"LED \u958b\u555f\u72c0\u614b\uff1a(1 + 14) * 32 + 20 = 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"LED \u95dc\u9589\u72c0\u614b\uff1a\u540c\u6a23\u662f 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u5b8c\u6574\u5faa\u74b0\uff1a500 + 500 = 1000 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u9583\u720d\u983b\u7387\uff1a2000 Hz / 1000 = 2 Hz"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u9019\u89e3\u91cb\u4e86\u70ba\u4ec0\u9ebc LED \u4ee5 2 Hz \u7684\u983b\u7387\u9583\u720d\uff08\u6bcf\u79d2\u9583\u720d\u5169\u6b21\uff09\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"5-pio-\u7de8\u7a0b\u9650\u5236",children:"5. PIO \u7de8\u7a0b\u9650\u5236"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808 \u2264 31"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u4f54\u7528 5 \u4f4d"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"6-\u512a\u5316\u6280\u5de7",children:"6. \u512a\u5316\u6280\u5de7"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u5229\u7528\u5faa\u74b0\u6e1b\u5c11\u6307\u4ee4\u6578\u91cf"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\uff08side-set\uff09\u529f\u80fd\u540c\u6642\u57f7\u884c GPIO \u64cd\u4f5c\u548c\u5176\u4ed6\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u9069\u7576\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u9054\u5230\u6240\u9700\u7684\u6642\u5e8f"}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"7-\u6ce8\u610f\u4e8b\u9805",children:"7. \u6ce8\u610f\u4e8b\u9805"}),"\n",(0,s.jsx)(i.p,{children:"\u5728\u4f7f\u7528 RP2040 \u7684 PIO \u9032\u884c\u7de8\u7a0b\u6642\uff0c\u9700\u8981\u6ce8\u610f\u4ee5\u4e0b\u5e7e\u500b\u91cd\u8981\u7684\u9650\u5236\u548c\u8003\u616e\u56e0\u7d20\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808\u5c0f\u65bc\u6216\u7b49\u65bc 31 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "instruction delay must be < = 31"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u50c5\u4f54\u7528 5 \u4f4d\u4e8c\u9032\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "program instruction limit of 32 instruction(s) exceeded"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6642\u9418\u5206\u983b\u5668 (div) \u7bc4\u570d"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6709\u6548\u7bc4\u570d: 1.0 \u5230 65536.0"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5c0f\u503c 1.0 \u5c0d\u61c9\u6700\u5feb\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5927\u503c 65536.0 \u5c0d\u61c9\u6700\u6162\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\u9664\u4ee5 65536\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6ce8\u610f: \u7576\u8a08\u7b97\u51fa\u7684 div \u503c\u8d85\u51fa\u6b64\u7bc4\u570d\u6642\uff0c\u5be6\u969b\u904b\u884c\u983b\u7387\u53ef\u80fd\u8207\u9810\u671f\u4e0d\u7b26"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"GPIO \u5f15\u8173\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u53ef\u4ee5\u8a2a\u554f\u7684 GPIO \u5f15\u8173\u7bc4\u570d: 0-29"}),"\n",(0,s.jsx)(i.li,{children:"\u67d0\u4e9b\u7279\u6b8a\u529f\u80fd\u5f15\u8173\u53ef\u80fd\u6709\u984d\u5916\u9650\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u72c0\u614b\u6a5f\u6578\u91cf"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u584a\u6709 4 \u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f"}),"\n",(0,s.jsx)(i.li,{children:"\u7e3d\u5171\u6709 8 \u500b\u72c0\u614b\u6a5f\uff082 \u500b PIO \u584a * 4 \u500b\u72c0\u614b\u6a5f\uff09"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"FIFO \u6df1\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b\u72c0\u614b\u6a5f\u6709 4 \u500b\u5b57\uff0832 \u4f4d\uff09\u7684 TX FIFO \u548c 4 \u500b\u5b57\u7684 RX FIFO"}),"\n",(0,s.jsx)(i.li,{children:"\u5728\u6578\u64da\u5bc6\u96c6\u578b\u61c9\u7528\u4e2d\u9700\u8981\u8b39\u614e\u7ba1\u7406 FIFO"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u57f7\u884c\u901f\u5ea6\u8003\u616e"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u6307\u4ee4\u57f7\u884c\u901f\u5ea6\u53ef\u4ee5\u975e\u5e38\u5feb\uff08\u6700\u9ad8\u53ef\u9054\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u6642\u5e8f\u4ee5\u78ba\u4fdd\u9810\u671f\u7684\u64cd\u4f5c\u983b\u7387"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8207 CPU \u4ea4\u4e92"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u64cd\u4f5c\u662f\u7368\u7acb\u65bc CPU \u7684\uff0c\u9700\u8981\u6b63\u78ba\u914d\u7f6e\u4e2d\u65b7\u548c DMA \u4ee5\u5be6\u73fe\u9ad8\u6548\u7684\u6578\u64da\u4ea4\u63db"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u5074\u8a2d\uff08Side-set\uff09\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6700\u591a\u53ef\u4ee5\u4f7f\u7528 5 \u500b\u5074\u8a2d\u4f4d"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\u6703\u6e1b\u5c11\u53ef\u7528\u65bc\u5ef6\u9072\u7684\u4f4d\u6578"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8abf\u8a66\u96e3\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u96e3\u4ee5\u76f4\u63a5\u8abf\u8a66"}),"\n",(0,s.jsx)(i.li,{children:"\u5efa\u8b70\u4f7f\u7528\u6a21\u64ec\u5668\u6216\u793a\u6ce2\u5668\u7b49\u5de5\u5177\u8f14\u52a9\u958b\u767c\u548c\u6e2c\u8a66"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u7801",children:"\u5b8c\u6574\u4ee3\u7801"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "hello.pio.h"\n\nint main() {\n\n static const uint led_pin = 25;\n static const float pio_freq = 2000;\n\n // Choose PIO instance (0 or 1)\n PIO pio = pio0;\n\n // Get first free state machine in PIO 0\n uint sm = pio_claim_unused_sm(pio, true);\n\n // Add PIO program to PIO instruction memory. SDK will find location and\n // return with the memory offset of the program.\n uint offset = pio_add_program(pio, &blink_program);\n\n // Calculate the PIO clock divider\n float div = (float)clock_get_hz(clk_sys) / pio_freq;\n\n // Initialize the program using the helper function in our .pio file\n blink_program_init(pio, sm, offset, led_pin, div); //div\u6700\u5927\u5141\u8bb8\u6570\u503c65535\n\n // Start running our PIO program in the state machine\n pio_sm_set_enabled(pio, sm, true);\n\n // Do nothing\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="hello.pio"',children:".program blink\n\n; Turn on LED for 100 cycles and off for 100 cycles.\n; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)\n\n; instruction delay must be <= 31\n; program instruction limit of 32 instruction(s) exceeded\n.wrap_target\n set pins, 1 [31] ; Turn LED on and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n set pins, 0 [31] ; Turn LED off and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n.wrap\n\n% c-sdk {\n\n// Helper function (for use in C program) to initialize this PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {\n\n // Sets up state machine and wrap target. This function is automatically\n // generated in blink.pio.h.\n pio_sm_config c = blink_program_get_default_config(offset);\n\n // Allow PIO to control GPIO pin (as output)\n pio_gpio_init(pio, pin);\n\n // Connect pin to SET pin (control with 'set' instruction)\n sm_config_set_set_pins(&c, pin, 1);\n\n // Set the pin direction to output (in PIO)\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n // Set the clock divider for the state machine\n sm_config_set_clkdiv(&c, div);\n\n // Load configuration and jump to start of the program\n pio_sm_init(pio, sm, offset, &c);\n}\n\n%}\n"})})]})}function a(n={}){const{wrapper:i}={...(0,l.R)(),...n.components};return i?(0,s.jsx)(i,{...n,children:(0,s.jsx)(p,{...n})}):p(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>o,x:()=>t});var s=e(6540);const l={},r=s.createContext(l);function o(n){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function t(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:o(n.components),s.createElement(r.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/90e57ba8.7992e1bb.js b/en/assets/js/90e57ba8.7992e1bb.js new file mode 100644 index 000000000..7c6472691 --- /dev/null +++ b/en/assets/js/90e57ba8.7992e1bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6434],{3795:e=>{e.exports=JSON.parse('{"tag":{"label":"Hola","permalink":"/en/blog/tags/hola","description":"Hola tag description","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/hola","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/925b3f96.8cf24821.js b/en/assets/js/925b3f96.8cf24821.js new file mode 100644 index 000000000..ce87b4ff7 --- /dev/null +++ b/en/assets/js/925b3f96.8cf24821.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8609],{5026:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/en/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/en/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/en/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/en/blog/Docker-Getting-Srart-01"}},l={authorsImageUrls:[void 0]},u=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/9e4087bc.1e2fe8e5.js b/en/assets/js/9e4087bc.1e2fe8e5.js new file mode 100644 index 000000000..410752cdc --- /dev/null +++ b/en/assets/js/9e4087bc.1e2fe8e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2711],{9331:(e,r,t)=>{t.r(r),t.d(r,{default:()=>m});t(6540);var a=t(8774),n=t(1312),s=t(1213),i=t(6266),c=t(5733),l=t(1107),o=t(4848);function d(e){let{year:r,posts:t}=e;const n=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:r,children:r}),(0,o.jsx)("ul",{children:t.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(a.A,{to:e.metadata.permalink,children:[(r=e.metadata.date,n.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r}))})]})}function h(e){let{years:r}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r)))})})})}function m(e){let{archive:r}=e;const t=(0,n.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,n.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const r=e.reduce(((e,r)=>{const t=r.metadata.date.split("-")[0],a=e.get(t)??[];return e.set(t,[r,...a])}),new Map);return Array.from(r,(e=>{let[r,t]=e;return{year:r,posts:t}}))}(r.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.be,{title:t,description:a}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:t}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},6266:(e,r,t)=>{t.d(r,{i:()=>n});var a=t(4586);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:r}}=(0,a.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,a.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:t,...e})}}}]); \ No newline at end of file diff --git a/en/assets/js/9fab635f.6ef92b67.js b/en/assets/js/9fab635f.6ef92b67.js new file mode 100644 index 000000000..f7fde2f59 --- /dev/null +++ b/en/assets/js/9fab635f.6ef92b67.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9071],{6377:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=i(4848),l=i(8453);const a={slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},t=void 0,s={id:"micro-controladores/RP2040/rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",permalink:"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/en/tags/rp-2040"},{inline:!0,label:"timer",permalink:"/en/tags/timer"},{inline:!0,label:"alarm",permalink:"/en/tags/alarm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/en/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/en/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},next:{title:"Mastering PIO Programming on RP2040",permalink:"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"}},c={},d=[{value:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",level:2},{value:"\u4ee3\u78bc\u793a\u4f8b",id:"\u4ee3\u78bc\u793a\u4f8b",level:2},{value:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",level:3},{value:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",level:3},{value:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09",id:"\u4f7f\u7528\u9b27\u9418alarm",level:3},{value:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09",id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",level:3},{value:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",level:2},{value:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",level:2},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function m(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",children:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5"}),"\n",(0,r.jsx)(n.p,{children:"\u5728 RP2040 \u4e2d,\u8a08\u6642\u5668\u548c\u9b27\u9418\u662f\u5169\u500b\u76f8\u95dc\u4f46\u53c8\u6709\u6240\u5340\u5225\u7684\u6982\u5ff5\u3002"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u8a08\u6642\u5668\uff08Timer\uff09: \u8a08\u6642\u5668\u662f\u4e00\u7a2e\u7528\u65bc\u6e2c\u91cf\u6642\u9593\u9593\u9694\u7684\u786c\u9ad4\u8a2d\u5099\u3002\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u8a08\u6642\u5668\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u9593\u63a7\u5236\u548c\u5b9a\u6642\u64cd\u4f5c\u3002\u8a08\u6642\u5668\u53ef\u4ee5\u88ab\u914d\u7f6e\u70ba\u5728\u7279\u5b9a\u6642\u9593\u9593\u9694\u5f8c\u89f8\u767c\u4e2d\u65b7,\u4ee5\u57f7\u884c\u76f8\u61c9\u7684\u64cd\u4f5c\u3002"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u9b27\u9418\uff08Alarm\uff09: \u9b27\u9418\u662f\u57fa\u65bc\u8a08\u6642\u5668\u7684\u4e00\u7a2e\u529f\u80fd\u64f4\u5c55\u3002\u5b83\u5141\u8a31\u6211\u5011\u5728\u6307\u5b9a\u7684\u6642\u9593\u9ede\u89f8\u767c\u4e00\u6b21\u6027\u7684\u64cd\u4f5c\u3002\u9b27\u9418\u901a\u5e38\u7528\u65bc\u5728\u672a\u4f86\u7684\u67d0\u500b\u6642\u9593\u9ede\u57f7\u884c\u7279\u5b9a\u7684\u4efb\u52d9,\u4f8b\u5982\u5728\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\u5f8c\u57f7\u884c\u67d0\u500b\u51fd\u6578\u3002"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u4ee3\u78bc\u793a\u4f8b",children:"\u4ee3\u78bc\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b\u4f86\u8aaa\u660e\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvolatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n\nbool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n\nint main() {\n stdio_init_all();\n printf("Hello Timer!\\n");\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n printf("Done\\n");\n return 0;\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u9010\u6b65\u5206\u6790\u4ee3\u78bc\u7684\u5404\u500b\u90e8\u5206:"}),"\n",(0,r.jsx)(n.h3,{id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",children:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'volatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b\u5168\u5c40\u8b8a\u91cf ",(0,r.jsx)(n.code,{children:"timer_fired"}),",\u7528\u65bc\u6a19\u8a18\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"alarm_callback"})," \u662f\u9b27\u9418\u7684\u56de\u8abf\u51fd\u6578,\u7576\u9b27\u9418\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u4e00\u689d\u6d88\u606f,\u8868\u793a\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c,\u4e26\u5c07 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"0"}),",\u8868\u793a\u4e0d\u9700\u8981\u91cd\u8907\u89f8\u767c\u6b64\u9b27\u9418\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",children:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'bool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u662f\u91cd\u8907\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578,\u7576\u91cd\u8907\u8a08\u6642\u5668\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u7576\u524d\u7684\u6642\u9593\u6233,\u8868\u793a\u91cd\u8907\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9700\u8981\u7e7c\u7e8c\u89f8\u767c\u6b64\u91cd\u8907\u8a08\u6642\u5668\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u9b27\u9418alarm",children:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:"int main() {\n // ...\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // ...\n}\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u9b27\u9418,\u8a2d\u7f6e\u5728 2 \u79d2\u5f8c\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"alarm_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u662f\u5426\u91cd\u8907\u89f8\u767c\u7684\u6a19\u8a8c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u9b27\u9418\u5f8c,\u6211\u5011\u4f7f\u7528\u4e00\u500b while \u5faa\u74b0\u7b49\u5f85 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8b8a\u91cf\u8b8a\u70ba ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9b27\u9418\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"tight_loop_contents()"})," \u51fd\u6578\u7528\u65bc\u5728\u7b49\u5f85\u671f\u9593\u907f\u514d\u7de8\u8b6f\u5668\u512a\u5316\u6389\u7a7a\u5faa\u74b0\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",children:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'int main() {\n // ...\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // ...\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8a2d\u7f6e\u6bcf\u9694 500 \u6beb\u79d2\u8abf\u7528\u4e00\u6b21 ",(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u4e00\u500b\u6307\u5411 ",(0,r.jsx)(n.code,{children:"repeating_timer"})," \u7d50\u69cb\u9ad4\u7684\u6307\u91dd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u91cd\u8907\u8a08\u6642\u5668\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"sleep_ms"})," \u51fd\u6578\u7b49\u5f85 3 \u79d2\u9418,\u671f\u9593\u91cd\u8907\u8a08\u6642\u5668\u6703\u6301\u7e8c\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"cancel_repeating_timer"})," \u51fd\u6578\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u4e26\u8f38\u51fa\u53d6\u6d88\u7684\u7d50\u679c\u3002\u6211\u5011\u518d\u6b21\u7b49\u5f85 2 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u505c\u6b62\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u4f46\u9019\u6b21\u4f7f\u7528\u4e86\u8ca0\u7684\u5ef6\u9072\u6642\u9593 ",(0,r.jsx)(n.code,{children:"-500"}),"\u3002\u9019\u610f\u5473\u8457\u91cd\u8907\u8a08\u6642\u5668\u6703\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500 \u6beb\u79d2\u518d\u6b21\u89f8\u767c,\u800c\u4e0d\u7ba1\u56de\u8abf\u51fd\u6578\u7684\u57f7\u884c\u6642\u9593\u3002\u6211\u5011\u7b49\u5f85 3 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u7684\u884c\u70ba\u3002"]}),"\n",(0,r.jsx)(n.li,{children:'\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u7b49\u5f85 2 \u79d2\u9418,\u4e26\u8f38\u51fa "Done" \u8868\u793a\u7a0b\u5e8f\u57f7\u884c\u5b8c\u7562\u3002'}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",children:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668"}),"\n",(0,r.jsx)(n.p,{children:"\u5982\u679c\u4f60\u60f3\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u7684\u5275\u5efa\u548c\u7ba1\u7406\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d\u3002\u9019\u6a23,\u4f60\u5c31\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u7a0b\u5e8f\u4e2d\u65b9\u4fbf\u5730\u8abf\u7528\u9019\u4e9b\u51fd\u6578,\u5be6\u73fe\u8a08\u6642\u5668\u7684\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u7c21\u55ae\u7684\u793a\u4f8b,\u5c55\u793a\u4e86\u5982\u4f55\u5c07\u8a08\u6642\u5668\u529f\u80fd\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u4e2d:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvoid timer_callback(void) {\n printf("Timer triggered!\\n");\n // \u57f7\u884c\u5b9a\u6642\u4efb\u52d9\n // ...\n}\n\nvoid start_timer(uint32_t delay_ms) {\n struct repeating_timer timer;\n add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);\n}\n\nint main() {\n stdio_init_all();\n \n // \u555f\u52d5\u5b9a\u6642\u5668,\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21\n start_timer(1000);\n \n // \u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n \n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d,\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"timer_callback"})," \u51fd\u6578,\u4f5c\u70ba\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578\u3002\u7136\u5f8c,\u6211\u5011\u5275\u5efa\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u7528\u65bc\u555f\u52d5\u8a08\u6642\u5668\u3002\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u8a2d\u7f6e\u8a08\u6642\u5668\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21,\u7136\u5f8c\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u901a\u904e\u9019\u7a2e\u65b9\u5f0f,\u4f60\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u529f\u80fd\u8207\u5176\u4ed6\u7a0b\u5e8f\u89e3\u8026,\u4f7f\u5f97\u7a0b\u5e8f\u7684\u7d50\u69cb\u66f4\u52a0\u6e05\u6670,\u4e14\u4fbf\u65bc\u7dad\u8b77\u548c\u64f4\u5c55\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",children:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u6642\uff0c\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u914d\u7f6e\u5404\u7a2e\u53c3\u6578\uff0c\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u9700\u6c42\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u5ef6\u9072\u6642\u9593\uff08Delay\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u7684\u5ef6\u9072\u6642\u9593\uff0c\u53ef\u4ee5\u662f\u6beb\u79d2\uff08ms\uff09\u6216\u5fae\u79d2\uff08us\uff09\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u9078\u64c7\u5408\u9069\u7684\u6642\u9593\u55ae\u4f4d\u548c\u503c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u56de\u8abf\u51fd\u6578\uff08Callback\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u6642\u8981\u57f7\u884c\u7684\u51fd\u6578\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u5be6\u969b\u9700\u6c42\u7de8\u5beb\u81ea\u5b9a\u7fa9\u7684\u56de\u8abf\u51fd\u6578\uff0c\u57f7\u884c\u6240\u9700\u7684\u64cd\u4f5c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7528\u6236\u6578\u64da\uff08User Data\uff09"}),"\uff1a\n\u53ef\u4ee5\u5c07\u81ea\u5b9a\u7fa9\u7684\u6578\u64da\u50b3\u905e\u7d66\u56de\u8abf\u51fd\u6578\uff0c\u4ee5\u4fbf\u5728\u56de\u8abf\u51fd\u6578\u4e2d\u4f7f\u7528\u3002\u9019\u53ef\u4ee5\u662f\u6307\u91dd\u3001\u7d50\u69cb\u9ad4\u6216\u5176\u4ed6\u985e\u578b\u7684\u6578\u64da\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u91cd\u8907\u89f8\u767c\uff08Repeat\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u662f\u5426\u9700\u8981\u91cd\u8907\u89f8\u767c\u3002\u5c0d\u65bc\u4e00\u6b21\u6027\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u91cd\u8907\u89f8\u767c\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"false"}),"\uff1b\u5c0d\u65bc\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u5176\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7cbe\u5ea6\uff08Precision\uff09"}),"\uff1a\n\u8a08\u6642\u5668\u7684\u7cbe\u5ea6\u53d6\u6c7a\u65bc\u786c\u9ad4\u548c\u8edf\u9ad4\u7684\u5be6\u73fe\u3002RP2040 \u63d0\u4f9b\u4e86\u9ad8\u7cbe\u5ea6\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u9054\u5230\u5fae\u79d2\u7d1a\u5225\u7684\u7cbe\u5ea6\u3002\u4f46\u662f\uff0c\u5be6\u969b\u7684\u7cbe\u5ea6\u9084\u53d6\u6c7a\u65bc\u7cfb\u7d71\u7684\u6642\u9418\u983b\u7387\u548c\u4e2d\u65b7\u8655\u7406\u7684\u5ef6\u9072\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u6df1\u5165\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd\u3002\u901a\u904e\u8a73\u7d30\u7684\u4ee3\u78bc\u793a\u4f8b\u548c\u89e3\u91cb,\u4f60\u61c9\u8a72\u5c0d\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406\u6709\u4e86\u66f4\u5168\u9762\u7684\u7406\u89e3\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6211\u5011\u8a0e\u8ad6\u4e86\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5,\u4e26\u5c55\u793a\u4e86\u5982\u4f55\u5275\u5efa\u548c\u4f7f\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u4e00\u6b21\u6027\u7684\u9b27\u9418\u9084\u662f\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668,\u4f60\u90fd\u53ef\u4ee5\u6839\u64da\u9700\u6c42\u9748\u6d3b\u5730\u914d\u7f6e\u548c\u4f7f\u7528\u5b83\u5011\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u5916,\u6211\u5011\u9084\u63a2\u8a0e\u4e86\u5982\u4f55\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u901a\u904e\u5c07\u8a08\u6642\u5668\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d,\u4f7f\u5176\u66f4\u52a0\u901a\u7528\u548c\u53ef\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u5f8c,\u6211\u5011\u4ecb\u7d39\u4e86\u8a08\u6642\u5668\u7684\u4e00\u4e9b\u5e38\u7528\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805,\u5e6b\u52a9\u4f60\u6839\u64da\u5be6\u969b\u9700\u6c42\u9032\u884c\u9748\u6d3b\u7684\u8a2d\u7f6e\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5e0c\u671b\u9019\u7bc7\u6587\u7ae0\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd,\u70ba\u4f60\u7684\u5d4c\u5165\u5f0f\u958b\u767c\u9805\u76ee\u63d0\u4f9b\u6709\u529b\u7684\u652f\u6301\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>s});var r=i(6540);const l={},a=r.createContext(l);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/a6aa9e1f.63bb8777.js b/en/assets/js/a6aa9e1f.63bb8777.js new file mode 100644 index 000000000..9465080d9 --- /dev/null +++ b/en/assets/js/a6aa9e1f.63bb8777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7643],{5124:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});a(6540);var n=a(4164),i=a(4586),r=a(1213),o=a(7559),s=a(6535),l=a(7713),d=a(1463),c=a(3892),g=a(5260),p=a(6676),u=a(4848);function m(e){const t=(0,p.k)(e);return(0,u.jsx)(g.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function h(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.A)(),{blogDescription:n,blogTitle:o,permalink:s}=t,l="/"===s?a:o;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:l,description:n}),(0,u.jsx)(d.A,{tag:"blog_posts_list"})]})}function b(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(s.A,{sidebar:n,children:[(0,u.jsx)(c.A,{items:a}),(0,u.jsx)(l.A,{metadata:t})]})}function f(e){return(0,u.jsxs)(r.e3,{className:(0,n.A)(o.G.wrapper.blogPages,o.G.page.blogListPage),children:[(0,u.jsx)(h,{...e}),(0,u.jsx)(m,{...e}),(0,u.jsx)(b,{...e})]})}},7713:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(1312),i=a(9022),r=a(4848);function o(e){const{metadata:t}=e,{previousPage:a,nextPage:o}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(i.A,{permalink:a,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),o&&(0,r.jsx)(i.A,{permalink:o,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(7131),i=a(4651),r=a(4848);function o(e){let{items:t,component:a=i.A}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(n.i,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}},6676:(e,t,a)=>{a.d(t,{k:()=>c,J:()=>g});var n=a(6025),i=a(4586),r=a(6803);var o=a(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(p);return{author:1===t.length?t[0]:t}}function d(e,t,a){return e?{image:u({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function c(e){const{siteConfig:t}=(0,i.A)(),{withBaseUrl:a}=(0,n.hH)(),{metadata:{blogDescription:r,blogTitle:o,permalink:c}}=e,g=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":g,mainEntityOfPage:g,headline:o,description:r,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:i,metadata:r}=e,{date:o,title:c,description:g,lastUpdatedAt:p}=r,u=n.image??i.image,m=i.keywords??[],h=`${t.url}${r.permalink}`,b=p?s(p):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:c,name:c,description:g,datePublished:o,...b?{dateModified:b}:{},...l(r.authors),...d(u,a,c),...m?{keywords:m}:{}}}(e.content,t,a)))}}function g(){const e=function(){const e=(0,r.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:a}=(0,o.e)(),{siteConfig:c}=(0,i.A)(),{withBaseUrl:g}=(0,n.hH)(),{date:p,title:u,description:m,frontMatter:h,lastUpdatedAt:b}=a,f=t.image??h.image,x=h.keywords??[],j=b?s(b):void 0,A=`${c.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":A,mainEntityOfPage:A,url:A,headline:u,name:u,description:m,datePublished:p,...j?{dateModified:j}:{},...l(a.authors),...d(f,g,u),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${c.url}${e.blogBasePath}`,name:e.blogTitle}}}function p(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function u(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}}}]); \ No newline at end of file diff --git a/en/assets/js/a7456010.fc7a5d1f.js b/en/assets/js/a7456010.fc7a5d1f.js new file mode 100644 index 000000000..e988a1f5c --- /dev/null +++ b/en/assets/js/a7456010.fc7a5d1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/en/assets/js/a7bd4aaa.eec9f40b.js b/en/assets/js/a7bd4aaa.eec9f40b.js new file mode 100644 index 000000000..78b39696c --- /dev/null +++ b/en/assets/js/a7bd4aaa.eec9f40b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7098],{4532:(e,n,s)=>{s.r(n),s.d(n,{default:()=>u});s(6540);var r=s(1213),o=s(2967),t=s(2252),c=s(2831),i=s(1463),a=s(4848);function l(e){const{version:n}=e;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:n.version,tag:(0,o.tU)(n.pluginId,n.version)}),(0,a.jsx)(r.be,{children:n.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function d(e){const{version:n,route:s}=e;return(0,a.jsx)(r.e3,{className:n.className,children:(0,a.jsx)(t.n,{version:n,children:(0,c.v)(s.routes)})})}function u(e){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l,{...e}),(0,a.jsx)(d,{...e})]})}}}]); \ No newline at end of file diff --git a/en/assets/js/a94703ab.c0f75d91.js b/en/assets/js/a94703ab.c0f75d91.js new file mode 100644 index 000000000..9bddeb02e --- /dev/null +++ b/en/assets/js/a94703ab.c0f75d91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9048],{2559:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(6540),o=n(4164),i=n(1213),s=n(7559),l=n(1754),r=n(6588),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),_=n(3465);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,b.jsx)(v,{className:A.collapseSidebarButtonIcon})})}var k=n(5041),C=n(9532);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var I=n(1422),B=n(9169),y=n(8774),w=n(2303);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),v=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:k}=(0,I.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new C.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,C.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=N&&N!==c&&f&&k(!0)}),[h,N,c,k,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":A?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(U,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(6654),H=n(3186);const G={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_M9Kj"};function R(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(R,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function F(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(N,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const U=(0,a.memo)(F),V={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",V.menu,l&&V.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:n,activePath:t,level:1})})})}const K="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",q="sidebarHidden_VK0M",J="sidebarLogo_isFc";function O(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(K,s&&z,i&&q),children:[s&&(0,b.jsx)(_.A,{tabIndex:-1,className:J}),(0,b.jsx)(Y,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const Q=a.memo(O);var X=n(5600),Z=n(9876);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Z.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(X.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Q,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(3363);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/en/assets/js/ab0d13de.557b484f.js b/en/assets/js/ab0d13de.557b484f.js new file mode 100644 index 000000000..d42527369 --- /dev/null +++ b/en/assets/js/ab0d13de.557b484f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2503],{8135:e=>{e.exports=JSON.parse('{"tag":{"label":"timer","permalink":"/en/tags/timer","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/aba21aa0.1562c573.js b/en/assets/js/aba21aa0.1562c573.js new file mode 100644 index 000000000..e47365ca9 --- /dev/null +++ b/en/assets/js/aba21aa0.1562c573.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/en/assets/js/acecf23e.6d455303.js b/en/assets/js/acecf23e.6d455303.js new file mode 100644 index 000000000..5a520c2d4 --- /dev/null +++ b/en/assets/js/acecf23e.6d455303.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1903],{1912:e=>{e.exports=JSON.parse('{"blogBasePath":"/en/blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/en/assets/js/b0b6fd62.958baf80.js b/en/assets/js/b0b6fd62.958baf80.js new file mode 100644 index 000000000..155bf98d3 --- /dev/null +++ b/en/assets/js/b0b6fd62.958baf80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7151],{7089:e=>{e.exports=JSON.parse('{"tag":{"label":"state machine optimization","permalink":"/en/tags/state-machine-optimization","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/b311d1e8.2248a1bd.js b/en/assets/js/b311d1e8.2248a1bd.js new file mode 100644 index 000000000..57b41584f --- /dev/null +++ b/en/assets/js/b311d1e8.2248a1bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6630],{5122:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>x,frontMatter:()=>l,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const l={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},o="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/en/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!1,label:"Misc",permalink:"/en/blog/tags/misc"},{inline:!1,label:"Linux",permalink:"/en/blog/tags/linux"},{inline:!1,label:"Linux",permalink:"/en/blog/tags/linux"},{inline:!1,label:"Docker",permalink:"/en/blog/tags/docker"},{inline:!1,label:"\u8edf\u4ef6",permalink:"/en/blog/tags/\u8edf\u4ef6"},{inline:!1,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/en/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>t});var c=r(6540);const i={},l=c.createContext(i);function o(e){const n=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),c.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/b5192dd1.36aec40d.js b/en/assets/js/b5192dd1.36aec40d.js new file mode 100644 index 000000000..1c6c044d3 --- /dev/null +++ b/en/assets/js/b5192dd1.36aec40d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6869],{7002:e=>{e.exports=JSON.parse('{"tag":{"label":"\u8edf\u4ef6","permalink":"/en/blog/tags/\u8edf\u4ef6","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/\u8edf\u4ef6","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/c2aca3b0.7b2b37a8.js b/en/assets/js/c2aca3b0.7b2b37a8.js new file mode 100644 index 000000000..5261e77e4 --- /dev/null +++ b/en/assets/js/c2aca3b0.7b2b37a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1718],{5120:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>t,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var c=i(4848),l=i(8453);const s={slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},r="Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",d={id:"micro-controladores/STM32/stm32_cdc_develop",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",description:"Configuraci\xf3n de STM32CubeMX",source:"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",sourceDirName:"micro-controladores/STM32",slug:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",permalink:"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/STM32/stm32_cdc_develop.md",tags:[{inline:!0,label:"stm32",permalink:"/en/tags/stm-32"},{inline:!0,label:"usb",permalink:"/en/tags/usb"},{inline:!0,label:"cdc",permalink:"/en/tags/cdc"}],version:"current",lastUpdatedAt:1720597722e3,frontMatter:{slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},sidebar:"tutorialSidebar",previous:{title:"Tutorial",permalink:"/en/tutorial"},next:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}},t={},a=[{value:"Configuraci\xf3n de STM32CubeMX",id:"configuraci\xf3n-de-stm32cubemx",level:2},{value:"Implementaci\xf3n del c\xf3digo",id:"implementaci\xf3n-del-c\xf3digo",level:2},{value:"En la funci\xf3n <code>CDC_Receive_FS()</code>:",id:"en-la-funci\xf3n-cdc_receive_fs",level:3},{value:"En la funci\xf3n <code>CDC_Transmit_FS()</code>:",id:"en-la-funci\xf3n-cdc_transmit_fs",level:3},{value:"Habilitaci\xf3n de interrupciones",id:"habilitaci\xf3n-de-interrupciones",level:2},{value:"Procesamiento de datos",id:"procesamiento-de-datos",level:2},{value:"STM32CubeMX Configuration",id:"stm32cubemx-configuration",level:2},{value:"Code Implementation",id:"code-implementation",level:2},{value:"In the <code>CDC_Receive_FS()</code> function:",id:"in-the-cdc_receive_fs-function",level:3},{value:"In the <code>CDC_Transmit_FS()</code> function:",id:"in-the-cdc_transmit_fs-function",level:3},{value:"Interrupt Enablement",id:"interrupt-enablement",level:2},{value:"Data Processing",id:"data-processing",level:2},{value:"STM32CubeMX \u8a2d\u5b9a",id:"stm32cubemx-\u8a2d\u5b9a",level:2},{value:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",level:2},{value:"\u5728 <code>CDC_Receive_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u5728 <code>CDC_Transmit_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u4e2d\u65b7\u555f\u7528",id:"\u4e2d\u65b7\u555f\u7528",level:2},{value:"\u8cc7\u6599\u8655\u7406",id:"\u8cc7\u6599\u8655\u7406",level:2}];function o(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",...(0,l.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.h1,{id:"desarrollo-de-comunicaci\xf3n-cdc-con-stm32cubemx",children:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"configuraci\xf3n-de-stm32cubemx",children:"Configuraci\xf3n de STM32CubeMX"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar el modo USB Device FS (Full Speed) en la pesta\xf1a de Pinout & Configuration."}),"\n",(0,c.jsx)(n.li,{children:"Seleccionar el modo CDC (Communication Device Class) en la pesta\xf1a de USB Device."}),"\n",(0,c.jsx)(n.li,{children:"Generar el c\xf3digo del proyecto."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"implementaci\xf3n-del-c\xf3digo",children:"Implementaci\xf3n del c\xf3digo"}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_receive_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de recepci\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," para indicar que el dispositivo est\xe1 listo para recibir m\xe1s datos."]}),"\n",(0,c.jsxs)(n.li,{children:["Si se desea enviar los datos recibidos de vuelta al host, llamar a ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Retornar ",(0,c.jsx)(n.code,{children:"USBD_OK"})," para indicar que los datos han sido procesados."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_transmit_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verificar el estado del b\xfafer de transmisi\xf3n USB (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de transmisi\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," para enviar los datos."]}),"\n",(0,c.jsx)(n.li,{children:"Retornar el resultado de la transmisi\xf3n."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"habilitaci\xf3n-de-interrupciones",children:"Habilitaci\xf3n de interrupciones"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implementar las funciones de callback de recepci\xf3n y transmisi\xf3n USB, como ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," y ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"procesamiento-de-datos",children:"Procesamiento de datos"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar."}),"\n",(0,c.jsxs)(n.li,{children:["Utilizar las funciones ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," y ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," para gestionar la recepci\xf3n y transmisi\xf3n de datos."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"cdc-development-with-stm32cubemx",children:"CDC Development with STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-configuration",children:"STM32CubeMX Configuration"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab."}),"\n",(0,c.jsx)(n.li,{children:"Select CDC (Communication Device Class) mode in the USB Device tab."}),"\n",(0,c.jsx)(n.li,{children:"Generate the project code."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"code-implementation",children:"Code Implementation"}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_receive_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Set the USB receive buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," to indicate the device is ready to receive more data."]}),"\n",(0,c.jsxs)(n.li,{children:["If you want to send the received data back to the host, call ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Return ",(0,c.jsx)(n.code,{children:"USBD_OK"})," to indicate the data has been processed."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_transmit_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verify the state of the USB transmit buffer (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Set the USB transmit buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," to send the data."]}),"\n",(0,c.jsx)(n.li,{children:"Return the result of the transmission."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"interrupt-enablement",children:"Interrupt Enablement"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable the USB interrupts in the project generated by STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implement the USB receive and transmit callback functions, such as ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," and ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"data-processing",children:"Data Processing"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"In the callback functions, process the received data and prepare the data to be sent."}),"\n",(0,c.jsxs)(n.li,{children:["Use the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," and ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," functions to manage the data reception and transmission."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"\u4f7f\u7528-stm32cubemx-\u958b\u767c-cdc-\u901a\u8a0a",children:"\u4f7f\u7528 STM32CubeMX \u958b\u767c CDC \u901a\u8a0a"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-\u8a2d\u5b9a",children:"STM32CubeMX \u8a2d\u5b9a"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 Pinout & Configuration \u6a19\u7c64\u4e2d\u555f\u7528 USB Device FS (Full Speed) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728 USB Device \u6a19\u7c64\u4e2d\u9078\u64c7 CDC (Communication Device Class) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u7522\u751f\u5c08\u6848\u7a0b\u5f0f\u78bc\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",children:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c"}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"})," \u8a2d\u5b9a\u63a5\u6536\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," \u8868\u793a\u8a2d\u5099\u5df2\u6e96\u5099\u597d\u63a5\u6536\u66f4\u591a\u8cc7\u6599\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u5982\u679c\u9700\u8981\u5c07\u6536\u5230\u7684\u8cc7\u6599\u56de\u50b3\u81f3\u4e3b\u6a5f, \u547c\u53eb ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u8fd4\u56de ",(0,c.jsx)(n.code,{children:"USBD_OK"})," \u8868\u793a\u8cc7\u6599\u5df2\u8655\u7406\u5b8c\u6210\u3002"]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u6aa2\u67e5\u50b3\u8f38\u7de9\u885d\u5340\u7684\u72c0\u614b (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"})," \u8a2d\u5b9a\u50b3\u8f38\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," \u50b3\u9001\u8cc7\u6599\u3002"]}),"\n",(0,c.jsx)(n.li,{children:"\u8fd4\u56de\u50b3\u8f38\u7d50\u679c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u4e2d\u65b7\u555f\u7528",children:"\u4e2d\u65b7\u555f\u7528"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 STM32CubeMX \u7522\u751f\u7684\u5c08\u6848\u4e2d\u555f\u7528 USB \u4e2d\u65b7\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u5be6\u4f5c\u63a5\u6536\u548c\u50b3\u8f38\u7684\u56de\u547c\u51fd\u6578, \u5982 ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"\u3002"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u8cc7\u6599\u8655\u7406",children:"\u8cc7\u6599\u8655\u7406"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u56de\u547c\u51fd\u6578\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599, \u4e26\u6e96\u5099\u8981\u50b3\u9001\u7684\u8cc7\u6599\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u7ba1\u7406\u8cc7\u6599\u7684\u63a5\u6536\u548c\u50b3\u8f38\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function r(e){const n=c.useContext(s);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),c.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/c4f5d8e4.336a6011.js b/en/assets/js/c4f5d8e4.336a6011.js new file mode 100644 index 000000000..06e66e4f1 --- /dev/null +++ b/en/assets/js/c4f5d8e4.336a6011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2634],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>k});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,x,v,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,z=t(6540);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},F.apply(null,arguments)}const k=e=>{let{title:a,titleId:t,...k}=e;return z.createElement("svg",F({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},k),void 0===a?z.createElement("title",{id:t},"Focus on What Matters"):a?z.createElement("title",{id:t},a):null,l||(l=z.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=z.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=z.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=z.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=z.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=z.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=z.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=z.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=z.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=z.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=z.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=z.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=z.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=z.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),x||(x=z.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),v||(v=z.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=z.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=z.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=z.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=z.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=z.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=z.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=z.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=z.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=z.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},192:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/tutorial",children:"\ud83d\udc49 \xa1Descubre El Jard\xedn Secreto de w0x7ce! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/en/assets/js/c5fd9dbb.2a387148.js b/en/assets/js/c5fd9dbb.2a387148.js new file mode 100644 index 000000000..21d202eff --- /dev/null +++ b/en/assets/js/c5fd9dbb.2a387148.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5418],{930:n=>{n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"Docker-Getting-Srart-01","metadata":{"permalink":"/en/blog/Docker-Getting-Srart-01","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md","source":"@site/blog/2021-09-14-Docker-Getting-Srart-01.md","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","description":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002","date":"2021-09-14T00:00:00.000Z","tags":[{"inline":false,"label":"Misc","permalink":"/en/blog/tags/misc"},{"inline":false,"label":"Linux","permalink":"/en/blog/tags/linux"},{"inline":false,"label":"Linux","permalink":"/en/blog/tags/linux"},{"inline":false,"label":"Docker","permalink":"/en/blog/tags/docker"},{"inline":false,"label":"\u8edf\u4ef6","permalink":"/en/blog/tags/\u8edf\u4ef6"},{"inline":false,"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],"readingTime":7.345,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"Docker-Getting-Srart-01","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},"unlisted":false,"nextItem":{"title":"First Blog Post","permalink":"/en/blog/first-blog-post"}},"content":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002\\n- \u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002\\n- \u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002\\n- \u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002\\n\\n# Docker \u7684\u512a\u9ede\\nDocker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002\\n\\n1. \u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002\\n\\n\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a\\n\\n\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002\\n\\n\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002\\n\\n\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002\\n\\n\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002\\n\\n2. \u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002\\n\\nDocker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002\\n\\n3. \u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5\\n\\n# Docker\u5b89\u88dd\\n```\\ncurl -sSL https://get.daocloud.io/docker | sh\\n```\\n\\n# Docker\u5378\u8f09\\n```\\n sudo apt-get remove docker docker-engine docker.io containerd runc\\n```\\n\\n\\n# Docker\u4f7f\u7528\u57fa\u790e\\n## Docker Hello World\\nDocker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002\\n\\n\u8f38\u51faHello world\\n```\\nw0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo \\"Hello world\\"\\nHello world\\n```\\n\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\ndocker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\\n\\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\\n\\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\\n\\n/bin/echo \\"Hello world\\": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\\n```\\n\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo \\"Hello world\\"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002\\n\\n## \u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668\\n\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe\\"\u5c0d\u8a71\\"\u7684\u80fd\u529b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\\nroot@0123ce188bd8:/#\\n```\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\n-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\\n\\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\\n```\\n\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668\\n\\n\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868\\n```\\nroot@0123ce188bd8:/# cat /proc/version\\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\\nroot@0123ce188bd8:/# ls\\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\\nroot@0123ce188bd8:/# \\n```\\n\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002\\n```\\nroot@0123ce188bd8:/# exit\\nexit\\nroot@w0x7ce:~# \\n```\\n\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002\\n\\n## \u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09\\n\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668\\n```\\nw0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c \\"while true; do echo hello world; sleep 1; done\\"\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n```\\n\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 \\"hello world\\"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26\\n\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n\\n\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002\\n\\n\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\nCONTAINER ID IMAGE COMMAND ... \\n5917eac21c36 ubuntu:15.10 \\"/bin/sh -c \'while t\u2026\\" ...\\n```\\n\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a\\n```\\nCONTAINER ID: \u5bb9\u5668 ID\u3002\\n\\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\\n\\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\\n\\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\\n\\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\\n\\n\u72c0\u614b\u67097\u7a2e\uff1a\\n\\ncreated\uff08\u5df2\u5275\u5efa\uff09\\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\\nremoving\uff08\u9077\u79fb\u4e2d\uff09\\npaused\uff08\u66ab\u505c\uff09\\nexited\uff08\u505c\u6b62\uff09\\ndead\uff08\u6b7b\u4ea1\uff09\\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\\\udp\uff09\u3002\\n\\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\\n```\\n\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\\n```\\n```\\nw0x7ce@w0x7ce:~$ docker logs amazing_cori\\n```\\n\\n## \u505c\u6b62\u5bb9\u5668\\n\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:\\n\\n\\n\\n\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\n```\\n\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002\\n\\n\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:\\n```\\nw0x7ce@w0x7ce:~$ docker stop amazing_cori\\n```"},{"id":"first-blog-post","metadata":{"permalink":"/en/blog/first-blog-post","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md","source":"@site/blog/2019-05-28-first-blog-post.md","title":"First Blog Post","description":"","date":"2019-05-28T00:00:00.000Z","tags":[{"inline":false,"label":"Hola","permalink":"/en/blog/tags/hola","description":"Hola tag description"},{"inline":false,"label":"Docusaurus","permalink":"/en/blog/tags/docusaurus","description":"Docusaurus tag description"}],"readingTime":0,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"first-blog-post","title":"First Blog Post","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["hola","docusaurus"]},"unlisted":false,"prevItem":{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/en/blog/Docker-Getting-Srart-01"}},"content":""}]}}')}}]); \ No newline at end of file diff --git a/en/assets/js/ccc49370.27f6c228.js b/en/assets/js/ccc49370.27f6c228.js new file mode 100644 index 000000000..d2ed42653 --- /dev/null +++ b/en/assets/js/ccc49370.27f6c228.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3249],{3858:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(6540);var i=n(4164),a=n(1213),o=n(7559),r=n(7131),s=n(6535),l=n(4651),c=n(1312),d=n(9022),u=n(4848);function m(e){const{nextItem:t,prevItem:n}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,u.jsx)(d.A,{...n,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),t&&(0,u.jsx)(d.A,{...t,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.e)(),{title:n,description:i,date:o,tags:s,authors:l,frontMatter:c}=t,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.be,{title:n,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:o}),l.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:l.map((e=>e.url)).filter(Boolean).join(",")}),s.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:s.map((e=>e.label)).join(",")})]})}var h=n(5260),f=n(6676);function p(){const e=(0,f.J)();return(0,u.jsx)(h.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var v=n(7763),x=n(996);function b(e){let{sidebar:t,children:n}=e;const{metadata:i,toc:a}=(0,r.e)(),{nextItem:o,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:h,toc_min_heading_level:f,toc_max_heading_level:p}=d;return(0,u.jsxs)(s.A,{sidebar:t,toc:!h&&a.length>0?(0,u.jsx)(v.A,{toc:a,minHeadingLevel:f,maxHeadingLevel:p}):void 0,children:[g&&(0,u.jsx)(x.A,{}),(0,u.jsx)(l.A,{children:n}),(o||c)&&(0,u.jsx)(m,{nextItem:o,prevItem:c})]})}function j(e){const t=e.content;return(0,u.jsx)(r.i,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.e3,{className:(0,i.A)(o.G.wrapper.blogPages,o.G.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(p,{}),(0,u.jsx)(b,{sidebar:e.sidebar,children:(0,u.jsx)(t,{})})]})})}},7763:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var i=n(4164),a=n(5195);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(4848);const s="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,i.A)(o.tableOfContents,"thin-scrollbar",t),children:(0,r.jsx)(a.A,{...n,linkClassName:s,linkActiveClassName:l})})}},5195:(e,t,n)=>{n.d(t,{A:()=>f});var i=n(6540),a=n(6342);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function l(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(s(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.p)();return(0,i.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,i.useRef)(void 0),n=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:r}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:r}),c=l(s,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}var u=n(8774),m=n(4848);function g(e){let{toc:t,className:n,linkClassName:i,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:i})]},e.id)))}):null}const h=i.memo(g);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const f=(0,a.p)(),p=c??f.tableOfContents.minHeadingLevel,v=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>r({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:v});return d((0,i.useMemo)((()=>{if(s&&l)return{linkClassName:s,linkActiveClassName:l,minHeadingLevel:p,maxHeadingLevel:v}}),[s,l,p,v])),(0,m.jsx)(h,{toc:x,className:n,linkClassName:s,...g})}},996:(e,t,n)=>{n.d(t,{A:()=>g});n(6540);var i=n(4164),a=n(1312),o=n(5260),r=n(4848);function s(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(o.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),u=n(7293);function m(e){let{className:t}=e;return(0,r.jsx)(u.A,{type:"caution",title:(0,r.jsx)(s,{}),className:(0,i.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(l,{})})}function g(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(m,{...e})]})}},6676:(e,t,n)=>{n.d(t,{k:()=>d,J:()=>u});var i=n(6025),a=n(4586),o=n(6803);var r=n(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(m);return{author:1===t.length?t[0]:t}}function c(e,t,n){return e?{image:g({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${n}`})}:{}}function d(e){const{siteConfig:t}=(0,a.A)(),{withBaseUrl:n}=(0,i.hH)(),{metadata:{blogDescription:o,blogTitle:r,permalink:d}}=e,u=`${t.url}${d}`;return{"@context":"https://schema.org","@type":"Blog","@id":u,mainEntityOfPage:u,headline:r,description:o,blogPost:e.items.map((e=>function(e,t,n){const{assets:i,frontMatter:a,metadata:o}=e,{date:r,title:d,description:u,lastUpdatedAt:m}=o,g=i.image??a.image,h=a.keywords??[],f=`${t.url}${o.permalink}`,p=m?s(m):void 0;return{"@type":"BlogPosting","@id":f,mainEntityOfPage:f,url:f,headline:d,name:d,description:u,datePublished:r,...p?{dateModified:p}:{},...l(o.authors),...c(g,n,d),...h?{keywords:h}:{}}}(e.content,t,n)))}}function u(){const e=function(){const e=(0,o.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:n}=(0,r.e)(),{siteConfig:d}=(0,a.A)(),{withBaseUrl:u}=(0,i.hH)(),{date:m,title:g,description:h,frontMatter:f,lastUpdatedAt:p}=n,v=t.image??f.image,x=f.keywords??[],b=p?s(p):void 0,j=`${d.url}${n.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:g,name:g,description:h,datePublished:m,...b?{dateModified:b}:{},...l(n.authors),...c(v,u,g),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${d.url}${e.blogBasePath}`,name:e.blogTitle}}}function m(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function g(e){let{imageUrl:t,caption:n}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:n}}}}]); \ No newline at end of file diff --git a/en/assets/js/d40edc32.e779460b.js b/en/assets/js/d40edc32.e779460b.js new file mode 100644 index 000000000..63f14857f --- /dev/null +++ b/en/assets/js/d40edc32.e779460b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4734],{1137:e=>{e.exports=JSON.parse('{"tag":{"label":"PIO","permalink":"/en/tags/pio","allTagsPath":"/en/tags","count":3,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/d52e2d06.9d558dbc.js b/en/assets/js/d52e2d06.9d558dbc.js new file mode 100644 index 000000000..faff760cc --- /dev/null +++ b/en/assets/js/d52e2d06.9d558dbc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[597],{8972:e=>{e.exports=JSON.parse('{"tag":{"label":"usb","permalink":"/en/tags/usb","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/db61b3e8.ba44d1ee.js b/en/assets/js/db61b3e8.ba44d1ee.js new file mode 100644 index 000000000..ee7360302 --- /dev/null +++ b/en/assets/js/db61b3e8.ba44d1ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[932],{7790:e=>{e.exports=JSON.parse('{"tag":{"label":"PWM","permalink":"/en/tags/pwm","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/df203c0f.07cad923.js b/en/assets/js/df203c0f.07cad923.js new file mode 100644 index 000000000..fce697c24 --- /dev/null +++ b/en/assets/js/df203c0f.07cad923.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4279],{7293:(e,n,t)=>{t.d(n,{A:()=>M});var i=t(6540),s=t(4848);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(4164),r=t(1312),a=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.A)(a.G.common.admonition,a.G.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[i||t?(0,s.jsx)(u,{title:i,icon:t}):null,(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,s.jsx)(m,{...x,...e,className:(0,l.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.A)("alert alert--success",e.className),children:e.children})}function A(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...N,...e,className:(0,l.A)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const _={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const C={...{note:f,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(f,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{..._,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,C[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),C.info));var i;return(0,s.jsx)(t,{...n})}},5921:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(6540);var i=t(4164),s=t(8774),o=t(5846),l=t(1213),r=t(7559),a=t(1312),c=t(1463),d=t(996),u=t(1107),h=t(4848);function m(e){const n=function(){const{selectMessage:e}=(0,o.W)();return n=>e(n,(0,a.T)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One doc tagged|{count} docs tagged"},{count:n}))}();return(0,a.T)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.A,{to:n.permalink,children:(0,h.jsx)(u.A,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function x(e){let{title:n,tag:t}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.be,{title:n,description:t.description}),(0,h.jsx)(c.A,{tag:"doc_tag_doc_list"})]})}function f(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.e3,{className:(0,i.A)(r.G.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.A,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.A,{as:"h1",children:t}),n.description&&(0,h.jsx)("p",{children:n.description}),(0,h.jsx)(s.A,{href:n.allTagsPath,children:(0,h.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x,{...e,title:n}),(0,h.jsx)(f,{...e,title:n})]})}},996:(e,n,t)=>{t.d(n,{A:()=>m});t(6540);var i=t(4164),s=t(1312),o=t(5260),l=t(4848);function r(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function a(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(o.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function h(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,i.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(a,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(h,{...e})]})}},5846:(e,n,t)=>{t.d(n,{W:()=>c});var i=t(6540),s=t(4586);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const r={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function a(){const{i18n:{currentLocale:e}}=(0,s.A)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),r}}),[e])}function c(){const e=a();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/en/assets/js/dff1c289.70fffef1.js b/en/assets/js/dff1c289.70fffef1.js new file mode 100644 index 000000000..a9b649843 --- /dev/null +++ b/en/assets/js/dff1c289.70fffef1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1724],{8043:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>a});var o=s(4848),r=s(8453);const i={sidebar_position:1},d="Manage Docs Versions",t={id:"tutorial-extras/manage-docs-versions",title:"Manage Docs Versions",description:"Docusaurus can manage multiple versions of your docs.",source:"@site/docs/tutorial-extras/manage-docs-versions.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/manage-docs-versions",permalink:"/en/tutorial-extras/manage-docs-versions",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/manage-docs-versions.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},c={},a=[{value:"Create a docs version",id:"create-a-docs-version",level:2},{value:"Add a Version Dropdown",id:"add-a-version-dropdown",level:2},{value:"Update an existing version",id:"update-an-existing-version",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"manage-docs-versions",children:"Manage Docs Versions"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus can manage multiple versions of your docs."}),"\n",(0,o.jsx)(n.h2,{id:"create-a-docs-version",children:"Create a docs version"}),"\n",(0,o.jsx)(n.p,{children:"Release a version 1.0 of your project:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version 1.0\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"docs"})," folder is copied into ",(0,o.jsx)(n.code,{children:"versioned_docs/version-1.0"})," and ",(0,o.jsx)(n.code,{children:"versions.json"})," is created."]}),"\n",(0,o.jsx)(n.p,{children:"Your docs now have 2 versions:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"1.0"})," at ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/"})," for the version 1.0 docs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"current"})," at ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/next/"})," for the ",(0,o.jsx)(n.strong,{children:"upcoming, unreleased docs"})]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"add-a-version-dropdown",children:"Add a Version Dropdown"}),"\n",(0,o.jsx)(n.p,{children:"To navigate seamlessly across versions, add a version dropdown."}),"\n",(0,o.jsxs)(n.p,{children:["Modify the ",(0,o.jsx)(n.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,o.jsx)(n.p,{children:"The docs version dropdown appears in your navbar:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Docs Version Dropdown",src:s(8281).A+"",width:"370",height:"302"})}),"\n",(0,o.jsx)(n.h2,{id:"update-an-existing-version",children:"Update an existing version"}),"\n",(0,o.jsx)(n.p,{children:"It is possible to edit versioned docs in their respective folder:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"versioned_docs/version-1.0/hello.md"})," updates ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/hello"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"docs/hello.md"})," updates ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/next/hello"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},8281:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png"},8453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>t});var o=s(6540);const r={},i=o.createContext(r);function d(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e273c56f.b2e455e6.js b/en/assets/js/e273c56f.b2e455e6.js new file mode 100644 index 000000000..f0c949a9d --- /dev/null +++ b/en/assets/js/e273c56f.b2e455e6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9328],{4014:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/en/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/en/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/en/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/en/blog/Docker-Getting-Srart-01"}},l={authorsImageUrls:[void 0]},u=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e2e7a3a0.c2b4466c.js b/en/assets/js/e2e7a3a0.c2b4466c.js new file mode 100644 index 000000000..23d98a3bc --- /dev/null +++ b/en/assets/js/e2e7a3a0.c2b4466c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2189],{9310:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>x,frontMatter:()=>l,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const l={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},o="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/en/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!1,label:"Misc",permalink:"/en/blog/tags/misc"},{inline:!1,label:"Linux",permalink:"/en/blog/tags/linux"},{inline:!1,label:"Linux",permalink:"/en/blog/tags/linux"},{inline:!1,label:"Docker",permalink:"/en/blog/tags/docker"},{inline:!1,label:"\u8edf\u4ef6",permalink:"/en/blog/tags/\u8edf\u4ef6"},{inline:!1,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/en/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>t});var c=r(6540);const i={},l=c.createContext(i);function o(e){const n=c.useContext(l);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),c.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e44a2883.c6162855.js b/en/assets/js/e44a2883.c6162855.js new file mode 100644 index 000000000..9dc51ca6c --- /dev/null +++ b/en/assets/js/e44a2883.c6162855.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4736],{8350:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=t(4848),s=t(8453);const o={sidebar_position:2},a="Translate your site",i={id:"tutorial-extras/translate-your-site",title:"Translate your site",description:"Let's translate docs/intro.md to French.",source:"@site/docs/tutorial-extras/translate-your-site.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/translate-your-site",permalink:"/en/tutorial-extras/translate-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/translate-your-site.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},l={},d=[{value:"Configure i18n",id:"configure-i18n",level:2},{value:"Translate a doc",id:"translate-a-doc",level:2},{value:"Start your localized site",id:"start-your-localized-site",level:2},{value:"Add a Locale Dropdown",id:"add-a-locale-dropdown",level:2},{value:"Build your localized site",id:"build-your-localized-site",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"translate-your-site",children:"Translate your site"}),"\n",(0,r.jsxs)(n.p,{children:["Let's translate ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," to French."]}),"\n",(0,r.jsx)(n.h2,{id:"configure-i18n",children:"Configure i18n"}),"\n",(0,r.jsxs)(n.p,{children:["Modify ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," to add support for the ",(0,r.jsx)(n.code,{children:"fr"})," locale:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n};\n"})}),"\n",(0,r.jsx)(n.h2,{id:"translate-a-doc",children:"Translate a doc"}),"\n",(0,r.jsxs)(n.p,{children:["Copy the ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," file to the ",(0,r.jsx)(n.code,{children:"i18n/fr"})," folder:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/\n\ncp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Translate ",(0,r.jsx)(n.code,{children:"i18n/fr/docusaurus-plugin-content-docs/current/intro.md"})," in French."]}),"\n",(0,r.jsx)(n.h2,{id:"start-your-localized-site",children:"Start your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Start your site on the French locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run start -- --locale fr\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Your localized site is accessible at ",(0,r.jsx)(n.a,{href:"http://localhost:3000/fr/",children:"http://localhost:3000/fr/"})," and the ",(0,r.jsx)(n.code,{children:"Getting Started"})," page is translated."]}),"\n",(0,r.jsx)(n.admonition,{type:"caution",children:(0,r.jsx)(n.p,{children:"In development, you can only use one locale at a time."})}),"\n",(0,r.jsx)(n.h2,{id:"add-a-locale-dropdown",children:"Add a Locale Dropdown"}),"\n",(0,r.jsx)(n.p,{children:"To navigate seamlessly across languages, add a locale dropdown."}),"\n",(0,r.jsxs)(n.p,{children:["Modify the ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,r.jsx)(n.p,{children:"The locale dropdown now appears in your navbar:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Locale Dropdown",src:t(6728).A+"",width:"370",height:"302"})}),"\n",(0,r.jsx)(n.h2,{id:"build-your-localized-site",children:"Build your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Build your site for a specific locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build -- --locale fr\n"})}),"\n",(0,r.jsx)(n.p,{children:"Or build your site to include all the locales at once:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},6728:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>i});var r=t(6540);const s={},o=r.createContext(s);function a(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/e6141e4a.b95f6411.js b/en/assets/js/e6141e4a.b95f6411.js new file mode 100644 index 000000000..8fd806a75 --- /dev/null +++ b/en/assets/js/e6141e4a.b95f6411.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[962],{9675:e=>{e.exports=JSON.parse('{"tag":{"label":"Linux","permalink":"/en/blog/tags/linux","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/linux","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/e8da249f.2c45010a.js b/en/assets/js/e8da249f.2c45010a.js new file mode 100644 index 000000000..7bea5a36c --- /dev/null +++ b/en/assets/js/e8da249f.2c45010a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1878],{8287:e=>{e.exports=JSON.parse('{"tag":{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/eac440ee.e00ba000.js b/en/assets/js/eac440ee.e00ba000.js new file mode 100644 index 000000000..7cf005420 --- /dev/null +++ b/en/assets/js/eac440ee.e00ba000.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4530],{3750:e=>{e.exports=JSON.parse('{"tag":{"label":"alarm","permalink":"/en/tags/alarm","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/ed8789cf.94f8344e.js b/en/assets/js/ed8789cf.94f8344e.js new file mode 100644 index 000000000..40be0293c --- /dev/null +++ b/en/assets/js/ed8789cf.94f8344e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1873],{3134:e=>{e.exports=JSON.parse('{"tag":{"label":"Docusaurus","permalink":"/en/blog/tags/docusaurus","description":"Docusaurus tag description","allTagsPath":"/en/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/en/blog/tags/docusaurus","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/en/assets/js/ef86d428.e921d4b5.js b/en/assets/js/ef86d428.e921d4b5.js new file mode 100644 index 000000000..f8e6fd02e --- /dev/null +++ b/en/assets/js/ef86d428.e921d4b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9022],{715:e=>{e.exports=JSON.parse('{"tags":[{"label":"RP2040","permalink":"/en/tags/rp-2040","count":6},{"label":"PIO","permalink":"/en/tags/pio","count":3},{"label":"LED Control","permalink":"/en/tags/led-control","count":1},{"label":"Resource Management","permalink":"/en/tags/resource-management","count":1},{"label":"Raspberry Pi Pico","permalink":"/en/tags/raspberry-pi-pico","count":6},{"label":"embedded systems","permalink":"/en/tags/embedded-systems","count":6},{"label":"state machine optimization","permalink":"/en/tags/state-machine-optimization","count":1},{"label":"UART","permalink":"/en/tags/uart","count":2},{"label":"serial communication","permalink":"/en/tags/serial-communication","count":2},{"label":"PWM","permalink":"/en/tags/pwm","count":1},{"label":"timer","permalink":"/en/tags/timer","count":1},{"label":"alarm","permalink":"/en/tags/alarm","count":1},{"label":"interrupts","permalink":"/en/tags/interrupts","count":1},{"label":"stm32","permalink":"/en/tags/stm-32","count":1},{"label":"usb","permalink":"/en/tags/usb","count":1},{"label":"cdc","permalink":"/en/tags/cdc","count":1}]}')}}]); \ No newline at end of file diff --git a/en/assets/js/f55d3e7a.42ff1e90.js b/en/assets/js/f55d3e7a.42ff1e90.js new file mode 100644 index 000000000..bf2a05ddf --- /dev/null +++ b/en/assets/js/f55d3e7a.42ff1e90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8863],{745:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>n,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=t(4848),o=t(8453);const i={sidebar_position:5},n="Deploy your site",l={id:"tutorial-basics/deploy-your-site",title:"Deploy your site",description:"Docusaurus is a static-site-generator (also called Jamstack).",source:"@site/docs/tutorial-basics/deploy-your-site.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/deploy-your-site",permalink:"/en/tutorial-basics/deploy-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/deploy-your-site.md",tags:[],version:"current",lastUpdatedAt:1720492924e3,sidebarPosition:5,frontMatter:{sidebar_position:5}},c={},d=[{value:"Build your site",id:"build-your-site",level:2},{value:"Deploy your site",id:"deploy-your-site-1",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h1,{id:"deploy-your-site",children:"Deploy your site"}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus is a ",(0,r.jsx)(s.strong,{children:"static-site-generator"})," (also called ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://jamstack.org/",children:"Jamstack"})}),")."]}),"\n",(0,r.jsxs)(s.p,{children:["It builds your site as simple ",(0,r.jsx)(s.strong,{children:"static HTML, JavaScript and CSS files"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"build-your-site",children:"Build your site"}),"\n",(0,r.jsxs)(s.p,{children:["Build your site ",(0,r.jsx)(s.strong,{children:"for production"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The static files are generated in the ",(0,r.jsx)(s.code,{children:"build"})," folder."]}),"\n",(0,r.jsx)(s.h2,{id:"deploy-your-site-1",children:"Deploy your site"}),"\n",(0,r.jsx)(s.p,{children:"Test your production build locally:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run serve\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"build"})," folder is now served at ",(0,r.jsx)(s.a,{href:"http://localhost:3000/",children:"http://localhost:3000/"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["You can now deploy the ",(0,r.jsx)(s.code,{children:"build"})," folder ",(0,r.jsx)(s.strong,{children:"almost anywhere"})," easily, ",(0,r.jsx)(s.strong,{children:"for free"})," or very small cost (read the ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://docusaurus.io/docs/deployment",children:"Deployment Guide"})}),")."]})]})}function u(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>n,x:()=>l});var r=t(6540);const o={},i=r.createContext(o);function n(e){const s=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:n(e.components),r.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/en/assets/js/f894d38a.74e20fc4.js b/en/assets/js/f894d38a.74e20fc4.js new file mode 100644 index 000000000..bb71fb255 --- /dev/null +++ b/en/assets/js/f894d38a.74e20fc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7068],{4996:e=>{e.exports=JSON.parse('{"tag":{"label":"UART","permalink":"/en/tags/uart","allTagsPath":"/en/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/feb32b9a.c8d817f6.js b/en/assets/js/feb32b9a.c8d817f6.js new file mode 100644 index 000000000..cb1f2c03a --- /dev/null +++ b/en/assets/js/feb32b9a.c8d817f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1911],{3290:e=>{e.exports=JSON.parse('{"tag":{"label":"LED Control","permalink":"/en/tags/led-control","allTagsPath":"/en/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/en/assets/js/main.159c124b.js b/en/assets/js/main.159c124b.js new file mode 100644 index 000000000..e796c44dd --- /dev/null +++ b/en/assets/js/main.159c124b.js @@ -0,0 +1,2 @@ +/*! For license information please see main.159c124b.js.LICENSE.txt */ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9140)),"@theme/BlogTagsListPage",9140],"0e384e19":[()=>n.e(3976).then(n.bind(n,619)),"@site/docs/intro.md",619],"116e21e2":[()=>n.e(2512).then(n.t.bind(n,2658,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-5a1.json",2658],"14d3eb87":[()=>n.e(6725).then(n.bind(n,5427)),"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",5427],17896441:[()=>Promise.all([n.e(1869),n.e(1538),n.e(8401)]).then(n.bind(n,2447)),"@theme/DocItem",2447],"18c41134":[()=>n.e(9262).then(n.bind(n,3849)),"@site/docs/tutorial-basics/markdown-features.mdx",3849],"1e4232ab":[()=>n.e(1953).then(n.bind(n,3976)),"@site/docs/tutorial-basics/create-a-document.md",3976],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(1538),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"22f9ffc3":[()=>n.e(2782).then(n.t.bind(n,6004,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-2f9.json",6004],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"3720c009":[()=>Promise.all([n.e(1869),n.e(4787)]).then(n.bind(n,2194)),"@theme/DocTagsListPage",2194],"393be207":[()=>n.e(4134).then(n.bind(n,633)),"@site/src/pages/markdown-page.md",633],"3ea259e6":[()=>Promise.all([n.e(1869),n.e(7733)]).then(n.bind(n,8154)),"@site/src/pages/index.zh-hk.js",8154],"42a17d8a":[()=>n.e(9779).then(n.t.bind(n,4271,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-docker-700.json",4271],"447560db":[()=>n.e(3475).then(n.t.bind(n,4173,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-misc-ebb.json",4173],"5311454b":[()=>n.e(5430).then(n.t.bind(n,2185,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-321.json",2185],"533a09ca":[()=>n.e(3098).then(n.bind(n,4700)),"@site/docs/tutorial-basics/create-a-blog-post.md",4700],"5c868d36":[()=>n.e(1974).then(n.bind(n,5254)),"@site/docs/tutorial-basics/create-a-page.md",5254],"5cbf0a5d":[()=>n.e(2929).then(n.t.bind(n,7403,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-stm-32-b52.json",7403],"5e28b2f4":[()=>n.e(6221).then(n.bind(n,105)),"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",105],"5e87523e":[()=>n.e(6251).then(n.t.bind(n,1357,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-cdc-fcd.json",1357],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5f361db7":[()=>n.e(3047).then(n.t.bind(n,9547,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-resource-management-c33.json",9547],"60875e34":[()=>n.e(9661).then(n.bind(n,7315)),"@site/docs/tutorial.md",7315],"60f48b9d":[()=>n.e(1850).then(n.bind(n,6658)),"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",6658],"6875c492":[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"773c270b":[()=>n.e(5012).then(n.t.bind(n,1976,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-raspberry-pi-pico-e8e.json",1976],"7b649237":[()=>n.e(3837).then(n.t.bind(n,5149,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-rp-2040-10c.json",5149],"7c014d8d":[()=>n.e(72).then(n.t.bind(n,5962,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-serial-communication-dba.json",5962],"7d68e24f":[()=>n.e(5759).then(n.t.bind(n,8658,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-interrupts-d8d.json",8658],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"822bd8ab":[()=>n.e(2748).then(n.bind(n,8611)),"@site/docs/tutorial-basics/congratulations.md",8611],"85d15f38":[()=>n.e(163).then(n.t.bind(n,8834,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-embedded-systems-b70.json",8834],"85e08f6c":[()=>n.e(8210).then(n.bind(n,2392)),"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",2392],"873234d7":[()=>n.e(809).then(n.bind(n,7644)),"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",7644],"90e57ba8":[()=>n.e(6434).then(n.t.bind(n,3795,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-hola-2cb.json",3795],"925b3f96":[()=>n.e(8609).then(n.bind(n,5026)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",5026],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],"9fab635f":[()=>n.e(9071).then(n.bind(n,6377)),"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",6377],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(7643)]).then(n.bind(n,5124)),"@theme/BlogListPage",5124],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],ab0d13de:[()=>n.e(2503).then(n.t.bind(n,8135,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-timer-dee.json",8135],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],b0b6fd62:[()=>n.e(7151).then(n.t.bind(n,7089,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-state-machine-optimization-877.json",7089],b311d1e8:[()=>n.e(6630).then(n.bind(n,5122)),"@site/blog/2021-09-14-Docker-Getting-Srart-01.md?truncated=true",5122],b5192dd1:[()=>n.e(6869).then(n.t.bind(n,7002,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-\u8edf\u4ef6-e15.json",7002],c2aca3b0:[()=>n.e(1718).then(n.bind(n,5120)),"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",5120],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,192)),"@site/src/pages/index.js",192],c5fd9dbb:[()=>n.e(5418).then(n.t.bind(n,930,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-archive-fe3.json",930],ccc49370:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(3249)]).then(n.bind(n,3858)),"@theme/BlogPostPage",3858],d40edc32:[()=>n.e(4734).then(n.t.bind(n,1137,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-pio-421.json",1137],d52e2d06:[()=>n.e(597).then(n.t.bind(n,8972,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-usb-39f.json",8972],db61b3e8:[()=>n.e(932).then(n.t.bind(n,7790,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-pwm-129.json",7790],df203c0f:[()=>Promise.all([n.e(1869),n.e(4279)]).then(n.bind(n,5921)),"@theme/DocTagDocListPage",5921],dff1c289:[()=>n.e(1724).then(n.bind(n,8043)),"@site/docs/tutorial-extras/manage-docs-versions.md",8043],e273c56f:[()=>n.e(9328).then(n.bind(n,4014)),"@site/blog/2019-05-28-first-blog-post.md",4014],e2e7a3a0:[()=>n.e(2189).then(n.bind(n,9310)),"@site/blog/2021-09-14-Docker-Getting-Srart-01.md",9310],e44a2883:[()=>n.e(4736).then(n.bind(n,8350)),"@site/docs/tutorial-extras/translate-your-site.md",8350],e6141e4a:[()=>n.e(962).then(n.t.bind(n,9675,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-linux-1f4.json",9675],e8da249f:[()=>n.e(1878).then(n.t.bind(n,8287,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-\u6a5f\u5668\u5b78\u7fd2-358.json",8287],eac440ee:[()=>n.e(4530).then(n.t.bind(n,3750,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-alarm-18d.json",3750],ed8789cf:[()=>n.e(1873).then(n.t.bind(n,3134,19)),"@generated/docusaurus-plugin-content-blog/default/p/en-blog-tags-docusaurus-4b0.json",3134],ef86d428:[()=>n.e(9022).then(n.t.bind(n,715,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-0a5.json",715],f55d3e7a:[()=>n.e(8863).then(n.bind(n,745)),"@site/docs/tutorial-basics/deploy-your-site.md",745],f894d38a:[()=>n.e(7068).then(n.t.bind(n,4996,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-uart-222.json",4996],feb32b9a:[()=>n.e(1911).then(n.t.bind(n,3290,19)),"@generated/docusaurus-plugin-content-docs/default/p/en-tags-led-control-56b.json",3290]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,u.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const p=[{path:"/en/blog",component:d("/en/blog","d42"),exact:!0},{path:"/en/blog/archive",component:d("/en/blog/archive","d28"),exact:!0},{path:"/en/blog/Docker-Getting-Srart-01",component:d("/en/blog/Docker-Getting-Srart-01","6b7"),exact:!0},{path:"/en/blog/first-blog-post",component:d("/en/blog/first-blog-post","e3f"),exact:!0},{path:"/en/blog/tags",component:d("/en/blog/tags","fb7"),exact:!0},{path:"/en/blog/tags/docker",component:d("/en/blog/tags/docker","d42"),exact:!0},{path:"/en/blog/tags/docusaurus",component:d("/en/blog/tags/docusaurus","9a0"),exact:!0},{path:"/en/blog/tags/hola",component:d("/en/blog/tags/hola","73b"),exact:!0},{path:"/en/blog/tags/linux",component:d("/en/blog/tags/linux","e18"),exact:!0},{path:"/en/blog/tags/misc",component:d("/en/blog/tags/misc","9f5"),exact:!0},{path:"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2",component:d("/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2","a57"),exact:!0},{path:"/en/blog/tags/\u8edf\u4ef6",component:d("/en/blog/tags/\u8edf\u4ef6","5f2"),exact:!0},{path:"/en/index.zh-hk",component:d("/en/index.zh-hk","ae9"),exact:!0},{path:"/en/markdown-page",component:d("/en/markdown-page","63b"),exact:!0},{path:"/en/",component:d("/en/","d3c"),exact:!0},{path:"/en/",component:d("/en/","233"),routes:[{path:"/en/",component:d("/en/","d2e"),routes:[{path:"/en/tags",component:d("/en/tags","ca2"),exact:!0},{path:"/en/tags/alarm",component:d("/en/tags/alarm","80d"),exact:!0},{path:"/en/tags/cdc",component:d("/en/tags/cdc","5e8"),exact:!0},{path:"/en/tags/embedded-systems",component:d("/en/tags/embedded-systems","88c"),exact:!0},{path:"/en/tags/interrupts",component:d("/en/tags/interrupts","2f1"),exact:!0},{path:"/en/tags/led-control",component:d("/en/tags/led-control","bc2"),exact:!0},{path:"/en/tags/pio",component:d("/en/tags/pio","b41"),exact:!0},{path:"/en/tags/pwm",component:d("/en/tags/pwm","79c"),exact:!0},{path:"/en/tags/raspberry-pi-pico",component:d("/en/tags/raspberry-pi-pico","e1b"),exact:!0},{path:"/en/tags/resource-management",component:d("/en/tags/resource-management","f86"),exact:!0},{path:"/en/tags/rp-2040",component:d("/en/tags/rp-2040","562"),exact:!0},{path:"/en/tags/serial-communication",component:d("/en/tags/serial-communication","5f6"),exact:!0},{path:"/en/tags/state-machine-optimization",component:d("/en/tags/state-machine-optimization","331"),exact:!0},{path:"/en/tags/stm-32",component:d("/en/tags/stm-32","6cc"),exact:!0},{path:"/en/tags/timer",component:d("/en/tags/timer","c2d"),exact:!0},{path:"/en/tags/uart",component:d("/en/tags/uart","611"),exact:!0},{path:"/en/tags/usb",component:d("/en/tags/usb","252"),exact:!0},{path:"/en/",component:d("/en/","125"),routes:[{path:"/en/intro",component:d("/en/intro","92d"),exact:!0},{path:"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",component:d("/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","249"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040",component:d("/en/micro-controladores/RP2040/mastering-pio-programming-rp2040","d1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040",component:d("/en/micro-controladores/RP2040/pio-uart-implementation-rp2040","dfd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",component:d("/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","731"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",component:d("/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","07a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",component:d("/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","1f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",component:d("/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","962"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/tutorial",component:d("/en/tutorial","faa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/en/tutorial-basics/congratulations",component:d("/en/tutorial-basics/congratulations","1fa"),exact:!0},{path:"/en/tutorial-basics/create-a-blog-post",component:d("/en/tutorial-basics/create-a-blog-post","588"),exact:!0},{path:"/en/tutorial-basics/create-a-document",component:d("/en/tutorial-basics/create-a-document","c8b"),exact:!0},{path:"/en/tutorial-basics/create-a-page",component:d("/en/tutorial-basics/create-a-page","556"),exact:!0},{path:"/en/tutorial-basics/deploy-your-site",component:d("/en/tutorial-basics/deploy-your-site","2b2"),exact:!0},{path:"/en/tutorial-basics/markdown-features",component:d("/en/tutorial-basics/markdown-features","4ac"),exact:!0},{path:"/en/tutorial-extras/manage-docs-versions",component:d("/en/tutorial-extras/manage-docs-versions","5f8"),exact:!0},{path:"/en/tutorial-extras/translate-your-site",component:d("/en/tutorial-extras/translate-your-site","8ec"),exact:!0}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(545),i=n(4625),l=n(4784),s=n(8193);const u=[n(119),n(6134),n(6294),n(1043)];var c=n(8328),d=n(6347),p=n(2831),f=n(4848);function m(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var g=n(5260),h=n(4586),b=n(6025),y=n(6342),v=n(1213),w=n(2131),k=n(4090),x=n(2967),S=n(440),E=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,w.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(g.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,d.zy)();return e+(0,S.applyTrailingSlash)((0,b.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(g.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function T(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(g.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(_,{}),(0,f.jsx)(E.A,{tag:x.Cy,locale:e}),(0,f.jsx)(g.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const A=new Map;var j=n(6125),L=n(6988),P=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=u.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const I=D,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,f.jsx)(f.Fragment,{children:!s.A.canUseDOM&&(0,f.jsx)(g.A,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,f.jsx)($,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.A)(),o=(0,b.Ay)(e),{htmlLang:i,direction:l}=a[r];return(0,f.jsxs)(g.A,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:o})]})}var H=n(7489),G=n(2303);function V(){const e=(0,G.A)();return(0,f.jsx)(g.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const W=(0,p.v)(c.A);function Q(){const e=function(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,p.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(I,{location:e,children:W})}function K(){return(0,f.jsx)(H.A,{children:(0,f.jsx)(L.l,{children:(0,f.jsxs)(j.x,{children:[(0,f.jsxs)(m,{children:[(0,f.jsx)(q,{}),(0,f.jsx)(T,{}),(0,f.jsx)(U,{}),(0,f.jsx)(Q,{})]}),(0,f.jsx)(V,{})]})})})}var Y=n(4054);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var X=n(6921);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,p.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),O(e))},re=Object.freeze(ne);function ae(e){let{children:t}=e;return"hash"===l.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const oe=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(o.vd,{children:(0,f.jsx)(ae,{children:(0,f.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(oe)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};O(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/en/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/en/","mainDocId":"tutorial","docs":[{"id":"intro","path":"/en/intro"},{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","path":"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/mastering-pio-programming","path":"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/pio-uart-implementation","path":"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","path":"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","path":"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","path":"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/STM32/stm32_cdc_develop","path":"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","sidebar":"tutorialSidebar"},{"id":"tutorial","path":"/en/tutorial","sidebar":"tutorialSidebar"},{"id":"tutorial-basics/congratulations","path":"/en/tutorial-basics/congratulations"},{"id":"tutorial-basics/create-a-blog-post","path":"/en/tutorial-basics/create-a-blog-post"},{"id":"tutorial-basics/create-a-document","path":"/en/tutorial-basics/create-a-document"},{"id":"tutorial-basics/create-a-page","path":"/en/tutorial-basics/create-a-page"},{"id":"tutorial-basics/deploy-your-site","path":"/en/tutorial-basics/deploy-your-site"},{"id":"tutorial-basics/markdown-features","path":"/en/tutorial-basics/markdown-features"},{"id":"tutorial-extras/manage-docs-versions","path":"/en/tutorial-extras/manage-docs-versions"},{"id":"tutorial-extras/translate-your-site","path":"/en/tutorial-extras/translate-your-site"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/en/tutorial","label":"Tutorial"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"es","locales":["es","zh-hk","en"],"path":"i18n","currentLocale":"en","localeConfigs":{"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es-ES","calendar":"gregory","path":"es"},"zh-hk":{"label":"\u7e41\u9ad4\u4e2d\u6587","direction":"ltr","htmlLang":"zh-HK","calendar":"gregory","path":"zh-hk"},"en":{"label":"English","direction":"ltr","htmlLang":"en-US","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.4.0"}}}');var u=n(4848);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(5733),s=n(3102),u=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)(p,{children:(0,u.jsxs)(g,{fallback:()=>(0,u.jsx)(c,{error:t,tryAgain:n}),children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:t,tryAgain:n})})]})})}const m=e=>(0,u.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??m)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,c.hH)(),E=(0,u.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>_.current));const C=p||f;const T=(0,l.A)(C),A=C?.replace("pathname://","");let j=void 0!==A?(L=A,b&&(e=>e.startsWith("/"))(L)?S(L):L):void 0;var L;"hash"===x&&j?.startsWith("./")&&(j=j?.slice(1)),j&&T&&(j=(0,o.applyTrailingSlash)(j,{trailingSlash:w,baseUrl:k}));const P=(0,r.useRef)(!1),R=n?a.k2:a.N_,N=s.A.canUseIntersectionObserver,O=(0,r.useRef)(),D=()=>{P.current||null==j||(window.docusaurus.preload(j),P.current=!0)};(0,r.useEffect)((()=>(!N&&T&&null!=j&&window.docusaurus.prefetch(j),()=>{N&&O.current&&O.current.disconnect()})),[O,j,N,T]);const I=j?.startsWith("#")??!1,M=!y.target||"_self"===y.target,F=!j||!T||!M;return h||!I&&F||E.collectLink(j),y.id&&E.collectAnchor(y.id),F?(0,d.jsx)("a",{ref:_,href:j,...C&&!T&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(R,{...y,onMouseEnter:D,onTouchStart:D,innerRef:e=>{_.current=e,N&&e&&T&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),O.current.observe(e))},to:j,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),a=n(4848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:a=!1,absolute:i=!1}={},router:l}=e;if(!r||r.startsWith("#")||(0,o.z)(r))return r;if("hash"===l)return r.startsWith("/")?`.${r}`:`./${r}`;if(a)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const s=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+s:s}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:l}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>p,Gy:()=>c,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),a=n(4586),o=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},5733:(e,t,n)=>{"use strict";n.d(t,{A:()=>mt});var r=n(6540),a=n(4164),o=n(7489),i=n(1213),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(g,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:T.announcementBarPlaceholder}),(0,c.jsx)(C,{className:T.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var j=n(9876),L=n(3104);var P=n(9532),R=n(5600);const N=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(N.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(N);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=I();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(5293),z=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.G)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.A)(a),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,m&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(Z.A,{href:s?f:a,...u,...g}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),le=n(9169),se=n(4586);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.A)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(_e,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),(0,c.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.A)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(_e,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(418);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.A)(n,ye.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,l.zy)(),g=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(ve,{className:n,children:(0,c.jsx)(be.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.QB)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,ke.Vd)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),g=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],h=(0,ke.Vd)(n)[0],b=t&&g.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:Se(h).path;return g.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function _e(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ee[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function Ce(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(_e,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Te(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ae(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Te,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(M,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Ce,{}),secondaryMenu:(0,c.jsx)(Ae,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Pe,{onClick:i.toggle}),(0,c.jsx)(je,{})]})}var Ne=n(440);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Ne.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Me extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Fe="right";function ze(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Me,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(_e,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function He(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Fe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(qe,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(Be,{}),(0,c.jsx)(Q,{}),(0,c.jsx)(Ue,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Ue,{items:r}),(0,c.jsx)(V,{className:$e.colorModeToggle}),!a&&(0,c.jsx)(ve,{children:(0,c.jsx)(be.A,{})})]})})}function Ge(){return(0,c.jsx)(Re,{children:(0,c.jsx)(He,{})})}function Ve(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.Ay)(n),s=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function We(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(Ve,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(We,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(Ve,{item:t})}function Xe(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Ze,{item:e}),t.length!==n+1&&(0,c.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ke,{columns:t}):(0,c.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(et.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,c.jsx)(nt,{logo:t})}):(0,c.jsx)(nt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(ot,{style:a,links:n&&n.length>0&&(0,c.jsx)(Je,{links:n}),logo:r&&(0,c.jsx)(rt,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const lt=r.memo(it);function st(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(lt,{...e})})}const ut=(0,P.fM)([F.a,k.o,L.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(R.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,c.jsx)(ut,{children:t})}var dt=n(1107);function pt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(dt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(De,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Ie,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function mt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,c.jsxs)(ct,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(A,{}),(0,c.jsx)(Ge,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(h.G.wrapper.main,ft.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:e=>(0,c.jsx)(pt,{...e}),children:t})}),!n&&(0,c.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,a.Ay)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:g,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,o.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>u});var r=n(6540),a=n(8193),o=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.A.canUseDOM)return e?c:d}function g(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:a})}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(g,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>g,o:()=>m});var r=n(6540),a=n(2303),o=n(679),i=n(9532),l=n(6342),s=n(4848);const u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(6540),a=n(8193),o=n(9532),i=n(679),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&g(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(u);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(679),c=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,c.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.C5?(0,c.jsx)(h,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>h,C5:()=>p,B5:()=>E,Vd:()=>k,QB:()=>S,fW:()=>x,OF:()=>w,Y:()=>y});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.ys)(e,t),g=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||g(e.items,t))}function b(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||h(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,a.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.v)(i),sidebarName:u,sidebarItems:c}}},1213:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>c,Jx:()=>f});var r=n(6540),a=n(4164),o=n(5260),i=n(6803),l=n(6025),s=n(4586);var u=n(4848);function c(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const c=function(e){const{siteConfig:t}=(0,s.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.hH)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:c}),t&&(0,u.jsx)("meta",{property:"og:title",content:c}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.A)(i,t);return(0,u.jsxs)(d.Provider,{value:l,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:l})}),n]})}function f(e){let{children:t}=e;const n=(0,i.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(p,{className:(0,a.A)(r,o),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>a});n(4586);const r="default";function a(e,t){return`docs-${e}-${t}`}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),a=r.N;function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const a=i(t?.persistence);return null===a?s:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(2566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,n?a(s):o(s));var s;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return a.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return a.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return a.removeTrailingSlash}});var o=n(2566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return o.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return o.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return o.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return o.removePrefix}});var i=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>A,AO:()=>p});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var g=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?h:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var A=m();function j(e){(0,r.A)($,e),$.length=n.length,A.notifyListeners($.location,$.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(v()))}var R=!1;function N(e){if(R)R=!1,j();else{A.confirmTransitionTo(e,"POP",x,(function(t){t?j({action:"POP",location:e}):function(e){var t=$.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(R=!0,M(a))}(e)}))}}var O=C(v()),D=[O.key];function I(e){return _+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(y,P)):0===F&&(window.removeEventListener(b,L),o&&window.removeEventListener(y,P))}var B=!1;var $={length:n.length,action:"POP",location:O,createHref:I,push:function(e,t){var r="PUSH",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=I(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf($.location.key),u=D.slice(0,s+1);u.push(o.key),D=u,j({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),$.location);A.confirmTransitionTo(o,r,x,(function(e){if(e){var t=I(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf($.location.key);-1!==s&&(D[s]=o.key),j({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=A.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),g||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",y=x[u],v=y.encodePath,w=y.decodePath;function C(){var e=w(E());return b&&(e=c(e,b)),f(e)}var T=m();function A(e){(0,r.A)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var j=!1,L=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!j&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(j)j=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=B.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(j=!0,I(a))}(e)}))}}(a)}}var R=E(),N=v(R);R!==N&&_(N);var O=C(),D=[p(O)];function I(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,P):0===M&&window.removeEventListener(k,P)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(E()!==a){L=t,function(e){window.location.hash=e}(a);var o=D.lastIndexOf(p(B.location)),i=D.slice(0,o+1);i.push(t),D=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);E()!==a&&(L=t,_(a));var o=D.indexOf(p(B.location));-1!==o&&(D[o]=t),A({action:n,location:r})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function g(){return Math.random().toString(36).substr(2,u)}var h=T(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?g():e.key||g())})),y=p;function v(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[h],index:h,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,g(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,g(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||r&&r[b]||g&&g[b]||l&&l[b])){var y=p(n,b);try{u(t,b,y)}catch(v){}}}}return t}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(8380),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,i([g])),y.push(h),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8692},3157:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var y in f(b))if(y in c){p[b]=!0;break}for(var v in m=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),a=n(194);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){h[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=h.hasOwnProperty(t)?h[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);h[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),R=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var N=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var I,M=Object.assign;function F(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function $(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case j:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case R:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Z(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function ge(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ge(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Te(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Ae(e,t){return e(t)}function je(){}var Le=!1;function Pe(e,t,n){if(Le)return e(t,n);Le=!0;try{return Ae(e,t,n)}finally{Le=!1,(null!==Se||null!==Ee)&&(je(),Te())}}function Re(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Ne=!1;if(c)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Ne=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ce){Ne=!1}function De(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Ie=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){Ie=!0,Me=e}};function $e(e,t,n,r,a,o,i,l,s){Ie=!1,Me=null,De.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(o(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,Qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&!(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&4194240&o))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gt(){var e=ut;return!(4194240&(ut<<=1))&&(ut=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,Tt=[],At=null,jt=null,Lt=null,Pt=new Map,Rt=new Map,Nt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Dt(e,t){switch(e){case"focusin":case"focusout":At=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Rt.delete(t.pointerId)}}function It(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Ct=!1,null!==At&&Ft(At)&&(At=null),null!==jt&&Ft(jt)&&(jt=null),null!==Lt&&Ft(Lt)&&(Lt=null),Pt.forEach(zt),Rt.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==At&&$t(At,e),null!==jt&&$t(jt,e),null!==Lt&&$t(Lt,e),Pt.forEach(t),Rt.forEach(t),n=0;n<Nt.length;n++)(r=Nt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Nt.length&&null===(n=Nt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Nt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Vt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Wt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,Qt,n),Dt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return At=It(At,e,t,n,r,a),!0;case"dragenter":return jt=It(jt,e,t,n,r,a),!0;case"mouseover":return Lt=It(Lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pt.set(o,It(Pt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Rt.set(o,It(Rt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Dt(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,Qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Qt=null;function Kt(e,t,n,r){if(Qt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=M({},un,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=an(fn),gn=an(M({},fn,{dataTransfer:0})),hn=an(M({},dn,{relatedTarget:0})),bn=an(M({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=M({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(M({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),An=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=an(M({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Rn=an(Pn),Nn=[9,13,27,32],On=c&&"CompositionEvent"in window,Dn=null;c&&"documentMode"in document&&(Dn=document.documentMode);var In=c&&"TextEvent"in window&&!Dn,Mn=c&&(!On||Dn&&8<Dn&&11>=Dn),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Ce(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function Qn(e){Fr(e,0)}function Kn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Kn(Wn)){var t=[];Gn(t,Wn,e,ke(e)),Pe(Qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Wn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var gr=c&&"documentMode"in document&&11>=document.documentMode,hr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==hr||hr!==Q(r)||("selectionStart"in(r=hr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&sr(yr,r)||(yr=r,0<(r=Vr(br,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),Ar=_r("animationstart"),jr=_r("transitionend"),Lr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rr(e,t){Lr.set(e,t),s(t,[e])}for(var Nr=0;Nr<Pr.length;Nr++){var Or=Pr[Nr];Rr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Rr(Cr,"onAnimationEnd"),Rr(Tr,"onAnimationIteration"),Rr(Ar,"onAnimationStart"),Rr("dblclick","onDoubleClick"),Rr("focusin","onFocus"),Rr("focusout","onBlur"),Rr(jr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Dr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ir=new Set("cancel close invalid load scroll toggle".split(" ").concat(Dr));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if($e.apply(this,arguments),Ie){if(!Ie)throw Error(o(198));var c=Me;Ie=!1,Me=null,Fe||(Fe=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Mr(a,l,u),o=s}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ga];void 0===n&&(n=t[ga]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Ir.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Gt;break;case 4:a=Vt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Ne||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ya(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Pe((function(){var r=o,a=ke(n),i=[];e:{var l=Lr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=Tn;break;case"focusin":u="focus",s=hn;break;case"focusout":u="blur",s=hn;break;case"beforeblur":case"afterblur":s=hn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=jn;break;case Cr:case Tr:case Ar:s=bn;break;case jr:s=Ln;break;case"scroll":s=pn;break;case"wheel":s=Rn;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=An}var c=!!(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,m=r;null!==m;){var g=(f=m).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&(null!=(g=Re(m,p))&&c.push(Gr(m,g,f)))),d)break;m=m.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(!(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ya(u)&&!u[ma])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ya(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=mn,g="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(c=An,g="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:wa(s),f=null==u?l:wa(u),(l=new c(g,m+"leave",s,n,a)).target=d,l.relatedTarget=f,g=null,ya(a)===r&&((c=new c(p,m+"enter",u,n,a)).target=f,c.relatedTarget=d,g=c),d=g,s&&u)e:{for(p=u,m=0,f=c=s;f;f=Wr(f))m++;for(f=0,g=p;g;g=Wr(g))f++;for(;0<m-f;)c=Wr(c),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(c===p||null!==p&&c===p.alternate)break e;c=Wr(c),p=Wr(p)}c=null}else c=null;null!==s&&Qr(i,l,s,c,!1),null!==u&&null!==d&&Qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var h=Yn;else if(Hn(l))if(Zn)h=ir;else{h=ar;var b=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(h=or);switch(h&&(h=h(e,r))?Gn(i,h,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ee(l,"number",l.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(hr=b,br=r,yr=null);break;case"focusout":yr=br=hr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(gr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(On)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Mn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Zt=a)?Zt.value:Zt.textContent,Un=!0)),0<(b=Vr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=In?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Zt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Fr(i,t)}))}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Re(e,n))&&r.unshift(Gr(e,o,a)),null!=(o=Re(e,t))&&r.push(Gr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Re(n,o))&&i.unshift(Gr(n,s,l)):a||null!=(s=Re(n,o))&&i.push(Gr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ga="__reactEvents$"+da,ha="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[pa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Ta={},Aa=Ea(Ta),ja=Ea(!1),La=Ta;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ra(e){return null!=(e=e.childContextTypes)}function Na(){_a(ja),_a(Aa)}function Oa(e,t,n){if(Aa.current!==Ta)throw Error(o(168));Ca(Aa,t),Ca(ja,n)}function Da(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Ia(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,La=Aa.current,Ca(Aa,e),Ca(ja,ja.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Da(e,t,La),r.__reactInternalMemoizedMergedChildContext=e,_a(ja),_a(Aa),Ca(Aa,e)):_a(ja),Ca(ja,n)}var Fa=null,za=!1,Ba=!1;function $a(e){null===Fa?Fa=[e]:Fa.push(e)}function Ua(){if(!Ba&&null!==Fa){Ba=!0;var e=0,t=vt;try{var n=Fa;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,za=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var qa=[],Ha=0,Ga=null,Va=0,Wa=[],Qa=0,Ka=null,Ya=1,Za="";function Xa(e,t){qa[Ha++]=Va,qa[Ha++]=Ga,Ga=e,Va=t}function Ja(e,t,n){Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ka=e;var r=Ya;e=Za;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Za=o+e}else Ya=1<<o|n<<a|r,Za=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ga;)Ga=qa[--Ha],qa[Ha]=null,Va=qa[--Ha],qa[Ha]=null;for(;e===Ka;)Ka=Wa[--Qa],Wa[Qa]=null,Za=Wa[--Qa],Wa[Qa]=null,Ya=Wa[--Qa],Wa[Qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Pu(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pu(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return!(!(1&e.mode)||128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ua(e.nextSibling)}function mo(){ro=no=null,ao=!1}function go(e){null===oo?oo=[e]:oo.push(e)}var ho=w.ReactCurrentBatchConfig;function bo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function yo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function vo(e){return(0,e._init)(e._payload)}function wo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Nu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===R&&vo(o)===t.type)?((r=a(t,n.props)).ref=bo(e,t,n),r.return=e,r):((r=Ou(n.type,n.key,n.props,null,e.mode,r)).ref=bo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Fu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Du(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ou(t.type,t.key,t.props,null,e.mode,n)).ref=bo(e,null,t),n.return=e,n;case x:return(t=Fu(t,e.mode,n)).return=e,t;case R:return p(e,(0,t._init)(t._payload),n)}if(te(t)||D(t))return(t=Du(t,e.mode,n,null)).return=e,t;yo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?u(e,t,n,r):null;case x:return n.key===a?c(e,t,n,r):null;case R:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||D(n))return null!==a?null:d(e,t,n,r,null);yo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case R:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||D(r))return d(t,e=e.get(n)||null,r,a,null);yo(t,r)}return null}function g(a,o,l,s){for(var u=null,c=null,d=o,g=o=0,h=null;null!==d&&g<l.length;g++){d.index>g?(h=d,d=null):h=d.sibling;var b=f(a,d,l[g],s);if(null===b){null===d&&(d=h);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,g),null===c?u=b:c.sibling=b,c=b,d=h}if(g===l.length)return n(a,d),ao&&Xa(a,g),u;if(null===d){for(;g<l.length;g++)null!==(d=p(a,l[g],s))&&(o=i(d,o,g),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,g),u}for(d=r(a,d);g<l.length;g++)null!==(h=m(d,a,g,l[g],s))&&(e&&null!==h.alternate&&d.delete(null===h.key?g:h.key),o=i(h,o,g),null===c?u=h:c.sibling=h,c=h);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),u}function h(a,l,s,u){var c=D(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,g=l,h=l=0,b=null,y=s.next();null!==g&&!y.done;h++,y=s.next()){g.index>h?(b=g,g=null):b=g.sibling;var v=f(a,g,y.value,u);if(null===v){null===g&&(g=b);break}e&&g&&null===v.alternate&&t(a,g),l=i(v,l,h),null===d?c=v:d.sibling=v,d=v,g=b}if(y.done)return n(a,g),ao&&Xa(a,h),c;if(null===g){for(;!y.done;h++,y=s.next())null!==(y=p(a,y.value,u))&&(l=i(y,l,h),null===d?c=y:d.sibling=y,d=y);return ao&&Xa(a,h),c}for(g=r(a,g);!y.done;h++,y=s.next())null!==(y=m(g,a,h,y.value,u))&&(e&&null!==y.alternate&&g.delete(null===y.key?h:y.key),l=i(y,l,h),null===d?c=y:d.sibling=y,d=y);return e&&g.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===R&&vo(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=bo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Du(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=Ou(i.type,i.key,i.props,null,r.mode,s)).ref=bo(r,o,i),s.return=r,r=s)}return l(r);case x:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Fu(i,r.mode,s)).return=r,r=o}return l(r);case R:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return g(r,o,i,s);if(D(i))return h(r,o,i,s);yo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Mu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var ko=wo(!0),xo=wo(!1),So=Ea(null),Eo=null,_o=null,Co=null;function To(){Co=_o=Eo=null}function Ao(e){var t=So.current;_a(So),e._currentValue=t}function jo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Lo(e,t){Eo=e,Co=_o=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(vl=!0),e.firstContext=null)}function Po(e){var t=e._currentValue;if(Co!==e)if(e={context:e,memoizedValue:t,next:null},null===_o){if(null===Eo)throw Error(o(308));_o=e,Eo.dependencies={lanes:0,firstContext:e}}else _o=_o.next=e;return t}var Ro=null;function No(e){null===Ro?Ro=[e]:Ro.push(e)}function Oo(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,No(t)):(n.next=a.next,a.next=n),t.interleaved=n,Do(e,r)}function Do(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Io=!1;function Mo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Fo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function zo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Bo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&As){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Do(e,n)}return null===(a=r.interleaved)?(t.next=t,No(r)):(t.next=a.next,a.next=t),r.interleaved=t,Do(e,n)}function $o(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Uo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function qo(e,t,n,r){var a=e.updateQueue;Io=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,g=l;switch(p=t,f=n,g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=g.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Io=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=f,s=d):c=c.next=f,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Is|=i,e.lanes=i,e.memoizedState=d}}function Ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Go={},Vo=Ea(Go),Wo=Ea(Go),Qo=Ea(Go);function Ko(e){if(e===Go)throw Error(o(174));return e}function Yo(e,t){switch(Ca(Qo,t),Ca(Wo,e),Ca(Vo,Go),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(Vo),Ca(Vo,t)}function Zo(){_a(Vo),_a(Wo),_a(Qo)}function Xo(e){Ko(Qo.current);var t=Ko(Vo.current),n=se(t,e.type);t!==n&&(Ca(Wo,e),Ca(Vo,n))}function Jo(e){Wo.current===e&&(_a(Vo),_a(Wo))}var ei=Ea(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var ai=w.ReactCurrentDispatcher,oi=w.ReactCurrentBatchConfig,ii=0,li=null,si=null,ui=null,ci=!1,di=!1,pi=0,fi=0;function mi(){throw Error(o(321))}function gi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function hi(e,t,n,r,a,i){if(ii=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ai.current=null===e||null===e.memoizedState?Ji:el,e=n(r,a),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(o(301));i+=1,ui=si=null,t.updateQueue=null,ai.current=tl,e=n(r,a)}while(di)}if(ai.current=Xi,t=null!==si&&null!==si.next,ii=0,ui=si=li=null,ci=!1,t)throw Error(o(300));return e}function bi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ui?li.memoizedState=ui=e:ui=ui.next=e,ui}function vi(){if(null===si){var e=li.alternate;e=null!==e?e.memoizedState:null}else e=si.next;var t=null===ui?li.memoizedState:ui.next;if(null!==t)ui=t,si=e;else{if(null===e)throw Error(o(310));e={memoizedState:(si=e).memoizedState,baseState:si.baseState,baseQueue:si.baseQueue,queue:si.queue,next:null},null===ui?li.memoizedState=ui=e:ui=ui.next=e}return ui}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=si,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((ii&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=p,l=r):u=u.next=p,li.lanes|=d,Is|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(vl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,li.lanes|=i,Is|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xi(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(vl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function Ei(e,t){var n=li,r=vi(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,vl=!0),r=r.queue,Ii(Ti.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ui&&1&ui.memoizedState.tag){if(n.flags|=2048,Pi(9,Ci.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));30&ii||_i(n,t,a)}return a}function _i(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ci(e,t,n,r){t.value=n,t.getSnapshot=r,Ai(t)&&ji(e)}function Ti(e,t,n){return n((function(){Ai(t)&&ji(e)}))}function Ai(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function ji(e){var t=Do(e,1);null!==t&&nu(t,e,1,-1)}function Li(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Qi.bind(null,li,e),[t.memoizedState,e]}function Pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ri(){return vi().memoizedState}function Ni(e,t,n,r){var a=yi();li.flags|=e,a.memoizedState=Pi(1|t,n,void 0,void 0===r?null:r)}function Oi(e,t,n,r){var a=vi();r=void 0===r?null:r;var o=void 0;if(null!==si){var i=si.memoizedState;if(o=i.destroy,null!==r&&gi(r,i.deps))return void(a.memoizedState=Pi(t,n,o,r))}li.flags|=e,a.memoizedState=Pi(1|t,n,o,r)}function Di(e,t){return Ni(8390656,8,e,t)}function Ii(e,t){return Oi(2048,8,e,t)}function Mi(e,t){return Oi(4,2,e,t)}function Fi(e,t){return Oi(4,4,e,t)}function zi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Bi(e,t,n){return n=null!=n?n.concat([e]):null,Oi(4,4,zi.bind(null,t,e),n)}function $i(){}function Ui(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&gi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(lr(n,t)||(n=gt(),li.lanes|=n,Is|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vl=!0),e.memoizedState=n)}function Gi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=oi.transition;oi.transition={};try{e(!1),t()}finally{vt=n,oi.transition=r}}function Vi(){return vi().memoizedState}function Wi(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=Oo(e,t,n,r))){nu(n,e,r,eu()),Zi(n,t,r)}}function Qi(e,t,n){var r=tu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ki(e))Yi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,No(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=Oo(e,t,a,r))&&(nu(n,e,r,a=eu()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===li||null!==t&&t===li}function Yi(e,t){di=ci=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Xi={readContext:Po,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Ji={readContext:Po,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Po,useEffect:Di,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ni(4194308,4,zi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ni(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ni(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Li,useDebugValue:$i,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Li(!1),t=e[0];return e=Gi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=li,a=yi();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));30&ii||_i(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Di(Ti.bind(null,r,i,e),[e]),r.flags|=2048,Pi(9,Ci.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=js.identifierPrefix;if(ao){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:ki,useRef:Ri,useState:function(){return ki(wi)},useDebugValue:$i,useDeferredValue:function(e){return Hi(vi(),si.memoizedState,e)},useTransition:function(){return[ki(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1},tl={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Ii,useImperativeHandle:Bi,useInsertionEffect:Mi,useLayoutEffect:Fi,useMemo:qi,useReducer:xi,useRef:Ri,useState:function(){return xi(wi)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===si?t.memoizedState=e:Hi(t,si.memoizedState,e)},useTransition:function(){return[xi(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var al={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=zo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=eu(),r=tu(e),a=zo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Bo(e,a,r))&&(nu(t,e,r,n),$o(t,e,r))}};function ol(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function il(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Po(o):(a=Ra(t)?La:Aa.current,o=(r=null!=(r=t.contextTypes))?Pa(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=al,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ll(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&al.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},Mo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Po(o):(o=Ra(t)?La:Aa.current,a.context=Pa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(rl(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&al.enqueueReplaceState(a,a.state,null),qo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function ul(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function cl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=zo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Gs=r),dl(0,t)},n}function ml(e,t,n){(n=zo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){dl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Vs?Vs=new Set([this]):Vs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=_u.bind(null,e,t,n),t.then(e,e))}function hl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,a){return 1&e.mode?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=zo(-1,1)).tag=2,Bo(n,t,1))),n.lanes|=1),e)}var yl=w.ReactCurrentOwner,vl=!1;function wl(e,t,n,r){t.child=null===e?xo(t,null,n,r):ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return Lo(t,a),r=hi(e,t,n,r,o,a),n=bi(),null===e||vl?(ao&&n&&eo(t),t.flags|=1,wl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function xl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Ru(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ou(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Sl(e,t,o,r,a))}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,a)}return t.flags|=1,(e=Nu(o,r)).ref=t.ref,e.return=t,t.child=e}function Sl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(vl=!1,t.pendingProps=r=o,!(e.lanes&a))return t.lanes=e.lanes,Hl(e,t,a);131072&e.flags&&(vl=!0)}}return Cl(e,t,n,r,a)}function El(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ns,Rs),Rs|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ns,Rs),Rs|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ns,Rs),Rs|=n;else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ns,Rs),Rs|=r;return wl(e,t,a,n),t.child}function _l(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cl(e,t,n,r,a){var o=Ra(n)?La:Aa.current;return o=Pa(t,o),Lo(t,a),n=hi(e,t,n,r,o,a),r=bi(),null===e||vl?(ao&&r&&eo(t),t.flags|=1,wl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Tl(e,t,n,r,a){if(Ra(n)){var o=!0;Ia(t)}else o=!1;if(Lo(t,a),null===t.stateNode)ql(e,t),il(t,n,r),sl(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Po(u):u=Pa(t,u=Ra(n)?La:Aa.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ll(t,i,r,u),Io=!1;var p=t.memoizedState;i.state=p,qo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||ja.current||Io?("function"==typeof c&&(rl(t,n,c,r),s=t.memoizedState),(l=Io||ol(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Fo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:nl(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Po(s):s=Pa(t,s=Ra(n)?La:Aa.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,i,r,s),Io=!1,p=t.memoizedState,i.state=p,qo(t,r,i,a);var m=t.memoizedState;l!==d||p!==m||ja.current||Io?("function"==typeof f&&(rl(t,n,f,r),m=t.memoizedState),(u=Io||ol(t,n,u,r,p,m,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Al(e,t,n,r,o,a)}function Al(e,t,n,r,a,o){_l(e,t);var i=!!(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Hl(e,t,o);r=t.stateNode,yl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ko(t,e.child,null,o),t.child=ko(t,null,l,o)):wl(e,t,l,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),Yo(e,t.containerInfo)}function Ll(e,t,n,r,a){return mo(),go(a),t.flags|=256,wl(e,t,n,r),t.child}var Pl,Rl,Nl,Ol,Dl={dehydrated:null,treeContext:null,retryLane:0};function Il(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,a=t.pendingProps,i=ei.current,l=!1,s=!!(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(ei,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},1&a||null===l?l=Iu(s,a,0,null):(l.childLanes=0,l.pendingProps=s),e=Du(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Il(n),t.memoizedState=Dl,e):Fl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,zl(e,t,l,r=cl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Iu({mode:"visible",children:r.children},a,0,null),(i=Du(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ko(t,e.child,null,l),t.child.memoizedState=Il(l),t.memoizedState=Dl,i);if(!(1&t.mode))return zl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,zl(e,t,l,r=cl(i=Error(o(419)),r,void 0))}if(s=!!(l&e.childLanes),vl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=a&(r.suspendedLanes|l)?0:a)&&a!==i.retryLane&&(i.retryLane=a,Do(e,a),nu(r,e,a,-1))}return gu(),zl(e,t,l,r=cl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Tu.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ya=e.id,Za=e.overflow,Ka=t),t=Fl(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 1&s||t.child===i?(a=Nu(i,u)).subtreeFlags=14680064&i.subtreeFlags:((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null),null!==r?l=Nu(r,l):(l=Du(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Il(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Dl,a}return e=(l=e.child).sibling,a=Nu(l,{mode:"visible",children:a.children}),!(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Fl(e,t){return(t=Iu({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zl(e,t,n,r){return null!==r&&go(r),ko(t,e.child,null,n),(e=Fl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),jo(e.return,t,n)}function $l(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ul(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(wl(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bl(e,n,t);else if(19===e.tag)Bl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(ei,r),1&t.mode)switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),$l(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ti(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}$l(t,!0,n,null,o);break;case"together":$l(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function ql(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Is|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Nu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vl(t),null;case 1:case 17:return Ra(t.type)&&Na(),Vl(t),null;case 3:return r=t.stateNode,Zo(),_a(ja),_a(Aa),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==oo&&(iu(oo),oo=null))),Rl(e,t),Vl(t),null;case 5:Jo(t);var a=Ko(Qo.current);if(n=t.type,null!==e&&null!=t.stateNode)Nl(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Vl(t),null}if(e=Ko(Vo.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=!!(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Dr.length;a++)zr(Dr[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var s in ye(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[pa]=t,e[fa]=r,Pl(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Dr.length;a++)zr(Dr[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in ye(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?he(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&pe(e,c):"number"==typeof c&&pe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vl(t),null;case 6:if(e&&null!=t.stateNode)Ol(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=Ko(Qo.current),Ko(Vo.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Vl(t),null;case 13:if(_a(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&1&t.mode&&!(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vl(t),i=!1}else null!==oo&&(iu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Os&&(Os=3):gu())),null!==t.updateQueue&&(t.flags|=4),Vl(t),null);case 4:return Zo(),Rl(e,t),null===e&&Ur(t.stateNode.containerInfo),Vl(t),null;case 10:return Ao(t.type._context),Vl(t),null;case 19:if(_a(ei),null===(i=t.memoizedState))return Vl(t),null;if(r=!!(128&t.flags),null===(s=i.rendering))if(r)Gl(i,!1);else{if(0!==Os||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(s=ti(e))){for(t.flags|=128,Gl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>Us&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Vl(t),null}else 2*Ze()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,Ca(ei,r?1&n|2:1&n),t):(Vl(t),null);case 22:case 23:return du(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Rs)&&(Vl(t),6&t.subtreeFlags&&(t.flags|=8192)):Vl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ql(e,t){switch(to(t),t.tag){case 1:return Ra(t.type)&&Na(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Zo(),_a(ja),_a(Aa),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Jo(t),null;case 13:if(_a(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(ei),null;case 4:return Zo(),null;case 10:return Ao(t.type._context),null;case 22:case 23:return du(),null;default:return null}}Pl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Rl=function(){},Nl=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ko(Vo.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in ye(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Ol=function(e,t,n,r){n!==r&&(t.flags|=4)};var Kl=!1,Yl=!1,Zl="function"==typeof WeakSet?WeakSet:Set,Xl=null;function Jl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Eu(e,t,r)}else n.current=null}function es(e,t,n){try{n()}catch(r){Eu(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&es(t,n,o)}a=a.next}while(a!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function as(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function os(e){var t=e.alternate;null!==t&&(e.alternate=null,os(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ga],delete t[ha],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function is(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||is(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var cs=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Yl||Jl(n,t);case 6:var r=cs,a=ds;cs=null,ps(e,t,n),ds=a,null!==(cs=r)&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cs.removeChild(n.stateNode));break;case 18:null!==cs&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),Ut(e)):sa(cs,n.stateNode));break;case 4:r=cs,a=ds,cs=n.stateNode.containerInfo,ds=!0,ps(e,t,n),cs=r,ds=a;break;case 0:case 11:case 14:case 15:if(!Yl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(2&o||4&o)&&es(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Yl&&(Jl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Eu(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Yl=(r=Yl)||null!==n.memoizedState,ps(e,t,n),Yl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zl),t.forEach((function(t){var r=Au.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:cs=s.stateNode,ds=!1;break e;case 3:case 4:cs=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===cs)throw Error(o(160));fs(i,l,a),cs=null,ds=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){Eu(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)hs(t,e),t=t.sibling}function hs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gs(t,e),bs(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(h){Eu(e,e.return,h)}try{ns(5,e,e.return)}catch(h){Eu(e,e.return,h)}}break;case 1:gs(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return);break;case 5:if(gs(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(h){Eu(e,e.return,h)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&Z(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],p=u[l+1];"style"===d?he(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(h){Eu(e,e.return,h)}}break;case 6:if(gs(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(h){Eu(e,e.return,h)}}break;case 3:if(gs(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(h){Eu(e,e.return,h)}break;case 4:default:gs(t,e),bs(e);break;case 13:gs(t,e),bs(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||($s=Ze())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Yl=(c=Yl)||d,gs(t,e),Yl=c):gs(t,e),bs(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&1&e.mode)for(Xl=e,d=e.child;null!==d;){for(p=Xl=d;null!==Xl;){switch(m=(f=Xl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Jl(f,f.return);var g=f.stateNode;if("function"==typeof g.componentWillUnmount){r=f,n=f.return;try{t=r,g.props=t.memoizedProps,g.state=t.memoizedState,g.componentWillUnmount()}catch(h){Eu(r,n,h)}}break;case 5:Jl(f,f.return);break;case 22:if(null!==f.memoizedState){ks(p);continue}}null!==m?(m.return=f,Xl=m):ks(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=p.stateNode,l=null!=(u=p.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=ge("display",l))}catch(h){Eu(e,e.return,h)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=c?"":p.memoizedProps}catch(h){Eu(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gs(t,e),bs(e),4&r&&ms(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(is(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),us(e,ls(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;ss(e,ls(e),i);break;default:throw Error(o(161))}}catch(l){Eu(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function ys(e,t,n){Xl=e,vs(e,t,n)}function vs(e,t,n){for(var r=!!(1&e.mode);null!==Xl;){var a=Xl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Kl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Yl;l=Kl;var u=Yl;if(Kl=i,(Yl=s)&&!u)for(Xl=a;null!==Xl;)s=(i=Xl).child,22===i.tag&&null!==i.memoizedState?xs(a):null!==s?(s.return=i,Xl=s):xs(a);for(;null!==o;)Xl=o,vs(o,t,n),o=o.sibling;Xl=a,Kl=l,Yl=u}ws(e)}else 8772&a.subtreeFlags&&null!==o?(o.return=a,Xl=o):ws(e)}}function ws(e){for(;null!==Xl;){var t=Xl;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Yl||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Yl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ho(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ho(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Yl||512&t.flags&&as(t)}catch(f){Eu(t,t.return,f)}}if(t===e){Xl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xl=n;break}Xl=t.return}}function ks(e){for(;null!==Xl;){var t=Xl;if(t===e){Xl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xl=n;break}Xl=t.return}}function xs(e){for(;null!==Xl;){var t=Xl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){Eu(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){Eu(t,a,s)}}var o=t.return;try{as(t)}catch(s){Eu(t,o,s)}break;case 5:var i=t.return;try{as(t)}catch(s){Eu(t,i,s)}}}catch(s){Eu(t,t.return,s)}if(t===e){Xl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Xl=l;break}Xl=t.return}}var Ss,Es=Math.ceil,_s=w.ReactCurrentDispatcher,Cs=w.ReactCurrentOwner,Ts=w.ReactCurrentBatchConfig,As=0,js=null,Ls=null,Ps=0,Rs=0,Ns=Ea(0),Os=0,Ds=null,Is=0,Ms=0,Fs=0,zs=null,Bs=null,$s=0,Us=1/0,qs=null,Hs=!1,Gs=null,Vs=null,Ws=!1,Qs=null,Ks=0,Ys=0,Zs=null,Xs=-1,Js=0;function eu(){return 6&As?Ze():-1!==Xs?Xs:Xs=Ze()}function tu(e){return 1&e.mode?2&As&&0!==Ps?Ps&-Ps:null!==ho.transition?(0===Js&&(Js=gt()),Js):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nu(e,t,n,r){if(50<Ys)throw Ys=0,Zs=null,Error(o(185));bt(e,n,r),2&As&&e===js||(e===js&&(!(2&As)&&(Ms|=n),4===Os&&lu(e,Ps)),ru(e,r),1===n&&0===As&&!(1&t.mode)&&(Us=Ze()+500,za&&Ua()))}function ru(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?l&n&&!(l&r)||(a[i]=ft(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=pt(e,e===js?Ps:0);if(0===r)null!==n&&Qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Qe(n),1===t)0===e.tag?function(e){za=!0,$a(e)}(su.bind(null,e)):$a(su.bind(null,e)),ia((function(){!(6&As)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,au.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function au(e,t){if(Xs=-1,Js=0,6&As)throw Error(o(327));var n=e.callbackNode;if(xu()&&e.callbackNode!==n)return null;var r=pt(e,e===js?Ps:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=hu(e,r);else{t=r;var a=As;As|=2;var i=mu();for(js===e&&Ps===t||(qs=null,Us=Ze()+500,pu(e,t));;)try{yu();break}catch(s){fu(e,s)}To(),_s.current=i,As=a,null!==Ls?t=0:(js=null,Ps=0,t=Os)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ou(e,a))),1===t)throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;if(6===t)lu(e,r);else{if(a=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)||(t=hu(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ou(e,i))),1!==t)))throw n=Ds,pu(e,0),lu(e,r),ru(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,Bs,qs);break;case 3:if(lu(e,r),(130023424&r)===r&&10<(t=$s+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){eu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),t);break}ku(e,Bs,qs);break;case 4:if(lu(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),r);break}ku(e,Bs,qs);break;default:throw Error(o(329))}}}return ru(e,Ze()),e.callbackNode===n?au.bind(null,e):null}function ou(e,t){var n=zs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=hu(e,t))&&(t=Bs,Bs=n,null!==t&&iu(t)),e}function iu(e){null===Bs?Bs=e:Bs.push.apply(Bs,e)}function lu(e,t){for(t&=~Fs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function su(e){if(6&As)throw Error(o(327));xu();var t=pt(e,0);if(!(1&t))return ru(e,Ze()),null;var n=hu(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ou(e,r))}if(1===n)throw n=Ds,pu(e,0),lu(e,t),ru(e,Ze()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,Bs,qs),ru(e,Ze()),null}function uu(e,t){var n=As;As|=1;try{return e(t)}finally{0===(As=n)&&(Us=Ze()+500,za&&Ua())}}function cu(e){null!==Qs&&0===Qs.tag&&!(6&As)&&xu();var t=As;As|=1;var n=Ts.transition,r=vt;try{if(Ts.transition=null,vt=1,e)return e()}finally{vt=r,Ts.transition=n,!(6&(As=t))&&Ua()}}function du(){Rs=Ns.current,_a(Ns)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ls)for(n=Ls.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Na();break;case 3:Zo(),_a(ja),_a(Aa),ri();break;case 5:Jo(r);break;case 4:Zo();break;case 13:case 19:_a(ei);break;case 10:Ao(r.type._context);break;case 22:case 23:du()}n=n.return}if(js=e,Ls=e=Nu(e.current,null),Ps=Rs=t,Os=0,Ds=null,Fs=Ms=Is=0,Bs=zs=null,null!==Ro){for(t=0;t<Ro.length;t++)if(null!==(r=(n=Ro[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}Ro=null}return e}function fu(e,t){for(;;){var n=Ls;try{if(To(),ai.current=Xi,ci){for(var r=li.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ci=!1}if(ii=0,ui=si=li=null,di=!1,pi=0,Cs.current=null,null===n||null===n.return){Os=1,Ds=t,Ls=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=Ps,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=hl(l);if(null!==m){m.flags&=-257,bl(m,l,s,0,t),1&m.mode&&gl(i,c,t),u=c;var g=(t=m).updateQueue;if(null===g){var h=new Set;h.add(u),t.updateQueue=h}else g.add(u);break e}if(!(1&t)){gl(i,c,t),gu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var b=hl(l);if(null!==b){!(65536&b.flags)&&(b.flags|=256),bl(b,l,s,0,t),go(ul(u,s));break e}}i=u=ul(u,s),4!==Os&&(Os=2),null===zs?zs=[i]:zs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,fl(0,u,t));break e;case 1:s=u;var y=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof y.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Vs&&Vs.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}wu(n)}catch(w){t=w,Ls===n&&null!==n&&(Ls=n=n.return);continue}break}}function mu(){var e=_s.current;return _s.current=Xi,null===e?Xi:e}function gu(){0!==Os&&3!==Os&&2!==Os||(Os=4),null===js||!(268435455&Is)&&!(268435455&Ms)||lu(js,Ps)}function hu(e,t){var n=As;As|=2;var r=mu();for(js===e&&Ps===t||(qs=null,pu(e,t));;)try{bu();break}catch(a){fu(e,a)}if(To(),As=n,_s.current=r,null!==Ls)throw Error(o(261));return js=null,Ps=0,Os}function bu(){for(;null!==Ls;)vu(Ls)}function yu(){for(;null!==Ls&&!Ke();)vu(Ls)}function vu(e){var t=Ss(e.alternate,e,Rs);e.memoizedProps=e.pendingProps,null===t?wu(e):Ls=t,Cs.current=null}function wu(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ql(n,t)))return n.flags&=32767,void(Ls=n);if(null===e)return Os=6,void(Ls=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Wl(n,t,Rs)))return void(Ls=n);if(null!==(t=t.sibling))return void(Ls=t);Ls=t=e}while(null!==t);0===Os&&(Os=5)}function ku(e,t,n){var r=vt,a=Ts.transition;try{Ts.transition=null,vt=1,function(e,t,n,r){do{xu()}while(null!==Qs);if(6&As)throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ls=js=null,Ps=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Ws||(Ws=!0,ju(tt,(function(){return xu(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=Ts.transition,Ts.transition=null;var l=vt;vt=1;var s=As;As|=4,Cs.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(s=l+a),p!==i||0!==r&&3!==p.nodeType||(u=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++c===a&&(s=l),f===i&&++d===r&&(u=l),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Xl=t;null!==Xl;)if(e=(t=Xl).child,1028&t.subtreeFlags&&null!==e)e.return=t,Xl=e;else for(;null!==Xl;){t=Xl;try{var g=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==g){var h=g.memoizedProps,b=g.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?h:nl(t.type,h),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Eu(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Xl=e;break}Xl=t.return}g=ts,ts=!1}(e,n),hs(n,e),mr(ta),Ht=!!ea,ta=ea=null,e.current=n,ys(n,e,a),Ye(),As=s,vt=l,Ts.transition=i}else e.current=n;if(Ws&&(Ws=!1,Qs=e,Ks=a),i=e.pendingLanes,0===i&&(Vs=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),ru(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hs)throw Hs=!1,e=Gs,Gs=null,e;!!(1&Ks)&&0!==e.tag&&xu(),i=e.pendingLanes,1&i?e===Zs?Ys++:(Ys=0,Zs=e):Ys=0,Ua()}(e,t,n,r)}finally{Ts.transition=a,vt=r}return null}function xu(){if(null!==Qs){var e=wt(Ks),t=Ts.transition,n=vt;try{if(Ts.transition=null,vt=16>e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ks=0,6&As)throw Error(o(331));var a=As;for(As|=4,Xl=e.current;null!==Xl;){var i=Xl,l=i.child;if(16&Xl.flags){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Xl=c;null!==Xl;){var d=Xl;switch(d.tag){case 0:case 11:case 15:ns(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xl=p;else for(;null!==Xl;){var f=(d=Xl).sibling,m=d.return;if(os(d),d===c){Xl=null;break}if(null!==f){f.return=m,Xl=f;break}Xl=m}}}var g=i.alternate;if(null!==g){var h=g.child;if(null!==h){g.child=null;do{var b=h.sibling;h.sibling=null,h=b}while(null!==h)}}Xl=i}}if(2064&i.subtreeFlags&&null!==l)l.return=i,Xl=l;else e:for(;null!==Xl;){if(2048&(i=Xl).flags)switch(i.tag){case 0:case 11:case 15:ns(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Xl=y;break e}Xl=i.return}}var v=e.current;for(Xl=v;null!==Xl;){var w=(l=Xl).child;if(2064&l.subtreeFlags&&null!==w)w.return=l,Xl=w;else e:for(l=v;null!==Xl;){if(2048&(s=Xl).flags)try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(x){Eu(s,s.return,x)}if(s===l){Xl=null;break e}var k=s.sibling;if(null!==k){k.return=s.return,Xl=k;break e}Xl=s.return}}if(As=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,Ts.transition=t}}return!1}function Su(e,t,n){e=Bo(e,t=fl(0,t=ul(n,t),1),1),t=eu(),null!==e&&(bt(e,1,t),ru(e,t))}function Eu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vs||!Vs.has(r))){t=Bo(t,e=ml(t,e=ul(n,e),1),1),e=eu(),null!==t&&(bt(t,1,e),ru(t,e));break}}t=t.return}}function _u(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=eu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(Ps&n)===n&&(4===Os||3===Os&&(130023424&Ps)===Ps&&500>Ze()-$s?pu(e,0):Fs|=n),ru(e,t)}function Cu(e,t){0===t&&(1&e.mode?(t=ct,!(130023424&(ct<<=1))&&(ct=4194304)):t=1);var n=eu();null!==(e=Do(e,t))&&(bt(e,t,n),ru(e,n))}function Tu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cu(e,n)}function Au(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Cu(e,n)}function ju(e,t){return We(e,t)}function Lu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pu(e,t,n,r){return new Lu(e,t,n,r)}function Ru(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nu(e,t){var n=e.alternate;return null===n?((n=Pu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ou(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Ru(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Du(n.children,a,i,t);case E:l=8,a|=8;break;case _:return(e=Pu(12,n,t,2|a)).elementType=_,e.lanes=i,e;case j:return(e=Pu(13,n,t,a)).elementType=j,e.lanes=i,e;case L:return(e=Pu(19,n,t,a)).elementType=L,e.lanes=i,e;case N:return Iu(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case T:l=9;break e;case A:l=11;break e;case P:l=14;break e;case R:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pu(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Du(e,t,n,r){return(e=Pu(7,e,r,t)).lanes=n,e}function Iu(e,t,n,r){return(e=Pu(22,e,r,t)).elementType=N,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Pu(6,e,null,t)).lanes=n,e}function Fu(e,t,n){return(t=Pu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,a,o,i,l,s){return e=new zu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pu(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Mo(o),e}function $u(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ra(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Ra(n))return Da(e,n,t)}return t}function Uu(e,t,n,r,a,o,i,l,s){return(e=Bu(n,r,!0,e,0,o,0,l,s)).context=$u(null),n=e.current,(o=zo(r=eu(),a=tu(n))).callback=null!=t?t:null,Bo(n,o,a),e.current.lanes=a,bt(e,a,r),ru(e,r),e}function qu(e,t,n,r){var a=t.current,o=eu(),i=tu(a);return n=$u(n),null===t.context?t.context=n:t.pendingContext=n,(t=zo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Bo(a,t,i))&&(nu(e,a,i,o),$o(e,a,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vu(e,t){Gu(e,t),(e=e.alternate)&&Gu(e,t)}Ss=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||ja.current)vl=!0;else{if(!(e.lanes&n||128&t.flags))return vl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),mo();break;case 5:Xo(t);break;case 1:Ra(t.type)&&Ia(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(So,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ml(e,t,n):(Ca(ei,1&ei.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ca(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ul(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,El(e,t,n)}return Hl(e,t,n)}(e,t,n);vl=!!(131072&e.flags)}else vl=!1,ao&&1048576&t.flags&&Ja(t,Va,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ql(e,t),e=t.pendingProps;var a=Pa(t,Aa.current);Lo(t,n),a=hi(null,t,r,e,a,n);var i=bi();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ra(r)?(i=!0,Ia(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Mo(t),a.updater=al,t.stateNode=a,a._reactInternals=t,sl(t,r,e,n),t=Al(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),wl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ql(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Ru(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===P)return 14}return 2}(r),e=nl(r,e),a){case 0:t=Cl(null,t,r,e,n);break e;case 1:t=Tl(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=xl(null,t,r,nl(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Cl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 1:return r=t.type,a=t.pendingProps,Tl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Fo(e,t),qo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ll(e,t,r,n,a=ul(Error(o(423)),t));break e}if(r!==a){t=Ll(e,t,r,n,a=ul(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Hl(e,t,n);break e}wl(e,t,r,n)}t=t.child}return t;case 5:return Xo(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),_l(e,t),wl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Ml(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ko(t,null,r,n):wl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 7:return wl(e,t,t.pendingProps,n),t.child;case 8:case 12:return wl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ca(So,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!ja.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=zo(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),jo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),jo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}wl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Lo(t,n),r=r(a=Po(a)),t.flags|=1,wl(e,t,r,n),t.child;case 14:return a=nl(r=t.type,t.pendingProps),xl(e,t,r,a=nl(r.type,a),n);case 15:return Sl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:nl(r,a),ql(e,t),t.tag=1,Ra(r)?(e=!0,Ia(t)):e=!1,Lo(t,n),il(t,r,a),sl(t,r,a,n),Al(null,t,r,!0,e,n);case 19:return Ul(e,t,n);case 22:return El(e,t,n)}throw Error(o(156,t.tag))};var Wu="function"==typeof reportError?reportError:function(e){console.error(e)};function Qu(e){this._internalRoot=e}function Ku(e){this._internalRoot=e}function Yu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xu(){}function Ju(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Hu(i);l.call(e)}}qu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Hu(i);o.call(e)}}var i=Uu(t,r,e,0,null,!1,0,"",Xu);return e._reactRootContainer=i,e[ma]=i.current,Ur(8===e.nodeType?e.parentNode:e),cu(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=Bu(e,0,!1,null,0,!1,0,"",Xu);return e._reactRootContainer=s,e[ma]=s.current,Ur(8===e.nodeType?e.parentNode:e),cu((function(){qu(t,s,n,r)})),s}(n,t,e,a,r);return Hu(i)}Ku.prototype.render=Qu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));qu(e,t,null,null)},Ku.prototype.unmount=Qu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;cu((function(){qu(null,e,null,null)})),t[ma]=null}},Ku.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nt.length&&0!==t&&t<Nt[n].priority;n++);Nt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ru(t,Ze()),!(6&As)&&(Us=Ze()+500,Ua()))}break;case 13:cu((function(){var t=Do(e,1);if(null!==t){var n=eu();nu(t,e,1,n)}})),Vu(e,1)}},xt=function(e){if(13===e.tag){var t=Do(e,134217728);if(null!==t)nu(t,e,134217728,eu());Vu(e,134217728)}},St=function(e){if(13===e.tag){var t=tu(e),n=Do(e,t);if(null!==n)nu(n,e,t,eu());Vu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ae=uu,je=cu;var ec={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Te,uu]},tc={findFiberByHostInstance:ya,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rc.isDisabled&&rc.supportsFiber)try{at=rc.inject(nc),ot=rc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ec,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yu(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yu(e))throw Error(o(299));var n=!1,r="",a=Wu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Bu(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Qu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return cu(e)},t.hydrate=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yu(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=Wu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Uu(t,null,e,1,null!=n?n:null,a,0,i,l),e[ma]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ku(t)},t.render=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zu(e))throw Error(o(40));return!!e._reactRootContainer&&(cu((function(){Ju(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return Ju(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5338:(e,t,n)=>{"use strict";var r=n(961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(2551)},8731:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,p=null,f=3,m=!1,g=!1,h=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function k(e){if(h=!1,w(e),!g)if(null!==r(u))g=!0,N(x);else{var t=r(c);null!==t&&O(k,t.startTime-e)}}function x(e,n){g=!1,h&&(h=!1,y(C),C=-1),m=!0;var o=f;try{for(w(n),p=r(u);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(u)&&a(u),w(n)}else a(u);p=r(u)}if(null!==p)var s=!0;else{var d=r(c);null!==d&&O(k,d.startTime-n),s=!1}return s}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,T=5,A=-1;function j(){return!(t.unstable_now()-A<T)}function L(){if(null!==_){var e=t.unstable_now();A=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(L)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,R=P.port2;P.port1.onmessage=L,S=function(){R.postMessage(null)}}else S=function(){b(L,0)};function N(e){_=e,E||(E=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||m||(g=!0,N(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(h?(y(C),C=-1):h=!0,O(k,o-i))):(e.sortIndex=l,n(u,e),g||m||(g=!0,N(x))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},194:(e,t,n)=>{"use strict";e.exports=n(8731)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function g(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map((function(e){return h[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,h.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[h.NOSCRIPT,h.SCRIPT,h.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=I(n,a),[r.createElement(h.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=D(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,b),i=P(n,y);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,a.priority),M(h.LINK,o.priority),M(h.SCRIPT,i.priority))},toString:function(){return F(h.META,a.priority,r)+" "+F(h.LINK,o.priority,r)+" "+F(h.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,c=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(h.LINK,c,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,o,r),script:F(h.SCRIPT,p,r),style:F(h.STYLE,i,r),title:F(h.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(h.BODY,e.bodyAttributes),W(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),W(h.TITLE,t)}(c,d);var p={baseTag:V(h.BASE,n),linkTags:V(h.LINK,a),metaTags:V(h.META,o),noscriptTags:V(h.NOSCRIPT,i),scriptTags:V(h.SCRIPT,s),styleTags:V(h.STYLE,u)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(h.LINK,["rel","href"],e),metaTags:A(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(h.SCRIPT,["src","innerHTML"],e),styleTags:A(h.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Q(t,(function(){K=null}))})):(Q(t),K=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Z=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case h.BODY:return p({},a,{bodyAttributes:p({},o)});case h.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=g(r,Z),l=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case h:case g:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===h},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(6540),s=[],u=[];var c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),g=null;function h(){return g||(g=e(m.loader)),g.promise}return s.push(h),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return h()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),g=e(m.loader),r._loadModule()})),h(),r.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.report(t)})),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),p}function g(e){return m(d,e)}g.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var h=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}g.Capture=h,g.preloadAll=function(){return new Promise((function(e,t){b(s).then(e,t)}))},g.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=g},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},4625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>b,k2:()=>w});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var p=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},m=function(e){return e},g=o.forwardRef;void 0===g&&(g=m);var h=g((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=m!==g&&t||n,o.createElement("a",c)}));var b=g((function(e,t){var n=e.component,a=void 0===n?h:n,c=e.replace,d=e.to,b=e.innerRef,y=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.A)({},y,{href:s,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(c||r?n.replace:n.push)(t)}});return m!==g?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),y=function(e){return e},v=o.forwardRef;void 0===v&&(v=y);var w=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,m=e.className,g=e.exact,h=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=w||e.location,i=f(p(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.B6)(n.pathname,{path:T,exact:g,sensitive:k,strict:x}):null,j=!!(h?h(A,n):A),L="function"==typeof m?m(j):m,P="function"==typeof S?S(j):S;j&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,c),P=(0,l.A)({},P,d));var R=(0,l.A)({"aria-current":j&&a||null,className:L,style:P,to:i},C);return y!==v?R.ref=t||_:R.innerRef=_,o.createElement(b,R)}))}))},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>R,XZ:()=>y,dO:()=>L,qh:()=>E,zy:()=>N});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),u=n(8168),c=n(8505),d=n.n(c),p=(n(4363),n(8587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var g=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},h=function(e){var t=g();return t.displayName=e,t},b=h("Router-History"),y=h("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(y.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.AO)(e)}function A(e){return function(){(0,s.A)(!1)}}function j(){}a.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function R(){return P(b)}function N(){return P(y).location}},9375:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},8505:(e,t,n)=>{var r=n(9375);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=b||y;r.push({name:h||o++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),g=i.slice(-m.length)===m;return a||(i=(g?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&g?"":"(?="+m+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},1020:(e,t,n)=>{"use strict";var r=n(6540),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},5287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,g(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function j(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+A(s,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),j(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",k(e))for(var u=0;u<e.length;u++){var c=o+A(l=e[u],u);s+=j(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=j(l=l.value,t,a,c=o+A(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function L(e,t,n){if(null==e)return e;var r=[],a=0;return j(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var R={current:null},N={transition:null},O={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};function D(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.act=D,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=g({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)x.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=D,t.useCallback=function(e,t){return R.current.useCallback(e,t)},t.useContext=function(e){return R.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return R.current.useDeferredValue(e)},t.useEffect=function(e,t){return R.current.useEffect(e,t)},t.useId=function(){return R.current.useId()},t.useImperativeHandle=function(e,t,n){return R.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return R.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return R.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return R.current.useMemo(e,t)},t.useReducer=function(e,t,n){return R.current.useReducer(e,t,n)},t.useRef=function(e){return R.current.useRef(e)},t.useState=function(e){return R.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return R.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return R.current.useTransition()},t.version="18.3.1"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},4848:(e,t,n)=>{"use strict";e.exports=n(1020)},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"\ud83c\udf35 El Jard\xedn Secreto \ud83c\udf35 ",tagline:"\u270d\ufe0f Escribo, \ud83d\udcbb Comparto, \ud83c\udf34 Vivo, \ud83d\udd0d Exploro, \ud83c\udfa8 Creo, \ud83d\udcad Pienso \u2728 de w0x7ce",favicon:"img/favicon.ico",url:"https://me.w0x7ce.eu",baseUrl:"/en/",organizationName:"tianrking",projectName:"tianrking.github.io",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"es",locales:["es","zh-hk","en"],path:"i18n",localeConfigs:{es:{label:"Espa\xf1ol",direction:"ltr",htmlLang:"es-ES",calendar:"gregory",path:"es"},"zh-hk":{label:"\u7e41\u9ad4\u4e2d\u6587",direction:"ltr",htmlLang:"zh-HK",calendar:"gregory",path:"zh-hk"},en:{label:"English",direction:"ltr",htmlLang:"en-US",calendar:"gregory",path:"en"}}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",routeBasePath:"/",showLastUpdateTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},blog:{showReadingTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},image:"img/docusaurus-social-card.jpg",navbar:{hideOnScroll:!0,style:"dark",title:"\ud83c\udf35 El Jard\xedn Secreto \ud83c\udf35",logo:{alt:"Logo de El Jard\xedn Secreto",src:"https://github.com/tianrking.png"},items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Tutorial"},{to:"/blog",label:"Blog",position:"left"},{href:"https://github.com/tianrking",label:"GitHub",position:"right"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}]},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Tutorial",to:"/docs/intro"}]},{title:"Community",items:[{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/docusaurus"},{label:"Discord",href:"https://discordapp.com/invite/docusaurus"},{label:"Twitter",href:"https://twitter.com/docusaurus"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/tianrking/tianrking.github.io"}]}],copyright:"Copyright \xa9 2024 w0x7ce. Thanks @meta"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},2892:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>T,f4:()=>ee});var r,a,o,i,l,s,u,c=n(6540),d=n(4164),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,g=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,h(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var g=f[m],h=g.inside,b=!!g.lookbehind,y=!!g.greedy,v=g.alias;if(y&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var k=g.pattern||g,x=l.next,S=c;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(y){if(!(_=o(k,S,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,j=S;for(j+=x.value.length;T>=j;)j+=(x=x.next).value.length;if(S=j-=x.value.length,x.value instanceof a)continue;for(var L=x;L!==t.tail&&(j<A||"string"==typeof L.value);L=L.next)C++,j+=L.value.length;C--,E=e.slice(S,j),_.index-=S}else if(!(_=o(k,0,E,b)))continue;T=_.index;var P=_[0],R=E.slice(0,T),N=E.slice(T+P.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var D=x.prev;if(R&&(D=s(t,D,R),S+=R.length),u(t,D,C),x=s(t,D,new a(p,h?r.tokenize(P,h):P,v,P)),N&&s(t,x,N),C>1){var I={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),T=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());T.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,o=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(T),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(T),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|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|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),0<a.length)){var l=p(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),T.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,p,f,m,g,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[u],-1!==(h=(g="string"==typeof b?b:b.content).indexOf(i))&&(++u,s=g.substring(0,h),m=c[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=g.substring(h+i.length),m=[],s&&m.push(s),m.push(p),f&&(t(g=[f]),m.push.apply(m,g)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):(h=b.content,Array.isArray(h)?t(h):t([h]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(T),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(T),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(T),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(T),T.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},T.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=T.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(T),T.languages.c=T.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),T.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),T.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},T.languages.c.string],char:T.languages.c.char,comment:T.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:T.languages.c}}}}),T.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete T.languages.c.boolean,T.languages.objectivec=T.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete T.languages.objectivec["class-name"],T.languages.objc=T.languages.objectivec,T.languages.reason=T.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),T.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete T.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(T),T.languages.go=T.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),T.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete T.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(T),T.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},T.languages.python["string-interpolation"].inside.interpolation.inside.rest=T.languages.python,T.languages.py=T.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>A,duotoneDark:()=>j,duotoneLight:()=>L,github:()=>P,jettwaveDark:()=>H,jettwaveLight:()=>G,nightOwl:()=>R,nightOwlLight:()=>N,oceanicNext:()=>I,okaidia:()=>M,oneDark:()=>V,oneLight:()=>W,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var A={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},j={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},L={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},R={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},N={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",D="#8dc891",I={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:D}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:D}},{types:["punctuation"],style:{color:D}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},K=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=Z(u,c.type),c.alias&&(u=Z(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(K),p=d.length;l.push({types:u,content:d[0]});for(let t=1;t<p;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(Q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(Q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||T,theme:e.theme||U,code:e.code,language:e.language}))},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},2654:e=>{"use strict";e.exports=JSON.parse('{"theme.ErrorPageContent.title":"This page crashed.","theme.BackToTopButton.buttonAriaLabel":"Scroll back to top","theme.blog.archive.title":"Archive","theme.blog.archive.description":"Archive","theme.blog.paginator.navAriaLabel":"Blog list page navigation","theme.blog.paginator.newerEntries":"Newer Entries","theme.blog.paginator.olderEntries":"Older Entries","theme.blog.post.paginator.navAriaLabel":"Blog post page navigation","theme.blog.post.paginator.newerPost":"Newer Post","theme.blog.post.paginator.olderPost":"Older Post","theme.blog.post.plurals":"One post|{count} posts","theme.blog.tagTitle":"{nPosts} tagged with \\"{tagName}\\"","theme.tags.tagsPageLink":"View All Tags","theme.colorToggle.ariaLabel":"Switch between dark and light mode (currently {mode})","theme.colorToggle.ariaLabel.mode.dark":"dark mode","theme.colorToggle.ariaLabel.mode.light":"light mode","theme.docs.breadcrumbs.navAriaLabel":"Breadcrumbs","theme.docs.DocCard.categoryDescription.plurals":"1 item|{count} items","theme.docs.paginator.navAriaLabel":"Docs pages","theme.docs.paginator.previous":"Previous","theme.docs.paginator.next":"Next","theme.docs.tagDocListPageTitle.nDocsTagged":"One doc tagged|{count} docs tagged","theme.docs.tagDocListPageTitle":"{nDocsTagged} with \\"{tagName}\\"","theme.docs.versionBadge.label":"Version: {versionLabel}","theme.docs.versions.unreleasedVersionLabel":"This is unreleased documentation for {siteTitle} {versionLabel} version.","theme.docs.versions.unmaintainedVersionLabel":"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.","theme.docs.versions.latestVersionSuggestionLabel":"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).","theme.docs.versions.latestVersionLinkLabel":"latest version","theme.common.editThisPage":"Edit this page","theme.common.headingLinkTitle":"Direct link to {heading}","theme.lastUpdated.atDate":" on {date}","theme.lastUpdated.byUser":" by {user}","theme.lastUpdated.lastUpdatedAtBy":"Last updated{atDate}{byUser}","theme.navbar.mobileVersionsDropdown.label":"Versions","theme.NotFound.title":"Page Not Found","theme.tags.tagsListLabel":"Tags:","theme.admonition.caution":"caution","theme.admonition.danger":"danger","theme.admonition.info":"info","theme.admonition.note":"note","theme.admonition.tip":"tip","theme.admonition.warning":"warning","theme.AnnouncementBar.closeButtonAriaLabel":"Close","theme.blog.sidebar.navAriaLabel":"Blog recent posts navigation","theme.CodeBlock.copied":"Copied","theme.CodeBlock.copyButtonAriaLabel":"Copy code to clipboard","theme.CodeBlock.copy":"Copy","theme.CodeBlock.wordWrapToggle":"Toggle word wrap","theme.DocSidebarItem.expandCategoryAriaLabel":"Expand sidebar category \'{label}\'","theme.DocSidebarItem.collapseCategoryAriaLabel":"Collapse sidebar category \'{label}\'","theme.NavBar.navAriaLabel":"Main","theme.navbar.mobileLanguageDropdown.label":"Languages","theme.NotFound.p1":"We could not find what you were looking for.","theme.NotFound.p2":"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.","theme.TOCCollapsible.toggleButtonLabel":"On this page","theme.blog.post.readMore":"Read More","theme.blog.post.readMoreLabel":"Read more about {title}","theme.blog.post.readingTime.plurals":"One min read|{readingTime} min read","theme.docs.breadcrumbs.home":"Home page","theme.docs.sidebar.collapseButtonTitle":"Collapse sidebar","theme.docs.sidebar.collapseButtonAriaLabel":"Collapse sidebar","theme.docs.sidebar.navAriaLabel":"Docs sidebar","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 Back to main menu","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.sidebar.expandButtonTitle":"Expand sidebar","theme.docs.sidebar.expandButtonAriaLabel":"Expand sidebar","theme.ErrorPageContent.tryAgain":"Try again","theme.common.skipToMainContent":"Skip to main content","theme.tags.tagsPageTitle":"Tags","theme.unlistedContent.title":"Unlisted page","theme.unlistedContent.message":"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."}')},4054:e=>{"use strict";e.exports=JSON.parse('{"/en/blog-d42":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"},{"content":"925b3f96"}],"__props":"22f9ffc3"},"/en/blog/archive-d28":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"c5fd9dbb"},"/en/blog/Docker-Getting-Srart-01-6b7":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e2e7a3a0"},"/en/blog/first-blog-post-e3f":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"e273c56f"},"/en/blog/tags-fb7":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"5311454b"},"/en/blog/tags/docker-d42":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"42a17d8a"},"/en/blog/tags/docusaurus-9a0":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"__props":"ed8789cf"},"/en/blog/tags/hola-73b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"925b3f96"}],"__props":"90e57ba8"},"/en/blog/tags/linux-e18":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"e6141e4a"},"/en/blog/tags/misc-9f5":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"447560db"},"/en/blog/tags/\u6a5f\u5668\u5b78\u7fd2-a57":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"e8da249f"},"/en/blog/tags/\u8edf\u4ef6-5f2":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"b311d1e8"}],"__props":"b5192dd1"},"/en/index.zh-hk-ae9":{"__comp":"3ea259e6","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/en/markdown-page-63b":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"393be207"},"/en/-d3c":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/en/-233":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/en/-d2e":{"__comp":"a7bd4aaa","__props":"116e21e2"},"/en/tags-ca2":{"__comp":"3720c009","__props":"ef86d428"},"/en/tags/alarm-80d":{"__comp":"df203c0f","__props":"eac440ee"},"/en/tags/cdc-5e8":{"__comp":"df203c0f","__props":"5e87523e"},"/en/tags/embedded-systems-88c":{"__comp":"df203c0f","__props":"85d15f38"},"/en/tags/interrupts-2f1":{"__comp":"df203c0f","__props":"7d68e24f"},"/en/tags/led-control-bc2":{"__comp":"df203c0f","__props":"feb32b9a"},"/en/tags/pio-b41":{"__comp":"df203c0f","__props":"d40edc32"},"/en/tags/pwm-79c":{"__comp":"df203c0f","__props":"db61b3e8"},"/en/tags/raspberry-pi-pico-e1b":{"__comp":"df203c0f","__props":"773c270b"},"/en/tags/resource-management-f86":{"__comp":"df203c0f","__props":"5f361db7"},"/en/tags/rp-2040-562":{"__comp":"df203c0f","__props":"7b649237"},"/en/tags/serial-communication-5f6":{"__comp":"df203c0f","__props":"7c014d8d"},"/en/tags/state-machine-optimization-331":{"__comp":"df203c0f","__props":"b0b6fd62"},"/en/tags/stm-32-6cc":{"__comp":"df203c0f","__props":"5cbf0a5d"},"/en/tags/timer-c2d":{"__comp":"df203c0f","__props":"ab0d13de"},"/en/tags/uart-611":{"__comp":"df203c0f","__props":"f894d38a"},"/en/tags/usb-252":{"__comp":"df203c0f","__props":"d52e2d06"},"/en/-125":{"__comp":"a94703ab"},"/en/intro-92d":{"__comp":"17896441","content":"0e384e19"},"/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040-249":{"__comp":"17896441","content":"5e28b2f4"},"/en/micro-controladores/RP2040/mastering-pio-programming-rp2040-d1b":{"__comp":"17896441","content":"873234d7"},"/en/micro-controladores/RP2040/pio-uart-implementation-rp2040-dfd":{"__comp":"17896441","content":"14d3eb87"},"/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples-731":{"__comp":"17896441","content":"60f48b9d"},"/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage-07a":{"__comp":"17896441","content":"9fab635f"},"/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage-1f1":{"__comp":"17896441","content":"85e08f6c"},"/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx-962":{"__comp":"17896441","content":"c2aca3b0"},"/en/tutorial-faa":{"__comp":"17896441","content":"60875e34"},"/en/tutorial-basics/congratulations-1fa":{"__comp":"17896441","content":"822bd8ab"},"/en/tutorial-basics/create-a-blog-post-588":{"__comp":"17896441","content":"533a09ca"},"/en/tutorial-basics/create-a-document-c8b":{"__comp":"17896441","content":"1e4232ab"},"/en/tutorial-basics/create-a-page-556":{"__comp":"17896441","content":"5c868d36"},"/en/tutorial-basics/deploy-your-site-2b2":{"__comp":"17896441","content":"f55d3e7a"},"/en/tutorial-basics/markdown-features-4ac":{"__comp":"17896441","content":"18c41134"},"/en/tutorial-extras/manage-docs-versions-5f8":{"__comp":"17896441","content":"dff1c289"},"/en/tutorial-extras/translate-your-site-8ec":{"__comp":"17896441","content":"e44a2883"}}')}},e=>{e.O(0,[1869],(()=>{return t=8536,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/en/assets/js/main.159c124b.js.LICENSE.txt b/en/assets/js/main.159c124b.js.LICENSE.txt new file mode 100644 index 000000000..91dc89499 --- /dev/null +++ b/en/assets/js/main.159c124b.js.LICENSE.txt @@ -0,0 +1,64 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/en/assets/js/runtime~main.c07a0b5d.js b/en/assets/js/runtime~main.c07a0b5d.js new file mode 100644 index 000000000..8dfd7503a --- /dev/null +++ b/en/assets/js/runtime~main.c07a0b5d.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,d,c,f,t={},r={};function b(e){var a=r[e];if(void 0!==a)return a.exports;var d=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(d.exports,d,d.exports,b),d.loaded=!0,d.exports}b.m=t,b.c=r,e=[],b.O=(a,d,c,f)=>{if(!d){var t=1/0;for(i=0;i<e.length;i++){d=e[i][0],c=e[i][1],f=e[i][2];for(var r=!0,o=0;o<d.length;o++)(!1&f||t>=f)&&Object.keys(b.O).every((e=>b.O[e](d[o])))?d.splice(o--,1):(r=!1,f<t&&(t=f));if(r){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[d,c,f]},b.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return b.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,b.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var f=Object.create(null);b.r(f);var t={};a=a||[null,d({}),d([]),d(d)];for(var r=2&c&&e;"object"==typeof r&&!~a.indexOf(r);r=d(r))Object.getOwnPropertyNames(r).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,b.d(f,t),f},b.d=(e,a)=>{for(var d in a)b.o(a,d)&&!b.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},b.f={},b.e=e=>Promise.all(Object.keys(b.f).reduce(((a,d)=>(b.f[d](e,a),a)),[])),b.u=e=>"assets/js/"+({72:"7c014d8d",163:"85d15f38",597:"d52e2d06",809:"873234d7",932:"db61b3e8",962:"e6141e4a",1235:"a7456010",1718:"c2aca3b0",1724:"dff1c289",1850:"60f48b9d",1873:"ed8789cf",1878:"e8da249f",1903:"acecf23e",1911:"feb32b9a",1953:"1e4232ab",1974:"5c868d36",2189:"e2e7a3a0",2503:"ab0d13de",2512:"116e21e2",2634:"c4f5d8e4",2711:"9e4087bc",2748:"822bd8ab",2782:"22f9ffc3",2929:"5cbf0a5d",3047:"5f361db7",3098:"533a09ca",3249:"ccc49370",3475:"447560db",3837:"7b649237",3976:"0e384e19",4134:"393be207",4279:"df203c0f",4530:"eac440ee",4734:"d40edc32",4736:"e44a2883",4787:"3720c009",4813:"6875c492",5012:"773c270b",5418:"c5fd9dbb",5430:"5311454b",5742:"aba21aa0",5759:"7d68e24f",6061:"1f391b9e",6221:"5e28b2f4",6251:"5e87523e",6434:"90e57ba8",6630:"b311d1e8",6725:"14d3eb87",6869:"b5192dd1",7068:"f894d38a",7098:"a7bd4aaa",7151:"b0b6fd62",7472:"814f3328",7643:"a6aa9e1f",7733:"3ea259e6",8209:"01a85c17",8210:"85e08f6c",8401:"17896441",8609:"925b3f96",8863:"f55d3e7a",9022:"ef86d428",9048:"a94703ab",9071:"9fab635f",9262:"18c41134",9328:"e273c56f",9647:"5e95c892",9661:"60875e34",9779:"42a17d8a",9858:"36994c47"}[e]||e)+"."+{72:"27574798",163:"6e56a438",597:"9d558dbc",809:"dda28c05",932:"ba44d1ee",962:"b95f6411",1235:"fc7a5d1f",1538:"bcfcd850",1718:"7b2b37a8",1724:"70fffef1",1850:"db9183aa",1873:"94f8344e",1878:"2c45010a",1903:"6d455303",1911:"c8d817f6",1953:"7170d644",1974:"635685dc",2189:"c2b4466c",2237:"e0c95162",2503:"557b484f",2512:"cbab0ed1",2634:"336a6011",2711:"1e2fe8e5",2748:"1d1eb612",2782:"eae2b12b",2929:"8e48066a",3047:"96711c71",3098:"daccee1a",3242:"35bb0ee0",3249:"27f6c228",3475:"f1e22e3b",3837:"8db914d1",3976:"ddaa16e6",4134:"ef0b2c2d",4279:"07cad923",4530:"e00ba000",4734:"e779460b",4736:"c6162855",4787:"f8828a1d",4813:"27fa3488",5012:"9d644822",5418:"2a387148",5430:"63590fb0",5742:"1562c573",5759:"396f2b10",6061:"1479ec8d",6221:"9696a466",6251:"bdcf1c3b",6434:"7992e1bb",6630:"2248a1bd",6725:"ba112984",6869:"36aec40d",7068:"74e20fc4",7098:"eec9f40b",7151:"958baf80",7472:"5614a049",7643:"63bb8777",7733:"ca948adc",8209:"1f01f224",8210:"88d08cc4",8401:"620a8489",8609:"8cf24821",8863:"42ff1e90",9022:"e921d4b5",9048:"c0f75d91",9071:"6ef92b67",9262:"a34db062",9328:"b2e455e6",9647:"794757cd",9661:"216852b1",9779:"fa814ac3",9858:"77d49b04"}[e]+".js",b.miniCssF=e=>{},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},f="El_Jardin_Secreto_de_w0x7ce:",b.l=(e,a,d,t)=>{if(c[e])c[e].push(a);else{var r,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==f+d){r=l;break}}r||(o=!0,(r=document.createElement("script")).charset="utf-8",r.timeout=120,b.nc&&r.setAttribute("nonce",b.nc),r.setAttribute("data-webpack",f+d),r.src=e),c[e]=[a];var u=(a,d)=>{r.onerror=r.onload=null,clearTimeout(s);var f=c[e];if(delete c[e],r.parentNode&&r.parentNode.removeChild(r),f&&f.forEach((e=>e(d))),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},b.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.p="/en/",b.gca=function(e){return e={17896441:"8401","7c014d8d":"72","85d15f38":"163",d52e2d06:"597","873234d7":"809",db61b3e8:"932",e6141e4a:"962",a7456010:"1235",c2aca3b0:"1718",dff1c289:"1724","60f48b9d":"1850",ed8789cf:"1873",e8da249f:"1878",acecf23e:"1903",feb32b9a:"1911","1e4232ab":"1953","5c868d36":"1974",e2e7a3a0:"2189",ab0d13de:"2503","116e21e2":"2512",c4f5d8e4:"2634","9e4087bc":"2711","822bd8ab":"2748","22f9ffc3":"2782","5cbf0a5d":"2929","5f361db7":"3047","533a09ca":"3098",ccc49370:"3249","447560db":"3475","7b649237":"3837","0e384e19":"3976","393be207":"4134",df203c0f:"4279",eac440ee:"4530",d40edc32:"4734",e44a2883:"4736","3720c009":"4787","6875c492":"4813","773c270b":"5012",c5fd9dbb:"5418","5311454b":"5430",aba21aa0:"5742","7d68e24f":"5759","1f391b9e":"6061","5e28b2f4":"6221","5e87523e":"6251","90e57ba8":"6434",b311d1e8:"6630","14d3eb87":"6725",b5192dd1:"6869",f894d38a:"7068",a7bd4aaa:"7098",b0b6fd62:"7151","814f3328":"7472",a6aa9e1f:"7643","3ea259e6":"7733","01a85c17":"8209","85e08f6c":"8210","925b3f96":"8609",f55d3e7a:"8863",ef86d428:"9022",a94703ab:"9048","9fab635f":"9071","18c41134":"9262",e273c56f:"9328","5e95c892":"9647","60875e34":"9661","42a17d8a":"9779","36994c47":"9858"}[e]||e,b.p+b.u(e)},(()=>{var e={5354:0,1869:0};b.f.j=(a,d)=>{var c=b.o(e,a)?e[a]:void 0;if(0!==c)if(c)d.push(c[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((d,f)=>c=e[a]=[d,f]));d.push(c[2]=f);var t=b.p+b.u(a),r=new Error;b.l(t,(d=>{if(b.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var f=d&&("load"===d.type?"missing":d.type),t=d&&d.target&&d.target.src;r.message="Loading chunk "+a+" failed.\n("+f+": "+t+")",r.name="ChunkLoadError",r.type=f,r.request=t,c[1](r)}}),"chunk-"+a,a)}},b.O.j=a=>0===e[a];var a=(a,d)=>{var c,f,t=d[0],r=d[1],o=d[2],n=0;if(t.some((a=>0!==e[a]))){for(c in r)b.o(r,c)&&(b.m[c]=r[c]);if(o)var i=o(b)}for(a&&a(d);n<t.length;n++)f=t[n],b.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return b.O(i)},d=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})(); \ No newline at end of file diff --git a/en/blog/Docker-Getting-Srart-01/index.html b/en/blog/Docker-Getting-Srart-01/index.html new file mode 100644 index 000000000..ce62e7cac --- /dev/null +++ b/en/blog/Docker-Getting-Srart-01/index.html @@ -0,0 +1,82 @@ +<!doctype html> +<html lang="en-US" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.4.0"> +<title data-rh="true">Docker使用方法(一) | 🌵 El Jardín Secreto 🌵 + + + + + +

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/blog/archive/index.html b/en/blog/archive/index.html new file mode 100644 index 000000000..bfbb6c957 --- /dev/null +++ b/en/blog/archive/index.html @@ -0,0 +1,14 @@ + + + + + +Archive | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/blog/atom.xml b/en/blog/atom.xml new file mode 100644 index 000000000..bf1855a65 --- /dev/null +++ b/en/blog/atom.xml @@ -0,0 +1,108 @@ + + + https://me.w0x7ce.eu/en/blog + 🌵 El Jardín Secreto 🌵 Blog + 2021-09-14T00:00:00.000Z + https://github.com/jpmonette/feed + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/en/img/favicon.ico + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/en/blog/Docker-Getting-Srart-01 + + 2021-09-14T00:00:00.000Z + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + + w0x7ce + https://github.com/tianrking + + + + + + + +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/en/blog/first-blog-post + + 2019-05-28T00:00:00.000Z + + w0x7ce + https://github.com/tianrking + + + + +
    \ No newline at end of file diff --git a/en/blog/first-blog-post/index.html b/en/blog/first-blog-post/index.html new file mode 100644 index 000000000..0aecc8f51 --- /dev/null +++ b/en/blog/first-blog-post/index.html @@ -0,0 +1,14 @@ + + + + + +First Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/blog/index.html b/en/blog/index.html new file mode 100644 index 000000000..1266554ff --- /dev/null +++ b/en/blog/index.html @@ -0,0 +1,82 @@ + + + + + +Blog | 🌵 El Jardín Secreto 🌵 + + + + + +

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/blog/rss.xml b/en/blog/rss.xml new file mode 100644 index 000000000..a84fbb4fe --- /dev/null +++ b/en/blog/rss.xml @@ -0,0 +1,102 @@ + + + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/en/blog + 🌵 El Jardín Secreto 🌵 Blog + Tue, 14 Sep 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/en/blog/Docker-Getting-Srart-01 + https://me.w0x7ce.eu/en/blog/Docker-Getting-Srart-01 + Tue, 14 Sep 2021 00:00:00 GMT + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + Misc + Linux + Linux + Docker + 軟件 + 機器學習 +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/en/blog/first-blog-post + https://me.w0x7ce.eu/en/blog/first-blog-post + Tue, 28 May 2019 00:00:00 GMT + Hola + Docusaurus + +
    +
    \ No newline at end of file diff --git a/en/blog/tags/docker/index.html b/en/blog/tags/docker/index.html new file mode 100644 index 000000000..4fa6b44b1 --- /dev/null +++ b/en/blog/tags/docker/index.html @@ -0,0 +1,82 @@ + + + + + +One post tagged with "Docker" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "Docker"

    View All Tags

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/blog/tags/docusaurus/index.html b/en/blog/tags/docusaurus/index.html new file mode 100644 index 000000000..25cadb650 --- /dev/null +++ b/en/blog/tags/docusaurus/index.html @@ -0,0 +1,14 @@ + + + + + +One post tagged with "Docusaurus" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "Docusaurus"

    Docusaurus tag description

    View All Tags
    + + \ No newline at end of file diff --git a/en/blog/tags/hola/index.html b/en/blog/tags/hola/index.html new file mode 100644 index 000000000..a4f55447e --- /dev/null +++ b/en/blog/tags/hola/index.html @@ -0,0 +1,14 @@ + + + + + +One post tagged with "Hola" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/blog/tags/index.html b/en/blog/tags/index.html new file mode 100644 index 000000000..c4b2a11fb --- /dev/null +++ b/en/blog/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Tags | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/blog/tags/linux/index.html b/en/blog/tags/linux/index.html new file mode 100644 index 000000000..5c85644ed --- /dev/null +++ b/en/blog/tags/linux/index.html @@ -0,0 +1,82 @@ + + + + + +One post tagged with "Linux" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "Linux"

    View All Tags

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/blog/tags/misc/index.html b/en/blog/tags/misc/index.html new file mode 100644 index 000000000..7bb7340c8 --- /dev/null +++ b/en/blog/tags/misc/index.html @@ -0,0 +1,82 @@ + + + + + +One post tagged with "Misc" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "Misc"

    View All Tags

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/en/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" "b/en/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" new file mode 100644 index 000000000..6eca08767 --- /dev/null +++ "b/en/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" @@ -0,0 +1,82 @@ + + + + + +One post tagged with "機器學習" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "機器學習"

    View All Tags

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/en/blog/tags/\350\273\237\344\273\266/index.html" "b/en/blog/tags/\350\273\237\344\273\266/index.html" new file mode 100644 index 000000000..37e51143a --- /dev/null +++ "b/en/blog/tags/\350\273\237\344\273\266/index.html" @@ -0,0 +1,82 @@ + + + + + +One post tagged with "軟件" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One post tagged with "軟件"

    View All Tags

    Docker使用方法(一)

    · 8 min read
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/en/img/docusaurus-social-card.jpg b/en/img/docusaurus-social-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffcb448210e1a456cb3588ae8b396a597501f187 GIT binary patch literal 55746 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 fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/en/img/docusaurus.png b/en/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/en/img/favicon.ico b/en/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/en/img/undraw_docusaurus_mountain.svg b/en/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..af961c49a --- /dev/null +++ b/en/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/img/undraw_docusaurus_react.svg b/en/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..94b5cf08f --- /dev/null +++ b/en/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/img/undraw_docusaurus_tree.svg b/en/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..d9161d339 --- /dev/null +++ b/en/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/en/index.html b/en/index.html new file mode 100644 index 000000000..ba2a488be --- /dev/null +++ b/en/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/en/index.zh-hk/index.html b/en/index.zh-hk/index.html new file mode 100644 index 000000000..7c03bf26b --- /dev/null +++ b/en/index.zh-hk/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/en/intro/index.html b/en/intro/index.html new file mode 100644 index 000000000..e0787bc21 --- /dev/null +++ b/en/intro/index.html @@ -0,0 +1,14 @@ + + + + + +intro | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/markdown-page/index.html b/en/markdown-page/index.html new file mode 100644 index 000000000..e2adf865c --- /dev/null +++ b/en/markdown-page/index.html @@ -0,0 +1,15 @@ + + + + + +Markdown page example | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown page example

    +

    You don't need React to write simple standalone pages.

    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html b/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html new file mode 100644 index 000000000..4dab526a3 --- /dev/null +++ b/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html @@ -0,0 +1,97 @@ + + + + + +Advanced PIO LED Control and Resource Management on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 上的進階 PIO LED 控制與資源管理

    +

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    +

    PIO 程式設計:實現複雜的 LED 控制邏輯

    +

    首先,讓我們來看我們的 PIO 程式,它實現了一個特定的 LED 控制邏輯:

    +
    hello.pio
    .program led_controller
    .side_set 1 opt

    .wrap_target
    pull block ; 從 FIFO 提取數據到 OSR
    out x, 32 ; 將 32 位數據移至 x 寄存器

    ; 檢查 x 是否為 0
    jmp !x, off ; 如果 x 為 0,跳轉至 off

    ; 檢查 x 是否為 3、8、15 或 21
    mov y, x ; 將 x 複製到 y
    set x, 2 ; 設置 x 為 3(二進制 11)
    jmp x!=y, check_8 ; 如果不是 3,檢查是否為 8
    jmp off ; 如果是 3,關閉 LED

    check_8:
    set x, 8 ; 檢查是否為 8
    jmp x!=y, check_15 ; 如果不是 8,檢查是否為 15
    jmp off ; 如果是 8,關閉 LED

    check_15:
    set x, 15 ; 檢查是否為 15
    jmp x!=y, check_21 ; 如果不是 15,檢查是否為 21
    jmp off ; 如果是 15,關閉 LED

    check_21:
    set x, 21 ; 檢查是否為 21
    jmp x!=y, on ; 如果不是 21,開啟 LED
    jmp off ; 如果是 21,關閉 LED

    off:
    nop side 0 ; 關閉 LED
    jmp continue

    on:
    nop side 1 ; 開啟 LED

    continue:
    nop ; 確保最後標籤後有指令
    .wrap
    +

    程式解析

    +
      +
    1. .side_set 1 opt:設置一個可選的側設置引腳,用於控制 LED。
    2. +
    3. pull blockout x, 32:從 FIFO 讀取 32 位數據到 x 寄存器。
    4. +
    5. 接下來的邏輯檢查輸入值是否為 0、3、8、15 或 21,如果是則關閉 LED,否則開啟 LED。
    6. +
    7. side 0side 1 用於控制 LED 的開關。
    8. +
    +
    info

    這個程式實現了一個特殊的 LED 控制邏輯:當輸入值為 0、3、8、15 或 21 時關閉 LED,其他值則開啟 LED。

    +

    PIO 初始化函數

    +

    在 PIO 程式之後,我們定義了一個 C 函數來初始化 PIO 狀態機:

    +
    hello.pio
    % c-sdk {
    #include "hardware/clocks.h"

    static inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {
    pio_sm_config c = led_controller_program_get_default_config(offset);

    sm_config_set_set_pins(&c, pin, 1);
    sm_config_set_sideset_pins(&c, pin);
    pio_gpio_init(pio, pin);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    sm_config_set_clkdiv(&c, 1);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    %}
    +

    這個函數設置 PIO 狀態機的配置,包括設置引腳、時鐘分頻等。

    +

    主程式實現

    +

    現在讓我們看看如何在主程式中使用這個 PIO 程式:

    +
    main.c
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hello.pio.h"

    int main() {
    stdio_init_all();
    printf("LED Controller Test\n");

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &led_controller_program);
    led_controller_program_init(pio, sm, offset, 25); // 假設 LED 連接到 GPIO 25

    while (true) {
    for (int i = 1; i <= 25; i++) {
    if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {
    printf("LED off (%d)\n", i);
    } else {
    printf("LED on (%d)\n", i);
    }
    pio_sm_put_blocking(pio, sm, i);
    sleep_ms(1000); // 等待 1 秒
    }
    printf("\nRestarting sequence...\n\n");
    sleep_ms(2000); // 重新開始前等待 2 秒
    }

    return 0;
    }
    +

    主程式解析

    +
      +
    1. 初始化標準輸入輸出和 PIO。
    2. +
    3. 將 PIO 程式加載到 pio0 的狀態機 0 中。
    4. +
    5. 在一個無限循環中,遍歷 1 到 25 的數字。
    6. +
    7. 對於每個數字,將其發送到 PIO 狀態機,並印出 LED 的預期狀態。
    8. +
    9. 每次操作後等待 1 秒,每輪循環後等待 2 秒。
    10. +
    +

    編譯和運行

    +

    要編譯這個程式,您需要確保您的 CMakeLists.txt 文件正確設置。以下是一個示例:

    +
    CMakeLists.txt
    cmake_minimum_required(VERSION 3.13)
    include(pico_sdk_import.cmake)
    project(led_controller C CXX ASM)
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STANDARD 17)
    pico_sdk_init()

    add_executable(led_controller
    main.c
    )

    pico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)

    target_link_libraries(led_controller
    pico_stdlib
    hardware_pio
    )

    pico_enable_stdio_usb(led_controller 1)
    pico_enable_stdio_uart(led_controller 0)

    pico_add_extra_outputs(led_controller)
    +

    編譯完成後,將程式上傳到您的 Raspberry Pi Pico。

    +

    測試結果

    +

    當您運行這個程式時,您應該會在串口終端看到類似以下的輸出:

    +
    LED Controller Test
    LED on (1)
    LED on (2)
    LED off (3)
    LED on (4)
    LED on (5)
    LED on (6)
    LED on (7)
    LED off (8)
    ...
    LED off (21)
    LED on (22)
    LED on (23)
    LED on (24)
    LED on (25)

    Restarting sequence...

    LED on (1)
    LED on (2)
    LED off (3)
    ...
    +

    同時,您應該能觀察到連接到 GPIO 25 的 LED 相應地開啟和關閉。

    +

    PIO 資源管理和優化

    +

    在這個例子中,我們的 PIO 程式使用了 12 個指令槽。RP2040 的每個 PIO 實例有 32 個指令槽,因此我們還有 20 個指令槽可用於其他目的。

    +
    優化考慮
      +
    1. 如果需要在同一個 PIO 中運行多個程式,可以考慮減少每個程式的指令數。
    2. +
    3. 使用 pio1 來運行額外的程式,它有完整的 32 個指令槽可用。
    4. +
    5. 考慮讓多個狀態機共享部分指令,以最大化指令使用效率。
    6. +
    +

    您提出了一個很好的觀點。我會為您添加這些重要的知識點,詳細解釋 PIO 的整體架構、多狀態機使用以及指令限制。以下是新增的段落,您可以將其插入到適當的位置:

    +
    +

    PIO 架構與資源管理

    +

    PIO 實例與狀態機

    +

    RP2040 擁有兩個 PIO 實例(PIO0 和 PIO1),每個 PIO 實例包含四個獨立的狀態機。這種設計提供了極大的靈活性:

    +
      +
    • 每個 PIO 實例可以同時運行最多四個獨立的程序。
    • +
    • 狀態機可以獨立運行,也可以協同工作,實現複雜的功能。
    • +
    +
    info

    例如,在 VGA 信號生成中,一個狀態機可能負責水平同步,另一個負責垂直同步,而第三個處理像素數據輸出。

    +

    指令內存共享

    +

    每個 PIO 實例擁有 32 條指令的共享內存。這是一個關鍵的限制和設計考慮:

    +
      +
    • 所有四個狀態機共享這 32 條指令空間。
    • +
    • 每個程序可以使用任意數量的指令,只要總和不超過 32。
    • +
    • 一個狀態機可以使用全部 32 條指令,或者多個狀態機可以使用不同數量的指令。
    • +
    +
    caution

    當設計 PIO 程序時,必須考慮到 32 條指令的限制。這要求開發者在功能實現和資源使用之間取得平衡。

    +

    資源優化策略

    +

    考慮到 32 條指令的限制,以下是一些優化策略:

    +
      +
    1. 指令重用:設計可以被多個狀態機共享的指令序列。
    2. +
    3. 功能劃分:將複雜功能分解為多個簡單程序,分配給不同的狀態機。
    4. +
    5. 跨 PIO 實例設計:如果一個 PIO 實例的資源不足,考慮使用另一個 PIO 實例。
    6. +
    +

    實際應用示例

    +

    在我們的 LED 控制器示例中:

    +
      +
    • 我們使用了 12 條指令,佔用了 PIO 實例約 37.5% 的指令空間。
    • +
    • 這意味著我們還有足夠的空間在同一 PIO 實例中實現其他功能。
    • +
    • 例如,我們可以添加另一個程序來控制不同的 LED 模式,或實現其他 I/O 功能。
    • +
    +
    剩餘指令空間 = 32 - 當前程序使用的指令數
    剩餘指令空間 = 32 - 12 = 20 條指令
    +

    擴展性考慮

    +

    理解 PIO 架構和資源限制後,我們可以更好地規劃複雜項目:

    +
      +
    1. 並行任務:利用多個狀態機同時執行不同任務。
    2. +
    3. 資源分配:在設計初期就考慮指令使用,合理分配資源。
    4. +
    5. 跨 PIO 協作:對於更複雜的項目,考慮 PIO0 和 PIO1 的協同工作。
    6. +
    +
    tip

    在開發過程中,定期檢查指令使用情況,確保不會超出 32 條指令的限制。如果接近限制,考慮重構代碼或使用另一個 PIO 實例。

    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html b/en/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html new file mode 100644 index 000000000..11d016ed4 --- /dev/null +++ b/en/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html @@ -0,0 +1,158 @@ + + + + + +Mastering PIO Programming on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO 編程深入探索:從 LED 閃爍到精確時序控制

    +

    1. PIO 簡介

    +

    可編程輸入/輸出(PIO)是 RP2040 晶片的一個強大特性。它允許開發者創建自定義的數字接口,實現精確的時序控制。每個 RP2040 有兩個 PIO 塊,每個塊有四個狀態機。

    +

    2. LED 閃爍示例

    +

    2.1 PIO 程序 (blink.pio)

    +

    讓我們從一個精確控制的 LED 閃爍程序開始:

    +
    .program blink
    .wrap_target
    set pins, 1 [31] ; 打開 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    set pins, 0 [31] ; 關閉 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    .wrap

    % c-sdk {
    // Helper function to initialize PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {
    pio_sm_config c = blink_program_get_default_config(offset);
    pio_gpio_init(pio, pin);
    sm_config_set_set_pins(&c, pin, 1);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);
    float div = clock_get_hz(clk_sys) / freq;
    sm_config_set_clkdiv(&c, div);
    pio_sm_init(pio, sm, offset, &c);
    }
    %}
    +

    2.2 主程序 (main.cpp)

    +

    現在讓我們看看如何在主程序中設置和運行這個 PIO 程序:

    +
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "blink.pio.h"

    int main() {
    static const uint LED_PIN = 25;
    static const float PIO_FREQ = 2000; // 設置 PIO 頻率為 2000 Hz

    // 選擇 PIO 實例(0 或 1)
    PIO pio = pio0;

    // 獲取 PIO 程序中的第一個空閒狀態機
    uint sm = pio_claim_unused_sm(pio, true);

    // 將 PIO 程序添加到 PIO 指令內存中
    uint offset = pio_add_program(pio, &blink_program);

    // 計算 PIO 時鐘分頻器
    float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;

    // 使用我們的 .pio 文件中的輔助函數初始化程序
    blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);

    // 啟動 PIO 程序
    pio_sm_set_enabled(pio, sm, true);

    // 主循環保持程序運行
    while (true) {
    sleep_ms(1000);
    }
    }
    +

    代碼解釋:

    +
      +
    • PIO_FREQ 設置為 2000 Hz,這決定了 PIO 狀態機的運行速度。
    • +
    • blink_program_init 函數用於設置 PIO 狀態機,包括設置時鐘分頻器。
    • +
    • 時鐘分頻器的計算:div = clock_get_hz(clk_sys) / PIO_FREQ +
        +
      • clock_get_hz(clk_sys) 獲取系統時鐘頻率(通常為 125 MHz)
      • +
      • 分頻後,PIO 將以 2000 Hz 的頻率運行
      • +
      +
    • +
    +

    3. PIO 指令週期分析

    +

    每條 PIO 指令的執行週期由兩部分組成:

    +
      +
    1. 指令本身的執行(1 個週期)
    2. +
    3. 指令後的額外延遲(0 到 31 個週期)
    4. +
    +

    例如:

    +
      +
    • set pins, 1 [31] 總共執行 32 個週期:1 個用於指令執行,31 個用於延遲
    • +
    • nop [31] 也執行 32 個週期
    • +
    • nop [19] 執行 20 個週期:1 個用於指令執行,19 個用於延遲
    • +
    +

    4. 頻率計算

    +

    根據我們的設置,PIO 時鐘頻率為 2000 Hz:

    +
      +
    • LED 開啟狀態:(1 + 14) * 32 + 20 = 500 個週期
    • +
    • LED 關閉狀態:同樣是 500 個週期
    • +
    • 完整循環:500 + 500 = 1000 個週期
    • +
    • 閃爍頻率:2000 Hz / 1000 = 2 Hz
    • +
    +

    這解釋了為什麼 LED 以 2 Hz 的頻率閃爍(每秒閃爍兩次)。

    +

    5. PIO 編程限制

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須 ≤ 31
      • +
      • 原因:延遲值在指令編碼中佔用 5 位
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 原因:硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    +

    6. 優化技巧

    +
      +
    1. 利用循環減少指令數量
    2. +
    3. 使用側設(side-set)功能同時執行 GPIO 操作和其他指令
    4. +
    5. 適當設置時鐘分頻以達到所需的時序
    6. +
    +

    7. 注意事項

    +

    在使用 RP2040 的 PIO 進行編程時,需要注意以下幾個重要的限制和考慮因素:

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須小於或等於 31 個週期
      • +
      • 錯誤信息: "instruction delay must be < = 31"
      • +
      • 原因: 延遲值在指令編碼中僅佔用 5 位二進制
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 錯誤信息: "program instruction limit of 32 instruction(s) exceeded"
      • +
      • 原因: 硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    5. +

      時鐘分頻器 (div) 範圍:

      +
        +
      • 有效範圍: 1.0 到 65536.0
      • +
      • 最小值 1.0 對應最快速度(系統時鐘頻率)
      • +
      • 最大值 65536.0 對應最慢速度(系統時鐘頻率除以 65536)
      • +
      • 注意: 當計算出的 div 值超出此範圍時,實際運行頻率可能與預期不符
      • +
      +
    6. +
    7. +

      GPIO 引腳限制:

      +
        +
      • PIO 可以訪問的 GPIO 引腳範圍: 0-29
      • +
      • 某些特殊功能引腳可能有額外限制
      • +
      +
    8. +
    9. +

      狀態機數量:

      +
        +
      • 每個 PIO 塊有 4 個獨立的狀態機
      • +
      • 總共有 8 個狀態機(2 個 PIO 塊 * 4 個狀態機)
      • +
      +
    10. +
    11. +

      FIFO 深度:

      +
        +
      • 每個狀態機有 4 個字(32 位)的 TX FIFO 和 4 個字的 RX FIFO
      • +
      • 在數據密集型應用中需要謹慎管理 FIFO
      • +
      +
    12. +
    13. +

      執行速度考慮:

      +
        +
      • PIO 指令執行速度可以非常快(最高可達系統時鐘頻率)
      • +
      • 需要仔細計算時序以確保預期的操作頻率
      • +
      +
    14. +
    15. +

      與 CPU 交互:

      +
        +
      • PIO 操作是獨立於 CPU 的,需要正確配置中斷和 DMA 以實現高效的數據交換
      • +
      +
    16. +
    17. +

      側設(Side-set)限制:

      +
        +
      • 最多可以使用 5 個側設位
      • +
      • 使用側設會減少可用於延遲的位數
      • +
      +
    18. +
    19. +

      調試難度:

      +
        +
      • PIO 程序難以直接調試
      • +
      • 建議使用模擬器或示波器等工具輔助開發和測試
      • +
      +
    20. +
    +

    完整代码

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "hello.pio.h"

    int main() {

    static const uint led_pin = 25;
    static const float pio_freq = 2000;

    // Choose PIO instance (0 or 1)
    PIO pio = pio0;

    // Get first free state machine in PIO 0
    uint sm = pio_claim_unused_sm(pio, true);

    // Add PIO program to PIO instruction memory. SDK will find location and
    // return with the memory offset of the program.
    uint offset = pio_add_program(pio, &blink_program);

    // Calculate the PIO clock divider
    float div = (float)clock_get_hz(clk_sys) / pio_freq;

    // Initialize the program using the helper function in our .pio file
    blink_program_init(pio, sm, offset, led_pin, div); //div最大允许数值65535

    // Start running our PIO program in the state machine
    pio_sm_set_enabled(pio, sm, true);

    // Do nothing
    while (true) {
    sleep_ms(1000);
    }
    }
    +
    hello.pio
    .program blink

    ; Turn on LED for 100 cycles and off for 100 cycles.
    ; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)

    ; instruction delay must be <= 31
    ; program instruction limit of 32 instruction(s) exceeded
    .wrap_target
    set pins, 1 [31] ; Turn LED on and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    set pins, 0 [31] ; Turn LED off and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    .wrap

    % c-sdk {

    // Helper function (for use in C program) to initialize this PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {

    // Sets up state machine and wrap target. This function is automatically
    // generated in blink.pio.h.
    pio_sm_config c = blink_program_get_default_config(offset);

    // Allow PIO to control GPIO pin (as output)
    pio_gpio_init(pio, pin);

    // Connect pin to SET pin (control with 'set' instruction)
    sm_config_set_set_pins(&c, pin, 1);

    // Set the pin direction to output (in PIO)
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    // Set the clock divider for the state machine
    sm_config_set_clkdiv(&c, div);

    // Load configuration and jump to start of the program
    pio_sm_init(pio, sm, offset, &c);
    }

    %}
    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html b/en/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html new file mode 100644 index 000000000..a8fdf5f7b --- /dev/null +++ b/en/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html @@ -0,0 +1,201 @@ + + + + + +Implementing UART (TX )with PIO on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO UART(TX) 實現綜合總結

    +

    1. UART 基本原理

    +
    info

    UART(通用非同步收發傳輸器)是一種常用的串行通信協議。在我們的實現中:

      +
    • 使用 8 數據位,1 起始位,1 停止位(8N1 格式)
    • +
    • 不使用流控制和奇偶校驗
    • +
    • 預設波特率設置為 9600 bps
    • +
    +

    2. PIO 程序結構

    +

    2.1 UART TX PIO 程序

    +
    uart_tx.pio
    .program uart_tx
    .side_set 1 opt

    pull side 1 [7] ; 從 FIFO 獲取數據,設置停止位(高電平)
    set x, 7 side 0 [7] ; 設置循環計數器,發送起始位(低電平)
    bitloop:
    out pins, 1 ; 發送一位數據
    jmp x-- bitloop [6] ; 循環直到發送完 8 位數據
    +
    關鍵點
      +
    • .side_set 1 opt: 定義一個可選的 1 位側設,用於控制 TX 引腳
    • +
    • pull: 從 TX FIFO 獲取 32 位數據
    • +
    • set x, 7: 設置循環計數器為 7(8位數據)
    • +
    • out pins, 1: 輸出一位數據
    • +
    • jmp x-- bitloop [6]: 循環發送 8 位數據,每次迭代 8 個週期
    • +
    +

    2.2 FIFO 使用和字符存儲

    +
    FIFO 基本容量和合併
      +
    • 每個方向(TX 或 RX)的 FIFO 可以存儲 4 個 32 位字。
    • +
    • 1 個 32 位字理論上可存儲 4 個 char(每個 char 8 位)。
    • +
    • TX 和 RX FIFO 合併後,深度增加到 8 個 32 位字。
    • +
    • 理論上合併後可存儲 32 個 char。
    • +
    +
    實際使用中的 char 存儲
      +
    • 典型 UART 實現中,通常每次只放入一個 char(8 位)到 FIFO。
    • +
    • PIO 程序每次從 FIFO 取出 32 位數據,但通常只使用其中的 8 位。
    • +
    +

    FIFO 填充示例("ABCD")

    +
    32位FIFO條目1: [A] [ ] [ ] [ ]  (只有 'A' 被存儲,其餘未使用)
    32位FIFO條目2: [B] [ ] [ ] [ ] (只有 'B' 被存儲)
    32位FIFO條目3: [C] [ ] [ ] [ ] (只有 'C' 被存儲)
    32位FIFO條目4: [D] [ ] [ ] [ ] (只有 'D' 被存儲)
    +
    FIFO 使用策略
      +
    • 通常逐個 char 填充 FIFO,簡化 PIO 程序邏輯。
    • +
    • PIO 程序設計為在 FIFO 有數據時立即處理,不等待 FIFO 填滿。
    • +
    +

    2.3 時序控制

    +
      +
    • 每個 UART 位使用 8 個 PIO 時鐘週期
    • +
    • 使用指令後的延遲(如 [7])來精確控制時序
    • +
    • 總幀長度:1(起始位)+ 8(數據位)+ 1(停止位)= 10 位 * 8 週期 = 80 PIO 時鐘週期/幀
    • +
    +

    3. PIO 初始化和配置

    +
    uart_tx_init.c
    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    pio_sm_config c = uart_tx_program_get_default_config(offset);

    sm_config_set_sideset_pins(&c, pin_tx);
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_gpio_init(pio, pin_tx);
    pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    +
    關鍵配置步驟
      +
    1. 設置側設(side-set)和輸出引腳
    2. +
    3. 配置 FIFO 為僅 TX 模式
    4. +
    5. 計算並設置時鐘分頻以匹配目標波特率
    6. +
    7. 初始化 GPIO 和設置引腳方向
    8. +
    9. 初始化和啟用狀態機
    10. +
    +

    4. FIFO 使用和管理

    +
    FIFO 操作示例
    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s) {
    uart_tx_program_putc(pio, sm, *s++);
    }
    }
    +

    5. 主程序實現

    +
    main.c
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    const uint PIN_TX = 0;
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    主程序步驟
      +
    1. 選擇 PIO 實例和狀態機
    2. +
    3. 將 PIO 程序加載到 PIO 指令內存
    4. +
    5. 初始化 UART TX 程序
    6. +
    7. 在主循環中發送數據
    8. +
    +

    6. 波特率計算和精度

    +
    實際波特率計算

    實際波特率 = (系統時鐘頻率) / (時鐘分頻 * 每幀週期數) += 125,000,000 / (div * 80)

    其中,div 是初始化時計算的分頻值。

    +

    注意:實際波特率可能與目標波特率略有偏差,這取決於系統時鐘頻率和可用的分頻值。

    +

    7. 8 位 UART 傳輸詳解:發送 "ABC"

    +

    7.1 UART 幀結構(8N1 格式)

    +

    每個 UART 字符幀包含 10 位:

    +
      +
    • 1 個起始位(始終為 0)
    • +
    • 8 個數據位(最低有效位 LSB 先發送)
    • +
    • 1 個停止位(始終為 1)
    • +
    +

    7.2 字符 "ABC" 的二進制表示

    +
      +
    • 'A': ASCII 65 = 0100 0001
    • +
    • 'B': ASCII 66 = 0100 0010
    • +
    • 'C': ASCII 67 = 0100 0011
    • +
    +

    7.3 發送過程詳解

    +
    字符 'A' 的發送過程

    完整幀:

    0 01000001 1
    ↑ ↑ ↑
    | | |
    | | 停止位
    | 數據位
    起始位

    PIO 程序執行過程:

      +
    1. +

      pull side 1 [7]:

      +
        +
      • 從 FIFO 獲取 'A'(0x41)
      • +
      • TX 引腳保持高電平(停止位狀態)
      • +
      +
    2. +
    3. +

      set x, 7 side 0 [7]:

      +
        +
      • 設置循環計數器 x = 7
      • +
      • 發送起始位(低電平)
      • +
      +
    4. +
    5. +

      bitloop: 循環 8 次:

      +
        +
      • out pins, 1: 發送一位數據
      • +
      • jmp x-- bitloop [6]: 減少計數器並跳轉
      • +
      • 發送順序:1, 0, 0, 0, 0, 0, 1, 0 (LSB first)
      • +
      +
    6. +
    7. +

      循環結束後,通過 side 1 設置停止位(高電平)

      +
    8. +
    +
    字符 'B' 和 'C' 的發送

    'B' 和 'C' 的發送過程與 'A' 相同,只是數據位不同:

      +
    • 'B': 0 01000010 1
    • +
    • 'C': 0 01000011 1
    • +
    +

    7.4 FIFO 操作

    +

    當調用 uart_tx_program_puts(pio, sm, "ABC") 時:

    +
      +
    1. 'A' 被放入 FIFO
    2. +
    3. PIO 程序從 FIFO 拉取 'A' 並開始發送
    4. +
    5. 同時,'B' 被放入 FIFO
    6. +
    7. 'A' 發送完成後,PIO 程序立即拉取並發送 'B'
    8. +
    9. 'C' 被放入 FIFO
    10. +
    11. 'B' 發送完成後,PIO 程序拉取並發送 'C'
    12. +
    +

    7.5 時序分析

    +

    假設 UART 波特率為 9600 bps:

    +
      +
    • 每個位持續時間:1/9600 秒 ≈ 104.17 微秒
    • +
    • 每個字符(10 位)傳輸時間:104.17 * 10 ≈ 1.0417 毫秒
    • +
    • "ABC" 總傳輸時間:3 * 1.0417 ≈ 3.125 毫秒
    • +
    +

    8. 高級考慮因素

    +
      +
    1. +

      錯誤處理:

      +
        +
      • PIO 不提供內置的幀錯誤檢測
      • +
      • 可以通過額外的 PIO 程序邏輯或軟件層面實現錯誤檢測
      • +
      +
    2. +
    3. +

      雙向通信:

      +
        +
      • 需要單獨的 RX PIO 程序
      • +
      • 可能需要使用額外的狀態機或 PIO 實例
      • +
      +
    4. +
    5. +

      DMA 使用:

      +
        +
      • 對於大量數據傳輸,可以配合 DMA 使用
      • +
      • DMA 可以自動填充 TX FIFO,減少 CPU 干預
      • +
      +
    6. +
    7. +

      資源利用:

      +
        +
      • 一個 UART 實例佔用一個 PIO 狀態機
      • +
      • 需要考慮 PIO 指令內存的使用
      • +
      +
    8. +
    9. +

      靈活性:

      +
        +
      • 可以輕鬆修改 PIO 程序以支持不同的數據格式(如 7 位數據、2 個停止位)
      • +
      • 可以實現自定義協議或非標準波特率
      • +
      +
    10. +
    +

    9. 調試技巧

    +
    調試方法
      +
    1. 使用邏輯分析儀或示波器驗證信號時序
    2. +
    3. 利用 printf 調試輸出來監控數據流
    4. +
    5. 使用 Pico 的 LED 進行簡單的可視化調試
    6. +
    7. 在關鍵點添加 GPIO 觸發,方便使用示波器捕獲特定事件
    8. +
    +

    10. 性能考慮

    +
      +
    • PIO UART 實現允許高速數據傳輸,僅受 PIO 時鐘頻率限制
    • +
    • 對於簡單的數據發送,PIO 方法可能比硬件 UART 更靈活
    • +
    • 對於複雜的協議或需要頻繁更改配置的場景,PIO 方法尤其有優勢
    • +
    +

    11. 未來擴展

    +
    可能的擴展方向
      +
    1. 實現 UART 接收功能
    2. +
    3. 添加流控制支持
    4. +
    5. 實現奇偶校驗
    6. +
    7. 支持可變數據位數(5-8 位)和停止位數
    8. +
    9. 實現自動波特率檢測
    10. +
    +

    完整代碼

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    // We're going to use PIO to print "Hello, world!" on the same GPIO which we
    // normally attach UART0 to.
    const uint PIN_TX = 7;
    // This is the same as the default UART baud rate on Pico
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    uart_tx.pio
    ;
    ; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
    ;
    ; SPDX-License-Identifier: BSD-3-Clause
    ;

    .program uart_tx
    .side_set 1 opt

    ; An 8n1 UART transmit program.
    ; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.

    pull side 1 [7] ; Assert stop bit, or stall with line in idle state
    set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks
    bitloop: ; This loop will run 8 times (8n1 UART)
    out pins, 1 ; Shift 1 bit from OSR to the first OUT pin
    jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.


    % c-sdk {
    #include "hardware/clocks.h"

    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    // Tell PIO to initially drive output-high on the selected pin, then map PIO
    // onto that pin with the IO muxes.
    pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_gpio_init(pio, pin_tx);

    pio_sm_config c = uart_tx_program_get_default_config(offset);

    // OUT shifts to right, no autopull
    sm_config_set_out_shift(&c, true, false, 32);

    // We are mapping both OUT and side-set to the same pin, because sometimes
    // we need to assert user data onto the pin (with OUT) and sometimes
    // assert constant values (start/stop bit)
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_sideset_pins(&c, pin_tx);

    // We only need TX, so get an 8-deep FIFO!
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    // SM transmits 1 bit per 8 execution cycles.
    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }

    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s)
    uart_tx_program_putc(pio, sm, *s++);
    }

    %}



    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html b/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html new file mode 100644 index 000000000..384c3775a --- /dev/null +++ b/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html @@ -0,0 +1,162 @@ + + + + + +Detailed Explanation of PWM Usage and Examples in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    +

    PWM 基礎知識

    +

    PWM 是一種常用的數位信號處理技術,通過改變脈衝的寬度來調製信號的平均值。在 RP2040 中,PWM 功能由專門的硬體模組提供,可以生成 PWM 信號並控制其參數,如頻率、佔空比等。

    +

    PWM 信號由一系列脈衝組成,每個脈衝的寬度決定了信號的佔空比。佔空比是指脈衝的高電平時間與整個週期的比值,通常以百分比表示。通過改變 PWM 信號的佔空比,我們可以調節輸出的平均電壓,從而實現對連接設備的控制。

    +

    RP2040 的 PWM 模組提供了多個 PWM 通道,每個通道都可以獨立配置和控制。這使得我們可以同時輸出多個 PWM 信號,並對它們進行精確的控制。

    +

    好的,以下是新增的開頭段落,詳細介紹了 PWM 的各種配置模式、作用以及如何設置:

    +

    PWM 的配置模式及設置

    +

    在 RP2040 中,PWM 模組提供了多種配置模式,可以根據不同的應用需求進行設置。每種模式都有其特定的作用和配置方法。下面我們來詳細介紹一下這些模式:

    +

    自由運行模式(Free-running mode)

    +

    自由運行模式是 PWM 的默認模式。在這種模式下,PWM 計數器會不斷地從 0 計數到設定的最大值(通過 pwm_config_set_wrap 函數設置),然後再從 0 開始重複計數。當計數器的值與比較器的值相等時,PWM 輸出會根據設置的電平(高電平或低電平)進行切換。

    +

    适用场景:用於普通的PWM輸出,例如LED亮度調節、電機速度控制等,需要定期的周期性PWM信号。

    +

    要將 PWM 配置為自由運行模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們首先使用 pwm_get_default_config 函數獲取 PWM 的默認配置,然後使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。最後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    計數模式(Counter mode)

    +

    在計數模式下,PWM 計數器會根據外部輸入的脈衝信號進行計數。這種模式通常用於測量外部信號的頻率或脈衝寬度。 +適用場景:用於測量外部脈衝信號的頻率或脈衝寬度,通常與外部輸入信號同步計數。 +要將 PWM 配置為計數模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);
    +

    在上面的代碼中,我們使用 pwm_config_set_clkdiv_mode 函數將 PWM 的時鐘分頻模式設置為 PWM_DIV_B_RISING,表示在輸入信號的上升沿進行計數。然後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    相位校正模式(Phase-correct mode)

    +

    相位校正模式是一種特殊的 PWM 模式,它可以產生對稱的 PWM 信號,並減少輸出信號的諧波失真。在這種模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。 +适用场景:產生對稱的PWM信号,減少輸出信號的諧波失真,適合對PWM信號質量要求較高的應用。 +要將 PWM 配置為相位校正模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_phase_correct(&config, true);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們使用 pwm_config_set_phase_correct 函數將 PWM 配置為相位校正模式,然後使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    設置 PWM 頻率和佔空比

    +

    無論使用哪種 PWM 模式,我們都需要設置 PWM 信號的頻率和佔空比。PWM 頻率決定了 PWM 信號的週期,而佔空比決定了 PWM 信號在一個週期內高電平的時間比例。

    +

    要設置 PWM 頻率,我們需要配置 PWM 的時鐘分頻器和包裹值。時鐘分頻器決定了 PWM 計數器的計數速度,而包裹值決定了 PWM 計數器的最大值。PWM 頻率的計算公式如下:

    +
    PWM 頻率 = 系統時鐘頻率 / (時鐘分頻器 * (包裹值 + 1))
    +

    例如,如果系統時鐘頻率為 125 MHz,時鐘分頻器設置為 1.0(不分頻),包裹值設置為 1249,則 PWM 頻率為:

    +
    PWM 頻率 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz
    +

    要設置 PWM 佔空比,我們需要配置 PWM 的比較器值。比較器值決定了 PWM 信號在一個週期內高電平的時間。PWM 佔空比的計算公式如下:

    +
    PWM 佔空比 = 比較器值 / (包裹值 + 1)
    +

    例如,如果包裹值設置為 1249,比較器值設置為 624,則 PWM 佔空比為:

    +
    PWM 佔空比 = 624 / (1249 + 1) = 0.4992 ≈ 50%
    +

    綜上所述,通過合理配置 PWM 的模式、頻率和佔空比,我們可以產生各種不同特性的 PWM 信號,以滿足不同的應用需求。無論是電機控制、伺服機控制還是信號檢測,都可以通過靈活配置 PWM 來實現。

    +

    程序示例 1: 輸出 PWM 信號

    +

    首先,讓我們來看一個簡單的程序示例,演示如何在 RP2040 上輸出 PWM 信號:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    int main() {
    // 將 GPIO 0 和 GPIO 1 分配給 PWM
    gpio_set_function(0, GPIO_FUNC_PWM);
    gpio_set_function(1, GPIO_FUNC_PWM);

    // 找到連接到 GPIO 0 的 PWM 切片(slice)編號
    uint slice_num = pwm_gpio_to_slice_num(0);

    // 設置 PWM 週期為 4 個循環(0 到 3)
    pwm_set_wrap(slice_num, 3);

    // 設置通道 A 在下降沿之前輸出高電平一個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);

    // 設置通道 B 在下降沿之前初始輸出高電平三個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);

    // 啟動 PWM
    pwm_set_enabled(slice_num, true);
    }
    +
    note

    在這個示例中,我們將 GPIO 0 和 GPIO 1 分配給 PWM 功能,並找到連接到 GPIO 0 的 PWM 切片(slice)編號。然後,我們設置 PWM 週期為 4 個循環,並配置通道 A 和通道 B 的輸出電平。最後,我們啟動 PWM,開始輸出 PWM 信號。

    +

    值得注意的是,我們也可以使用 pwm_set_gpio_level(gpio, x) 函數,它會自動查找給定 GPIO 的正確切片和通道,並設置輸出電平。

    +

    程序示例 2: 使用 PWM 控制 LED 亮度

    +

    接下來,讓我們看一個更實用的例子,演示如何使用 PWM 控制 LED 的亮度:

    +
    #include "pico/stdlib.h"
    #include <stdio.h>
    #include "pico/time.h"
    #include "hardware/irq.h"
    #include "hardware/pwm.h"

    #ifdef PICO_DEFAULT_LED_PIN
    void on_pwm_wrap() {
    static int fade = 0;
    static bool going_up = true;

    // 清除中斷標誌
    pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));

    if (going_up) {
    ++fade;
    if (fade > 255) {
    fade = 255;
    going_up = false;
    }
    } else {
    --fade;
    if (fade < 0) {
    fade = 0;
    going_up = true;
    }
    }

    // 將 fade 值平方,使 LED 的亮度看起來更加線性
    // 注意,這個範圍與 wrap 值匹配
    pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);
    }
    #endif

    int main() {
    #ifndef PICO_DEFAULT_LED_PIN
    #warning pwm/led_fade example requires a board with a regular LED
    #else
    // 告訴 LED 引腳,PWM 負責控制其值
    gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);

    // 找到連接到 LED 引腳的 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);

    // 將我們的切片的 IRQ 輸出遮罩到 PWM 塊的單個中斷線,
    // 並註冊我們的中斷處理程序
    pwm_clear_irq(slice_num);
    pwm_set_irq_enabled(slice_num, true);
    irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);
    irq_set_enabled(PWM_IRQ_WRAP, true);

    // 為切片配置獲取一些合理的預設值
    // 預設情況下,計數器可以在其最大範圍(0 到 2^16-1)內包裹
    pwm_config config = pwm_get_default_config();

    // 設置分頻器,將計數器時鐘減少到 sysclock/4
    pwm_config_set_clkdiv(&config, 4.f);

    // 將配置載入到我們的 PWM 切片中,並設置為運行狀態
    pwm_init(slice_num, &config, true);

    // 在這一點之後的所有操作都在 PWM 中斷處理程序中進行,
    // 所以我們可以在主迴圈中什麼也不做
    while (1)
    tight_loop_contents();
    #endif
    }
    +

    在這個示例中,我們使用 PWM 控制 LED 的亮度,實現漸變效果。程序的主要步驟如下:

    +
      +
    1. 將 LED 引腳設置為 PWM 功能。
    2. +
    3. 找到連接到 LED 引腳的 PWM 切片編號。
    4. +
    5. 設置 PWM 中斷,註冊中斷處理程序 on_pwm_wrap()
    6. +
    7. 配置 PWM 切片,設置分頻器和計數器範圍。
    8. +
    9. 啟動 PWM,並在主迴圈中等待中斷觸發。
    10. +
    +

    on_pwm_wrap() 中斷處理程序中,我們通過改變 fade 值來控制 LED 的亮度。每次中斷觸發時,我們根據 fade 值的變化方向(增加或減少)來更新 LED 的亮度。為了使亮度變化看起來更加線性,我們將 fade 值平方後再設置給 PWM 輸出。

    +
    tip

    使用中斷處理程序可以在不影響主程序執行的情況下實現 LED 亮度的平滑變化。這種方式非常適合需要持續更新輸出的場景。

    +

    程序示例 3: 測量 PWM 信號的佔空比

    +

    最後,讓我們看一個示例,演示如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint OUTPUT_PIN = 2;
    const uint MEASURE_PIN = 5;

    float measure_duty_cycle(uint gpio) {
    // 只有 PWM B 引腳可以用作輸入
    assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);

    uint slice_num = pwm_gpio_to_slice_num(gpio);

    // 每 100 個循環,PWM B 輸入為高電平時計數一次
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);
    pwm_config_set_clkdiv(&cfg, 100);
    pwm_init(slice_num, &cfg, false);

    gpio_set_function(gpio, GPIO_FUNC_PWM);
    pwm_set_enabled(slice_num, true);
    sleep_ms(10);
    pwm_set_enabled(slice_num, false);

    float counting_rate = clock_get_hz(clk_sys) / 100;
    float max_possible_count = counting_rate * 0.01;

    return pwm_get_counter(slice_num) / max_possible_count;
    }

    const float test_duty_cycles[] = {
    0.f,
    0.1f,
    0.5f,
    0.9f,
    1.f
    };

    int main() {
    stdio_init_all();
    printf("\nPWM duty cycle measurement example\n");

    // 配置 PWM 切片並設置為運行狀態
    const uint count_top = 1000;
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_wrap(&cfg, count_top);
    pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);

    // 注意,我們還沒有觸碰另一個引腳 -- PWM 引腳預設為輸出,
    // 但一旦分頻器模式從自由運行改變,就會變為輸入。
    // 將兩個輸出直接連接在一起是不明智的!
    gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);

    // 對於每個測試佔空比,在輸出引腳上驅動該電平,
    // 然後使用另一個引腳讀回實際的輸出佔空比。這兩個值應該非常接近!
    for (int i = 0; i < count_of(test_duty_cycles); ++i) {
    float output_duty_cycle = test_duty_cycles[i];
    pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));

    float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);
    printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\n",
    output_duty_cycle * 100.f, measured_duty_cycle * 100.f);
    }
    }
    +

    在這個示例中,我們演示了如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比。程序的主要步驟如下:

    +
      +
    1. 定義輸出引腳 OUTPUT_PIN 和測量引腳 MEASURE_PIN
    2. +
    3. 實現 measure_duty_cycle() 函數,用於測量給定 GPIO 引腳上的 PWM 信號佔空比。 +
        +
      • 配置 PWM 切片,設置分頻器模式為 PWM_DIV_B_HIGH,即每 100 個循環計數一次。
      • +
      • 啟動 PWM,等待一段時間,然後停止 PWM。
      • +
      • 計算最大可能計數值,並根據實際計數值計算佔空比。
      • +
      +
    4. +
    5. main() 函數中,配置輸出引腳的 PWM 切片,設置包裹值為 count_top
    6. +
    7. 對於每個測試佔空比,在輸出引腳上設置相應的電平,然後使用測量引腳讀回實際的輸出佔空比。
    8. +
    9. 將輸出佔空比和測量佔空比打印出來,檢查它們是否接近。
    10. +
    +
    caution

    在將兩個引腳連接在一起之前,需要注意 PWM 引腳的默認狀態。PWM 引腳預設為輸出,但一旦分頻器模式從自由運行改變,就會變為輸入。將兩個輸出直接連接在一起是不明智的!

    +

    通過這個示例,我們可以看到如何使用 RP2040 的 PWM 功能來精確測量 PWM 信號的佔空比。這在需要對 PWM 信號進行分析和控制的場景中非常有用。

    +

    單獨使用 PWM

    +

    除了上述示例中的用法,我們還可以單獨使用 PWM 來控制各種設備,如直流電機、步進電機、伺服機等。下面我們將詳細介紹如何使用 PWM 來控制這些設備,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    控制直流電機

    +

    使用 PWM 可以方便地控制直流電機的轉速。通過改變 PWM 信號的佔空比,我們可以調節輸出到電機的平均電壓,從而控制電機的轉速。以下是一個使用 PWM 控制直流電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint MOTOR_PIN = 2;

    int main() {
    // 將電機引腳設置為 PWM 功能
    gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);
    uint channel = pwm_gpio_to_channel(MOTOR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置佔空比,控制電機轉速
    pwm_set_chan_level(slice_num, channel, 32768); // 50% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 16384); // 25% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 49152); // 75% 佔空比
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將電機連接到 GPIO2 引腳,並將其設置為 PWM 功能。然後,我們配置 PWM 切片,設置包裹值為 65535,以獲得更高的解析度。在主迴圈中,我們通過設置不同的佔空比來控制電機轉速。佔空比的取值範圍為 0 到 65535,分別對應 0% 到 100% 的佔空比。

    +
    tip

    根據電機的規格和電源電壓,你可能需要使用 H 橋或電機驅動器來安全地驅動電機。PWM 信號可以用來控制 H 橋或電機驅動器的輸入,從而調節電機轉速。

    +

    控制步進電機

    +

    步進電機是一種常用的精密定位設備,可以通過控制脈衝信號來實現精確的角度控制。使用 PWM,我們可以生成控制步進電機所需的脈衝信號。以下是一個使用 PWM 控制步進電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;

    int main() {
    // 將步進引腳和方向引腳設置為 PWM 功能
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);

    // 設置方向為正向
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);

    while (1) {
    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);

    // 改變方向為反向
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);

    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);
    }
    }
    +

    在這個示例中,我們使用兩個 PWM 通道來控制步進電機。一個通道用於生成步進脈衝,另一個通道用於控制步進電機的方向。我們通過設置脈衝的佔空比和頻率來生成所需的步進脈衝,並通過改變方向通道的電平來控制步進電機的旋轉方向。

    +
    note

    步進電機通常需要較高的電流驅動,因此建議使用專用的步進電機驅動器來控制步進電機。PWM 信號可以作為步進電機驅動器的輸入,用於控制步進脈衝和方向。

    +

    好的,我會根據您的要求,進一步優化這部分內容,並善用 Markdown 和 Docusaurus 的特性,使目錄更加清晰。以下是優化後的內容:

    +

    詳解步進電機控制程式碼

    +

    讓我們來詳細講解上述控制步進電機的程式碼,並解釋其中涉及的參數和設置。

    +
    定義步進引腳和方向引腳
    +
    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;
    +

    首先,我們定義了兩個常量 STEP_PINDIR_PIN,分別表示連接步進電機的步進引腳和方向引腳。這裡我們將它們設置為 GPIO2 和 GPIO3。

    +
    設置引腳功能為 PWM
    +
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);
    +

    main 函數中,我們首先使用 gpio_set_function 函數將步進引腳和方向引腳設置為 PWM 功能。這樣我們就可以通過 PWM 來控制這兩個引腳的輸出。

    +
    獲取 PWM 切片編號和通道
    +
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);
    +

    接下來,我們使用 pwm_gpio_to_slice_numpwm_gpio_to_channel 函數獲取步進引腳和方向引腳所對應的 PWM 切片編號和通道。每個 PWM 切片可以控制兩個通道,通常標記為 A 和 B。

    +
    配置 PWM 切片
    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);
    +

    然後,我們使用 pwm_get_default_config 函數獲取 PWM 的默認配置,並使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。這個值決定了 PWM 的解析度,設置為 65535 可以提供較高的解析度。

    +

    接著,我們使用 pwm_init 函數初始化步進引腳和方向引腳所在的 PWM 切片,並將 config 應用到這些切片上。最後一個參數設置為 true,表示立即啟用 PWM 輸出。

    +
    設置步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);
    +

    在設置方向為正向時,我們使用 pwm_set_chan_level 函數將方向引腳的 PWM 輸出電平設置為 0。這通常表示步進電機的正向旋轉。

    +
    生成步進脈衝
    +
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    +

    在主循環中,我們首先生成 200 個步進脈衝。每個脈衝由一個高電平和一個低電平組成,高電平持續 500 微秒,低電平持續 500 微秒。我們使用 pwm_set_chan_level 函數設置步進引腳的 PWM 輸出電平為 32768(50% 佔空比)來生成高電平,然後延遲 500 微秒。接著,我們將步進引腳的 PWM 輸出電平設置為 0 來生成低電平,再延遲 500 微秒。這樣就生成了一個完整的步進脈衝。

    +
    note

    生成步進脈衝的過程可以分為以下幾個步驟:

      +
    1. 設置步進引腳的 PWM 輸出電平為高電平(50% 佔空比)。
    2. +
    3. 延遲一段時間(脈衝的高電平持續時間)。
    4. +
    5. 設置步進引腳的 PWM 輸出電平為低電平。
    6. +
    7. 延遲一段時間(脈衝的低電平持續時間)。
    8. +
    9. 重複步驟 1-4,直到生成足夠數量的步進脈衝。
    10. +
    +
    改變步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);
    +

    生成完 200 個步進脈衝後,我們延遲 1 秒鐘,然後將方向引腳的 PWM 輸出電平設置為 65535,表示步進電機的反向旋轉。

    +

    接下來,我們再次生成 200 個步進脈衝,但這次步進電機將向相反方向旋轉。最後,我們再次延遲 1 秒鐘,然後重複整個過程。

    +
    程式碼中的數字參數
    +
    note

    這段程式碼中的數字參數的含義如下:

      +
    • 32768: 表示 50% 的 PWM 佔空比。因為我們將 PWM 計數器的最大值設置為 65535,所以 32768 大約是最大值的一半,對應 50% 的佔空比。
    • +
    • 500: 表示步進脈衝的高電平和低電平持續時間,單位為微秒。這個值決定了步進電機的速度。增大這個值會降低步進電機的速度,減小這個值會提高步進電機的速度。
    • +
    • 200: 表示生成的步進脈衝數量。這個值決定了步進電機旋轉的角度。增大這個值會增加步進電機旋轉的角度,減小這個值會減小步進電機旋轉的角度。
    • +
    • 65535: 表示 PWM 計數器的最大值,也表示 100% 的 PWM 佔空比。當方向引腳的 PWM 輸出電平設置為 65535 時,表示步進電機的反向旋轉。
    • +
    +
    其他 PWM 配置
    +

    除了上述參數,我們還可以設置其他的 PWM 配置,例如:

    +
      +
    • pwm_config_set_clkdiv: 設置 PWM 時鐘分頻器,可以改變 PWM 的頻率。增大分頻值會降低 PWM 頻率,減小分頻值會提高 PWM 頻率。
    • +
    • pwm_config_set_phase_correct: 設置是否使用相位校正模式。在相位校正模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。這可以減少 PWM 輸出的尖峰噪聲。
    • +
    • pwm_config_set_output_polarity: 設置 PWM 輸出的極性。可以選擇在 PWM 計數器達到比較值時輸出高電平還是低電平。
    • +
    +

    調整這些 PWM 配置可以改變 PWM 輸出的特性,從而影響步進電機的運行方式,如速度、扭矩、噪聲等。

    +
    caution

    需要注意的是,這段程式碼只是一個基本的示例,用於演示如何使用 PWM 控制步進電機。在實際應用中,你可能需要根據具體的步進電機型號和驅動器來調整參數和設置,以獲得最佳的性能和可靠性。此外,步進電機通常需要較大的電流,因此建議使用專用的步進電機驅動器,而不是直接通過 PWM 引腳驅動。

    +

    控制伺服機

    +

    伺服機是一種常用的位置控制設備,通過改變 PWM 信號的脈寬來控制伺服機的角度。以下是一個使用 PWM 控制伺服機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint SERVO_PIN = 2;

    int main() {
    // 將伺服機引腳設置為 PWM 功能
    gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);
    uint channel = pwm_gpio_to_channel(SERVO_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 19999);
    pwm_config_set_clkdiv(&config, 9.6f);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置脈寬,控制伺服機角度
    pwm_set_chan_level(slice_num, channel, 1000); // 0 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 1500); // 90 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 2000); // 180 度
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將伺服機連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片,設置包裹值為 19999,時鐘分頻器為 9.6,以獲得 50Hz 的 PWM 頻率。在主迴圈中,我們通過設置不同的脈寬來控制伺服機的角度。脈寬的典型值為 1000us(0 度)、1500us(90 度)和 2000us(180 度),但具體值可能因伺服機型號而有所不同。

    +
    caution

    伺服機的控制信號需要精確的脈寬和頻率,因此在配置 PWM 時需要仔細計算包裹值和時鐘分頻器,以獲得所需的脈寬和頻率。此外,伺服機通常需要單獨的電源供電,以提供足夠的電流。

    +

    使用 PWM 作為輸入捕獲

    +

    除了用於輸出控制信號,PWM 還可以作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。以下是一個使用 PWM 作為輸入捕獲的示例:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint INPUT_PIN = 2;

    int main() {
    // 將輸入引腳設置為 PWM 功能
    gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);

    // 配置 PWM 切片作為輸入捕獲模式
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);

    // 使能輸入捕獲
    pwm_set_enabled(slice_num, true);

    while (1) {
    // 等待輸入信號
    while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));

    // 讀取輸入信號的頻率、脈寬和佔空比
    uint32_t period = pwm_get_counter(slice_num);
    uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);
    float frequency = clock_get_hz(clk_sys) / period;
    float duty_cycle = (float)pulse_width / period;

    printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\n",
    frequency, pulse_width, duty_cycle * 100);

    // 清除輸入捕獲中斷標誌
    pwm_clear_irq(slice_num);
    }
    }
    +

    在這個示例中,我們將輸入信號連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片作為輸入捕獲模式,並使能輸入捕獲。在主迴圈中,我們等待輸入信號觸發輸入捕獲中斷,然後讀取輸入信號的頻率、脈寬和佔空比。頻率可以通過時鐘頻率除以週期計數器值來計算,脈寬可以直接從捕獲比較計數器中讀取,佔空比可以通過脈寬除以週期來計算。

    +
    note

    輸入捕獲模式下,PWM 切片會在輸入信號的上升沿或下降沿觸發輸入捕獲中斷,並記錄當前的計數器值。通過比較連續兩次捕獲的計數器值,可以計算出輸入信號的頻率、脈寬和佔空比。

    +

    總結

    +

    在本文中,我們詳細探討了如何在 RP2040 中使用 PWM 功能。除了之前介紹的基本用法,我們還深入講解了如何使用 PWM 控制直流電機、步進電機和伺服機,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    通過學習本文提供的詳細解釋和示例代碼,你應該能夠掌握 RP2040 中 PWM 的各種用法,並將其應用到自己的嵌入式項目中。無論是電機控制、伺服機控制還是信號檢測,PWM 都是一個強大而靈活的工具。

    +

    希望本文能夠幫助你更好地理解和應用 RP2040 中的 PWM 功能。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html b/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html new file mode 100644 index 000000000..eafad2517 --- /dev/null +++ b/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html @@ -0,0 +1,97 @@ + + + + + +Timer and Alarm Usage in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    +

    計時器和鬧鐘的基本概念

    +

    在 RP2040 中,計時器和鬧鐘是兩個相關但又有所區別的概念。

    +
      +
    • +

      計時器(Timer): 計時器是一種用於測量時間間隔的硬體設備。在 RP2040 中,我們可以使用計時器來實現精確的時間控制和定時操作。計時器可以被配置為在特定時間間隔後觸發中斷,以執行相應的操作。

      +
    • +
    • +

      鬧鐘(Alarm): 鬧鐘是基於計時器的一種功能擴展。它允許我們在指定的時間點觸發一次性的操作。鬧鐘通常用於在未來的某個時間點執行特定的任務,例如在延遲一段時間後執行某個函數。

      +
    • +
    +

    代碼示例

    +

    讓我們通過一個具體的代碼示例來說明如何在 RP2040 中使用計時器和鬧鐘功能:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }

    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }

    int main() {
    stdio_init_all();
    printf("Hello Timer!\n");

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    printf("Done\n");
    return 0;
    }
    +

    讓我們逐步分析代碼的各個部分:

    +

    初始化和鬧鐘回調函數

    +
    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }
    +
      +
    • 我們定義了一個全局變量 timer_fired,用於標記計時器是否已經觸發。
    • +
    • alarm_callback 是鬧鐘的回調函數,當鬧鐘觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出一條消息,表示計時器已經觸發,並將 timer_fired 設置為 true
    • +
    • 回調函數返回 0,表示不需要重複觸發此鬧鐘。
    • +
    +

    重複計時器回調函數

    +
    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }
    +
      +
    • repeating_timer_callback 是重複計時器的回調函數,當重複計時器觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出當前的時間戳,表示重複計時器已經觸發。
    • +
    • 回調函數返回 true,表示需要繼續觸發此重複計時器。
    • +
    +

    使用鬧鐘(Alarm)

    +
    int main() {
    // ...

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // ...
    }
    +
      +
    • main 函數中,我們使用 add_alarm_in_ms 函數創建了一個鬧鐘,設置在 2 秒後調用 alarm_callback 函數。
    • +
    • add_alarm_in_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及是否重複觸發的標誌。
    • +
    • 創建鬧鐘後,我們使用一個 while 循環等待 timer_fired 變量變為 true,表示鬧鐘已經觸發。
    • +
    • tight_loop_contents() 函數用於在等待期間避免編譯器優化掉空循環。
    • +
    +

    使用重複計時器(Repeating Timer)

    +
    int main() {
    // ...

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // ...
    }
    +
      +
    • 接下來,我們使用 add_repeating_timer_ms 函數創建了一個重複計時器,設置每隔 500 毫秒調用一次 repeating_timer_callback 函數。
    • +
    • add_repeating_timer_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及一個指向 repeating_timer 結構體的指針。
    • +
    • 創建重複計時器後,我們使用 sleep_ms 函數等待 3 秒鐘,期間重複計時器會持續觸發。
    • +
    • 然後,我們使用 cancel_repeating_timer 函數取消重複計時器,並輸出取消的結果。我們再次等待 2 秒鐘,觀察重複計時器是否已經停止觸發。
    • +
    • 接下來,我們再次創建了一個重複計時器,但這次使用了負的延遲時間 -500。這意味著重複計時器會在上一次調用結束後 500 毫秒再次觸發,而不管回調函數的執行時間。我們等待 3 秒鐘,觀察重複計時器的行為。
    • +
    • 最後,我們再次取消重複計時器,等待 2 秒鐘,並輸出 "Done" 表示程序執行完畢。
    • +
    +

    在其他程序中使用計時器

    +

    如果你想在其他程序中使用計時器功能,可以將計時器的創建和管理封裝到單獨的函數或模塊中。這樣,你就可以在不同的程序中方便地調用這些函數,實現計時器的重用。

    +

    以下是一個簡單的示例,展示了如何將計時器功能封裝到單獨的函數中:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    void timer_callback(void) {
    printf("Timer triggered!\n");
    // 執行定時任務
    // ...
    }

    void start_timer(uint32_t delay_ms) {
    struct repeating_timer timer;
    add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);
    }

    int main() {
    stdio_init_all();

    // 啟動定時器,每秒觸發一次
    start_timer(1000);

    // 執行其他任務
    // ...

    return 0;
    }
    +

    在上面的示例中,我們定義了一個 timer_callback 函數,作為計時器的回調函數。然後,我們創建了一個 start_timer 函數,用於啟動計時器。在 main 函數中,我們調用 start_timer 函數,設置計時器每秒觸發一次,然後執行其他任務。

    +

    通過這種方式,你可以將計時器功能與其他程序解耦,使得程序的結構更加清晰,且便於維護和擴展。

    +

    計時器的參數和配置

    +

    在使用計時器和鬧鐘時,你可以根據需要配置各種參數,以滿足不同的需求。以下是一些常用的參數和配置選項:

    +
      +
    • +

      延遲時間(Delay): +指定計時器觸發的延遲時間,可以是毫秒(ms)或微秒(us)。你可以根據需要選擇合適的時間單位和值。

      +
    • +
    • +

      回調函數(Callback): +指定計時器觸發時要執行的函數。你可以根據實際需求編寫自定義的回調函數,執行所需的操作。

      +
    • +
    • +

      用戶數據(User Data): +可以將自定義的數據傳遞給回調函數,以便在回調函數中使用。這可以是指針、結構體或其他類型的數據。

      +
    • +
    • +

      重複觸發(Repeat): +指定計時器是否需要重複觸發。對於一次性的計時器,可以將重複觸發設置為 false;對於重複觸發的計時器,可以將其設置為 true

      +
    • +
    • +

      精度(Precision): +計時器的精度取決於硬體和軟體的實現。RP2040 提供了高精度的計時器,可以達到微秒級別的精度。但是,實際的精度還取決於系統的時鐘頻率和中斷處理的延遲。

      +
    • +
    +

    總結

    +

    在本文中,我們深入探討了如何在 RP2040 中使用計時器和鬧鐘功能。通過詳細的代碼示例和解釋,你應該對計時器和鬧鐘的工作原理有了更全面的理解。

    +

    我們討論了計時器和鬧鐘的基本概念,並展示了如何創建和使用它們。無論是一次性的鬧鐘還是重複觸發的計時器,你都可以根據需求靈活地配置和使用它們。

    +

    此外,我們還探討了如何在其他程序中使用計時器功能,通過將計時器封裝到單獨的函數或模塊中,使其更加通用和可重用。

    +

    最後,我們介紹了計時器的一些常用參數和配置選項,幫助你根據實際需求進行靈活的設置。

    +

    希望這篇文章能夠幫助你更好地理解和應用 RP2040 中的計時器和鬧鐘功能,為你的嵌入式開發項目提供有力的支持。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html b/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html new file mode 100644 index 000000000..72c017f5f --- /dev/null +++ b/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html @@ -0,0 +1,82 @@ + + + + + +UART Interrupt Handling and Data Transmission in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    +
    UART 簡介

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一種常用的串口通信協議,廣泛應用於嵌入式系統中。它以異步的方式進行資料傳輸,透過 TX(發送)和 RX(接收)兩條線來實現全雙工通信。UART 的資料格式包括起始位、資料位、校驗位(可選)和停止位。

    +

    在 RP2040 中使用 UART

    +

    RP2040 是 Raspberry Pi Pico 的核心,它提供了兩個 UART 模組(UART0 和 UART1),可以用於與其他裝置進行串口通信。要在 RP2040 中使用 UART,我們需要執行以下步驟:

    +

    1. 初始化 UART

    +
      +
    • 設定 UART 的參數,如波特率(baud rate)、資料位元數(data bits)、停止位元(stop bits)和同位檢查位元(parity bit)。
    • +
    • 選擇要使用的 UART 模組(UART0 或 UART1)。
    • +
    • 配置 UART 使用的 TX 和 RX 引腳。
    • +
    +

    2. 發送資料

    +
      +
    • 使用 uart_putc() 函式發送單個字元。
    • +
    • 使用 uart_puts() 函式發送字串。
    • +
    • 透過檢查 UART 的可寫入狀態(uart_is_writable())來避免資料覆寫。
    • +
    +

    3. 接收資料

    +
      +
    • 使用 uart_getc() 函式接收單個字元。
    • +
    • 透過檢查 UART 的可讀取狀態(uart_is_readable())來判斷是否有新資料到達。
    • +
    • 在中斷處理函式中處理接收到的資料。
    • +
    +

    4. 設定中斷

    +
      +
    • 設定 UART 的中斷處理函式。
    • +
    • 啟用 UART 的 RX 中斷。
    • +
    • 在中斷處理函式中讀取接收到的資料,並進行相應的處理。
    • +
    +

    以下是一個使用 UART 的程式碼範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    static int chars_rxed = 0;

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    // 在此處理接收到的資料
    // ...
    chars_rxed++;
    }
    }

    int main() {
    // 初始化 UART
    uart_init(UART_ID, BAUD_RATE);

    // 設定 TX 和 RX 引腳的功能
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);

    // 設定 UART 資料格式
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    // 發送初始訊息
    uart_puts(UART_ID, "Hello, UART!\n");

    // 主迴圈
    while (1) {
    // 在此執行其他任務
    // ...
    }
    }
    +

    在這個程式碼範例中,我們首先引入了必要的標頭檔,並定義了 UART 的相關參數,如波特率、資料位元數、停止位元和校驗位元。接著,我們初始化 UART,設定 TX 和 RX 引腳的功能,並配置 UART 的資料格式。

    +

    為了處理接收到的資料,我們設定了 RX 中斷,並定義了中斷處理函式 on_uart_rx()。當 UART 接收到資料時,中斷處理函式會被觸發,我們可以在其中讀取接收到的資料並進行相應的處理。

    +

    接下來,我們發送一個初始訊息,表示 UART 已經就緒。在主迴圈中,我們可以執行其他任務,而接收到的資料會透過中斷處理函式自動處理。

    +

    FIFO 的使用

    +

    FIFO(First In First Out,先進先出)是一種資料緩衝區,可以用於暫存 UART 接收到的資料。在 RP2040 中,每個 UART 模組都有一個對應的 FIFO。

    +
    啟用 FIFO
      +
    • 使用 uart_set_fifo_enabled() 函式啟用 UART 的 FIFO 功能。
    • +
    • 設定 FIFO 的深度,即可存儲的資料量。
    • +
    +
    不啟用 FIFO
      +
    • 如果不啟用 FIFO,每次接收到資料都會觸發中斷。
    • +
    • 這種方式適用於對即時性要求較高的場景,但可能會增加 CPU 的負擔。
    • +
    +
    使用 FIFO 的好處
      +
    • 啟用 FIFO 後,只有當 FIFO 中累積了一定數量的資料或達到設定的閾值時,才會觸發中斷。
    • +
    • 這種方式可以減少中斷的頻率,降低 CPU 的負擔。
    • +
    • FIFO 提供了緩衝區,可以暫存一定量的資料,避免資料丟失。
    • +
    +

    以下是啟用 FIFO 的程式碼範例:

    +
    // 啟用 FIFO
    uart_set_fifo_enabled(UART_ID, true);

    // 設定 FIFO 的深度
    uart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);
    +

    在這個範例中,我們使用 uart_set_fifo_enabled() 函式啟用了 UART 的 FIFO 功能,並使用 uart_set_fifo_threshold() 函式設定了 FIFO 的深度。啟用 FIFO 後,當 FIFO 中累積的資料量達到設定的閾值時,才會觸發中斷。

    +

    資料發送和接收

    +

    在 RP2040 中,我們可以使用以下函式來發送和接收 UART 資料:

    +

    發送單個字元

    +
    uart_putc(UART_ID, char_to_send);
    +

    發送字串

    +
    uart_puts(UART_ID, string_to_send);
    +

    接收單個字元

    +
    uint8_t received_char = uart_getc(UART_ID);
    +

    檢查是否有可讀取的資料

    +
    if (uart_is_readable(UART_ID)) {
    // 有可讀取的資料
    // ...
    }
    +

    檢查是否可以寫入資料

    +
    if (uart_is_writable(UART_ID)) {
    // 可以寫入資料
    // ...
    }
    +

    透過這些函式,我們可以方便地發送和接收 UART 資料。在發送資料時,我們可以使用 uart_putc() 發送單個字元,或使用 uart_puts() 發送字串。在接收資料時,我們可以使用 uart_getc() 接收單個字元,並使用 uart_is_readable() 檢查是否有可讀取的資料。

    +

    實際應用範例

    +

    以下是一個使用 UART 控制 LED 的範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    #define LED_PIN 25

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    switch (ch) {
    case 'o':
    gpio_put(LED_PIN, 1);
    uart_puts(UART_ID, "LED ON\n");
    break;
    case 'f':
    gpio_put(LED_PIN, 0);
    uart_puts(UART_ID, "LED OFF\n");
    break;
    default:
    uart_puts(UART_ID, "Invalid command\n");
    break;
    }
    }
    }

    int main() {
    // 初始化 UART 和 LED
    uart_init(UART_ID, BAUD_RATE);
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    uart_puts(UART_ID, "UART LED Control\n");
    uart_puts(UART_ID, "Commands: 'o' - LED ON, 'f' - LED OFF\n");

    while (1) {
    tight_loop_contents();
    }
    }
    +

    在這個範例中,我們使用 UART 接收指令,並根據接收到的指令控制 LED 的亮滅。當接收到字元 'o' 時,LED 會亮起,並回傳 "LED ON" 的訊息;當接收到字元 'f' 時,LED 會熄滅,並回傳 "LED OFF" 的訊息。如果接收到其他字元,則回傳 "Invalid command" 的訊息。

    +

    透過這種方式,我們可以使用 UART 發送簡單的指令來控制 RP2040 上的 LED,實現遠端控制的功能。

    + + \ No newline at end of file diff --git a/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html b/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html new file mode 100644 index 000000000..c8387896f --- /dev/null +++ b/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html @@ -0,0 +1,109 @@ + + + + + +Desarrollo de comunicación CDC con STM32CubeMX | 🌵 El Jardín Secreto 🌵 + + + + + +

    Desarrollo de comunicación CDC con STM32CubeMX

    +

    Configuración de STM32CubeMX

    +
      +
    1. Habilitar el modo USB Device FS (Full Speed) en la pestaña de Pinout & Configuration.
    2. +
    3. Seleccionar el modo CDC (Communication Device Class) en la pestaña de USB Device.
    4. +
    5. Generar el código del proyecto.
    6. +
    +

    Implementación del código

    +

    En la función CDC_Receive_FS():

    +
      +
    1. Establecer el búfer de recepción USB utilizando USBD_CDC_SetRxBuffer().
    2. +
    3. Llamar a USBD_CDC_ReceivePacket() para indicar que el dispositivo está listo para recibir más datos.
    4. +
    5. Si se desea enviar los datos recibidos de vuelta al host, llamar a CDC_Transmit_FS().
    6. +
    7. Retornar USBD_OK para indicar que los datos han sido procesados.
    8. +
    +

    En la función CDC_Transmit_FS():

    +
      +
    1. Verificar el estado del búfer de transmisión USB (hcdc->TxState).
    2. +
    3. Establecer el búfer de transmisión USB utilizando USBD_CDC_SetTxBuffer().
    4. +
    5. Llamar a USBD_CDC_TransmitPacket() para enviar los datos.
    6. +
    7. Retornar el resultado de la transmisión.
    8. +
    +

    Habilitación de interrupciones

    +
      +
    1. Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX.
    2. +
    3. Implementar las funciones de callback de recepción y transmisión USB, como USBD_CDC_DataReceived_FS() y USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Procesamiento de datos

    +
      +
    1. En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar.
    2. +
    3. Utilizar las funciones CDC_Receive_FS() y CDC_Transmit_FS() para gestionar la recepción y transmisión de datos.
    4. +
    +

    CDC Development with STM32CubeMX

    +

    STM32CubeMX Configuration

    +
      +
    1. Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab.
    2. +
    3. Select CDC (Communication Device Class) mode in the USB Device tab.
    4. +
    5. Generate the project code.
    6. +
    +

    Code Implementation

    +

    In the CDC_Receive_FS() function:

    +
      +
    1. Set the USB receive buffer using USBD_CDC_SetRxBuffer().
    2. +
    3. Call USBD_CDC_ReceivePacket() to indicate the device is ready to receive more data.
    4. +
    5. If you want to send the received data back to the host, call CDC_Transmit_FS().
    6. +
    7. Return USBD_OK to indicate the data has been processed.
    8. +
    +

    In the CDC_Transmit_FS() function:

    +
      +
    1. Verify the state of the USB transmit buffer (hcdc->TxState).
    2. +
    3. Set the USB transmit buffer using USBD_CDC_SetTxBuffer().
    4. +
    5. Call USBD_CDC_TransmitPacket() to send the data.
    6. +
    7. Return the result of the transmission.
    8. +
    +

    Interrupt Enablement

    +
      +
    1. Enable the USB interrupts in the project generated by STM32CubeMX.
    2. +
    3. Implement the USB receive and transmit callback functions, such as USBD_CDC_DataReceived_FS() and USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Data Processing

    +
      +
    1. In the callback functions, process the received data and prepare the data to be sent.
    2. +
    3. Use the CDC_Receive_FS() and CDC_Transmit_FS() functions to manage the data reception and transmission.
    4. +
    +

    使用 STM32CubeMX 開發 CDC 通訊

    +

    STM32CubeMX 設定

    +
      +
    1. 在 Pinout & Configuration 標籤中啟用 USB Device FS (Full Speed) 模式。
    2. +
    3. 在 USB Device 標籤中選擇 CDC (Communication Device Class) 模式。
    4. +
    5. 產生專案程式碼。
    6. +
    +

    程式碼實作

    +

    CDC_Receive_FS() 函數中:

    +
      +
    1. 使用 USBD_CDC_SetRxBuffer() 設定接收緩衝區。
    2. +
    3. 呼叫 USBD_CDC_ReceivePacket() 表示設備已準備好接收更多資料。
    4. +
    5. 如果需要將收到的資料回傳至主機, 呼叫 CDC_Transmit_FS()
    6. +
    7. 返回 USBD_OK 表示資料已處理完成。
    8. +
    +

    CDC_Transmit_FS() 函數中:

    +
      +
    1. 檢查傳輸緩衝區的狀態 (hcdc->TxState)。
    2. +
    3. 使用 USBD_CDC_SetTxBuffer() 設定傳輸緩衝區。
    4. +
    5. 呼叫 USBD_CDC_TransmitPacket() 傳送資料。
    6. +
    7. 返回傳輸結果。
    8. +
    +

    中斷啟用

    +
      +
    1. 在 STM32CubeMX 產生的專案中啟用 USB 中斷。
    2. +
    3. 實作接收和傳輸的回呼函數, 如 USBD_CDC_DataReceived_FS()USBD_CDC_TransmitCplt_FS()
    4. +
    +

    資料處理

    +
      +
    1. 在回呼函數中處理接收到的資料, 並準備要傳送的資料。
    2. +
    3. 使用 CDC_Receive_FS()CDC_Transmit_FS() 函數管理資料的接收和傳輸。
    4. +
    + + \ No newline at end of file diff --git a/en/sitemap.xml b/en/sitemap.xml new file mode 100644 index 000000000..bb57eb11e --- /dev/null +++ b/en/sitemap.xml @@ -0,0 +1 @@ +https://me.w0x7ce.eu/en/blogweekly0.5https://me.w0x7ce.eu/en/blog/archiveweekly0.5https://me.w0x7ce.eu/en/blog/Docker-Getting-Srart-01weekly0.5https://me.w0x7ce.eu/en/blog/first-blog-postweekly0.5https://me.w0x7ce.eu/en/blog/tagsweekly0.5https://me.w0x7ce.eu/en/blog/tags/dockerweekly0.5https://me.w0x7ce.eu/en/blog/tags/docusaurusweekly0.5https://me.w0x7ce.eu/en/blog/tags/holaweekly0.5https://me.w0x7ce.eu/en/blog/tags/linuxweekly0.5https://me.w0x7ce.eu/en/blog/tags/miscweekly0.5https://me.w0x7ce.eu/en/blog/tags/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92weekly0.5https://me.w0x7ce.eu/en/blog/tags/%E8%BB%9F%E4%BB%B6weekly0.5https://me.w0x7ce.eu/en/index.zh-hkweekly0.5https://me.w0x7ce.eu/en/markdown-pageweekly0.5https://me.w0x7ce.eu/en/weekly0.5https://me.w0x7ce.eu/en/tagsweekly0.5https://me.w0x7ce.eu/en/tags/alarmweekly0.5https://me.w0x7ce.eu/en/tags/cdcweekly0.5https://me.w0x7ce.eu/en/tags/embedded-systemsweekly0.5https://me.w0x7ce.eu/en/tags/interruptsweekly0.5https://me.w0x7ce.eu/en/tags/led-controlweekly0.5https://me.w0x7ce.eu/en/tags/pioweekly0.5https://me.w0x7ce.eu/en/tags/pwmweekly0.5https://me.w0x7ce.eu/en/tags/raspberry-pi-picoweekly0.5https://me.w0x7ce.eu/en/tags/resource-managementweekly0.5https://me.w0x7ce.eu/en/tags/rp-2040weekly0.5https://me.w0x7ce.eu/en/tags/serial-communicationweekly0.5https://me.w0x7ce.eu/en/tags/state-machine-optimizationweekly0.5https://me.w0x7ce.eu/en/tags/stm-32weekly0.5https://me.w0x7ce.eu/en/tags/timerweekly0.5https://me.w0x7ce.eu/en/tags/uartweekly0.5https://me.w0x7ce.eu/en/tags/usbweekly0.5https://me.w0x7ce.eu/en/introweekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040weekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/mastering-pio-programming-rp2040weekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/pio-uart-implementation-rp2040weekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/rp2040-pwm-usage-and-examplesweekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/rp2040-timer-and-alarm-usageweekly0.5https://me.w0x7ce.eu/en/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usageweekly0.5https://me.w0x7ce.eu/en/micro-controladores/STM32/desarrollo-cdc-stm32cubemxweekly0.5https://me.w0x7ce.eu/en/tutorialweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/congratulationsweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/create-a-blog-postweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/create-a-documentweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/create-a-pageweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/deploy-your-siteweekly0.5https://me.w0x7ce.eu/en/tutorial-basics/markdown-featuresweekly0.5https://me.w0x7ce.eu/en/tutorial-extras/manage-docs-versionsweekly0.5https://me.w0x7ce.eu/en/tutorial-extras/translate-your-siteweekly0.5 \ No newline at end of file diff --git a/en/tags/alarm/index.html b/en/tags/alarm/index.html new file mode 100644 index 000000000..b2a13d5d0 --- /dev/null +++ b/en/tags/alarm/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "alarm" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "alarm"

    View All Tags

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/en/tags/cdc/index.html b/en/tags/cdc/index.html new file mode 100644 index 000000000..eccaa4eca --- /dev/null +++ b/en/tags/cdc/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "cdc" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/tags/embedded-systems/index.html b/en/tags/embedded-systems/index.html new file mode 100644 index 000000000..5184f60cb --- /dev/null +++ b/en/tags/embedded-systems/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "embedded systems" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 docs tagged with "embedded systems"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/index.html b/en/tags/index.html new file mode 100644 index 000000000..9def63e6f --- /dev/null +++ b/en/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Tags | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/tags/interrupts/index.html b/en/tags/interrupts/index.html new file mode 100644 index 000000000..0e54c3b2f --- /dev/null +++ b/en/tags/interrupts/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "interrupts" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "interrupts"

    View All Tags

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/led-control/index.html b/en/tags/led-control/index.html new file mode 100644 index 000000000..3b0d15451 --- /dev/null +++ b/en/tags/led-control/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "LED Control" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "LED Control"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/en/tags/pio/index.html b/en/tags/pio/index.html new file mode 100644 index 000000000..49568ed54 --- /dev/null +++ b/en/tags/pio/index.html @@ -0,0 +1,14 @@ + + + + + +3 docs tagged with "PIO" | 🌵 El Jardín Secreto 🌵 + + + + + +

    3 docs tagged with "PIO"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/en/tags/pwm/index.html b/en/tags/pwm/index.html new file mode 100644 index 000000000..37a29af79 --- /dev/null +++ b/en/tags/pwm/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "PWM" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "PWM"

    View All Tags

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    + + \ No newline at end of file diff --git a/en/tags/raspberry-pi-pico/index.html b/en/tags/raspberry-pi-pico/index.html new file mode 100644 index 000000000..6a50015b2 --- /dev/null +++ b/en/tags/raspberry-pi-pico/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "Raspberry Pi Pico" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 docs tagged with "Raspberry Pi Pico"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/resource-management/index.html b/en/tags/resource-management/index.html new file mode 100644 index 000000000..8b311fc55 --- /dev/null +++ b/en/tags/resource-management/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "Resource Management" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "Resource Management"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/en/tags/rp-2040/index.html b/en/tags/rp-2040/index.html new file mode 100644 index 000000000..c13294cf8 --- /dev/null +++ b/en/tags/rp-2040/index.html @@ -0,0 +1,14 @@ + + + + + +6 docs tagged with "RP2040" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 docs tagged with "RP2040"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/serial-communication/index.html b/en/tags/serial-communication/index.html new file mode 100644 index 000000000..e3cd6c551 --- /dev/null +++ b/en/tags/serial-communication/index.html @@ -0,0 +1,14 @@ + + + + + +2 docs tagged with "serial communication" | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 docs tagged with "serial communication"

    View All Tags

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/state-machine-optimization/index.html b/en/tags/state-machine-optimization/index.html new file mode 100644 index 000000000..1dae45a4d --- /dev/null +++ b/en/tags/state-machine-optimization/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "state machine optimization" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "state machine optimization"

    View All Tags

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/en/tags/stm-32/index.html b/en/tags/stm-32/index.html new file mode 100644 index 000000000..f7e81dda9 --- /dev/null +++ b/en/tags/stm-32/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "stm32" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/tags/timer/index.html b/en/tags/timer/index.html new file mode 100644 index 000000000..86b030139 --- /dev/null +++ b/en/tags/timer/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "timer" | 🌵 El Jardín Secreto 🌵 + + + + + +

    One doc tagged with "timer"

    View All Tags

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/en/tags/uart/index.html b/en/tags/uart/index.html new file mode 100644 index 000000000..8eadfb2ad --- /dev/null +++ b/en/tags/uart/index.html @@ -0,0 +1,14 @@ + + + + + +2 docs tagged with "UART" | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 docs tagged with "UART"

    View All Tags

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/en/tags/usb/index.html b/en/tags/usb/index.html new file mode 100644 index 000000000..ecaebaa9a --- /dev/null +++ b/en/tags/usb/index.html @@ -0,0 +1,14 @@ + + + + + +One doc tagged with "usb" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/en/tutorial-basics/congratulations/index.html b/en/tutorial-basics/congratulations/index.html new file mode 100644 index 000000000..d9891d5cc --- /dev/null +++ b/en/tutorial-basics/congratulations/index.html @@ -0,0 +1,28 @@ + + + + + +Congratulations! | 🌵 El Jardín Secreto 🌵 + + + + + +

    Congratulations!

    +

    You have just learned the basics of Docusaurus and made some changes to the initial template.

    +

    Docusaurus has much more to offer!

    +

    Have 5 more minutes? Take a look at versioning and i18n.

    +

    Anything unclear or buggy in this tutorial? Please report it!

    +

    What's next?

    +
    + + \ No newline at end of file diff --git a/en/tutorial-basics/create-a-blog-post/index.html b/en/tutorial-basics/create-a-blog-post/index.html new file mode 100644 index 000000000..0aa775588 --- /dev/null +++ b/en/tutorial-basics/create-a-blog-post/index.html @@ -0,0 +1,19 @@ + + + + + +Create a Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Blog Post

    +

    Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...

    +

    Create your first Post

    +

    Create a file at blog/2021-02-28-greetings.md:

    +
    blog/2021-02-28-greetings.md
    ---
    slug: greetings
    title: Greetings!
    authors:
    - name: Joel Marcey
    title: Co-creator of Docusaurus 1
    url: https://github.com/JoelMarcey
    image_url: https://github.com/JoelMarcey.png
    - name: Sébastien Lorber
    title: Docusaurus maintainer
    url: https://sebastienlorber.com
    image_url: https://github.com/slorber.png
    tags: [greetings]
    ---

    Congratulations, you have made your first post!

    Feel free to play around and edit this post as much as you like.
    +

    A new blog post is now available at http://localhost:3000/blog/greetings.

    + + \ No newline at end of file diff --git a/en/tutorial-basics/create-a-document/index.html b/en/tutorial-basics/create-a-document/index.html new file mode 100644 index 000000000..1eaff28e1 --- /dev/null +++ b/en/tutorial-basics/create-a-document/index.html @@ -0,0 +1,30 @@ + + + + + +Create a Document | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Document

    +

    Documents are groups of pages connected through:

    +
      +
    • a sidebar
    • +
    • previous/next navigation
    • +
    • versioning
    • +
    +

    Create your first Doc

    +

    Create a Markdown file at docs/hello.md:

    +
    docs/hello.md
    # Hello

    This is my **first Docusaurus document**!
    +

    A new document is now available at http://localhost:3000/docs/hello.

    +

    Configure the Sidebar

    +

    Docusaurus automatically creates a sidebar from the docs folder.

    +

    Add metadata to customize the sidebar label and position:

    +
    docs/hello.md
    ---
    sidebar_label: 'Hi!'
    sidebar_position: 3
    ---

    # Hello

    This is my **first Docusaurus document**!
    +

    It is also possible to create your sidebar explicitly in sidebars.js:

    +
    sidebars.js
    export default {
    tutorialSidebar: [
    'intro',
    'hello',
    {
    type: 'category',
    label: 'Tutorial',
    items: ['tutorial-basics/create-a-document'],
    },
    ],
    };
    + + \ No newline at end of file diff --git a/en/tutorial-basics/create-a-page/index.html b/en/tutorial-basics/create-a-page/index.html new file mode 100644 index 000000000..e1ee2541a --- /dev/null +++ b/en/tutorial-basics/create-a-page/index.html @@ -0,0 +1,28 @@ + + + + + +Create a Page | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Page

    +

    Add Markdown or React files to src/pages to create a standalone page:

    +
      +
    • src/pages/index.jslocalhost:3000/
    • +
    • src/pages/foo.mdlocalhost:3000/foo
    • +
    • src/pages/foo/bar.jslocalhost:3000/foo/bar
    • +
    +

    Create your first React Page

    +

    Create a file at src/pages/my-react-page.js:

    +
    src/pages/my-react-page.js
    import React from 'react';
    import Layout from '@theme/Layout';

    export default function MyReactPage() {
    return (
    <Layout>
    <h1>My React page</h1>
    <p>This is a React page</p>
    </Layout>
    );
    }
    +

    A new page is now available at http://localhost:3000/my-react-page.

    +

    Create your first Markdown Page

    +

    Create a file at src/pages/my-markdown-page.md:

    +
    src/pages/my-markdown-page.md
    # My Markdown page

    This is a Markdown page
    +

    A new page is now available at http://localhost:3000/my-markdown-page.

    + + \ No newline at end of file diff --git a/en/tutorial-basics/deploy-your-site/index.html b/en/tutorial-basics/deploy-your-site/index.html new file mode 100644 index 000000000..5741b72ac --- /dev/null +++ b/en/tutorial-basics/deploy-your-site/index.html @@ -0,0 +1,25 @@ + + + + + +Deploy your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Deploy your site

    +

    Docusaurus is a static-site-generator (also called Jamstack).

    +

    It builds your site as simple static HTML, JavaScript and CSS files.

    +

    Build your site

    +

    Build your site for production:

    +
    npm run build
    +

    The static files are generated in the build folder.

    +

    Deploy your site

    +

    Test your production build locally:

    +
    npm run serve
    +

    The build folder is now served at http://localhost:3000/.

    +

    You can now deploy the build folder almost anywhere easily, for free or very small cost (read the Deployment Guide).

    + + \ No newline at end of file diff --git a/en/tutorial-basics/markdown-features/index.html b/en/tutorial-basics/markdown-features/index.html new file mode 100644 index 000000000..f7e281699 --- /dev/null +++ b/en/tutorial-basics/markdown-features/index.html @@ -0,0 +1,45 @@ + + + + + +Markdown Features | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown Features

    +

    Docusaurus supports Markdown and a few additional features.

    +

    Front Matter

    +

    Markdown documents have metadata at the top called Front Matter:

    +
    my-doc.md
    ---
    id: my-doc-id
    title: My document title
    description: My document description
    slug: /my-custom-url
    ---

    ## Markdown heading

    Markdown text with [links](./hello.md)
    + +

    Regular Markdown links are supported, using url paths or relative file paths.

    +
    Let's see how to [Create a page](/create-a-page).
    +
    Let's see how to [Create a page](./create-a-page.md).
    +

    Result: Let's see how to Create a page.

    +

    Images

    +

    Regular Markdown images are supported.

    +

    You can use absolute paths to reference images in the static directory (static/img/docusaurus.png):

    +
    ![Docusaurus logo](/img/docusaurus.png)
    +

    Docusaurus logo

    +

    You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:

    +
    ![Docusaurus logo](./img/docusaurus.png)
    +

    Code Blocks

    +

    Markdown code blocks are supported with Syntax highlighting.

    +
    ```jsx title="src/components/HelloDocusaurus.js"
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    ```
    +
    src/components/HelloDocusaurus.js
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    +

    Admonitions

    +

    Docusaurus has a special syntax to create admonitions and callouts:

    +
    :::tip[My tip]

    Use this awesome feature option

    :::

    :::danger[Take care]

    This action is dangerous

    :::
    +
    My tip

    Use this awesome feature option

    +
    Take care

    This action is dangerous

    +

    MDX and React Components

    +

    MDX can make your documentation more interactive and allows using any React components inside Markdown:

    +
    export const Highlight = ({children, color}) => (
    <span
    style={{
    backgroundColor: color,
    borderRadius: '20px',
    color: '#fff',
    padding: '10px',
    cursor: 'pointer',
    }}
    onClick={() => {
    alert(`You clicked the color ${color} with label ${children}`)
    }}>
    {children}
    </span>
    );

    This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !

    This is <Highlight color="#1877F2">Facebook blue</Highlight> !
    + +

    This is Docusaurus green !

    +

    This is Facebook blue !

    + + \ No newline at end of file diff --git a/en/tutorial-extras/manage-docs-versions/index.html b/en/tutorial-extras/manage-docs-versions/index.html new file mode 100644 index 000000000..d89b4ca7c --- /dev/null +++ b/en/tutorial-extras/manage-docs-versions/index.html @@ -0,0 +1,36 @@ + + + + + +Manage Docs Versions | 🌵 El Jardín Secreto 🌵 + + + + + +

    Manage Docs Versions

    +

    Docusaurus can manage multiple versions of your docs.

    +

    Create a docs version

    +

    Release a version 1.0 of your project:

    +
    npm run docusaurus docs:version 1.0
    +

    The docs folder is copied into versioned_docs/version-1.0 and versions.json is created.

    +

    Your docs now have 2 versions:

    +
      +
    • 1.0 at http://localhost:3000/docs/ for the version 1.0 docs
    • +
    • current at http://localhost:3000/docs/next/ for the upcoming, unreleased docs
    • +
    +

    Add a Version Dropdown

    +

    To navigate seamlessly across versions, add a version dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'docsVersionDropdown',
    },
    ],
    },
    },
    };
    +

    The docs version dropdown appears in your navbar:

    +

    Docs Version Dropdown

    +

    Update an existing version

    +

    It is possible to edit versioned docs in their respective folder:

    +
      +
    • versioned_docs/version-1.0/hello.md updates http://localhost:3000/docs/hello
    • +
    • docs/hello.md updates http://localhost:3000/docs/next/hello
    • +
    + + \ No newline at end of file diff --git a/en/tutorial-extras/translate-your-site/index.html b/en/tutorial-extras/translate-your-site/index.html new file mode 100644 index 000000000..c15d4200c --- /dev/null +++ b/en/tutorial-extras/translate-your-site/index.html @@ -0,0 +1,38 @@ + + + + + +Translate your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Translate your site

    +

    Let's translate docs/intro.md to French.

    +

    Configure i18n

    +

    Modify docusaurus.config.js to add support for the fr locale:

    +
    docusaurus.config.js
    export default {
    i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr'],
    },
    };
    +

    Translate a doc

    +

    Copy the docs/intro.md file to the i18n/fr folder:

    +
    mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/

    cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
    +

    Translate i18n/fr/docusaurus-plugin-content-docs/current/intro.md in French.

    +

    Start your localized site

    +

    Start your site on the French locale:

    +
    npm run start -- --locale fr
    +

    Your localized site is accessible at http://localhost:3000/fr/ and the Getting Started page is translated.

    +
    caution

    In development, you can only use one locale at a time.

    +

    Add a Locale Dropdown

    +

    To navigate seamlessly across languages, add a locale dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'localeDropdown',
    },
    ],
    },
    },
    };
    +

    The locale dropdown now appears in your navbar:

    +

    Locale Dropdown

    +

    Build your localized site

    +

    Build your site for a specific locale:

    +
    npm run build -- --locale fr
    +

    Or build your site to include all the locales at once:

    +
    npm run build
    + + \ No newline at end of file diff --git a/en/tutorial/index.html b/en/tutorial/index.html new file mode 100644 index 000000000..c735a8032 --- /dev/null +++ b/en/tutorial/index.html @@ -0,0 +1,16 @@ + + + + + +Tutorial | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/img/docusaurus-social-card.jpg b/img/docusaurus-social-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffcb448210e1a456cb3588ae8b396a597501f187 GIT binary patch literal 55746 zcmbq(by$^M)9+14OPA6h5)#tgAkrW$rF5rshja^@6p-$cZlt9Iq*J;!NH?5&>+^i? zd%l0pA7}Qy_I1b1tTi)h&HByS>tW_$1;CblCG!e^g989K@B=)|13|!}zl4PJ2n7Wh z1qB@q6%`E~2jemL!Fh^}hYfz85|I!R5RwovP?C~TGO*Io(y{V!aPUb>O6%!)!~Op% zc=!h3pup!KRwBSr0q{6*2sm&L-2e})oA3y5u+IKNa7f6Ak5CX$;b9M9ul{`jn)3(= z0TCG<li6i8=o)3kSrx^3DjJi7W8(8t_%PJ~8lVjC z2VTPD&_&_>060+qq1c&?u#iAbP9wbT2jg5_aX>LlOOXw|dQJ8p&2XYYDc|J+YUT?3|Fxm{f?d*1vFWPGwXt8P3T#_TQB*NSP3+0+ndOe%v- zTZotCfofsS06&ki{<`Cj8{s5jFZc&1dl<{IBW%#V_!JjOm6+#&aRi;8ODL(?0fENIOtiNXjMhdO24CeDB#rNcC*<=TwpueFfx=2=r z-lt`qW^;vEFji%7kO25#YkwjKyZ93WFbbY!Q6-@Jz!9kqj>xgp2VhEYyMJwMYyHZV zG;7!MV>54LS*F?==$6(Z9S zfrEy``J-iu6G?#+q=$58MlrE}+C~G-hEMn#CuNuuVV;8#FHuD_feqmtfw~Ran|V#C zy+f^&q>|d(X{ubCVWs3Ai;Fz>-kAk`yX{^Qj_xV#NEV8oxtfCsq3%uYN0U4+Kcu%j z?Rzr+fnu%QVSgx7Z8;iqDfklVK3tl(C|B5~_ywyQf&|IJgyoV|q( z<1`6^2G=2%pTX$m#~!Q-7f>sA;n6 zsy{fJ>o;yxpRCMtZFb#E)dl;n&K%g;H?#HaC_HvnHuqN*d+9vB7ZNpfqqTsk*(((>8<~)=+HX!*Ss3~|# zShAf@XL@`g)$G$rAA9cU; zk+0v$7Rl=PDs_rN&*@^DQ<3}LIqeDu_8cvBZoZQK#xaB*@qDhG^d_fYSBG@Y_wC5B zy{FTF=4jI`H0PRGXlulcwJ$*KBs^);$y@AfTWB!przp%+gn+%ZU2qD$Eml|2m?K;y zsAx49(J!Aq5lqX4u5Rlh{1hD6V?uI0-0}%=eSBZT$;aWCJrM*G=&(~P~7QxUJFlHF+63{SfFhWU%gt&D(4Z~X54CH?JsJEHzO9{;5# z5f-P_*$Y>=CXYL(i4Vw1)$Y&DwihU}jeLyuS2hQ>zS%^7!rET)y)?ZI;W^c(neZ5; zcYHr@l=i48ImXZ(y)o<7>Av^Nw!8t!KDn{67gef*G5f-&iZ;`G@ej`@uBTkn0_QVc zw|RGr%!y|LdrjWk$H6iyi9+o%)D%pY)DHt@e}~ z-ryeSdskl$jkA%Gje(z=CvGUb4lqb$@>K02q8; zBpGv48m)G3Jz8nD`*7z;ch+s~JId9q{~KmJV4qG#VyhtwGh1U7ZW~XgF&CHVcfjI@4|IAMzt7B{D4ttmRhW76WO-cP6HX>7cPSIon_Pic=YB^cwH;qqm2b=+@OjfH55;lLt@>%R&7MejNBW98rLJXZZQtF zmm<7wrV(U^X%O}rZp($;Nb;(nTO##-Fk_K%y2c4)Yt?EsKDLVz&SyIxmRvPYUf)~A zkMkfE4X%Dz8*f>*I$-5J)wLSdUUaV&xP%U!WXidR7*F!E3|fu1supvKyq>T*84`M& z=Dt)zp4h*&a^3bbAWSy|{$~mRt znU?J9X@W)z1+)2SKH;RDEk{C{F~PxzePOC4k2I22=OxAKZEhYTo#jZLnzJRvL-#I` z%_%U{YhbA5LxSuc7mb|<#t0l8BZHy-cvj?r(|M5YOMU0wJ}PLj6z+91PP@u~sUN(0 zoPkUiqj+}m^;#5WI-p1sl3!d`><`0$1U4*Tus{#@{oJ~C_^ll&fIY{RWHLB)Iw~-5 z_trhoc*;Xx|5u&|7Q=~%>SU9dJXt>XnSP z$}G4aR=bB#EC~i5U_z8$Olb|B1Ec2J6a`$P64P%*8UxnscnAmYxki;vGRSH!M<=El z7AwT}?l;S3Ju)fk9NDaW<~K*9J6DCaimLP@Zry38*StONeVaYg4GMSV1sb;$0#63E znXJh6$=|17p)3iget{zQI-ZcSA4kztpbVusXh9 z97)P(^GVx?9}T_w+?VG}Hu2dxs!PdI;c!Skm{8crbnUpgGsmO6Y~0f~`3af#=;}JO zs+>jl(}Ww@TF9nIIp*io9|Ar+SXKeoJ2p0xqq^dDIUaz_3UMRe!*?g>RKH02EKY^8E=Ov%mKqCKc_O8|58B$F z2nPy$8uP`nq5-GE>)_IseB*$*+;W_EcowmS_|Q%w=6aW(&AB z%OtxG-1&Xrq>E%{bjzK4kBw z>Fssz$u`@4(H4(yPd(wlj>oT~6v>IV?P zZDj-meBV3Xh&lOz7Q@p@Wg;VMtEtz0tWmBTlY%+n#pR{sF{)xA5u*BuDd zu~BvH^44yI-2poCTSulFIMHH|6$HIN2!U|l513rs>o5b7&T060H4stH!Rj6uhJ>*c z|EXULN z@Ms{ehhc57nJbz5tP(eS6gqwNx4;1P!wL~Xzd!0hhz^)}wUrh90P!E%NrcHnd5moayrW^mwAO&F9eVphr}#sl@u5#&@cZG3Pef_5ki2d4No`s`w>3E)~NzQq~(%!wQ~iX zS=!>QgW*;6d%-30eCYi-s{}L5+4xRvjRMVc-|_!cJZOOW|D`V>G$9BAul9zT%D`1W z9M}_f^IBfCT+$nV07$(ZMgM6Q>awY7HarX62K->7rWiZ>Plf%@Tc$X)SUE~YSzKHO zOo@t904vq~)2~8z9N~Y(5ghjQaweijSq9}$13ISo#S19Gyn+S8<}IqydMB*M2Fv(F;m*Z^NjCKA@hf(byh~F_Wz8Y|LB9G zj>CREj|u0+^+~|!q^Z4wYAm~DH8vU0K5hJLx;^WW) zn1WdmfwUxh0&F)Ge zJJ$CZ;Gif2pJe@g3jR{7X$9eG;iwp*gh^4;#?q$usU`sYWi;VGk9zUsuxLCqS?i4> zU*!nKB+RzHh&TF;OaYU1boXkFHseTZ9^7*ClUf6WeOAm2`Zgc?XVxs@; z3fyjS*rbEGB3x27NK$sQDLqTsoYX+=I47hKrjQhxw>;|F(o#M)1Zs3=vHf+{4*=lU zQU(~L2n)P!C zOzn-%j;-zdo*A78MJ(b}aNl*Pd%bH4<%$K3cP@a%?zXvnXr7tnRf8PyxM=h2%x6XV zGm+MfF#t#t=FVq6y^o&};nl4gZ1=OgS0W6oT4??aAn_EswVeD=G?0*F3Ky5X?YMg! z*>m;`U68Bw-j3*NS)Xv59AyM$#IrAaBLy!3%T~RztCkOyD`0Oh)~c45m`f(fWkn+8 zFDQ?ehB?iesKfXr>kR(d+^nK;|$bJ0BgK9l#= zSZkY0hNH`T%pTpu&S<)sN$BmKep32<*GjviX5<~dm2S)BRn}Za<=11?iR0CbzUy=Y zs!S!r=YBKN!Hvrz2HB~apVp)gQ@jZ_C@MZHwF>*RQt`RvqEl`)rFXy;*9O;aJ^+IS zAuxBFkwxDhrD+zs6}YE;!WWE7N;x=xxy(hv8tOrT%;~evWtP_;i-tw#{=|s|_1gD} z+$ZPC>;C15y?f=k!B)}XV?@W+W5Jl7E#au2n|eXFYo52!7iV_nr>%rHTLnmp5t__ zeQ~n3Y!)Mwq>pgU`A+DOtI(5{uM`!T&#y7{XqPhrZyx}q50{b`55VTpH9@&go43WC zqZc?IJ_ikEfm4 zqiap;*teY3XjF&M`E)w#v0j2fK8>&^=3ARl7X5?sL7($cGUyT(&GjZ}T7K}UWUq6o zgZIm=(`C|a=eg_1ZeQ8aAv^V`3$rbeo%f|J-#teM&do=aJ4+|bCGzXl53;$~hV*A0ZA5ycpm&br> z1s-woGI3ag*H2HL@1`7`+#zk!nQo^`L}FmXBF9_OVvslb3Qd{^lg7NlT6j-eh)ldq zIsckeM z_udDHz~0vrwpZ3KkTG;-vI!dRfSCp$d>Y)?cj8N5Tr%KDYlI~&_w+W~Esn4I>jEK8 zFVT=y$0H**Z{;PZsC?US7QBb(=tZKtCHDjvqV8L^j>>H?^4A4kTvR^*B7Ecb4?qFk z;I3A-%I#4)i|WCd)!jLZw1itTxsZ$F`MsNa(gzoB&z!Z262^le=~~4I&U`Eb`C+z^ z-VqlxQ;MGC=e90n>dE>aoHV5TkqviF0s?l+z${VoH%t8KFvbH=8^6e$^AlVGU~39o z`MtfitBvEM13&NqqE=`^fHwS_HEw#UDbHmBR+1A|sO+c44k$ zHR9{S!q-(m1a+=}nRGQkrWg-S#Cg;_7%!4Ry2VnE5r>E(^0Gl4^r-P`1z2qO@^9(pRjEp!;DAe7B)FZP$pa4?IWYcn*v>YZ(G2ETw zy|C4)s}8H`Ddud6ogaW9O%*z&O_X=V^6P+mS%uG2EcbTZmk$RT3*(0o4D%(Ts3kn3 zR^3eYF*}KjX-S8m()tqnj4;!Sp!Ho z(7&2M@h1HM;%Et+(u{~Toh0sg@7K`vuJ8O(-mWug9HRvjKP2RmGqWQF%DK(bM_*a0 z>f3#KhBt~#=bL&FWEC}JiXdh?Q9fn5e)7$+{?1Bdf8>;*vDW!BMGjU0?$JBadm(AQ zHAmi$WF|HJ@r5-F$f^VPE+X>suAfbT1DUvi%}6k2#y?ZFyltx!?p zAr?D|oG4gh_c+U9sb>u3LP&?IzmiCo$x4%SP!Q8Q(jEtG(-GPNIhRV_K5L z7Q77k6Jdl2*V9zOs=X@?=vUZ(27Ngc&%L;RjmxGl273=|7++0XC*K z9Zp<^Y~Pm)w3D*jwEo<^OkS4Y<#>lqUb=O)W%Fa5t!Yi<%z$TRIO#_Z7Q3QZ2H5BD@(x_63h;Y($5taTf_%0;ZvK_v)P3}%^YaRF4ri60UEoVB z9tvN{)Jtntfs9Z(yp!blwx06#5$P9W8ouO?r4Ila4@;@S!F4qL>h!`rvxwm8$-&c` zq^<(9nR=GK@B4e0qjX45ZoSs3?|jeZ@13@KMK0R)%1IlSsLp0DH)BFK20FoEM2kwW zSasI{O!BwCJ+a#u@A3ot$06uqU?n&`1G^@J*u|t@Fqwmwe+Wf0fpg%{_PCq6A2+)j z2hE=ehK9p~efCY}}Fj~mMr1Qr~qOdueZ6a_2SDwHZ*lG#r|D%`UFa~RYpuWgUN;*|PxsXBBeqTj`RJnU2 z9PE7zrU|}#_j#k%TQeT63k<&b?|z^RNGOSfltB4MjA|mxqLrdoZ?;jS1BSRxcR{3 z&%l5U(~v7ESy(7pNhyb$1x}p^+*ny$*~6KoZMdfentT6QH1Dr`Dd@U^^%MTqyRNen zJ1b!yKUiiizxRn-n~&g}YvqM*{G%USoM1&>P*AuSldPnqET|FpU!M=af1wNq_3z-J zu56ng_&fk$SpR2Tg&VxTY(oJPP3gAh>wSjZ5#J1#nHbkU`Cof;dA1dQz?$+;E7aQf zK?$L1IL6d(9>vPMi+iISD+SJz*W!e)X$i&Pwc(XN-;gZPke+O!zgm29u4?v!xUP9C zcK48Y@K`NN;M7x{1@te z=@S`oF&M(3^!G8wji3Z4u|IZUp?p~QVc?q&l}!U>SAWC+@B3Q=M8Gx8SMIb+e*r+q z{Yg@g$}_Sz-mgRV1*RA!0Rj$rc-W8!5u7m!h@?;r;RvN(6Nx9m1}wb6UV=69pH!1u4ND1C3^0#GV9Vk5v%jLF1iBkM+~_oe#(k6e04;|1 zqVxcTK}B~<8@cW$rb+NWw4LZ7KVGkN-UHS;bD^cK+2-3`Rj^V98<9f`kPTuKt;S`5 z?|)V)15P$Dy~TG^p+BRJpbTIN2fb57!5|jT#s_X^pnNi>exLT+xuR}kI zLTF>DrKH5As1d;xUMq}JD`rE#xm<3PV^bKt~*|K(@>_s$+l6?PG9c;I$Y$I9Wx zA;xF_MZf_#OaTl`qJ^-80rMXYZnX;yHMnC5N`v2j=zq5Pz&RPG92*Z}aj95Z+R(pq z5>Xr9FJ8qsGy#`dMOy$X4%|!w<&^&whNI5zri}lV6#?4!$Ljbv_f0<2-3Nu?974eOh|NodBrc6s{g264H^#+vv zkI(-F!??JN@B<(iW`KcV-0ngu+-@)j;0A>UFo`kAQKI6|7gl5B1rI>b2tj!?@U%?! zpFY4#g}oL@l|*Hrm#l)1qwa_0RO)Vc;oKlpABihvuq26}r$$LgB-%uwqRxuRrpyG- z63Ji#aENg52nfiiNRQwVk-^yt-aSGBkWsL4aPbK7DcQKVMb!z2h+ndEs=YI%qUPWc zQ>IZ-)zB2Te@6Q%>$!xa)SLHy;OQb1@YE3;2Jiq}T8Nyd)7_1XLd)Qqf~l-gf<mu~bv_xL2)jRuX@t1;#}dEe+$KYBs8Ozc8vKSmQMe zW+znS+=sB{$!eWdtEK&;U{CqQ65Mz$g8{KO3091K?+PmZnxe)Uj z+Qa!s1zBptH)^y=Y^r;+YwUV(!nv}S<^CwP->`OJJ9$f5gUG$;btdeT%D1lTQVA%c1zi!li^! zRC4P;e}Vde23*`#o$}dkJ+39wA!C@gdHJNz_ROozn%~qZ35{gxr zfiN+FJmv8BeiZfN4}PZY+~4(EHI@`4GB%VeN^dL-nxv{!>bS=G=d1&YuW4g(RYo?9 z1bQp@-L75k9jgsahz$6&S+Al>N$6|(Uspyh?G^CV(>yb-uEMv?{QHK7y|JZHbV$py z%-C#HQ^wHzF5_m4mG%K(t4T}wM0ZA{r9PYV^B7{;x3r!Xhwb>CR?<2{=4)iW>-lFp zYAZW-ff6Srzcmf>ey26kFp~2&CwAle919+v=b#GbfQ_k(^GDH^U5h6Ij_hJl+$cY7 z`$l|J9)NY0%G=H3-AiTp4`ibZCebLFOx0X*^9LW5S-jM98V1l7TC$z>H_cy3Z}AyT z7cVLl@}RT$dt1%R4$rYgTUqZJB_<@D5gGBnLzk|&Ap3rHOWJjl)n=4BT|4ZgqT{Y# zt8otJt6vZPNdUZ->2VQc|t#}@1f$zuiGu7Z`2Eq_iUO7kLfvf z3+3l;rJH=!P82eCED=AEqW3F^^w0nBW|fbIo$+A)nzK!N%82P?SXGa`4vSNK00<2u zG?U_{jq8ikbd8p@c-wd;R3TJ+v(c9o9< z15te~^)#o6%yp?zaR-=9=hVgU2)|jpPHt`JGmCnIB+qepbmFikm>#nfBmU{7vA8^z zhTK~#rjjnUOtV*azuR=2pq%=qDo}!HCW$#qTWyAliZ8Xa(cAZ0uV^tvuLjr-#E|<6 zgACc9`oD!F+lpA=rLNEf$nCx{x6Vg$hB|ia>mt1(@zkT4(zdKQrNiynVbyP`+<(GC zZSyg_F+eKZ$i9krPDP!?9!-GQV7-#k7*{YGhxdf%D@)yd=P%=c?r60bP2qytty%-G zh7;7A?%TTQIkk;cPgbW*m6aq{m1>`^R}`Bmi$Y$X?QaEJ3_Auk*q^L1i~N3dGM6CL zP<_JeZDBHK(^_7!@i}$(_U*t}@%hy|H{~Q{;gP|bU)fn%xGdctI%`>elX|Q^@vKaK z!d+`Jp@j=)v%^wXH{7|-__X;}-BP#uIY3=_0IGNc zu~4o%m8|B~5EtZ$^}=3sv!lGEYU+H?Y3%_wM6P8#*6#HJvT!3ul#<{n9ja- zRGu5okTwJ1Zmk}BqcGi4_;~IURanbdr+P5iXG<{exUhhs+*pLQ^{jA#EZ#>o0{+2Mh|5& za#ugek0I`(zQL#5eLDARVY*Xa(DwdUqkel}vhN3?;f0iO-H(xqufvN&!zQI78i>uE z8>&m)ewHaoGgtXPku_dEb6PORWr~;1cC<+G5K=KBl%`A&gp6C>lB)v5Ri$FsN;P4>0AbJz7kC<~Dg6Mg7fXVHmZhEHpA*eA&u za?3ON*{!W8PYLPoTR+cR&PxuH$lp`AWkTjWWz)Zkn3TIiCEofih+Lm=9GE(9)!Yfc zt(H1<`s=^*222e=?7hC0lh4e7B}PtVI_{cAdxGNtdfZX}Ca>Ti9YS^NB6cCtzFtR} zgaj!>#THZKLuuFqeb58ou+VPMIV94Az9}?pq(nm5%Nr@`CDh7dQqUo_(1Ka~Jk;oawETtB8>b`mRyBtgh zO#hV*Tx!lPBM`YD{&wUnqnt2DkRmgRC{h$?KYyR zNy|HI%;HhKQrs~er!LN>c2+qWT)k%E+~E5H9eFKV;EhkieNbfqMTavz)YO`;;q)r^ zRKcAY}gLEwaGA zNB*t;%C<*Y+tgCdcJX-=MUjGgyz~ESiO9#&b61{-h<+|2 zO;mjRZ}0|pCLmN$E}rD#(9h}~)QpVO*=OQA z#Y%e{>N&D?0uC{dY5L(<8J1$SoXTWsj~6x5e9=~^#nEWa^lWqnid)H7wg`B&H>nuf zicIgRBoFD2ii?SfJ43AUH&TVFO^DDYcT;;?zvOP%hwr9IDk(8n^Rrc$KG_W$S^CCU zJn=ZugG;lxxPrOnJdw}Typ5n~t5&$I{si5!MLacZa-r_WCh{j~l7-Op=$9TV5idhN zglm&=R)0UNEvq|kz+%&#x}Q{2@c3ZLBldp!yX7N~c^eZPht|o%1isQe*+RisbVF_% zc)4$!;>pF);4JrP4@@UX#!&8hI;B{0l7;+j>*r10Q|es&1NFKQ)-tV2$Om$A@O-## zCLqC6viD-87K8StG^Ws5ct0&olMkYox>$?+Dv3O{NlG}G;g5QSmf4?q;BsuQo`^U|{x}>ACKXRkdd^tU`U+|LS znWy0^S2)LcB@0!EdDt(Vij$36^78r3tM}C?KI}e^X9-D}*M!iFT%zNr0Gf&Ck7!`A>(uLE(OdeRwb4qX3EiMVz=vWC3?2PE%-wA%a1ap0C zl~rRJyzSkY8Ag$Lm-Lq^*t1^}+zs%@8si;z!Aaw5c$|~Vez}RpL6m1>KPeiGJ-kE2 zbc5&X&fJgVtRw*RtiMc#4#s3H)KgHzHqg{R3E#R(bk3b8<&|L5d#($dxdtH$sL)Ko zW+BbDfPQKTs#e36Joca~N!pf`_Le7~Lv03)(7sml@e{h^6)?B<b% z4<^3n;sOFVdZ|+>M(^LPJA^2T?>N`FCB!o7f5xo^osCpJG~aJR*pRaJ`|hF>b2{X( z4aKEJ#QV2I?XR1|0J3}|ZH&ySn!Nm=`P+m<#hI$;xz?{pkF56P+%fUR#QbB?5vU@D z`>PliKDIXEyl0$1ZZC5zk$jU4dGg+)S}VQJ{2eA&|CmIoN#1+}`@$?!Mu3F2+9T02 ze0p5ot83?2=!y%bJ6DW(u9o4&WO$pZ4(odr6?FoB7XL4e)f!oeU;7hCto!x9u^3y2 z_p)OlA3aa{6K=F7$1_8Kool5Rz84;b!W+-X$m#2JgTdGR`~%<5^BB{h$tmHspv zRGNoo-aTFhEpL1CiLM*gJ|XE30ntfqZ6RW8RmFz7r7ZSdo2F`+dbIqX^P95F?^XML zEd;Je?~!LW2b^bUTSOUq6$IdZfuOEh#~DDY>}8&v?k$U}JNqeWBw+k5RaOv)s}jE= zQ}Q=>D-=P$ONyT$s*Ds6LSFrpWZV z9vm@*jijy=tPX3=aU<`d%SuI}+t_(ucyRkiyAE)B^U$L7DbCd`ZfC1GSJ8C#vU2#vSFtvhw(~TDanF;rn!a zWgH2WF*ekmAnI0Qm{vS{Le0(+uM5o()7|2IRkMwT_#?fPo-fNKuG}%_?WB5XSGAlb zor5}ub|f^JD<-m8x~AHfvW<5`F`lhl67hM38YaG)q~vy{D&^Yntrm?>4z^ZOsgY#Q z1rH+LbV>KeLE_&Mx4guoLMo);;h{zA@6Vg{<*=;A?ow0;2nhIdN=lYmb%EU~F+?HH zLaoso&FKfglw9l+vgl0wD}L>5CraD=W3%oYoYELRdWj9p+A0?Z!6LgiDg#Eu>Ssf0 z&g1y!IZG_R=3hb@lHbRp(1j)&W)S7%^q<5B2`lgE5Sih9hn&%pLfAg~&g4O!dAzEw zr6}!RX6}Ey-TL;=D!pNqHJX2g5o#)RC9PgCs$st=+TNbHeB0ziMr46BDXhn3@+9lb zakzM5tAy8y(qP%tE{ZSGapnb4Z^LN!*_y7=s>e||+mVpl^pnes7OO}vC4KH*VY&(u zBMQ9fD2JG^z22EVkkJ~(SO;UACk7d9{ug7_|C8~{@mt)aT#ZU+DQOUbF#6axF}^Fd zmhtBwd{#Y3lNT?|FIsK&gZ~-#n-Y__6Paff`W5$GI_?&4)>Y6wNn%X>=Sz?np7Qyo zZH9g7Vq#S+Wke2_L1>5intVG>$_RV=;j_%`e4O#OwWIFnFw^vf``;Nw$R9Y&G7L@Q zEpjyn?t&uTR?$ToG6e_w*elUbNC~oP3@8{6T6R7*{BS$ppthlyGy84Q%jeFbF-1n> zO)SGM6LD+T;r0urWn8w~gEyVb*0_W98_BXWEHC7aW9+`WLmR`7N+r~9=L(~xq$Jgb zc0`M~DlkIF1Q$x214|&HJK67p$TCg(T6J$4SH->xR%+&~^((0Nxq2lp^|OY^7-4i; zBL#gyG5+ECIpe3%Ik#hK5FP>?%G+Pa7_Z}b`G(asWH1;##`0)}=0g~DiAQ%12Cj5i z28T%p_C$R@L_1|{@r`H-3@utWDI40LfR4i!SA32m0qYI@45{@x~z)w#KlJvgXw}%|m zRo=DGsu9QXI-g+Tl7VIjr}mX;4fZ(YL6iQz z`lznb+}yW8^|YL;n26~KwXN#Dv2^Jf8J;RGE5MC0?77MSdMq!OZES zr@rC*vXhutbr*g#pI;TJ7-h(_N3>Ax$cW*Hvendxf#T2KHpKfFv0s*GVYIHa#ER76 zH)fn1{!z7-v31;4FFC;np`(vIh~mi%Kk6K0qRrbY_10$&xciNpno*F#wFH=MCWkdaFgK=U$FHh6#XJ6e393;9h_D1Zj72KeX!pg_>9E<8*a-g z^}Kf2k*_7=T(WO~W~`LQ`#b^ur_5KjDOs!UUZE)a4ErIxiW)A?ryWE_hQ{K-z66() zy-hd_Wf6g>qeoGlrK;PChpG^jPZRHd1~2MDVv*}eCafA~rLyFEm7f|EuG-#T2SgA< zQulXvo;0LIo^229Q9ItQ+RBrWH?~QpcDh9k(_=n;aXhtJh!9kR$kCNj9kJ=~BEU51 ziIB~(jdq=S3*TzWE4mQ!!I|ecuJydbjIPp*Xw5Ghu@wSqzc$S6Ix+3baF**T>Mt41 zK!k+2I%~h$4?s4Ot~MGVS3+Ob?$pC%AG>el2v|PfPf#)JsHx(Ctgl_0O>zUrPSn=nDj;t;8OUo=NMf=eZW`H&)xh@0RbL zug`wD9%>dDMf!g1Mmbzz7-EO^Yys;ref6{S7=chPEbgzvK3Ygwd;HLVo?}5(#ACVb zWsLd8mLOML?j@oEu`Ybe-Ndygs{ANWu zTYi}_YQ<948Jzmju!q^KwWli0(I_g&4zh3T`JS8oyS-JxRIlxlOkv13y^u$ebFvDyZKo49C5A{;Tr}MGMfceW3vqv{k;$^5ymBa8D>MecFsutjT zA|2ncpoEfZ3}EUt@Ng34X@75@l=LMd z^xZ7gESH4|2|k980z_jCp=#YZA)wxX8X~1diHoFqFvh?^Q;)oZcQ^W-l}yf5-ITM^aKZ zdfcjKlYl-&+8kEemP6lOR$P)7OO`b%yP(T25cq|hroP0p;{1@NydW2?&Uu!(^E(fD z#^%)iOUjTB^}P|c>sOo(_ivgq!yorSoV_H}q{tDvSL(K+bRbh52yrU?;o;#a1$BI; zG0RiGi1qO#MDdZ{{&bK@3)dmD(0ps&@XAgmQ$@l-h4Gx@t|NQC$u0q^d(ku>t~*n- zd~721PFdAKA^EX@ux5Tar!^~Q?kN4Q#)8B>%mcd&9luSEH|o>s^4tryTublkdEEI{ zKR#&=Y~)FcH*t4`M?g&TY~~}M>#}&vt3FYW)XMt2n{6+LCM@Vc2}fP)OONUg_(3`R zRab{`pOc0H4Vwb&4_9$Hs=7gmE~%pp$%I+QRt~Z=N*)eeji{_PhDB=gEL1PPqQmXj ziAC29F0k*5&JI!cBe@oy3-j>BSk^9W)qi|x9siuq!?B_AiaL9Ia3GgP?P`@aa0sC%Vx~ z4_H;|sIZ_baSi_@V?ArUq-+ig)fyk1eXqmTJP^R3h2&8I=PKcQB=1Si$Yi>2^`ec` zWhT-zHa%mNK+fB?4Hfg(dl$9ssVh57orM0LPj=M|2|5Z33$ZS1MD#ToTy?*a5E<)o zZ^vgVRHt{{s?S|cu9e|pBs<_KW^^?c+z zVk*-fa)Av4H$i8mAsYz;V>N#~@y4qSwKG%ox#ZW_-xaK$Fo)u_7H+~xDQI%!Bh|re zEIa^~TT?%8*jT^u!yxl1>%qYTu)I_Iwf#Cm!)=kQd!PDS6W_)FgT0q+ohn_P|7b-8%kc;m zg1^9mPpG^{HSkKoxNcleZ|3O*V?9Y(hvnWYam7N)*3PotcW%Kd$xrtzn4cx+@DGp{ zFPwjuW6B=Zy)W%}`8}SIrnZJ4SEixC`5nMMSLxD`jCML$)Oa|F+)t9}6J=&fRyZ_^ z*(>evV$1-$K&$Aa2X9j!@6ZDeqAYa1l-8b9FTg}aF(uUeG0nO9eI}>KD(22{Y3iez z8sj(PllCVvngk!res$*`DI4Nz8|c28;b3g=9C+P-zJQd-I3R2Rjn*zpn2l7K`Dk-4 zq4GHFR>DRKlZC)XE(X!Rv+KEpkgX@Ph)0`3j~T?RfLQbFSRt^V`+L0ShrurdA)6#R zbvLEIWqYfi#>&qP=f_x+*)14zkd8ci08%!rf(xnWtQ7*>#*Q3lqkb5ZF8F>;{gl*e(oha^!C7JqB6_d~123dt*fdvJq(?6p*0LOR6U zl~o@(cjQPyT3~|OL^gOFW$f2uVn7?jn#?#D74*G0zSOzzEpH3+v@4X!>%a#ZdTNAo z02SDS+U^x)AN~i#!qbx+7~#+diA%C-494h3`5HW7V|SpXT!d-y6K;E6??0eZ_5aM0iGa7jgD1?z-2)tt(?%)HrV0P2IbUwxg)d%!3 z4(Qq8t4L!w^x)eVTb&7NdkTc^eWb9hI4uNo=4Vx(!X0`ZmUUTkqhL%zXoLtLh)Z5V zt{c8kL1$SYHBbFM)7D;w($|K!o|>Tg+asAc(_eT~?!65~_r`GLc;t~??0R+=C$8+% zSU9dXJbLgR#?h~h;~9v{d|1ty%Q<2)Xi_iT>Z%Bt?C^@A1-{?xP6+qny4pNWax8sr zh$_z;Rh0)xfA?_O?hY?gv-D6ddJNR4@Y&jc|MeC)wpLV5P2%7;{EV$#ZcqAzo!qmx z?ntfHdsSvdZRqSGv5P*ec0FDX*}Bmbt}B=gb58YCcP~YrMboq0D&KRi(a*1$I=D`) z(2;{aX$+9#~ce9s7Dc;AlEy)1ge>u4P`ls#tV!AH}{Mrf3Ev0g>k_on;O1VUFJ zja5^PD~MNp_xa--s%kd#tw&d-JDVyx?UVu)d+29O8LvL)y+8u|%P4{5!jguGKBVVX zp!?(Q-W+--0V4ud;Ga3@%BC&Ar4xVyW%TLQs?ySqbxoXLB9 zegDO|`1jpj(`&Du>guZMs^_U@SzO2wiCx{s6}xlc&#oh~?+TXf7P=r0OSNAfr7?9= z+=L&!eF>@TAe>!T(a=TM0@E)Zl#UnR35M&^|&$%M!ToyO7X*>OO8DdjGdIhHXPX z?svWHw5|YD^yy!Ed6saf6-1ZQANVTlA1J0y8BhWitD!fgc0O*ZogU?W{Bt5=|3G*4 z0jq4((3_~e7hRJuRM`){U|z**Fm`udnq^RoEE9-!$k5NS%TzM(uPX~_hfO9JTpe|K z%R@gT`}pR!(lNGD0G4yAhj zMEi$N{5aLE!7mDWy`(!%x!PN3{hv3%S)|U`OK02zn;mkigLW|8Cqk||nYC#RM3piP z1hL@Q<|b|GXjZHE1wYf7mwb8HTsHNp&aOo8IRTPw{J4rdTvT7LGO=6`h|uC8t^tE^ z2nXn^x%`~8UdLhe>F%x^KudaWuj^CIgH|`GNqTS1huhCeAzR|zcVN*+D^GZvg@t6{ zt%Jlv;t+k^cO{`*Oyu4vy&A6z3MJqkIX9c1AKljGEZooh3;N(+_BT<651L-I+e8z) zJj{Ug6s~`2z968B!3)qy`JqVw0XcMz?Z)C-ni;Puf&MR5s_EUj`9^N zc;)D0ekKK2F19`-g_u62@O@lqzi$?uQmFd1QaNobI;MW=A>yG|U2xA+(&{n4;JspG zJ-vAO_MWK+!A_SoceK(e*pjJyX<)UFz?T`Y9-H}d$jADsFSt4t`-_TXMgbZ8=s-uI zN}uEaz=#(l8|*5;4k$FC@p&!SWuo}TbavOrfL;Xic}AxxdwTfr^OtTM9$#(&gBgL1 zCgRm~-OP9kaZ(%GS-8HpsZuFAHf+g8Ui_asA_>2N z{}WoY+y{;)wte$I9;{JE2LYtY*L*^DeR{mjQxi_YwYJXSbXjlVYbWV!4!n?iElyk& zy^M>mx?ICf@W0anrFqwS(ZZjxm2p{Ct18%;%=`5whuQRB?n4Dp#-@jXfH)`T4>T}@ z(>zL!clT~7L2ehKJ&TDg2W)5kvy+LcyuryarP5q}=lE*g1$Wvc=HHClGs`X=cHYVQ zV}5aV#pFaKx{*62j~+E^{o=!<`%)BcQ1;0AmTT>}S>h0q=-1Jorgo9}7wS1Vyu?Kz`8EX1p_-4{J;lNJ2x?N3deQ?__Q4X`u)~;kVttI`SSwqY})U zf!AS6{dh$TKArl?Vs+3KubJMLAtooil(z? zH&-|YJnm*^mH@3dxDfSU*-TRgaxN1LCP6qu6!CF@J3Oh0=h9*XU1M@+6Ladmu>#JL zivIKXm3}!-e;8OYA`>woR4Cl#xB3fxB-`Hfqdc^pNib+J^$P$`DP<2hsrEp}I zQ_(``<1Ijf%natpKc5HM-Rbhu=J%eJL$8^zKwH{4agt`@cU1m zpuThV^OMMoOu|w6wC==YEgygQfoIad0O`QgblvY9_mqR|jApUcdy(Lkr*{YU$F~Ua zvVw5Wf>5GNfOcC6tG6U_>qy0qoKn(JYXY~@{Ms4=6*zcF8aRn@6ME~GsrJ;*92N6^ zY&>yh34%;EV*Zw;eUAUiZ&wupmR#g{_0^$e6Jn*c<*U&c;U$E65sQ5)%m&SUYzMv% zL@{=a8s{6R;#~Aq!_0ZP+Tc)HXZ5ttQ41tW7Sc)-6RcWb|JVmk8IeRFVEm!eAw1hE z38h>Y8j7T!0u5>#PY-3{)X9)G95$Wv?EN>(`ptIATg601g<1x!fptG-rH!E8_D@^y z1dNbQ@fN$x9!1XHW+PoaRWA7IS^)5E@W13I|A?-6U)7!w%dBI^uO*pI%56K)#`Thv z-ykObUb-b&0wAUMakr6}NE zsL^B24*0tdMdL@1LP5fH`2~=$lzpVC69|=}~RgpfhWupn~ZWk?Y`?*YnkT_6$PAm99BukW^KI)qfJ>l z7gXMiPUofoC9Bro+CW7mC0xY!TbAfh0b1`nTbEap3tQFSf^P~N%gc}L-aK4q7FyV7 z-@5mo0)~jBS5zmee1R-;UOJh> z6|SRB=#IA`W&$$?_C^Vd&&Iv7(>d?yU;US>%S-BE#sGTl9D^{`XhF(sl)+s)nO|&? ze4$V+tST@VS}vAD#eC`K%Zkygf8sG>Pkk)Z^}zOVizMU#CQ8@4t$~e;W)dyD-enef^M{H?8TfvnQ52E(dj(=QWa6&O0Hv@R6& zpj@3*{UYB9a;QNv9v$&h2&FMY3{H@X_2m2D0qm|zED*}8veH-axyoutqwF+`s)m|j zar8t1hZeL@p<%kzlZ}vgS;u%!PwYlakwmV{6rHdH6q~lQx|_r;Y%Ugs)4647*q_6- zwwzIk*Nalst^J^^%Bw8uzG*yzsz3`;;iL@i*opd5c?gEWnV1H?)A63{rHAr_EeJa! zvLVTlcpd~f@!0}a1uC}NP)0oLH_psD)Bjj%z?;CVe~Ob-vUkv+@w|UkHrAF6MB^bW zXERG#+UDPn6}LdfiHN*L4Y63-QVWLf!d<@>3DgG5QHbSQ0JwNPO~03wt&=#W40a`s znR6ty-#LlsAr&j8WQN5p%Z(NJ26hwHL~*DZ#|M_0tKqlLJC0TPJ6p-04~_mvsh2yJ zcF|vIuCXa-`NLj43JP}KqP;}qDCMonly(h@e*0Mh66D5NoA6m#T_!NLI=5w|`!(Ki0SOZ$ zAkviwBa7y?yDKq$8j(Iryu&3z*5dMo_^O$^eVtYvG5y>wBjjSkU=jo>qer@qPsa{4_M z(Xibqwva-z)kVxKEJq4Xr}L8~Cea8ByVGjJxFPv1my_RMIXt})#m?ixGH;vQLnGs& z(%FW1e$SO?YtGfHiyh}F)3FgT*q%X`S4URO%=#xn@3tOVYJ8{~sR?|^irvM{_V*at zT}D$9Hho10>?JS#r@W#HExX0O;Wi%j-mV4;`RymI_fb#wWcsYLnJnWd4+R zQTCq409!kbtSIN$TtcWjf>tL_i%h(cneO6VujA%+V$YUuQNPitngyJsBYmT?m*Ew)fQL(Vb{TWhqd;;-aCMu8Jqy zw2Yd4`Iz-T{h?>b=3Q-OxR>m>!p8lX-+x@r`JYI8mIyx0sOg>cvh<4&)gh4hba2An zmR(mU>;-6VwQc7Xa@K?Gzs5RDL)+B7sH@|A+w)j!YwDZLn}&KJI*N59c#fg7>AE=i zINsqY>+;Z6qnqY*iv1VLEcom0AhDH{^4ovv?*(W=TKE((gi)J1#w**@D^sPqAJ0Z^ z$j~1H?&D{nlhjt!m+STEj0Qt@%!(D8{b_$=V*B5$ zHD`O^3SIt%ifHf~oz})(b3JpS2zs40H@I9~Uii*uhH}v@Y~*(dvxFpw zA+1~<>mw=oBLbi^HIV`mbpE*1zc|AKIGkV{vP6dakoiot8>A z4!wuo%14@qFmIw*7bgnXj!kmRyL%p#H&@EfeAD#S@6H6OJ&LhiV{HA!) zQ8Y`L$Bq9Tg)GEP$gy?S^oPqB1^qt zJMHL~Uk18aQ&>09jAbl$r2d*J!NI)XdVmo{RWDpYz_TPN^D#*p!zvS2^PUf-Z`G5nB9L zSnclzT+*fn7R5oMKo14@r@pE`I ze3}FQ5~U+Xv;woLD?&R1@SMdKn`3N0%}d>SwkoGzP}bmzboU+(ZNONteR?hP#JA9zYRE}5ryhmi9r+hJ}$VsJ66eF~hT_rk;{+D>g#GN`L(iD)H$%URv4H-v_z zS8NRLobH1LD(Vn>O8?W?juDIdbm`_;YC+B)1Uot(VJV@yVyEpYT*ztMXMPbjVW8}s zm5yBhVX3%jNNmB6FX15?X~x&$8R~&CKro?`7e;CJVecI@#=9J?J&k1Q^zj%F84qTP zbPUJI4atIQxEPyO2mpT|-1O;d9>CnVUAH11ws;v8$ccDV}ac2<q3&_&!wTy->U&lk5cVKJxb9R0Iig(AXDxJKGq4N#1xnY{BZl`vUHL;ndgi>@XYSTCgUxaNIFXF0C@0)X7TNicC_GjvQ ztr@xX9n#fJzpT7HS-e#ry?SurQZh;zH%PMWs>_Q+ei|7D16dA89Ot^8%zgP*V-v;V z=UU|U2G|-D8cN~^u(ut)Rh_yuZ}zoAT;cspnTQ{#fT*Eg*#53NQJgvbq0%VMGSDbB zpb12ox#9fUH9M8l()~6kFyoVTD4>7o((h*{n^hL83_%gyHLpBs2$HvORIcz zeCP>s?ytt!8_cs@Kg(fmNgZDKmHV0dwaV7N6|UkBG!>1)20n)#j(JYa%t$>0zji+} za(I*i?l~5PWHk;{KLKT^rnEG~8l^h^YHg=X0+8S;iFhD;M&s5W?zLD*NAI+~f6yf} zKsOhU;09vj)lK8lKuBOASqSsTD7D-#En9kwA@-+-bRERwB3TUftK_4_Gm?`W+rJ!c z8V*JIk;*wSu&`-(aKZz7DE<=O?H%1}`%`rBr zj`aar@#AMRq6?B}^4GFhz(Rlf(G}q@E_-E(N2^4H4!m)stH`W-#k?bK%{74=H4{x? zB6Sf18yibRl+kUyIyX#xSlTo!%M^xGb_^_!6y?X^k$#TFQI(WqH{T2PZMF2=p?MaK z2f!Y}ERcH7vn^|tZDLR;0H-Q^tbyZ?G?7UlIkYr6KLrPnMT&w8A=at-$*^CUQv$la zp*9NVcNaT)Z4*HU@}|f)v~;r1TiNK{CzI(r&Ce|YW^v0?QWB=GA|{?GZx%-c9-R17 zFIQ(Ho+B8)3+Qc6%zd&1h6YkP-6YVeQyuPFU$C)p3rLVssmFk34c79jC=rG=fH_L} z^Y#K1?Mb0x)=!J||1f;^50rWdxXAD`3LnH{VPjo8ZIU;CtkU)`gRuK(SmaFPNsB?h0arwM+5SUmvL&Q%t z85E>Z5&~)b2YQ3}A8^Anl4O#Q@7JY9uv|(8MfPz@rOe0;uCAy?;gwAQjVi0yGES_p z?h;`bIU-*q3wf!=5{2HAS(DdEVOAT5ktuKFsN8)J)Y{zvD( zr(Est_{Q#>jx-F`7Sx_j`{92xv^}bPxiykDTFQ7~dhc4A)ww_DiR`WAxzl>{`o9N( z23n=16>qh~Uek0wAtr-93J#q}{)OT_uu%z*yL|am1DU7rKoo%Cg8&XS^;dh8k40{m zE=(7&Eip3z6LBvq!&2ENm480+ewx!>8(vQr6mXVD_?ehccU1DFeJ7Q2ad{f(;^Fkv z_~G?yb;CeO%B=tU3D!-NNs+Yg+aH!2&dZYQMC~r|yH+W)S$rG*8rtKGb#O3CEpl^1 zSh5~E6-$!GS;vmz1S#jKVxJn_e|1i^#X3hK|2)_+Kg3m46!vITR(~Ad3(8S4wzuY( zA;t(*RNzdUbA{*q60*myOKCfZ zSSAEwT-~zu*X>h2S~ZU{TrIutUC)Y4){tO$t$tCTRF~NRP*E=~Y~GJ|U90UU14#;S zGlsxY?~zzZ-Q~ECZxsCiarmZ3iQd5$o&UJZ{ze1gP*l`P|}5>3^b#oXr3*IAUlL2je^D^~`l@z_vZ0u{S%M$&)aS*Ij! z-hNtY`2m7T{0c%9|7%sFe=RsVD`#s|FqQD7t3d;di(Lj|YHU}Qc*d$<$J=VPXT>6B z3OU;=WJVhDIq*|VAFqnsn}13D!LHm&D&u8PG(5yyF{(^`e(D=p=Oq90U*n3qEJ&2G zpti}lu$a4dBmQsh1T1Hdtcc{D~%)d5FjW%D3q_w1^wDc{5;~1iM3c$bb ziJQs-Loo06jkNuWrh>(DsmpA1L12D+XMxS{ERq)f@ZtAINzybplW5i2;}=KW_=G3* z#>w(6BIiecp~@#>B+daN?Ao??)o#UGYVLxg&$*(b>wsS7=$Wd=@Z7&p@^8}U3e}2I z&g_oikS81WguVK^CTR-3(7l#(1>}LSVCd>55Y_z~W@bYElp0Mq%K~P51c>4+RYI}# zpHXYgig7oHso2kqR5CT>4Vog>TkDZ1;`D_O$+AiB30ftzWGbmUT>wr5G@@Rc3$vp% zwdPLsKfcn3JmVIMPKP(X+q4WaR%_kR*l_QkFEq(l06CN)lu03-g|Ut+8I`MPPiltK zUwhM@^z=`bUARfFT!x4ff^N_3hREaZ#Iedfq2eVISz$jaT$2!k3k*Sw^Pq(Ou-M_EdYrJSmwf?&JJNH!_h z-&nn%za86-q5g$ZFcdR-`E&#G7iw-Pp71@j%fI)|O_)H9>d{R@v1Bk4E3&^lL&z65 z`3F^p>MQ_bmEhhsR+N8LEp|bjUJVh#-Cctu^UNw-{z9>z=PvyT{0n6dp>%6tLBT-7 zKyHLUMngn^hlhsrkbr@O!iK}b!KDO>Nd?+E=P?XvLpD4QvuD;_jeuoU_ zdTp8HsN%CkkDWX31pK(5KTPPoK)qkZ`gd|CNDHIW1XVYb9qXU(_}v9vU!H=*47UB$ z*$cZhOzSf#glqL0HAK2;FZCmX%5-pt!mg?>kr_5M^hu1!>8{L`ol;qZV_Sc_sY|nNi*)U(D*Xv7rj{`V!YA62maFW)Vpu|rqFC}$p5&0|Kpp+-+8Wlgw7 zAQZzc&Ci8mdQQset|dG**wvXDu|ml7hKXO9efs42=9dusiH~G#^M#Gy=eC?4R@ov1 zJ4fKK+_7vJ^)Y9!;xZ1Q*AJQ^e%i3HQ>76`>C+u*zSGf7?4W9w6AiS z{*B=>e%(MRyo{x>>`#_6pxkvxuG8H92y^(dkWbd2AiqI5D9!~#X1t&74A4Q;@x!ag zp(~3(KLdM(*s1MVeb+jg%F1G^u=x|=$zPwK)g zuZVuc^RjBB{duk~!{6{nx4v0l@&8dulgc(YTL!P)2I^c*(#Sy)T}E_xO={>vLE9fo zDS4r6X);W{Vubd45iK6*n)ezQ{>a`P{wico?6@lm<1yl1o3|Ird6>Eiwa>$xDl8fA zjFw0y=?Jh2N4W_EjGemBg!I%smb8Z&vox@8d5*|s339AStKf9EMUadr{cmY}9+3(N zB&YiZ2dLxFALeEIWAE3eLmUBq0k!jVfbnGdUU*0dtk+NxCF>hZYhmMrhX35)&ki5< zRKD=;(}eFDD6zICwOjjo4(3+Z*o*>q=Yy{~=hZp+cPw}Xfbu`v?hL+OCj}}k3%CN^ za&G0;z4*D?xv86kMhJE3+F1A(Y@h56I#S7q>L}JoPw^k#(hfA^eKQp)8ctVr;tQX5n(wuC4>kK@S(aHHUirpOekHpjGJxdjR!jmLzfy*fo- z{YS#~|0H|~_wJGwD7lOeKu`C~?!x~wqfY|UO?@^=h36)OWMaxhtSi22FgnLc9Q@^A zd@C#cd(B!UK~Dqc&Nzx^p`@+1GFUDZtKdv-1(Cld;55%WQWuXVQu81wyEm8a`^$|r z?Ipi{w-@&=Mfk^jBH$!fn64N-@Z8Lik7PGy(9K+WT7BmMe-ehgUTh67LNl(+e8(86 z28`2V&HTG8o{C|uf(1dE(9#qNHaR2FS*?|Wr1p4xkn)3``BsuUh5?#^Ro5J!p)xv~ z64E&ugeoFvk8wDxv0+UE(YQFf|DkZ13t0&&sP%UT?*fV;+c`sJtj(WV4rR7S*OR!} ze4;W@_5(1%`E^C|MShYGaWHW$zgFPjV?ys|zw^u)|mp zzZW@8AK3(#)WH~G<;aq4UyCnJPZjD`|KPIx3zcGfApP~X&2xa+8MM(ojn(Popz(Qh z7LG&zWPViDV}{J>c)!JXK3RV9G|@|#S6)(M^44FdY@Zo?KI^^N>16@>h=gV5YxNKC zt%4U8djc{e>f-tJ=JpK#?4uW9#L)@1iZN!!>c`KH41fNk0y}{qA^&mO_5+Xn-sN;{16^U3|i^_$7(e>3CjR*S7Qh z-mmCR%`tAs|zS#Rkr16}7&uyK*XNwU$%GAwx$C8-|d_cgGnyx0WU(pT3CT!&mTp zWBoGJqLPYmBJ>c^8d`?a<_E??^-Ti@hT)~TYLICauV8jGC#<8)4ii}I{b#p$82XoN z%5mXx5|{dBy}@jMw$WV230l~>3h42FD;|c-XS_dbGEtfX$+wxY21XHsb5V68*q&geyI&{ zy*^xJUJ9U{Q$06$n$w_}=ecFqIxIwAw2+E_F(m=sH< zPMV=Un^53GazGVHYZQPz>+7va$>6C6!_XiuUQee(~nJ_cz!L9acq+1SWfk&Z+1iAR*D_6J*f1! zQPQ7tK(uHUane||)U8SSB$Dfl2s{4q4Hd=-x1B;G@JI4@f-V%60@uF_Q2$0>Qimm zs5YcBp${DH<$NXM=zy(r?kI7@oD~dpszm+>%BXCTSm$U3u4j)`1j1Ua9P_ms^?zzAxdspPHo>g%$ZYb`dF-ZNrrx^6Mt4KiV>?b0pL)nYE~_ zP$NYeGJGE%|B*; z360 z=oF>sY+arM$80X*tGzsw7EB*>n+4SniQp>A$lxp75~+-xSL~p^JiDx2V-V3xY@;$O z%NdIb#SY#8v#?`ld6Tg{OmAq?i@GwZP~S=LWiP-DO2 zfPQfik0+e)UhF2jS_}+b2F1xi5y*zbJ#vULGVD8G8!5#cpJ{*>FEGjEQ~`dQ zcOU0y^v1QfPn5adbKorrTEV`n1jZ+_CsbJ?7Kr{!{MaVr<5I+;lH8( zlWWm?@-3xS25%g{URt*s)5O45P+KHTQmBiS5l41G*l2XM69dicDjS8R&7MI?rhX$| z9OeEVX^1FAvg=?cGlm5GH&pt&yd*=Av8$S^(AY%ltYRug)@W2>D^WA(SW;|dj#Bb* zPY9}ZL!MjVzPnal92|C{3IUIgvC$FM07?EV&8XVOsA2{>=keTXV!WOswB5r0g)(sH`pxVp$E*LSx0bY$^ho1gZ(Ce+BX zgV-v@;O*LCgouh%LTJjh>6fNe1i)!k?_(K>@#hAJi=BY zGE;k|p=-ghx5_WRZ|zIf2wi`nNO=!AA^h@IFVd>=cc9tAO;Z$>jb7>?tb6ny`W{KE z@4c#}i7OkeEN~Kt%gx{BlP5$=yT6^}6F42x4XRhqN%6t?;^?rmV5dyeoKLqcsOHK2 zbb#$ru$;PP7F>-8@AY=H`&w$0QopRgaXn7;V8}$bm*lMCBkc85YEVhMoV!yFW|9fq zOOmzYH%4z?uXN91iF#K}mflTpD~cK^sdvEd|BV->>NLNJv8A%AlG31C6zsX}U(Y-$ zZwF~!_}FM_&U^rCK^~wXBnkagUjoVFg9|^`O?Sx!Zea>pf;c8<%({Q|nH^JacOn1z zeADz)ALFn#kY)z$^0QBF!@D0pPDEp@pW1(>)BE4M#(XVf)^jdx86Y`CCpVU>tB zuWv)APNSav7T`?DGY-4Nv|7{Snoz5!!&0eVGg@vN53J3Ee_3g#hG{28yjf!D{fT1E zpg%UfmE;4?O=&gw@ZDbf3Hai_OYc~H3~3&%p!09Y^Dod7$$qC>#(szjxJE8nhoW^b zyHTy4i$#2Ft$oO_M0HjPEsBbN7v4b>>76ZMU^64jzyQgDIvRU(8vw zWPJAM{3hPn^}8Sq7x3jCh>#A0#0LkcK;;6~LD|#%`NK@4|3rICT1gYuQz2?o{Y!3t{~rZg8TZEN4}C z0NFhS4PVz}Y>K%r9px4qj2)fe-bF0^YHjv9n(WTJK5}pczXS&VM!l-6Fb>;jtTbAc zK>wvDj2JFDuA*@Qh}BhoWY_h{4$zT9GX>R%Nz*M!2arbiK*p^`yCvbGMUsmhg)T~` zogo2NWbfPXr~}*^P`(nPi=GphNo*`lsV|mWNcALV zT9G=LCo(Lc$(c{p)vLpUgeC#3E!-5SI2<4q|L5aG>&KDQ6FuD;dD&Is2 zkhb{2IeyUMrXlL3Ba;z9Ch9BN|Oh{&lpP3T)V)to~umT2O}(UETHGV#M=KbH!v$e0++(+CsN zSl4jZIVZ1@nNopF65IvlxKhF>5$T-|oFbj-96=Jh9ctiE1@X35d7DPBaSD)+;H0*g6&q6ycF7_o7Ecw|X6Ib0dkC_CeD&2k z4?8=&aA-}O)<}TCveL}yP3kxGgUUoI;yiH&aiWuC5M_T*)_gbr}=-st| zZJZ9OO_)~7+%}NDF!kg;Xf>^I7$qw`T-gJy4AHH+g(f9~Yxw(2pl-SRg!wfr8=mMO zCV?;L;%ft?iQ)j@x|yb=-9tNF>u8~|kQNpK7`dl5y417E$Ynes8{9URCTU895-IJ5 zXfeN$gmepw!q10Mxeweej^snobY3zU8wjP`Z4wJ<@b@jSL5`$!bslp5J**O@Yq>%d z_0hQbLdi?M!t9H9mHsEW9WxV>jiGKMeQ!=g11Yf_90%3xV6v_G>rUWzaJ=|>#w6Gt z!7>DF1j_a~&rQ84Qn+njH9Y0@^rEgU;RTPsTLbVLq$5sDYi4iv7pfSYk zd_X9gsDx|AO^DW24B~@?;DVWf=pZLF6g$J!A2^X~-$QzCY`9=kG+Yy0qnw*_=_~EN zmvYy&A-eT751Sl#79(PY&mVc)jF^}V$sWk(4;x?qGTBP>v}D_%V|3P5Q`KS5v8b{c=sf7;8 zFqg%9AX3{CQ8=vcoli2JJISLN>1js61v%7CNzMThI}#;JFoE~YZVWlH2&RkFfePwL zBC^c9cfypX9rvfb?57aJ6EZ_D5mra$NvyCy!xp?Lb-5yfL}CO8w=pD8^(npBqbtWe z0xUCvv>QNXDu@&m73$6t98wT%g8dU~(ucaHlfk$P7=<%SWg&vjyO`+Hl9|^Z7$A zOeO(-ugx8&LSF<0ZU{UYi$(r=E)z>S{3BcrF%?<<@A04krSP9aY&X{NJ*GFAU~Q`F zNp2ioI&(wWsc32Nd<&ggwXsqM(GTlAYEbad$|0uUnUksjzg3*x5Yc&Xb8vjKnM?>! zeF#^==usY-oz_FiVY|77gsk8r|G95&P2beFjv@L;uh@|)xJzj4aebFyE>LydpS;AD7Kmxcxl$Oc>#b9|?L=2Rh2C6xE zG!vK>JSXB`qb3?siIObloPr!}Ofs{EC#G+aQ~>t#!QGX!-OA zf#wb~D}+LF_GHM{J#CA8gfsC=llm~MJPCZ*5_RI6@5?mIa_Wiw4B5Dv}6#;FrRVu8jR zQ|+?GOQ9jvK@6*Cv+GW&!C8o4Q56s=%jKop=|6|B&CB5mKC>W1A3vz>k1ILtRO+cr;txw^|Xo7o4;1vI6I zA&x~YuD~?WRJ`lK*kG?PX+sv)HOUaUsmtw& z{ctGOOL3U4rz&j>uVP`l3tM8SEILA*^pL?ZaA@R_k_V?32mH)j0@U@J+?Gx!(Wd^w zI{)2K(vy=Us;57#LIjbWB|e)O+E#;H%DNrEe{_@$K&(}{)-vmwp^>XD?2CyX6{Lhy za!(R2Q$+KF-6fUr?s({!w4@$2Dggwpg`!?@Us5R)ic z08>>Z7#koZArTNXuS$mrlK>S+4a8m-{t3dHnKQk{ovDKfN3}$BhGK7s_R6T|S7ZMR z#d>?Gs$3g5+|N0|MJDBs7#%NfIJ8Lr?{*!TV+aK(mQIFwGKUd}%}YnaYZcDHmUls; zS#KH5QZE}E@72DIWZ zPDrZtVaRC?ff+sIP+_6#|j?V(2=p@p+rvTQt+G`62yXR5@5@B(b$-7-lj3+#&Deo1XCzPC>y*N3}&uX0<*I5PeO-4)iJc@c~< zx)tZNom4Dw^Nm(2y^EI>Gu^J&4&|cOwGd=fnl$LGy!#_PD3YeTk~BID%?Yi2hm{%b z2i4A&VXyz|$~)|>Ep7~d{0=UXUY-KDajD~JQ-3~tbfC}oRS+rn^3#ZiGBl2>aXSy3 z=kE{c+u4kIqR2Y}4Sj#O;urUZsUhW=y&vVEt*0_`OwyDc*JT?t%Au`m4bn+-N)kSv zK91 {ReJKDzsq0S-SERkON=-c09|2#}%+_b0t3Ya`yJPygodggISBkbAcyLjE*Yb3t~UOjgkC_x9x z0%ciuS;!aTIaZoh3#Ky z{Mn*dN(JR&aE6UjX}(iKdiHtp)?Dn+DT-#nTL!|b0~qQwX}hrXNf8(CFUUz3Ck@ZO zJr(~a$g9DPz8~o<709L)cO9H&>>POetiuW*8k;I$=Ny)+Qs(gZi0C>6uk}eX-yo2u z_Q?nPbZb&5ZAQ%xm3P5`a##*2TCphkfJs_WqJZj*G(~2M8EXJEwmy^-`Ohh+P)o8d z32-I3#1_iA1go*xr0xoVszj#v7K+l0sS|8GX(C^BPqg!rz>xH+2_DDrF2nbthIsV< zH#H9BPA2g(B$J;T3)c(AivPyJfRi z+O=6D@RCc02uj|UQPXi!$ED@sxGcSV0|n% zESt|!TTYS4n&=IT7>A!CxHRwu+mfH3gAvO8qtFqES*XOFv7wd=(p#vB_9p|lJGH#< zpqSTvztq@Vj38pJ1E@?*IZalBhiY7qD8lr9he#B2TuHSjNRe7gSNXyK0PN+vgGpJs zkbLPNQfDEW2OTT{tZkrJ@nZ(^`bK0RxEf-n_Qzz3q-$Mdh=Fz>d(I~bjhXwkwAbE#ajxzb1>IY4l z^bvM+z;j4T3J$DIIy7VdwwZsMK|r*zVIa~_TNNHxo0tP0S2=I_2a(-eij8|P=HCyvL?}NiRhz4V3H4+rb))2ccB9ciWLS?WQN^W zPT(mTz8B~sAx80&B>sLON)#-(m#)9@TmbJyu#(!n`HrE>x_o5LGmLwS=iWUCJ z$va2Lku;fU^K=pV9ZU+GEgLg3-USwpMBrAY=I;WH;6Yi0ua;BiM1;*Za$JT2 zc${@R6iaXXO$zt4A$&3Y+u%vBVd)u=eplj0mn}wMdkiGxc9f9m>u^Lp+UW{zO)C4HEw?2#b*6zx8Zr=L62x~jL8Fw9ewU#DT6 z2*_z8*r)u>2`PabRe88wRb&m|lG7)<>6lSQFjIkaL9Q23Uzt>(=JC^`hy_&9mX3S3g ze17Fpzc(+phd*xqX+PyJRJCh^kJjAyxsC#TvjI!a!vE8&T6n(QgS`~w2z%4=KOB=O zOc^0f#tPmk7=p}tBKZ9L2|iK0{8##~GllmA*&iR^$fziT2@EISxQ zGLAN1)CgHfd88>D^ZAr(@ERBCxbY(--zfXMfN5Buyr+Gu)4y(Soad?6Z8R#)^yd-d1Gau#{Ee~Msa8J!f(4)&Iuag*7dFBY{{PO+n0{8c6LZW zXc0MwtoFq-a*0id_%Bpyoo9GGkr%%MVY0J2^%QkbqN@4u?s?hn+AH`F13?4^#A;Mb>1;*iQ3? zWVEXstG~!WJRHWQDK;f|Fk)?ICjzhBxTBHAdvK6uhENYbMuF6@1MTCxZvsw3zrQ$J zOz5FIQ%d)e#61y$oe{ac&>Lpoui@i13&d%*oI~2`;BF^@9lE)TaSd!h)6Zmvnvkzv0aQ!JPe2 zQYfgY&U8F5gc)97Dyo>h3{uNTN;HUU=Ks(RQ>BZpSyX6Z0_y8r-Rw;uq9K7`?XU-A zN&TrP0B4W#eMpL3Z2WUCwyS)=%^hu6L{T=aXqbHpi8DML_%mjFVMj_&iaJhG)D@fl zqo#;3tB55bT78Boy=Cx(j zo3jc`p8rPKTR_F}E&ZZ{Cb+u>cOTr{-Q8_)Cj@tQm*DR1?(QDkEl7Ys2)UF0Ip25B zefPa@t+!Us(0g{%T~)hk_m-+(&9K%l1z=o53Xca5dU8UBr(u%i*&Tki4>N}JEuo5N zC)XxjPCN}pufXoP=W3PQ&0n}ZgqpJ4D34aE8(!8Psn%03 z=)^oHDl?{M#*$Lz#s)xnQ-!BRVF|X9F5H(Wt6i$v1kg=7eB>LzqO~iUP2*|&}=PoYMg6(K!GRgs+J#QqOoi;Sa7Q;5Co|fI_S}ucxvP=_qicnw#6kW@3 zkp{zDnL_T3_or*9ODt z)x^)|EDIxq5q1-Ul-hD}%ES%rB~f;2FMx;d_CZAv8I*Y@WU_m9Dcb7ng$K)r#ymf* zI8#4L@%SVu%SJZZ$>31FO?neEFnH-NaEu^j-s}fO4J+jH`q<>B1PPl4Kq8r%B>A1f zai{)={(nNQCWh?fO zr|<&7Sx$3Wb%jBIFqi^ko)!m~=5g}@VHJg6q+EkZR;06zVq92iQDQG;7oLS`b)TU+ zjjnfkmIptt)LjYP98~MrQP7jbywS>2e#pU%vVb`Vhqa7F$uWQ{KUD7{wr-WD&nQ$F zt}XSKsR(mZ5eL|Po0c=OSA>fkZ-VU7sDhnDi@(`5{-Im%U?#DxZ)*u;oMs&{9+66s zgHqF{XSq!cPg*Tsk_)GHxiYVXdpoJWu}rM-;SXRc=uT+C!&kRxqT#Kj^F)>I%8)7d zm8@U)gs%V*7_@Awv5**8Z!o;HHo3wF(93^F|Aa#vKs$jZMHI{eyG9W#JK0#=%Fr>| zAH=8=rpo0h{az8703Fi#bn>9fYGeaU<4fo z+M?-Xb7oo)%YES`ZN)L{Tu;J3dSb%=pKiO;V}AGG-o@yjK0CO>F;WCEj6IK1yzXEI zml$D+C()I-XLI!PknLXM?%a}~uhEC1ho7=qowQGOuH~KxD4Bl%GmJhZ*#4PduTy0% zXqsBIxQn=+Nh4kQ?JKP+V6kE6n8^;F@FtWaVUcwm*%w+!qq|{if{&K$LwJJbS+PoF z!_Eh+nDa);R&W;PQ#a3U0zO)RKLA1Rxf)IcvD4d-THHSXEAh1&Y@u4Z`90p_qHTTu za@%Jyq)S-CLs`~|1+S#2n_gr)W~xNkRC**K$ncrLSiIMD3^lPKR$or?p@w4-i#kuA z0-qn(hNsk<_f<;43*MXVwP;)$^MdY9UmSHc<2!!4thEy@KB5?2m;elX|rt;kR12=94?mIjUMAP zOg4QW=h2+RjQ$pJSf*D6<$ltKTb76jX+5MJxX*U#JdX|V+!plLGTfKBJec|xGeaJm zXqsrJ{<5c>dORc-3U3+EyV8^jLq{9(AV@Z-^UVViH33u0HA%YOPO`$84ROdpT=z!W zt05xj%Bikeh{LjBGBR!m%91CY=FE?6RS*M~8Y5;}G*PhZBRR9dXsYwi%r@AF9g0(C zgNf0!9HjYKcDaSf{NeqaRGk7J^fs(-{#Qw|50N>=otYS0HDr&g2%J9Fnx?m9mjEr; zKyr+bcob-gDo4?X&JokwI(!rAA?O(Pc!sP|`G)+1L$mQBof3flz4^@q@+_xB6y$7J zl2$qbC-$hc>r(+3V|10+fG_ikGS47r9}YsZUWSSUQt7z~y!Mu!h~2FH-d-gUaGBOK zI`%oO&W&ZK-eOq%b^>pGf^^2@9JVX`o7~_PkTvusM)J{F)wEraBlmXbRfhT0{AK`I z-!2**CYNAtON9@tv@B{AJSWHS9ePnilhnQfAxrWQkl-gum=t=kK*z66Q7(M*M%8jH z%R*ElJFvGBOsN*vCDg>qDE(}>7u*qQrZUPTnIcC%7|<0PK)2SJp`_dLJN);y#t^|u zn|Gu~8uqt+g47@QA(kT)n$%oQpCZa3&w(9@Fh9f*Zum4O{w% z;;7-1J8)V@84Inu%($l(UhDej9k?!_lhP@$G`@Td_Va%I(+Iy}QBJffXT2wy99+UF zsz?JMP&=Ve?2bakv0D}0G>HXHdGrX?IziVP%^jjceWy?q!8+A7=L!%&A56SrHM9&0 zl3UT|L%D=uV~dwAUk_7j#sU_wp$}tGO1G21#|`R)$H@@ z;lO?X1(A?oKhb=ZO*%DCc{BqE0StHo(^#{hl7om5=q?{KL$N@8tL)Lb(_9Wc-<)Fob6JDKd z?^EL=JS+VT<4mX`c*h%urcs`z^N(bBxMC>9Qp%)pG^WZCQJn$Gobde&gTx;wY@C60 zxy4dHTjI6Fx7nn31_`#fBqQ&t@WRqj$Ui|0%9gf`%O~Zt?>`lsxr{5u$dQ%0 zx1OA$`6v(cXKa9X*VjYZeBL#!qXUqmku zPL#k85!YCT3@nFG8(o+}j3Oe!)vkg9a|(_>ASf>HHA%qGeq+e6xm#-gA{i%Qin8f*G*!VAOR`Bly{6&{#s?qMH^)GH&P^Du_aFb$f5S1zN$R@JJ8ro9m6k=!1e8=?Jg>Qqy_%Hf7s3;6)Dh z=Qb#9p9=7+0>>h7E)VU7Sb?km!>dB}uU7>pQ3B!O<`nI{$lqyY*jQW0AAsS2)@uAu z{2|2&Shva(_j+DcoRI@4Dr`6lTzAt_yA^85k4QBYhe#9%RJjScBa=0bQg2AYPnMjF zvMlgDl-Z)(RQW3hLEE?c#(#DlS+FU+&J`lahDpLk3sg91pb|7j-Ne61SD>;zka&Zq zm$v3K1|I9z4d3)!hX}vd7RmoS;xmw(_m-M8krZ_bxBLtNa{WH}MSHZ(!9=bhpgaDw zZRjpU*69sONb0@3uE<}oH}>uImFwa1Y#txVKJWa&^hpKmI#~tsi_D zOKpL;&rA^S`xVZa5T*$`j8-27IWSwC{>mv=8$aDz^+iCMcK;;wxFvRmIiA4QXCQpDaY}!G^hp-#`q#Y5y;gC0FC_f=u zlPn$-v%BA6wgS#Y2-y67_lr%x6CKCs3G`8*U6SinzZE+l^Vtj0T1FAvfXZwFUi}txH8QiGXsoL-_^E$5FG~n??LUN{{}|KN#6T zO+__B%BLbZ@}j&~MUN1Kd?>!1zk27d@zYC?u*~>~&@ybPCm!!PiT`8Zs`t-OqF|S} zPx5w^g-2P~tYXblliPiCvm0df(DyYi$pl)sS(chRv;q1Ck-k;B8M3#zti;f~jt z@@PD8xb+{v1wA+dixUkTfdvHt4F?Ge1%LtvVEq$;1r37+4#8rB#UlO0!paU*#u3KE zCgTthB^NWMbV~SF22Dr^h>zfr>s1&vkqHy$%x>jf^LmaM60%egD_e7#VoVG;W8>|* zqiw^whg&)!eDpfl*{yzO#Z0HV>0qQo{T%cinKJdU=Z#F8I+Qw0J5PI)mLj%q-wAw) z0rOG)MsPQX?`Nyk{=WI?VuM#E8=^rnT&%=mBQEsEMP0ifI3^3}qP9U@@uFx!>`4v2 zbk4=i$pslPBuimnVr$&$o)nQ(REzbYSwd^vrn>gU7A|~v&bqEmiNSgXgx8badJxp4 zJ>!qXT6;t>Z`)1G6ds$JBI%7#5%h_k9tyNdR(PNVR=+ITy}emX!p62U795 zM66??@Z~c%n6cXQdu=>pRaFlw+_FZM-5wHPhGs{T18d{IPr2m74(d>;UsPcoj_U?cPs;H^i8*FRcAKrB1=Uz#>Xj* zoE(BG&mvzdtx(;Yy+W|`{QpXC=&$sKNp7X-?lJh0qbA2?>)UhHX&9#6EfSYfPtt^; z79q<6b|3yjh+Kb#*l1RD-Y9gfH0c4)CsGKk`S33Z8vK=DSNql{13ID72~d%lyfbhS zdkO#0N-8e>NTr$#ycJkfq(*dJA`p74JNHCv!B@AeN9T?4O1xThWrz=azZe7%9z1^+EGo-qn^-d{$SNrTJGuuUZYME7aa@9;)JZ(<-1kAAi(jg2Gdgddm^&z(CX{{~L;7TC5IT19E;a6pj8J&|USY-=JzA-sECEIeCcdN_h;b+eZ~E4ptm^Vx|NsjPoFyW&HlS?N8+@HZpooFP1F zSl-}w2~w0Qt}krV;p>i@{l(G|5{tchgxZgmFezdht2+50eJ^14J#W}9?J_$%k=_8)k+nyVRQew~Q&F=icqwTq=X%B7kK5{?s1Y7k=~TKKIkJD%+-t#g4G^&5uqr@*q9@>Y<|sHe zz8^pA*S2)fXy|mL9M%5{9PWG4S0~TnBk;;J@Y6jsR9#wlK3aJDeSP^3R47-#Yo_j{%W?rwh`H-ZYVeaZJK(nwekV{igcgP!FswRKQ!1v zu*QPYPVEK~Rjc!94OTW6Sl0Vtix$DFY^oo1K(ZpLcv#6pE!OS%Y*S2{D1984^1Wc5 z{JUCjxUk~Gr)zjjB#aWM8mJu!&~6Pze*U-LS8kYum%Dq0{qxgfgDt%J{eA~V2bsdM z)Y>D^1Sz=}gN0DN>B}7XIJ}_*ubNrX9AM8gwmNTC6n2>cQ|Wn`?IQ2lVjI#ccuf8? z@3myDr+mK0f@zS_ioyvDXBHB{>uO;0QvZZL)pvjwX)0+%G5Tnn;HJ^R*Mzm#5oFo; ziAv@Z@cnbH#a1|cRgA7HloCqt0km2^x@c!2-=(OvScj$eaSlC4Dq2@PfNkHO$(C3 z5fZwdh~mfj1MZ(8Zyl8{#+Aq|%#1WJ zTDtR~8f$tHT@>DV@6})fkeg&ie&P`d^_zdwDY@L>Lq_UtZO?-)MF|(;N7t*7i)U86Jb` zTv~#r&8?=^C8($LL1WoQ2m*fgj3FvNi3p#k9jA_Jl0D=28CvY8Zl%IJ^mhm1G_o9L+b`ZO zsREn&1mSuihjP4mm(HL5}(0?X$mJ5kX8u{`_JrecCzqt`C(I_KsMi=Lm_T)p#l z@74-{Gm!m%{z$&XF%#AWtSd3|IZLpy$54Vuh=9VK%ojE{g<-Xq*jF;?pw<& zZZdE4%WVzq?X6=9udCyRjxf%|)3cCFGHS=N#~<&#U)Ppi6S-Y@HHq-`OOhy4yK0`1 zm6{3sbHk_YGHmmgTHJ;{aUOwkx6AkTGXZ&^95*9VLyrD!b3+1vMye+Q{og2Fd!DeD(O@ z#GMAiLz^bdVqMU^w-moue{+t$XpPoCtO!aqxe_LeP&jXIO@R0lCffc{Vl>=Io)*( z(P^-Lj8J8L>m46P?LK*cXwaeS&_Vq@udb{1e>{p}yWT14`y?n`a21oyDPa0&-NOFs zQ*`F%y$(C(=HLVU$?k3n0$m0S^&1Xe)RP+d0{~A;h0wtBP)Hb9L>MUOe`cis2mmA$ z8Y&nSLf=m7gYJljwf5 zhXXsg2_7$JR1ZPn|G!@AowaipoK|iZUM<0g zjesU`D(WF(hOwD9jsl;?Od?JfGQ@aO84;L}Wxhaa)jR{oS9llrQ429V6qEz_E?U|Q z(N6nC3ogk4UgAih7E8$#3yrMChJ3&n$C75*alzK7YL^*MgN1Y~;mnPpqR9;R1bIs+Y5cWOst;kSP>7p`vlaQ~{h=U6SwboDT z9Ha0wE&jR!4{#?i6)O5$1Xb6RJBYIy@@fP>RyXgm`3a%K`bId2iH<%18(^NJ_~V`n z^Io`ce!l)+Pl;|atA6?yYb5xq%t8`hw0t3Zt}%_^2BU-DQw*PpB@vo1ZMn``1lFb@ zh?ZG+(4B3b^5s(w6e05q0;~s2Y1iwuW05vsVw7zCr0pF8l3q;G{fge`3p)(ZnhlVa z4c8W`y>XeQRmyh@m!BoY@j~|2c9yOc;%ne15(*x;;aB#sf`-)^j2rL?8WC{wmXXcb zh~F<^uvuV{kKJ^B2Gjufeq=6~nS{L;y)ma2|Ag@-A6D7qe#T#$eQFynPwbZ3K-V2h zpl&e63L}}%uLUqFeKwSHmu=|BiquxXv(U6&L4b+SRtp-ob{MCru^M7(Hf=W(^WaDV zrxbK<8MEbI5_P2Rg&es3P7iH3xWwD4GvLPPflEczZufHAmdxbgi z+B2{qv_Fy`DZLbRREKYdgniZ-C4A1ch zU1-#JBel800)sTv7%#R!jz&xKBVv#=(eC`~vF_?x&zD&k!$qw8pu!i~=wmwOl=5EH zB5&E)|9uMnl`Exus2lBZi8CxIPo%Gc*rcKis?FD%ci>Ca+E)GTHhXb=RJX`#fG9+)YDz z!=}8$C0#~XWK1rIO{0t|0*xw6ikeT#J{XwEzlsjH$lBC*HI(^K39@ne`^a=)oiZ@edc`tiBOeM3p#bohJrt9Gr#uNH&dF~6A5IC*KH%{hEw)7uy~+GHtg zVrRNfd`wElk?XH#ZoP*9z?`RbzBQPKrkjE{D!iEoU_JEnm80WKqE3 zhsMPw{D{6N5XM9+#S#98YwK~Bfa9=(;=5)K_7QShYYui}|3ZVJHGV{2`ClPsdC1{Y z$(Mrp1+PD$iu(|xh)3JLpVPQlZ^9pPiGf}Q(ZW**POxh^e+W^I?t~w;Z_U4@6MQB~ zB0Xx4j7Chzju8gPf1n`D2cf6ycfhz{Ed=K4R?`pf^9If&_1h0 zQ~e~eGB}rTElFg?*0Rf_q@StzYQ|P&K-{j~8+~$|tYeF;y=?7G3-k34AnM?&(Vf29 z~%e(~sow#P{}S4R?r z$V3=)|KtanXDljM@WgN|I#z@H6Dl@F$VJv^Z{JHbU%$SiT7b|GKe^Z*lnLjyf)^$* ze-t7U&KTHug(5QqKP$4i*pmOX%N1#;GaKZ_&tJTK6EA4=9n+B z#Pbey+X&?jD?_*!?=N%L(XeL`-IeedE&Mm-0Ja?Y&>)au^p5nR<*0&Ns3L(zhr`^+ zPY0(o^)d>c8UEPM1jz}2iN((aL)ZNQhzn2DnR5jW!7wJweJOZ4deN$ldvd% z84!7Z`7n+7|9Xl8?K%r_MWTv>b2Q{A5yT+WdGH6IN%D({`O)MLpz+^@kLzYQ;wG=? z1qwIk{0R}RH~sz*egE1~fPjVsK*4-~hWOXm4H^vU1_OXaMFXN^V6w1dVUx0P2rGYL zr4xUd(LF%mnW_6V06rl^(I|BHM8M9ON(0OZZ zw%h#dp6cK{J$)(NWi#{M7N0I1oyHz>J1HlM46(omdCTc9-wpTd(i09$ zNOs2*5`iyG#7!wdO*p`&6tyk*!*|b&8#$N;G;E^9BCb2a)^P|Zq9IinDYui5{T^?0WGBxO>`Em}0X3DYC7tC1IYFYle z(6nq@19>^_ggU6YM|Gb>zwRaS3@FXXK(Y@PSE+|jx9x_Kada}vYfEs@Q zDm61%eplGyUpx17&*bsS74i}E_4a4nLW5?hjv6^>iW3*d&&`vh=9kz;j5wZ`l|$jt z>50#F)>>)NwF?tT9{PZaX*aOGCOT!la5^2*mDG`0gq|}BIxLfd*nGoOUL<9c zbv0?g?NhBR1|Au`Yq7)75m1Y3%$fF6N4zUh>1171Vs!WCJ(yZSZzeV?&9WLD|!cQk@3N5yA!LvX8%>3kPsoHU_A z*DSS}>50FBTSe|~tHjQ!u>*~?yEltZq!W+DX$3Ou^tV1q#K_e1@D+|GGacPj#(KhQ zqkit+Ok?>OAQvf+ZjlTwL+`h^w7@gj{t=O*EY& z4mv-!kny!+!z!frdtXyCYaSil4G9SP9?@^{dJ^{>2dHP? zR(SQ=@g74hbAM1;?$LES%Q(P0oA5OQ6*qQz5=cVOKGsigj5$zBpK_4Z*eOVevdg@R zxq3bJ&wy$nhCaX0vqe{H9)DG+->)X4#PUaaUakh$Xx{Gjz;72{VtI2Y)-?62Vd$0Fos^iH{g>KMorU%iiJbaKM!D5Fb3F~A+S9$RsN9hd z+n*pKT=YxW-VtzO*S!pI+Ub>@F1p0(uv)U?1_{9Th5a>zmNokSGK5|N$@*W^Uh@&e z&gR->GpZwx&rsCcn~xamnlCf^Zn_^4yJ)F60!kT#8o)gy6G>V#GJT+owVChlFw5%UlQn@z7Qtnh1|<>2ukCZCE68d@rDn z4MlPfHms%k5G6h@B>Va43NQVhA^k&#+a6h#Dnc?tD)#WB0`)o4%;8$yB%UgL)G3oA zJK3BOvdUxBcGGz)Auuo0XvkOTapf4Z0%-)a#&w=(qz4JM>0ZJGjI1QwQZQazE2v)m zSpp7YmDVg#@L;PvGZou;wbR|_DI>9Jo#Ox{y*mr{EB}J{c#$2e6oE&%k61Jt>rIrT z^n6^vLM9(`yvgVvz+q8vUo#p@`4{10v8bq=1@~<3OpKsxi>5GELJFf^1RN)pJCo|0 z7&`vK7JD6LFd{muIoe@pmgjtGws^>h4Y`^&Flgh+LPN5!ax-DDS|03206aCJGAOg$ z9O9_h_?8W;O+e)3noPc3=bF>0v`COWZChQNj(^HJ<0G+kNlb1|wm2xqZb|#Yz_g9w z)jk}_szB>@mrNt5RbN80k`AV0rJIVsDw=wWgjKQl66oFRIU(t~4+iG=ZC)(MM>jxi z`D(5Jt-|7!X0sRhj~oWPK<*cHYUWcAUyQ{?;v_(+RYMv`x*Jm-Mz96z3R9t^wiXFj z`;9S0o3b~k!!IXMR3sQC+~b*l`>%G`+88r}c>Z&;8>6g#St5Pg-{tN>J6cE3@(eX; zPz;JfO$X9}htog57XSX#(GpRjE_-t8lp7T>>5ijaGbNa9GNf~+@y6MJ*{RCM&rf2S zJ<6M0t+6jw-w;9cFhIIA16_n~?BE)fWmA^8s8AkIrXP3wE1D%H;XZH9>T9Hd@$pdr zC|O{}JI2h+OnVlmxl#HVn?6yuGOnhaYEbfsWei$ngji3LZQ5ZJ^V6sChB?4PDwz}v zqZ;Ug;i{pAkG%PnEdT9zgG|k$9A<=#rp79|cFvP+(JZ%ltILOoa>^h*SuuJFPyV7c zDke=uT{1Ekg|Gs97~2sB)&6HGrYk%K-Zq> znhLf>ODW_T9ddel3HYqWNqXJq3F9?>sEj#tJYvLU0jYw%|zYRUir8~$++-)D8M*WlNiz);jY>+s%E|N z>DZ}y$O8{gTD_+J0AM5}PRC!c#ikM&u5yj%Uq)Rs^@Y84K>@k<#j2fnW~mkas^yv2 zuQ^Y@6@C251p3tSb}Qx_mrvU+*tZ^eu3uxo6%y`R?1?pR!{6PU(OP%+K72R5lKqsmCR{)xUu)dZkXHvg7h;oC#Hpv$sH_hc@lqOZGMc6 z?wacSY9+fia1S`Q0tv=UZHoR1yALsi9_|pW)Rx0;eW3JT5M!p2e4J^$4kV zc08;a^=Oh@rRBl5o_V$~^EyKuB^6p#s*@_VZkc`6BI!snjt86945Re*D--Eus@uLs z+@ZM(l~nRBD<`y(1R3;~yI`AnL0b%ZWb#b|8<|vSlUN=U^4BXmU!c<7z%X z?%CZ`CD}`2mnq^7^|^1Uz=pT#Fq&Sa4jb}bZ&F7Rbl!v_-}f;C_|ej~36RDONSEdc z)63ZEoBaC)p81T+%X34@vxesSP}@c_HMZt@>COGx{<;DuQDxr8Udo?XYH2RNd0yJA zq;(n_zGRh>Uj<1#ERDA`h85#Qrzre5Vyx60a|LRcQ+;%}x3k4Zv8bnSDcwLQ*F(p< zgCX+kxA8%1iT60uXVYud{k9_&Z2SPst&bMd$BS7S2_Di3@rb`lGENP;1x zOB@@;CGU?#d z{T7=viWw{Fn6ySuxW=KgseC)T+xiDUT3EcIG}EZ*)9zXyR%yLgt0h0Y@+p}k#mI7p zPiU-9$ttC9=9*pYUCA>592?8d;Gg#aJdte&WgiFCJ69DI*U3&cz)TW(uYqGvHEbMe z>TySwR`441M!U!twnFKsvECcBu$-NR>?Dq(UrU)M!Or`mT*tFJ|R={uh5Nn6vFj$Rxsm7+sM zeI^BOS8V5cS##dG+*+&7Br%UX-D}R^9V@Hr^T=Lbp{ZX*^eYwfROD+L!S7Nsa_?GJ z?+1Bt$%lIn-ZM=gu-DBJ2d9kaTeW|)4=`EK`e{OKIUa=OD^drVN=#&*4a%#wS&s0W zjYd}20@w?%gOfbfIZNx-lOE;{vylc7Yt0~tfpxzP=LpF zHt5=j0D4$*1YDKi$WOTSkOI{QPAd}TM5hQB}A)j1;A$TyZAS$cbg2xGnV7ftz^5iw zKjH-Hk3J(`$MvL90A71adzZ@)h%ZgxsQcOJYCg1K$plYtF#PT1UYb8CT4eOBh5LDV zp8owhu=s}na2~jp?UG-PmlzmW-X}lw@~fg?bE~{~KiV~}F3NChw(fs!M5>c84@o=Z zuueS$CFe>3i&_SB>}!cJH!akuF+M4!D0y=>nIwn^eA|L0=KDk`WXHfARpZy=Z@7As zdWZOhqP4UZKTzHJ%M|i%JbT-59gd6Ji_j&}FT zFT1|Bb$sTvp=N4&M+49$3WO}b8oc9IYqKJ1$+CvEN%%KkNmop(x;4G3?{p3t*beYM zR&(N3^r!Kq5W9(siz_u5(*F8O1XqCpP@jV1x&Sdhtc?*w5wBS3fz#Za`YXm4yu1%{C;K7E_4JwWAQeduPZDwF62*>o4ULj_eP^q9 zyK?Jh=oxJUM$mO{iB=q{!l4^~ZM|IKVHj>2)spWo=~G}`8qzUsZNT!UY?kfi_9#)g zu18C<2zMOI+P%c`~_RU z>P>%VbIcQvjQ_LxPCL_op_<$FyQ^Jl#S3F@Pd0X4Mjt#`-C0&YI+XU#bKLm*$fwI8 zO?dGn)7=-wS|%lAqlTq?9YzxBq4wFt6;6Iwrnd#tx00We3U-xwrf>MxppWe6--BIP zsd&+{tD+k7&e!g3!HIbFl!*-W4j*tLAQX)C$;J86qM?-~h96Ao&{Zw+Y~;vfjO0Hw z4Vn?Xhy?@Ggr!71(W?^Sple_Up^D-@glY?w4P} zb(<5<)|OVGRM3m~em3<*^Zjfz-6Fu6ZX+>n&+Iu??Cm$)I0b{-)PWb#B>uYPLPEg6 zBSJ%efcP)BTr_lO@D8X71{s@(s+x&&!vZ;ru&A<2U}8aG;{d68(jaC~(LM~jv1vkb zlbG4R*VO*m1yn zNUS(Z?+ZH40x;@vlM?YXtv~)&tTU1|*va`ywlU6%4pg`DV&<&#(|*wo{mEH`4M(W~ zqKu8z!*uGZc`EP06_S9ltD;djxWG9S5N#a1n>=DO(X*{4M&+@S^Fyj~**@|CCXH#@ z;Uwm8e)3f}8DKbzHE(Dlu*5y}zdwLoJLiM3Fr_?@UIqv}b4aS85C_!qMwE?V23>q9 z%Kmiz% zBI#^-ld_G?4{6`$Ijs)=Iz5$nKCem4+vK%KFsg7niRqqZ8bibV3{#%eiWqL2#kV0M zwn?u_Yqm`DEjOCDNo!kq9ij+B*#wuA7sJO$1=DU)LulJtPnXYf4%@EMq3W?2|KdvEj*4U($6&Z7v{_58Y$(b@ z)+l{o$2Wng6ZmVsK~>}u(|;;A;DYquY$pE)oBap~UAeOKOgiHB9;z8$HAOPD@_n|a zf@54viUUSj(HB@XF5Vw6hq9?;ta6>dEpuY=2K0!N$4L&5F$EB4leM3!|MuDKOL+)u zrQQ`{zSa+|<7C?{-?|n(Bqo3Bx*AerBXP)jpcK0Sj%N6)3}t{~crJY(8K=b8r4*Vq zMTCA^rc_na6r-6kFzOfS|MEcGzI<8}`Xyn@0&!zzbbPLLhRFEY-Oa>l(gDd_xjV)| zCxy#iJc5%3ps9eF*9m)Fok?zmZQ3jh&`;LK$=vuHS?lGY#reCiL*Ylxmc{Ruxe`A^ zqv8{S^CPO?a6Nb(Y`?2=1j7HDy%!slb|a1e3sfrDm`hSyvV0x0VFCo(_Ud5jm{Kt-w59*5 zb$tA)=pg4S#r0R~!s}0tC)Vj7RD4C-nL?FRunVjrC%GCUp>4^E->E*;nD6`GXBW)h zCR_=s&El_r{qpY9N4HLD&- z>9G{s7#}1`TnT;4`L@TGd2UE&f55~=pnWluj645w?){Qq=vp7)4w*E2N}{=VJ|dfN&_(5b&gH(HuQ`=r};x=%Hpvku^QPCjsP z9yZA4D`vLGK*Ce%F(l63ob@2^>=LG0yJ!G_XgLOsHOWY+_m9(Kx zadThtSgElE4ez>^mgPOsR(O;Qo9_;z`efN9Qn2VR7h+FQr=ssQH}=+Xr!V6qwx^4I z%*>0fE(8}m9c=HLD_!}&B{y0^6X#m{wN46O!@lHFD#S5sp-QjAV|+oX*1iJPXtO+d zD{@E4Cnpan;k*Y83#4i-HreSa`A4A3)aA8vkhA z9{_qgfn+7QSJy&IdniGY3~&y4@_>!@X?>xI7MdtTtx*xj7gyE6e@k>dHr1OB2>%~K z=w3_oSN?Dh@8QjC(Z<)s5_4-4^Smytgtjah@EqIM{gbwNlGpJ6RsV z7=d*CffvhMaFR9W8j^6R+ss?_(D9W(Yx|*UUfXKeSw^m0v+M?+VA3=F=6o6542*r3! zspTVpk5SNQ)%dCjFNF^Dcz_ygSp8%yS5T> z#_YE$<<6e#kZAmv3a9~c&||DQj~KnuCuqrGRNed}PImnds>RVr&23V8Xwrr#oXQ+} zWhOId^0^9w^$p3t!1fkVt5!?|QfcJP#sVh+VPn%Cw-vB*NGHltx9mszf0^ z`4PE92Kzi8zMeFA6iIR}8C{ker+$3}4bJyRh@-lu978n1=6GmajpfQaNlGEZq)rwU z0A6)^UK#*-l+^N$lj^_tdxe0!vSlR@+A*%)6##~-UY36$C-`5LU1>NJY}+2$daa3J z9!trLWsqv@j3t?2EMbVoIzsj>#A68+VT>`Dq>^Pu4Tdab>&Z?=v`CZe4U)0TGI`NA zy~q3g|Gt0casRuH`@HV!Jns8G&Xb&)Xe8_)t2<+f+(eE9E8TYxBAcD@>C*M#SkMX& zI!HmY8?|fzTrcyGetZe8SASt6a~|S}{V%Z>f%z})W&f&X#8K0W-a&oGZ;GV;0F4$? zxYm;+9i5_RE-B zj&jqfkP zX(b)A#Ga`oyt(VkO7Ot&R4jpEqyg~bmbhn|`4u^zhuQ*ty@ab&=*-C;FS!Z% zP00}ekL^c<-zClw7}6GmMI#NkEX_maIqI)%cMD0MBlki%Th}}bugJ~G#fs0KW*2WH zzF&W0Iy3~q!Y7WYC;h5$5~;fAh7Miqgo6mVM(@4rt-RR;kU5&6U;FRV0_N)R90FEBWm}huS0^1RH!+Ql>)Dd)-k!nz{Y;?mU(Ll;)4vng|hhX?kp*8nw^rGH;-=Q$fz7Eixxn6FY7;?n1! zm$H@(k^hEWjORKKGudEUuQg4RE_`cd4t}@vVkbsc=hpmfsmncRcPFz*EdGT!vvt9E zE?GtDxNenpqnuf3#(ZCM7ncyZG~Wy=lvkdOC8-YD_GM7L+vjB7M_8(NFCdGL5zn0^ z64xST;(HL4;0p_A>WxmOB>xq}@pQ0;qbbH!~>^>dJ{hCjTp0>F9>XOOg#lj0>ED3 zQg6vafv^X(s~S%o`=MZ%JfCx9f;dH`LSXp7pl!wbLPr6CUrh?RJYtcx=#()0Pw5YT z;=qn6cT*{%L}~Kv0N<}oS*1l9X5@1sZ9K0ZrSK%Ly>W}c{;dBaM}I>mv#Etj~Ewh%m_!Gu$?c;G*lAl z5J{~Ru37T3f$LLxXYa7|yFrP1=M2m|LWB#+!QbKi@t~LE) zT$LN_07xkKqJP@Erg4`+@7Mtz{RWgb^=*HFc5IN_i|PmX6=OsL%Q~F?dGabyo0K6f zWbg^Nev9bERIsIIcD1_hNlv&ck(!V2!wl8M$ldw1K zyMH;vvYbH(K&4iD3#u&ESFeY5 z71fX|XPe^lh4z-i#NHdJ6zi00Ewnsf(eo^XsqBo$uy5`gwHfhp-s`Qct-w4pWrKy| z+$CXc^fQ_`S9D5C^JNY^0vC5)U^NSRB&W~Uu7nMJD1)s2$?p}VGjoHYGo5hTsTi15 z>Et!(wkn>i3*SrYX!rHa9@Sn*a7J*$FPew=pzSqsB{tm#L^F*=lvHq^OG_Y&@Y|7M zm@AvWKC0N>vwm;9Bd{hR9^|QiwN2ME51#*cyRCX48itr^MYbiq@% z4=(ktY`;>~lh<4L4M>(EjXNvOgJjnU_Ow^~;Zu(PnwLCg2=hFuEAv*Eo)9TF5%)&8 z)l=H8&gLB`@V>7g{P)P1E4R;-k?^KHnw;5;Lgs3g>Rk#NIcqldK_My5h3%)}*DeDM_3+e-(|7+*K~X1G(iFaCtRA?39O|vA6_50Zd_Fh{38*N_DdmOK zmxU-ebBi`(p9y6AXGNWwMpMF`-+6K#>Otm3kO9Se7@)*Ee;aQAh!h^&^zaQtq*Mst zxk}E)BlFCDxf9j>OzRZ(*Mh|@4~~DrEd7wcc<4oT9FN{X4-y0#;dg}qs!VunMV`J^ zK|kMtfQx7zQ^ZnIZv{~aaS}nl1L(?`vp>7!=DKg0bmTauLxEE*1<=0>7&Euu$j+ND2K8G0TYxmgMx(@$vZ8xZ1?{SGOusNl(auW*Aqp5YVDJ+06E1ch!KR^K@QHMe!ZO+s%u-(u8yt=7~Xu>#Gz zG1hB0!u&;y>+J`bP^S8pmF!(-PP+CDPR6O~ScgYQ;mgFR|K*It14@*i)Um}04*kU2 z8_uzmlYH3@mhEi0By+~)a%bD0<3k9#+l~NX&fy@)1aGl9)KWaxfEzF4LDsZELHBzD zwz`tKL-(roRVBqSCtctt>sesRcKE^84P$=J^r$baw0)wpAylw`A6YmB;nT2TWNt6q`#w zbji@}RbsG|ibh~gY#7({&YjEO#bll;Ak~c4C(u?LX%uTFiUmTb-3}Vx&)z$sTTWLE zz({#C$(7?!nm8>&?F27MXAPwnc0SPE@EqFaxp3WGd2XL1UB1*~Y*L|Xad|~7dV$Vy zbP$z>%hvwU8K=~WPpSF;S6aNQEdjpE9uCU?hE7zqOG9l`8UvMkblzKUH2be^y8jp& zbC771OK}nw)19PaBi-tbjGh$wS@7`7cC0f?gaQ@E#vY0K`GKBBT^l>z`6{-Xat;i` z-hwr^^5L^=@N3$Nr7jJ9y-uOal1a*MD(gUzn!@E~>N?MZHOw!oj7G@~qZOVq@^E@^gVoL`1~+`zrg4GH=q zhUR8rZV6ybF}5Kn|Ijy1xVyqnCbXR|s(F&j6nTT2I&B@6U)Momn zl~40vbNl+;CPGgwrXWGeRz#vo^va=%#z!&v-QX>;r?CzDmF&wICs&t^gjb+HbyAlu zMj$fEW+#&V8gGY(KVE`c>Cwx4@n%%k0e}1*(>b4BUJnY1Zgl-#TGDp0Kkn<2!w5~g zvI66hkuJCqL^qCJr{ynR-v56Ayn?5WKTl%wvo~rR^I$L2G3XIr$!y>eANg-P#SqaU fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/img/docusaurus.png b/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/img/undraw_docusaurus_mountain.svg b/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..af961c49a --- /dev/null +++ b/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_react.svg b/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..94b5cf08f --- /dev/null +++ b/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/undraw_docusaurus_tree.svg b/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..d9161d339 --- /dev/null +++ b/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 000000000..52e7d4168 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/index.zh-hk/index.html b/index.zh-hk/index.html new file mode 100644 index 000000000..0fc25eb70 --- /dev/null +++ b/index.zh-hk/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/intro/index.html b/intro/index.html new file mode 100644 index 000000000..50c37eac6 --- /dev/null +++ b/intro/index.html @@ -0,0 +1,14 @@ + + + + + +intro | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html new file mode 100644 index 000000000..2dcdd7a08 --- /dev/null +++ b/markdown-page/index.html @@ -0,0 +1,15 @@ + + + + + +Markdown page example | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown page example

    +

    You don't need React to write simple standalone pages.

    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html b/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html new file mode 100644 index 000000000..cce2e801a --- /dev/null +++ b/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html @@ -0,0 +1,97 @@ + + + + + +Advanced PIO LED Control and Resource Management on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 上的進階 PIO LED 控制與資源管理

    +

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    +

    PIO 程式設計:實現複雜的 LED 控制邏輯

    +

    首先,讓我們來看我們的 PIO 程式,它實現了一個特定的 LED 控制邏輯:

    +
    hello.pio
    .program led_controller
    .side_set 1 opt

    .wrap_target
    pull block ; 從 FIFO 提取數據到 OSR
    out x, 32 ; 將 32 位數據移至 x 寄存器

    ; 檢查 x 是否為 0
    jmp !x, off ; 如果 x 為 0,跳轉至 off

    ; 檢查 x 是否為 3、8、15 或 21
    mov y, x ; 將 x 複製到 y
    set x, 2 ; 設置 x 為 3(二進制 11)
    jmp x!=y, check_8 ; 如果不是 3,檢查是否為 8
    jmp off ; 如果是 3,關閉 LED

    check_8:
    set x, 8 ; 檢查是否為 8
    jmp x!=y, check_15 ; 如果不是 8,檢查是否為 15
    jmp off ; 如果是 8,關閉 LED

    check_15:
    set x, 15 ; 檢查是否為 15
    jmp x!=y, check_21 ; 如果不是 15,檢查是否為 21
    jmp off ; 如果是 15,關閉 LED

    check_21:
    set x, 21 ; 檢查是否為 21
    jmp x!=y, on ; 如果不是 21,開啟 LED
    jmp off ; 如果是 21,關閉 LED

    off:
    nop side 0 ; 關閉 LED
    jmp continue

    on:
    nop side 1 ; 開啟 LED

    continue:
    nop ; 確保最後標籤後有指令
    .wrap
    +

    程式解析

    +
      +
    1. .side_set 1 opt:設置一個可選的側設置引腳,用於控制 LED。
    2. +
    3. pull blockout x, 32:從 FIFO 讀取 32 位數據到 x 寄存器。
    4. +
    5. 接下來的邏輯檢查輸入值是否為 0、3、8、15 或 21,如果是則關閉 LED,否則開啟 LED。
    6. +
    7. side 0side 1 用於控制 LED 的開關。
    8. +
    +
    info

    這個程式實現了一個特殊的 LED 控制邏輯:當輸入值為 0、3、8、15 或 21 時關閉 LED,其他值則開啟 LED。

    +

    PIO 初始化函數

    +

    在 PIO 程式之後,我們定義了一個 C 函數來初始化 PIO 狀態機:

    +
    hello.pio
    % c-sdk {
    #include "hardware/clocks.h"

    static inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {
    pio_sm_config c = led_controller_program_get_default_config(offset);

    sm_config_set_set_pins(&c, pin, 1);
    sm_config_set_sideset_pins(&c, pin);
    pio_gpio_init(pio, pin);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    sm_config_set_clkdiv(&c, 1);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    %}
    +

    這個函數設置 PIO 狀態機的配置,包括設置引腳、時鐘分頻等。

    +

    主程式實現

    +

    現在讓我們看看如何在主程式中使用這個 PIO 程式:

    +
    main.c
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hello.pio.h"

    int main() {
    stdio_init_all();
    printf("LED Controller Test\n");

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &led_controller_program);
    led_controller_program_init(pio, sm, offset, 25); // 假設 LED 連接到 GPIO 25

    while (true) {
    for (int i = 1; i <= 25; i++) {
    if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {
    printf("LED off (%d)\n", i);
    } else {
    printf("LED on (%d)\n", i);
    }
    pio_sm_put_blocking(pio, sm, i);
    sleep_ms(1000); // 等待 1 秒
    }
    printf("\nRestarting sequence...\n\n");
    sleep_ms(2000); // 重新開始前等待 2 秒
    }

    return 0;
    }
    +

    主程式解析

    +
      +
    1. 初始化標準輸入輸出和 PIO。
    2. +
    3. 將 PIO 程式加載到 pio0 的狀態機 0 中。
    4. +
    5. 在一個無限循環中,遍歷 1 到 25 的數字。
    6. +
    7. 對於每個數字,將其發送到 PIO 狀態機,並印出 LED 的預期狀態。
    8. +
    9. 每次操作後等待 1 秒,每輪循環後等待 2 秒。
    10. +
    +

    編譯和運行

    +

    要編譯這個程式,您需要確保您的 CMakeLists.txt 文件正確設置。以下是一個示例:

    +
    CMakeLists.txt
    cmake_minimum_required(VERSION 3.13)
    include(pico_sdk_import.cmake)
    project(led_controller C CXX ASM)
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STANDARD 17)
    pico_sdk_init()

    add_executable(led_controller
    main.c
    )

    pico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)

    target_link_libraries(led_controller
    pico_stdlib
    hardware_pio
    )

    pico_enable_stdio_usb(led_controller 1)
    pico_enable_stdio_uart(led_controller 0)

    pico_add_extra_outputs(led_controller)
    +

    編譯完成後,將程式上傳到您的 Raspberry Pi Pico。

    +

    測試結果

    +

    當您運行這個程式時,您應該會在串口終端看到類似以下的輸出:

    +
    LED Controller Test
    LED on (1)
    LED on (2)
    LED off (3)
    LED on (4)
    LED on (5)
    LED on (6)
    LED on (7)
    LED off (8)
    ...
    LED off (21)
    LED on (22)
    LED on (23)
    LED on (24)
    LED on (25)

    Restarting sequence...

    LED on (1)
    LED on (2)
    LED off (3)
    ...
    +

    同時,您應該能觀察到連接到 GPIO 25 的 LED 相應地開啟和關閉。

    +

    PIO 資源管理和優化

    +

    在這個例子中,我們的 PIO 程式使用了 12 個指令槽。RP2040 的每個 PIO 實例有 32 個指令槽,因此我們還有 20 個指令槽可用於其他目的。

    +
    優化考慮
      +
    1. 如果需要在同一個 PIO 中運行多個程式,可以考慮減少每個程式的指令數。
    2. +
    3. 使用 pio1 來運行額外的程式,它有完整的 32 個指令槽可用。
    4. +
    5. 考慮讓多個狀態機共享部分指令,以最大化指令使用效率。
    6. +
    +

    您提出了一個很好的觀點。我會為您添加這些重要的知識點,詳細解釋 PIO 的整體架構、多狀態機使用以及指令限制。以下是新增的段落,您可以將其插入到適當的位置:

    +
    +

    PIO 架構與資源管理

    +

    PIO 實例與狀態機

    +

    RP2040 擁有兩個 PIO 實例(PIO0 和 PIO1),每個 PIO 實例包含四個獨立的狀態機。這種設計提供了極大的靈活性:

    +
      +
    • 每個 PIO 實例可以同時運行最多四個獨立的程序。
    • +
    • 狀態機可以獨立運行,也可以協同工作,實現複雜的功能。
    • +
    +
    info

    例如,在 VGA 信號生成中,一個狀態機可能負責水平同步,另一個負責垂直同步,而第三個處理像素數據輸出。

    +

    指令內存共享

    +

    每個 PIO 實例擁有 32 條指令的共享內存。這是一個關鍵的限制和設計考慮:

    +
      +
    • 所有四個狀態機共享這 32 條指令空間。
    • +
    • 每個程序可以使用任意數量的指令,只要總和不超過 32。
    • +
    • 一個狀態機可以使用全部 32 條指令,或者多個狀態機可以使用不同數量的指令。
    • +
    +
    precaución

    當設計 PIO 程序時,必須考慮到 32 條指令的限制。這要求開發者在功能實現和資源使用之間取得平衡。

    +

    資源優化策略

    +

    考慮到 32 條指令的限制,以下是一些優化策略:

    +
      +
    1. 指令重用:設計可以被多個狀態機共享的指令序列。
    2. +
    3. 功能劃分:將複雜功能分解為多個簡單程序,分配給不同的狀態機。
    4. +
    5. 跨 PIO 實例設計:如果一個 PIO 實例的資源不足,考慮使用另一個 PIO 實例。
    6. +
    +

    實際應用示例

    +

    在我們的 LED 控制器示例中:

    +
      +
    • 我們使用了 12 條指令,佔用了 PIO 實例約 37.5% 的指令空間。
    • +
    • 這意味著我們還有足夠的空間在同一 PIO 實例中實現其他功能。
    • +
    • 例如,我們可以添加另一個程序來控制不同的 LED 模式,或實現其他 I/O 功能。
    • +
    +
    剩餘指令空間 = 32 - 當前程序使用的指令數
    剩餘指令空間 = 32 - 12 = 20 條指令
    +

    擴展性考慮

    +

    理解 PIO 架構和資源限制後,我們可以更好地規劃複雜項目:

    +
      +
    1. 並行任務:利用多個狀態機同時執行不同任務。
    2. +
    3. 資源分配:在設計初期就考慮指令使用,合理分配資源。
    4. +
    5. 跨 PIO 協作:對於更複雜的項目,考慮 PIO0 和 PIO1 的協同工作。
    6. +
    +
    tip

    在開發過程中,定期檢查指令使用情況,確保不會超出 32 條指令的限制。如果接近限制,考慮重構代碼或使用另一個 PIO 實例。

    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html b/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html new file mode 100644 index 000000000..0b244143f --- /dev/null +++ b/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html @@ -0,0 +1,158 @@ + + + + + +Mastering PIO Programming on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO 編程深入探索:從 LED 閃爍到精確時序控制

    +

    1. PIO 簡介

    +

    可編程輸入/輸出(PIO)是 RP2040 晶片的一個強大特性。它允許開發者創建自定義的數字接口,實現精確的時序控制。每個 RP2040 有兩個 PIO 塊,每個塊有四個狀態機。

    +

    2. LED 閃爍示例

    +

    2.1 PIO 程序 (blink.pio)

    +

    讓我們從一個精確控制的 LED 閃爍程序開始:

    +
    .program blink
    .wrap_target
    set pins, 1 [31] ; 打開 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    set pins, 0 [31] ; 關閉 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    .wrap

    % c-sdk {
    // Helper function to initialize PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {
    pio_sm_config c = blink_program_get_default_config(offset);
    pio_gpio_init(pio, pin);
    sm_config_set_set_pins(&c, pin, 1);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);
    float div = clock_get_hz(clk_sys) / freq;
    sm_config_set_clkdiv(&c, div);
    pio_sm_init(pio, sm, offset, &c);
    }
    %}
    +

    2.2 主程序 (main.cpp)

    +

    現在讓我們看看如何在主程序中設置和運行這個 PIO 程序:

    +
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "blink.pio.h"

    int main() {
    static const uint LED_PIN = 25;
    static const float PIO_FREQ = 2000; // 設置 PIO 頻率為 2000 Hz

    // 選擇 PIO 實例(0 或 1)
    PIO pio = pio0;

    // 獲取 PIO 程序中的第一個空閒狀態機
    uint sm = pio_claim_unused_sm(pio, true);

    // 將 PIO 程序添加到 PIO 指令內存中
    uint offset = pio_add_program(pio, &blink_program);

    // 計算 PIO 時鐘分頻器
    float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;

    // 使用我們的 .pio 文件中的輔助函數初始化程序
    blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);

    // 啟動 PIO 程序
    pio_sm_set_enabled(pio, sm, true);

    // 主循環保持程序運行
    while (true) {
    sleep_ms(1000);
    }
    }
    +

    代碼解釋:

    +
      +
    • PIO_FREQ 設置為 2000 Hz,這決定了 PIO 狀態機的運行速度。
    • +
    • blink_program_init 函數用於設置 PIO 狀態機,包括設置時鐘分頻器。
    • +
    • 時鐘分頻器的計算:div = clock_get_hz(clk_sys) / PIO_FREQ +
        +
      • clock_get_hz(clk_sys) 獲取系統時鐘頻率(通常為 125 MHz)
      • +
      • 分頻後,PIO 將以 2000 Hz 的頻率運行
      • +
      +
    • +
    +

    3. PIO 指令週期分析

    +

    每條 PIO 指令的執行週期由兩部分組成:

    +
      +
    1. 指令本身的執行(1 個週期)
    2. +
    3. 指令後的額外延遲(0 到 31 個週期)
    4. +
    +

    例如:

    +
      +
    • set pins, 1 [31] 總共執行 32 個週期:1 個用於指令執行,31 個用於延遲
    • +
    • nop [31] 也執行 32 個週期
    • +
    • nop [19] 執行 20 個週期:1 個用於指令執行,19 個用於延遲
    • +
    +

    4. 頻率計算

    +

    根據我們的設置,PIO 時鐘頻率為 2000 Hz:

    +
      +
    • LED 開啟狀態:(1 + 14) * 32 + 20 = 500 個週期
    • +
    • LED 關閉狀態:同樣是 500 個週期
    • +
    • 完整循環:500 + 500 = 1000 個週期
    • +
    • 閃爍頻率:2000 Hz / 1000 = 2 Hz
    • +
    +

    這解釋了為什麼 LED 以 2 Hz 的頻率閃爍(每秒閃爍兩次)。

    +

    5. PIO 編程限制

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須 ≤ 31
      • +
      • 原因:延遲值在指令編碼中佔用 5 位
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 原因:硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    +

    6. 優化技巧

    +
      +
    1. 利用循環減少指令數量
    2. +
    3. 使用側設(side-set)功能同時執行 GPIO 操作和其他指令
    4. +
    5. 適當設置時鐘分頻以達到所需的時序
    6. +
    +

    7. 注意事項

    +

    在使用 RP2040 的 PIO 進行編程時,需要注意以下幾個重要的限制和考慮因素:

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須小於或等於 31 個週期
      • +
      • 錯誤信息: "instruction delay must be < = 31"
      • +
      • 原因: 延遲值在指令編碼中僅佔用 5 位二進制
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 錯誤信息: "program instruction limit of 32 instruction(s) exceeded"
      • +
      • 原因: 硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    5. +

      時鐘分頻器 (div) 範圍:

      +
        +
      • 有效範圍: 1.0 到 65536.0
      • +
      • 最小值 1.0 對應最快速度(系統時鐘頻率)
      • +
      • 最大值 65536.0 對應最慢速度(系統時鐘頻率除以 65536)
      • +
      • 注意: 當計算出的 div 值超出此範圍時,實際運行頻率可能與預期不符
      • +
      +
    6. +
    7. +

      GPIO 引腳限制:

      +
        +
      • PIO 可以訪問的 GPIO 引腳範圍: 0-29
      • +
      • 某些特殊功能引腳可能有額外限制
      • +
      +
    8. +
    9. +

      狀態機數量:

      +
        +
      • 每個 PIO 塊有 4 個獨立的狀態機
      • +
      • 總共有 8 個狀態機(2 個 PIO 塊 * 4 個狀態機)
      • +
      +
    10. +
    11. +

      FIFO 深度:

      +
        +
      • 每個狀態機有 4 個字(32 位)的 TX FIFO 和 4 個字的 RX FIFO
      • +
      • 在數據密集型應用中需要謹慎管理 FIFO
      • +
      +
    12. +
    13. +

      執行速度考慮:

      +
        +
      • PIO 指令執行速度可以非常快(最高可達系統時鐘頻率)
      • +
      • 需要仔細計算時序以確保預期的操作頻率
      • +
      +
    14. +
    15. +

      與 CPU 交互:

      +
        +
      • PIO 操作是獨立於 CPU 的,需要正確配置中斷和 DMA 以實現高效的數據交換
      • +
      +
    16. +
    17. +

      側設(Side-set)限制:

      +
        +
      • 最多可以使用 5 個側設位
      • +
      • 使用側設會減少可用於延遲的位數
      • +
      +
    18. +
    19. +

      調試難度:

      +
        +
      • PIO 程序難以直接調試
      • +
      • 建議使用模擬器或示波器等工具輔助開發和測試
      • +
      +
    20. +
    +

    完整代码

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "hello.pio.h"

    int main() {

    static const uint led_pin = 25;
    static const float pio_freq = 2000;

    // Choose PIO instance (0 or 1)
    PIO pio = pio0;

    // Get first free state machine in PIO 0
    uint sm = pio_claim_unused_sm(pio, true);

    // Add PIO program to PIO instruction memory. SDK will find location and
    // return with the memory offset of the program.
    uint offset = pio_add_program(pio, &blink_program);

    // Calculate the PIO clock divider
    float div = (float)clock_get_hz(clk_sys) / pio_freq;

    // Initialize the program using the helper function in our .pio file
    blink_program_init(pio, sm, offset, led_pin, div); //div最大允许数值65535

    // Start running our PIO program in the state machine
    pio_sm_set_enabled(pio, sm, true);

    // Do nothing
    while (true) {
    sleep_ms(1000);
    }
    }
    +
    hello.pio
    .program blink

    ; Turn on LED for 100 cycles and off for 100 cycles.
    ; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)

    ; instruction delay must be <= 31
    ; program instruction limit of 32 instruction(s) exceeded
    .wrap_target
    set pins, 1 [31] ; Turn LED on and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    set pins, 0 [31] ; Turn LED off and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    .wrap

    % c-sdk {

    // Helper function (for use in C program) to initialize this PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {

    // Sets up state machine and wrap target. This function is automatically
    // generated in blink.pio.h.
    pio_sm_config c = blink_program_get_default_config(offset);

    // Allow PIO to control GPIO pin (as output)
    pio_gpio_init(pio, pin);

    // Connect pin to SET pin (control with 'set' instruction)
    sm_config_set_set_pins(&c, pin, 1);

    // Set the pin direction to output (in PIO)
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    // Set the clock divider for the state machine
    sm_config_set_clkdiv(&c, div);

    // Load configuration and jump to start of the program
    pio_sm_init(pio, sm, offset, &c);
    }

    %}
    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html b/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html new file mode 100644 index 000000000..b1a027071 --- /dev/null +++ b/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html @@ -0,0 +1,201 @@ + + + + + +Implementing UART (TX )with PIO on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO UART(TX) 實現綜合總結

    +

    1. UART 基本原理

    +
    info

    UART(通用非同步收發傳輸器)是一種常用的串行通信協議。在我們的實現中:

      +
    • 使用 8 數據位,1 起始位,1 停止位(8N1 格式)
    • +
    • 不使用流控制和奇偶校驗
    • +
    • 預設波特率設置為 9600 bps
    • +
    +

    2. PIO 程序結構

    +

    2.1 UART TX PIO 程序

    +
    uart_tx.pio
    .program uart_tx
    .side_set 1 opt

    pull side 1 [7] ; 從 FIFO 獲取數據,設置停止位(高電平)
    set x, 7 side 0 [7] ; 設置循環計數器,發送起始位(低電平)
    bitloop:
    out pins, 1 ; 發送一位數據
    jmp x-- bitloop [6] ; 循環直到發送完 8 位數據
    +
    關鍵點
      +
    • .side_set 1 opt: 定義一個可選的 1 位側設,用於控制 TX 引腳
    • +
    • pull: 從 TX FIFO 獲取 32 位數據
    • +
    • set x, 7: 設置循環計數器為 7(8位數據)
    • +
    • out pins, 1: 輸出一位數據
    • +
    • jmp x-- bitloop [6]: 循環發送 8 位數據,每次迭代 8 個週期
    • +
    +

    2.2 FIFO 使用和字符存儲

    +
    FIFO 基本容量和合併
      +
    • 每個方向(TX 或 RX)的 FIFO 可以存儲 4 個 32 位字。
    • +
    • 1 個 32 位字理論上可存儲 4 個 char(每個 char 8 位)。
    • +
    • TX 和 RX FIFO 合併後,深度增加到 8 個 32 位字。
    • +
    • 理論上合併後可存儲 32 個 char。
    • +
    +
    實際使用中的 char 存儲
      +
    • 典型 UART 實現中,通常每次只放入一個 char(8 位)到 FIFO。
    • +
    • PIO 程序每次從 FIFO 取出 32 位數據,但通常只使用其中的 8 位。
    • +
    +

    FIFO 填充示例("ABCD")

    +
    32位FIFO條目1: [A] [ ] [ ] [ ]  (只有 'A' 被存儲,其餘未使用)
    32位FIFO條目2: [B] [ ] [ ] [ ] (只有 'B' 被存儲)
    32位FIFO條目3: [C] [ ] [ ] [ ] (只有 'C' 被存儲)
    32位FIFO條目4: [D] [ ] [ ] [ ] (只有 'D' 被存儲)
    +
    FIFO 使用策略
      +
    • 通常逐個 char 填充 FIFO,簡化 PIO 程序邏輯。
    • +
    • PIO 程序設計為在 FIFO 有數據時立即處理,不等待 FIFO 填滿。
    • +
    +

    2.3 時序控制

    +
      +
    • 每個 UART 位使用 8 個 PIO 時鐘週期
    • +
    • 使用指令後的延遲(如 [7])來精確控制時序
    • +
    • 總幀長度:1(起始位)+ 8(數據位)+ 1(停止位)= 10 位 * 8 週期 = 80 PIO 時鐘週期/幀
    • +
    +

    3. PIO 初始化和配置

    +
    uart_tx_init.c
    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    pio_sm_config c = uart_tx_program_get_default_config(offset);

    sm_config_set_sideset_pins(&c, pin_tx);
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_gpio_init(pio, pin_tx);
    pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    +
    關鍵配置步驟
      +
    1. 設置側設(side-set)和輸出引腳
    2. +
    3. 配置 FIFO 為僅 TX 模式
    4. +
    5. 計算並設置時鐘分頻以匹配目標波特率
    6. +
    7. 初始化 GPIO 和設置引腳方向
    8. +
    9. 初始化和啟用狀態機
    10. +
    +

    4. FIFO 使用和管理

    +
    FIFO 操作示例
    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s) {
    uart_tx_program_putc(pio, sm, *s++);
    }
    }
    +

    5. 主程序實現

    +
    main.c
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    const uint PIN_TX = 0;
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    主程序步驟
      +
    1. 選擇 PIO 實例和狀態機
    2. +
    3. 將 PIO 程序加載到 PIO 指令內存
    4. +
    5. 初始化 UART TX 程序
    6. +
    7. 在主循環中發送數據
    8. +
    +

    6. 波特率計算和精度

    +
    實際波特率計算

    實際波特率 = (系統時鐘頻率) / (時鐘分頻 * 每幀週期數) += 125,000,000 / (div * 80)

    其中,div 是初始化時計算的分頻值。

    +

    注意:實際波特率可能與目標波特率略有偏差,這取決於系統時鐘頻率和可用的分頻值。

    +

    7. 8 位 UART 傳輸詳解:發送 "ABC"

    +

    7.1 UART 幀結構(8N1 格式)

    +

    每個 UART 字符幀包含 10 位:

    +
      +
    • 1 個起始位(始終為 0)
    • +
    • 8 個數據位(最低有效位 LSB 先發送)
    • +
    • 1 個停止位(始終為 1)
    • +
    +

    7.2 字符 "ABC" 的二進制表示

    +
      +
    • 'A': ASCII 65 = 0100 0001
    • +
    • 'B': ASCII 66 = 0100 0010
    • +
    • 'C': ASCII 67 = 0100 0011
    • +
    +

    7.3 發送過程詳解

    +
    字符 'A' 的發送過程

    完整幀:

    0 01000001 1
    ↑ ↑ ↑
    | | |
    | | 停止位
    | 數據位
    起始位

    PIO 程序執行過程:

      +
    1. +

      pull side 1 [7]:

      +
        +
      • 從 FIFO 獲取 'A'(0x41)
      • +
      • TX 引腳保持高電平(停止位狀態)
      • +
      +
    2. +
    3. +

      set x, 7 side 0 [7]:

      +
        +
      • 設置循環計數器 x = 7
      • +
      • 發送起始位(低電平)
      • +
      +
    4. +
    5. +

      bitloop: 循環 8 次:

      +
        +
      • out pins, 1: 發送一位數據
      • +
      • jmp x-- bitloop [6]: 減少計數器並跳轉
      • +
      • 發送順序:1, 0, 0, 0, 0, 0, 1, 0 (LSB first)
      • +
      +
    6. +
    7. +

      循環結束後,通過 side 1 設置停止位(高電平)

      +
    8. +
    +
    字符 'B' 和 'C' 的發送

    'B' 和 'C' 的發送過程與 'A' 相同,只是數據位不同:

      +
    • 'B': 0 01000010 1
    • +
    • 'C': 0 01000011 1
    • +
    +

    7.4 FIFO 操作

    +

    當調用 uart_tx_program_puts(pio, sm, "ABC") 時:

    +
      +
    1. 'A' 被放入 FIFO
    2. +
    3. PIO 程序從 FIFO 拉取 'A' 並開始發送
    4. +
    5. 同時,'B' 被放入 FIFO
    6. +
    7. 'A' 發送完成後,PIO 程序立即拉取並發送 'B'
    8. +
    9. 'C' 被放入 FIFO
    10. +
    11. 'B' 發送完成後,PIO 程序拉取並發送 'C'
    12. +
    +

    7.5 時序分析

    +

    假設 UART 波特率為 9600 bps:

    +
      +
    • 每個位持續時間:1/9600 秒 ≈ 104.17 微秒
    • +
    • 每個字符(10 位)傳輸時間:104.17 * 10 ≈ 1.0417 毫秒
    • +
    • "ABC" 總傳輸時間:3 * 1.0417 ≈ 3.125 毫秒
    • +
    +

    8. 高級考慮因素

    +
      +
    1. +

      錯誤處理:

      +
        +
      • PIO 不提供內置的幀錯誤檢測
      • +
      • 可以通過額外的 PIO 程序邏輯或軟件層面實現錯誤檢測
      • +
      +
    2. +
    3. +

      雙向通信:

      +
        +
      • 需要單獨的 RX PIO 程序
      • +
      • 可能需要使用額外的狀態機或 PIO 實例
      • +
      +
    4. +
    5. +

      DMA 使用:

      +
        +
      • 對於大量數據傳輸,可以配合 DMA 使用
      • +
      • DMA 可以自動填充 TX FIFO,減少 CPU 干預
      • +
      +
    6. +
    7. +

      資源利用:

      +
        +
      • 一個 UART 實例佔用一個 PIO 狀態機
      • +
      • 需要考慮 PIO 指令內存的使用
      • +
      +
    8. +
    9. +

      靈活性:

      +
        +
      • 可以輕鬆修改 PIO 程序以支持不同的數據格式(如 7 位數據、2 個停止位)
      • +
      • 可以實現自定義協議或非標準波特率
      • +
      +
    10. +
    +

    9. 調試技巧

    +
    調試方法
      +
    1. 使用邏輯分析儀或示波器驗證信號時序
    2. +
    3. 利用 printf 調試輸出來監控數據流
    4. +
    5. 使用 Pico 的 LED 進行簡單的可視化調試
    6. +
    7. 在關鍵點添加 GPIO 觸發,方便使用示波器捕獲特定事件
    8. +
    +

    10. 性能考慮

    +
      +
    • PIO UART 實現允許高速數據傳輸,僅受 PIO 時鐘頻率限制
    • +
    • 對於簡單的數據發送,PIO 方法可能比硬件 UART 更靈活
    • +
    • 對於複雜的協議或需要頻繁更改配置的場景,PIO 方法尤其有優勢
    • +
    +

    11. 未來擴展

    +
    可能的擴展方向
      +
    1. 實現 UART 接收功能
    2. +
    3. 添加流控制支持
    4. +
    5. 實現奇偶校驗
    6. +
    7. 支持可變數據位數(5-8 位)和停止位數
    8. +
    9. 實現自動波特率檢測
    10. +
    +

    完整代碼

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    // We're going to use PIO to print "Hello, world!" on the same GPIO which we
    // normally attach UART0 to.
    const uint PIN_TX = 7;
    // This is the same as the default UART baud rate on Pico
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    uart_tx.pio
    ;
    ; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
    ;
    ; SPDX-License-Identifier: BSD-3-Clause
    ;

    .program uart_tx
    .side_set 1 opt

    ; An 8n1 UART transmit program.
    ; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.

    pull side 1 [7] ; Assert stop bit, or stall with line in idle state
    set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks
    bitloop: ; This loop will run 8 times (8n1 UART)
    out pins, 1 ; Shift 1 bit from OSR to the first OUT pin
    jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.


    % c-sdk {
    #include "hardware/clocks.h"

    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    // Tell PIO to initially drive output-high on the selected pin, then map PIO
    // onto that pin with the IO muxes.
    pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_gpio_init(pio, pin_tx);

    pio_sm_config c = uart_tx_program_get_default_config(offset);

    // OUT shifts to right, no autopull
    sm_config_set_out_shift(&c, true, false, 32);

    // We are mapping both OUT and side-set to the same pin, because sometimes
    // we need to assert user data onto the pin (with OUT) and sometimes
    // assert constant values (start/stop bit)
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_sideset_pins(&c, pin_tx);

    // We only need TX, so get an 8-deep FIFO!
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    // SM transmits 1 bit per 8 execution cycles.
    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }

    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s)
    uart_tx_program_putc(pio, sm, *s++);
    }

    %}



    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html b/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html new file mode 100644 index 000000000..8b09dbf95 --- /dev/null +++ b/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html @@ -0,0 +1,162 @@ + + + + + +Detailed Explanation of PWM Usage and Examples in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    +

    PWM 基礎知識

    +

    PWM 是一種常用的數位信號處理技術,通過改變脈衝的寬度來調製信號的平均值。在 RP2040 中,PWM 功能由專門的硬體模組提供,可以生成 PWM 信號並控制其參數,如頻率、佔空比等。

    +

    PWM 信號由一系列脈衝組成,每個脈衝的寬度決定了信號的佔空比。佔空比是指脈衝的高電平時間與整個週期的比值,通常以百分比表示。通過改變 PWM 信號的佔空比,我們可以調節輸出的平均電壓,從而實現對連接設備的控制。

    +

    RP2040 的 PWM 模組提供了多個 PWM 通道,每個通道都可以獨立配置和控制。這使得我們可以同時輸出多個 PWM 信號,並對它們進行精確的控制。

    +

    好的,以下是新增的開頭段落,詳細介紹了 PWM 的各種配置模式、作用以及如何設置:

    +

    PWM 的配置模式及設置

    +

    在 RP2040 中,PWM 模組提供了多種配置模式,可以根據不同的應用需求進行設置。每種模式都有其特定的作用和配置方法。下面我們來詳細介紹一下這些模式:

    +

    自由運行模式(Free-running mode)

    +

    自由運行模式是 PWM 的默認模式。在這種模式下,PWM 計數器會不斷地從 0 計數到設定的最大值(通過 pwm_config_set_wrap 函數設置),然後再從 0 開始重複計數。當計數器的值與比較器的值相等時,PWM 輸出會根據設置的電平(高電平或低電平)進行切換。

    +

    适用场景:用於普通的PWM輸出,例如LED亮度調節、電機速度控制等,需要定期的周期性PWM信号。

    +

    要將 PWM 配置為自由運行模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們首先使用 pwm_get_default_config 函數獲取 PWM 的默認配置,然後使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。最後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    計數模式(Counter mode)

    +

    在計數模式下,PWM 計數器會根據外部輸入的脈衝信號進行計數。這種模式通常用於測量外部信號的頻率或脈衝寬度。 +適用場景:用於測量外部脈衝信號的頻率或脈衝寬度,通常與外部輸入信號同步計數。 +要將 PWM 配置為計數模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);
    +

    在上面的代碼中,我們使用 pwm_config_set_clkdiv_mode 函數將 PWM 的時鐘分頻模式設置為 PWM_DIV_B_RISING,表示在輸入信號的上升沿進行計數。然後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    相位校正模式(Phase-correct mode)

    +

    相位校正模式是一種特殊的 PWM 模式,它可以產生對稱的 PWM 信號,並減少輸出信號的諧波失真。在這種模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。 +适用场景:產生對稱的PWM信号,減少輸出信號的諧波失真,適合對PWM信號質量要求較高的應用。 +要將 PWM 配置為相位校正模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_phase_correct(&config, true);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們使用 pwm_config_set_phase_correct 函數將 PWM 配置為相位校正模式,然後使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    設置 PWM 頻率和佔空比

    +

    無論使用哪種 PWM 模式,我們都需要設置 PWM 信號的頻率和佔空比。PWM 頻率決定了 PWM 信號的週期,而佔空比決定了 PWM 信號在一個週期內高電平的時間比例。

    +

    要設置 PWM 頻率,我們需要配置 PWM 的時鐘分頻器和包裹值。時鐘分頻器決定了 PWM 計數器的計數速度,而包裹值決定了 PWM 計數器的最大值。PWM 頻率的計算公式如下:

    +
    PWM 頻率 = 系統時鐘頻率 / (時鐘分頻器 * (包裹值 + 1))
    +

    例如,如果系統時鐘頻率為 125 MHz,時鐘分頻器設置為 1.0(不分頻),包裹值設置為 1249,則 PWM 頻率為:

    +
    PWM 頻率 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz
    +

    要設置 PWM 佔空比,我們需要配置 PWM 的比較器值。比較器值決定了 PWM 信號在一個週期內高電平的時間。PWM 佔空比的計算公式如下:

    +
    PWM 佔空比 = 比較器值 / (包裹值 + 1)
    +

    例如,如果包裹值設置為 1249,比較器值設置為 624,則 PWM 佔空比為:

    +
    PWM 佔空比 = 624 / (1249 + 1) = 0.4992 ≈ 50%
    +

    綜上所述,通過合理配置 PWM 的模式、頻率和佔空比,我們可以產生各種不同特性的 PWM 信號,以滿足不同的應用需求。無論是電機控制、伺服機控制還是信號檢測,都可以通過靈活配置 PWM 來實現。

    +

    程序示例 1: 輸出 PWM 信號

    +

    首先,讓我們來看一個簡單的程序示例,演示如何在 RP2040 上輸出 PWM 信號:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    int main() {
    // 將 GPIO 0 和 GPIO 1 分配給 PWM
    gpio_set_function(0, GPIO_FUNC_PWM);
    gpio_set_function(1, GPIO_FUNC_PWM);

    // 找到連接到 GPIO 0 的 PWM 切片(slice)編號
    uint slice_num = pwm_gpio_to_slice_num(0);

    // 設置 PWM 週期為 4 個循環(0 到 3)
    pwm_set_wrap(slice_num, 3);

    // 設置通道 A 在下降沿之前輸出高電平一個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);

    // 設置通道 B 在下降沿之前初始輸出高電平三個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);

    // 啟動 PWM
    pwm_set_enabled(slice_num, true);
    }
    +
    note

    在這個示例中,我們將 GPIO 0 和 GPIO 1 分配給 PWM 功能,並找到連接到 GPIO 0 的 PWM 切片(slice)編號。然後,我們設置 PWM 週期為 4 個循環,並配置通道 A 和通道 B 的輸出電平。最後,我們啟動 PWM,開始輸出 PWM 信號。

    +

    值得注意的是,我們也可以使用 pwm_set_gpio_level(gpio, x) 函數,它會自動查找給定 GPIO 的正確切片和通道,並設置輸出電平。

    +

    程序示例 2: 使用 PWM 控制 LED 亮度

    +

    接下來,讓我們看一個更實用的例子,演示如何使用 PWM 控制 LED 的亮度:

    +
    #include "pico/stdlib.h"
    #include <stdio.h>
    #include "pico/time.h"
    #include "hardware/irq.h"
    #include "hardware/pwm.h"

    #ifdef PICO_DEFAULT_LED_PIN
    void on_pwm_wrap() {
    static int fade = 0;
    static bool going_up = true;

    // 清除中斷標誌
    pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));

    if (going_up) {
    ++fade;
    if (fade > 255) {
    fade = 255;
    going_up = false;
    }
    } else {
    --fade;
    if (fade < 0) {
    fade = 0;
    going_up = true;
    }
    }

    // 將 fade 值平方,使 LED 的亮度看起來更加線性
    // 注意,這個範圍與 wrap 值匹配
    pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);
    }
    #endif

    int main() {
    #ifndef PICO_DEFAULT_LED_PIN
    #warning pwm/led_fade example requires a board with a regular LED
    #else
    // 告訴 LED 引腳,PWM 負責控制其值
    gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);

    // 找到連接到 LED 引腳的 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);

    // 將我們的切片的 IRQ 輸出遮罩到 PWM 塊的單個中斷線,
    // 並註冊我們的中斷處理程序
    pwm_clear_irq(slice_num);
    pwm_set_irq_enabled(slice_num, true);
    irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);
    irq_set_enabled(PWM_IRQ_WRAP, true);

    // 為切片配置獲取一些合理的預設值
    // 預設情況下,計數器可以在其最大範圍(0 到 2^16-1)內包裹
    pwm_config config = pwm_get_default_config();

    // 設置分頻器,將計數器時鐘減少到 sysclock/4
    pwm_config_set_clkdiv(&config, 4.f);

    // 將配置載入到我們的 PWM 切片中,並設置為運行狀態
    pwm_init(slice_num, &config, true);

    // 在這一點之後的所有操作都在 PWM 中斷處理程序中進行,
    // 所以我們可以在主迴圈中什麼也不做
    while (1)
    tight_loop_contents();
    #endif
    }
    +

    在這個示例中,我們使用 PWM 控制 LED 的亮度,實現漸變效果。程序的主要步驟如下:

    +
      +
    1. 將 LED 引腳設置為 PWM 功能。
    2. +
    3. 找到連接到 LED 引腳的 PWM 切片編號。
    4. +
    5. 設置 PWM 中斷,註冊中斷處理程序 on_pwm_wrap()
    6. +
    7. 配置 PWM 切片,設置分頻器和計數器範圍。
    8. +
    9. 啟動 PWM,並在主迴圈中等待中斷觸發。
    10. +
    +

    on_pwm_wrap() 中斷處理程序中,我們通過改變 fade 值來控制 LED 的亮度。每次中斷觸發時,我們根據 fade 值的變化方向(增加或減少)來更新 LED 的亮度。為了使亮度變化看起來更加線性,我們將 fade 值平方後再設置給 PWM 輸出。

    +
    tip

    使用中斷處理程序可以在不影響主程序執行的情況下實現 LED 亮度的平滑變化。這種方式非常適合需要持續更新輸出的場景。

    +

    程序示例 3: 測量 PWM 信號的佔空比

    +

    最後,讓我們看一個示例,演示如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint OUTPUT_PIN = 2;
    const uint MEASURE_PIN = 5;

    float measure_duty_cycle(uint gpio) {
    // 只有 PWM B 引腳可以用作輸入
    assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);

    uint slice_num = pwm_gpio_to_slice_num(gpio);

    // 每 100 個循環,PWM B 輸入為高電平時計數一次
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);
    pwm_config_set_clkdiv(&cfg, 100);
    pwm_init(slice_num, &cfg, false);

    gpio_set_function(gpio, GPIO_FUNC_PWM);
    pwm_set_enabled(slice_num, true);
    sleep_ms(10);
    pwm_set_enabled(slice_num, false);

    float counting_rate = clock_get_hz(clk_sys) / 100;
    float max_possible_count = counting_rate * 0.01;

    return pwm_get_counter(slice_num) / max_possible_count;
    }

    const float test_duty_cycles[] = {
    0.f,
    0.1f,
    0.5f,
    0.9f,
    1.f
    };

    int main() {
    stdio_init_all();
    printf("\nPWM duty cycle measurement example\n");

    // 配置 PWM 切片並設置為運行狀態
    const uint count_top = 1000;
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_wrap(&cfg, count_top);
    pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);

    // 注意,我們還沒有觸碰另一個引腳 -- PWM 引腳預設為輸出,
    // 但一旦分頻器模式從自由運行改變,就會變為輸入。
    // 將兩個輸出直接連接在一起是不明智的!
    gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);

    // 對於每個測試佔空比,在輸出引腳上驅動該電平,
    // 然後使用另一個引腳讀回實際的輸出佔空比。這兩個值應該非常接近!
    for (int i = 0; i < count_of(test_duty_cycles); ++i) {
    float output_duty_cycle = test_duty_cycles[i];
    pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));

    float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);
    printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\n",
    output_duty_cycle * 100.f, measured_duty_cycle * 100.f);
    }
    }
    +

    在這個示例中,我們演示了如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比。程序的主要步驟如下:

    +
      +
    1. 定義輸出引腳 OUTPUT_PIN 和測量引腳 MEASURE_PIN
    2. +
    3. 實現 measure_duty_cycle() 函數,用於測量給定 GPIO 引腳上的 PWM 信號佔空比。 +
        +
      • 配置 PWM 切片,設置分頻器模式為 PWM_DIV_B_HIGH,即每 100 個循環計數一次。
      • +
      • 啟動 PWM,等待一段時間,然後停止 PWM。
      • +
      • 計算最大可能計數值,並根據實際計數值計算佔空比。
      • +
      +
    4. +
    5. main() 函數中,配置輸出引腳的 PWM 切片,設置包裹值為 count_top
    6. +
    7. 對於每個測試佔空比,在輸出引腳上設置相應的電平,然後使用測量引腳讀回實際的輸出佔空比。
    8. +
    9. 將輸出佔空比和測量佔空比打印出來,檢查它們是否接近。
    10. +
    +
    precaución

    在將兩個引腳連接在一起之前,需要注意 PWM 引腳的默認狀態。PWM 引腳預設為輸出,但一旦分頻器模式從自由運行改變,就會變為輸入。將兩個輸出直接連接在一起是不明智的!

    +

    通過這個示例,我們可以看到如何使用 RP2040 的 PWM 功能來精確測量 PWM 信號的佔空比。這在需要對 PWM 信號進行分析和控制的場景中非常有用。

    +

    單獨使用 PWM

    +

    除了上述示例中的用法,我們還可以單獨使用 PWM 來控制各種設備,如直流電機、步進電機、伺服機等。下面我們將詳細介紹如何使用 PWM 來控制這些設備,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    控制直流電機

    +

    使用 PWM 可以方便地控制直流電機的轉速。通過改變 PWM 信號的佔空比,我們可以調節輸出到電機的平均電壓,從而控制電機的轉速。以下是一個使用 PWM 控制直流電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint MOTOR_PIN = 2;

    int main() {
    // 將電機引腳設置為 PWM 功能
    gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);
    uint channel = pwm_gpio_to_channel(MOTOR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置佔空比,控制電機轉速
    pwm_set_chan_level(slice_num, channel, 32768); // 50% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 16384); // 25% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 49152); // 75% 佔空比
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將電機連接到 GPIO2 引腳,並將其設置為 PWM 功能。然後,我們配置 PWM 切片,設置包裹值為 65535,以獲得更高的解析度。在主迴圈中,我們通過設置不同的佔空比來控制電機轉速。佔空比的取值範圍為 0 到 65535,分別對應 0% 到 100% 的佔空比。

    +
    tip

    根據電機的規格和電源電壓,你可能需要使用 H 橋或電機驅動器來安全地驅動電機。PWM 信號可以用來控制 H 橋或電機驅動器的輸入,從而調節電機轉速。

    +

    控制步進電機

    +

    步進電機是一種常用的精密定位設備,可以通過控制脈衝信號來實現精確的角度控制。使用 PWM,我們可以生成控制步進電機所需的脈衝信號。以下是一個使用 PWM 控制步進電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;

    int main() {
    // 將步進引腳和方向引腳設置為 PWM 功能
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);

    // 設置方向為正向
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);

    while (1) {
    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);

    // 改變方向為反向
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);

    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);
    }
    }
    +

    在這個示例中,我們使用兩個 PWM 通道來控制步進電機。一個通道用於生成步進脈衝,另一個通道用於控制步進電機的方向。我們通過設置脈衝的佔空比和頻率來生成所需的步進脈衝,並通過改變方向通道的電平來控制步進電機的旋轉方向。

    +
    note

    步進電機通常需要較高的電流驅動,因此建議使用專用的步進電機驅動器來控制步進電機。PWM 信號可以作為步進電機驅動器的輸入,用於控制步進脈衝和方向。

    +

    好的,我會根據您的要求,進一步優化這部分內容,並善用 Markdown 和 Docusaurus 的特性,使目錄更加清晰。以下是優化後的內容:

    +

    詳解步進電機控制程式碼

    +

    讓我們來詳細講解上述控制步進電機的程式碼,並解釋其中涉及的參數和設置。

    +
    定義步進引腳和方向引腳
    +
    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;
    +

    首先,我們定義了兩個常量 STEP_PINDIR_PIN,分別表示連接步進電機的步進引腳和方向引腳。這裡我們將它們設置為 GPIO2 和 GPIO3。

    +
    設置引腳功能為 PWM
    +
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);
    +

    main 函數中,我們首先使用 gpio_set_function 函數將步進引腳和方向引腳設置為 PWM 功能。這樣我們就可以通過 PWM 來控制這兩個引腳的輸出。

    +
    獲取 PWM 切片編號和通道
    +
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);
    +

    接下來,我們使用 pwm_gpio_to_slice_numpwm_gpio_to_channel 函數獲取步進引腳和方向引腳所對應的 PWM 切片編號和通道。每個 PWM 切片可以控制兩個通道,通常標記為 A 和 B。

    +
    配置 PWM 切片
    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);
    +

    然後,我們使用 pwm_get_default_config 函數獲取 PWM 的默認配置,並使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。這個值決定了 PWM 的解析度,設置為 65535 可以提供較高的解析度。

    +

    接著,我們使用 pwm_init 函數初始化步進引腳和方向引腳所在的 PWM 切片,並將 config 應用到這些切片上。最後一個參數設置為 true,表示立即啟用 PWM 輸出。

    +
    設置步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);
    +

    在設置方向為正向時,我們使用 pwm_set_chan_level 函數將方向引腳的 PWM 輸出電平設置為 0。這通常表示步進電機的正向旋轉。

    +
    生成步進脈衝
    +
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    +

    在主循環中,我們首先生成 200 個步進脈衝。每個脈衝由一個高電平和一個低電平組成,高電平持續 500 微秒,低電平持續 500 微秒。我們使用 pwm_set_chan_level 函數設置步進引腳的 PWM 輸出電平為 32768(50% 佔空比)來生成高電平,然後延遲 500 微秒。接著,我們將步進引腳的 PWM 輸出電平設置為 0 來生成低電平,再延遲 500 微秒。這樣就生成了一個完整的步進脈衝。

    +
    note

    生成步進脈衝的過程可以分為以下幾個步驟:

      +
    1. 設置步進引腳的 PWM 輸出電平為高電平(50% 佔空比)。
    2. +
    3. 延遲一段時間(脈衝的高電平持續時間)。
    4. +
    5. 設置步進引腳的 PWM 輸出電平為低電平。
    6. +
    7. 延遲一段時間(脈衝的低電平持續時間)。
    8. +
    9. 重複步驟 1-4,直到生成足夠數量的步進脈衝。
    10. +
    +
    改變步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);
    +

    生成完 200 個步進脈衝後,我們延遲 1 秒鐘,然後將方向引腳的 PWM 輸出電平設置為 65535,表示步進電機的反向旋轉。

    +

    接下來,我們再次生成 200 個步進脈衝,但這次步進電機將向相反方向旋轉。最後,我們再次延遲 1 秒鐘,然後重複整個過程。

    +
    程式碼中的數字參數
    +
    note

    這段程式碼中的數字參數的含義如下:

      +
    • 32768: 表示 50% 的 PWM 佔空比。因為我們將 PWM 計數器的最大值設置為 65535,所以 32768 大約是最大值的一半,對應 50% 的佔空比。
    • +
    • 500: 表示步進脈衝的高電平和低電平持續時間,單位為微秒。這個值決定了步進電機的速度。增大這個值會降低步進電機的速度,減小這個值會提高步進電機的速度。
    • +
    • 200: 表示生成的步進脈衝數量。這個值決定了步進電機旋轉的角度。增大這個值會增加步進電機旋轉的角度,減小這個值會減小步進電機旋轉的角度。
    • +
    • 65535: 表示 PWM 計數器的最大值,也表示 100% 的 PWM 佔空比。當方向引腳的 PWM 輸出電平設置為 65535 時,表示步進電機的反向旋轉。
    • +
    +
    其他 PWM 配置
    +

    除了上述參數,我們還可以設置其他的 PWM 配置,例如:

    +
      +
    • pwm_config_set_clkdiv: 設置 PWM 時鐘分頻器,可以改變 PWM 的頻率。增大分頻值會降低 PWM 頻率,減小分頻值會提高 PWM 頻率。
    • +
    • pwm_config_set_phase_correct: 設置是否使用相位校正模式。在相位校正模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。這可以減少 PWM 輸出的尖峰噪聲。
    • +
    • pwm_config_set_output_polarity: 設置 PWM 輸出的極性。可以選擇在 PWM 計數器達到比較值時輸出高電平還是低電平。
    • +
    +

    調整這些 PWM 配置可以改變 PWM 輸出的特性,從而影響步進電機的運行方式,如速度、扭矩、噪聲等。

    +
    precaución

    需要注意的是,這段程式碼只是一個基本的示例,用於演示如何使用 PWM 控制步進電機。在實際應用中,你可能需要根據具體的步進電機型號和驅動器來調整參數和設置,以獲得最佳的性能和可靠性。此外,步進電機通常需要較大的電流,因此建議使用專用的步進電機驅動器,而不是直接通過 PWM 引腳驅動。

    +

    控制伺服機

    +

    伺服機是一種常用的位置控制設備,通過改變 PWM 信號的脈寬來控制伺服機的角度。以下是一個使用 PWM 控制伺服機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint SERVO_PIN = 2;

    int main() {
    // 將伺服機引腳設置為 PWM 功能
    gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);
    uint channel = pwm_gpio_to_channel(SERVO_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 19999);
    pwm_config_set_clkdiv(&config, 9.6f);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置脈寬,控制伺服機角度
    pwm_set_chan_level(slice_num, channel, 1000); // 0 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 1500); // 90 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 2000); // 180 度
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將伺服機連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片,設置包裹值為 19999,時鐘分頻器為 9.6,以獲得 50Hz 的 PWM 頻率。在主迴圈中,我們通過設置不同的脈寬來控制伺服機的角度。脈寬的典型值為 1000us(0 度)、1500us(90 度)和 2000us(180 度),但具體值可能因伺服機型號而有所不同。

    +
    precaución

    伺服機的控制信號需要精確的脈寬和頻率,因此在配置 PWM 時需要仔細計算包裹值和時鐘分頻器,以獲得所需的脈寬和頻率。此外,伺服機通常需要單獨的電源供電,以提供足夠的電流。

    +

    使用 PWM 作為輸入捕獲

    +

    除了用於輸出控制信號,PWM 還可以作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。以下是一個使用 PWM 作為輸入捕獲的示例:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint INPUT_PIN = 2;

    int main() {
    // 將輸入引腳設置為 PWM 功能
    gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);

    // 配置 PWM 切片作為輸入捕獲模式
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);

    // 使能輸入捕獲
    pwm_set_enabled(slice_num, true);

    while (1) {
    // 等待輸入信號
    while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));

    // 讀取輸入信號的頻率、脈寬和佔空比
    uint32_t period = pwm_get_counter(slice_num);
    uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);
    float frequency = clock_get_hz(clk_sys) / period;
    float duty_cycle = (float)pulse_width / period;

    printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\n",
    frequency, pulse_width, duty_cycle * 100);

    // 清除輸入捕獲中斷標誌
    pwm_clear_irq(slice_num);
    }
    }
    +

    在這個示例中,我們將輸入信號連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片作為輸入捕獲模式,並使能輸入捕獲。在主迴圈中,我們等待輸入信號觸發輸入捕獲中斷,然後讀取輸入信號的頻率、脈寬和佔空比。頻率可以通過時鐘頻率除以週期計數器值來計算,脈寬可以直接從捕獲比較計數器中讀取,佔空比可以通過脈寬除以週期來計算。

    +
    note

    輸入捕獲模式下,PWM 切片會在輸入信號的上升沿或下降沿觸發輸入捕獲中斷,並記錄當前的計數器值。通過比較連續兩次捕獲的計數器值,可以計算出輸入信號的頻率、脈寬和佔空比。

    +

    總結

    +

    在本文中,我們詳細探討了如何在 RP2040 中使用 PWM 功能。除了之前介紹的基本用法,我們還深入講解了如何使用 PWM 控制直流電機、步進電機和伺服機,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    通過學習本文提供的詳細解釋和示例代碼,你應該能夠掌握 RP2040 中 PWM 的各種用法,並將其應用到自己的嵌入式項目中。無論是電機控制、伺服機控制還是信號檢測,PWM 都是一個強大而靈活的工具。

    +

    希望本文能夠幫助你更好地理解和應用 RP2040 中的 PWM 功能。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html b/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html new file mode 100644 index 000000000..9dc34bf4b --- /dev/null +++ b/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html @@ -0,0 +1,97 @@ + + + + + +Timer and Alarm Usage in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    +

    計時器和鬧鐘的基本概念

    +

    在 RP2040 中,計時器和鬧鐘是兩個相關但又有所區別的概念。

    +
      +
    • +

      計時器(Timer): 計時器是一種用於測量時間間隔的硬體設備。在 RP2040 中,我們可以使用計時器來實現精確的時間控制和定時操作。計時器可以被配置為在特定時間間隔後觸發中斷,以執行相應的操作。

      +
    • +
    • +

      鬧鐘(Alarm): 鬧鐘是基於計時器的一種功能擴展。它允許我們在指定的時間點觸發一次性的操作。鬧鐘通常用於在未來的某個時間點執行特定的任務,例如在延遲一段時間後執行某個函數。

      +
    • +
    +

    代碼示例

    +

    讓我們通過一個具體的代碼示例來說明如何在 RP2040 中使用計時器和鬧鐘功能:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }

    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }

    int main() {
    stdio_init_all();
    printf("Hello Timer!\n");

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    printf("Done\n");
    return 0;
    }
    +

    讓我們逐步分析代碼的各個部分:

    +

    初始化和鬧鐘回調函數

    +
    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }
    +
      +
    • 我們定義了一個全局變量 timer_fired,用於標記計時器是否已經觸發。
    • +
    • alarm_callback 是鬧鐘的回調函數,當鬧鐘觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出一條消息,表示計時器已經觸發,並將 timer_fired 設置為 true
    • +
    • 回調函數返回 0,表示不需要重複觸發此鬧鐘。
    • +
    +

    重複計時器回調函數

    +
    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }
    +
      +
    • repeating_timer_callback 是重複計時器的回調函數,當重複計時器觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出當前的時間戳,表示重複計時器已經觸發。
    • +
    • 回調函數返回 true,表示需要繼續觸發此重複計時器。
    • +
    +

    使用鬧鐘(Alarm)

    +
    int main() {
    // ...

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // ...
    }
    +
      +
    • main 函數中,我們使用 add_alarm_in_ms 函數創建了一個鬧鐘,設置在 2 秒後調用 alarm_callback 函數。
    • +
    • add_alarm_in_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及是否重複觸發的標誌。
    • +
    • 創建鬧鐘後,我們使用一個 while 循環等待 timer_fired 變量變為 true,表示鬧鐘已經觸發。
    • +
    • tight_loop_contents() 函數用於在等待期間避免編譯器優化掉空循環。
    • +
    +

    使用重複計時器(Repeating Timer)

    +
    int main() {
    // ...

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // ...
    }
    +
      +
    • 接下來,我們使用 add_repeating_timer_ms 函數創建了一個重複計時器,設置每隔 500 毫秒調用一次 repeating_timer_callback 函數。
    • +
    • add_repeating_timer_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及一個指向 repeating_timer 結構體的指針。
    • +
    • 創建重複計時器後,我們使用 sleep_ms 函數等待 3 秒鐘,期間重複計時器會持續觸發。
    • +
    • 然後,我們使用 cancel_repeating_timer 函數取消重複計時器,並輸出取消的結果。我們再次等待 2 秒鐘,觀察重複計時器是否已經停止觸發。
    • +
    • 接下來,我們再次創建了一個重複計時器,但這次使用了負的延遲時間 -500。這意味著重複計時器會在上一次調用結束後 500 毫秒再次觸發,而不管回調函數的執行時間。我們等待 3 秒鐘,觀察重複計時器的行為。
    • +
    • 最後,我們再次取消重複計時器,等待 2 秒鐘,並輸出 "Done" 表示程序執行完畢。
    • +
    +

    在其他程序中使用計時器

    +

    如果你想在其他程序中使用計時器功能,可以將計時器的創建和管理封裝到單獨的函數或模塊中。這樣,你就可以在不同的程序中方便地調用這些函數,實現計時器的重用。

    +

    以下是一個簡單的示例,展示了如何將計時器功能封裝到單獨的函數中:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    void timer_callback(void) {
    printf("Timer triggered!\n");
    // 執行定時任務
    // ...
    }

    void start_timer(uint32_t delay_ms) {
    struct repeating_timer timer;
    add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);
    }

    int main() {
    stdio_init_all();

    // 啟動定時器,每秒觸發一次
    start_timer(1000);

    // 執行其他任務
    // ...

    return 0;
    }
    +

    在上面的示例中,我們定義了一個 timer_callback 函數,作為計時器的回調函數。然後,我們創建了一個 start_timer 函數,用於啟動計時器。在 main 函數中,我們調用 start_timer 函數,設置計時器每秒觸發一次,然後執行其他任務。

    +

    通過這種方式,你可以將計時器功能與其他程序解耦,使得程序的結構更加清晰,且便於維護和擴展。

    +

    計時器的參數和配置

    +

    在使用計時器和鬧鐘時,你可以根據需要配置各種參數,以滿足不同的需求。以下是一些常用的參數和配置選項:

    +
      +
    • +

      延遲時間(Delay): +指定計時器觸發的延遲時間,可以是毫秒(ms)或微秒(us)。你可以根據需要選擇合適的時間單位和值。

      +
    • +
    • +

      回調函數(Callback): +指定計時器觸發時要執行的函數。你可以根據實際需求編寫自定義的回調函數,執行所需的操作。

      +
    • +
    • +

      用戶數據(User Data): +可以將自定義的數據傳遞給回調函數,以便在回調函數中使用。這可以是指針、結構體或其他類型的數據。

      +
    • +
    • +

      重複觸發(Repeat): +指定計時器是否需要重複觸發。對於一次性的計時器,可以將重複觸發設置為 false;對於重複觸發的計時器,可以將其設置為 true

      +
    • +
    • +

      精度(Precision): +計時器的精度取決於硬體和軟體的實現。RP2040 提供了高精度的計時器,可以達到微秒級別的精度。但是,實際的精度還取決於系統的時鐘頻率和中斷處理的延遲。

      +
    • +
    +

    總結

    +

    在本文中,我們深入探討了如何在 RP2040 中使用計時器和鬧鐘功能。通過詳細的代碼示例和解釋,你應該對計時器和鬧鐘的工作原理有了更全面的理解。

    +

    我們討論了計時器和鬧鐘的基本概念,並展示了如何創建和使用它們。無論是一次性的鬧鐘還是重複觸發的計時器,你都可以根據需求靈活地配置和使用它們。

    +

    此外,我們還探討了如何在其他程序中使用計時器功能,通過將計時器封裝到單獨的函數或模塊中,使其更加通用和可重用。

    +

    最後,我們介紹了計時器的一些常用參數和配置選項,幫助你根據實際需求進行靈活的設置。

    +

    希望這篇文章能夠幫助你更好地理解和應用 RP2040 中的計時器和鬧鐘功能,為你的嵌入式開發項目提供有力的支持。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html b/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html new file mode 100644 index 000000000..414edcc0e --- /dev/null +++ b/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html @@ -0,0 +1,82 @@ + + + + + +UART Interrupt Handling and Data Transmission in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    +
    UART 簡介

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一種常用的串口通信協議,廣泛應用於嵌入式系統中。它以異步的方式進行資料傳輸,透過 TX(發送)和 RX(接收)兩條線來實現全雙工通信。UART 的資料格式包括起始位、資料位、校驗位(可選)和停止位。

    +

    在 RP2040 中使用 UART

    +

    RP2040 是 Raspberry Pi Pico 的核心,它提供了兩個 UART 模組(UART0 和 UART1),可以用於與其他裝置進行串口通信。要在 RP2040 中使用 UART,我們需要執行以下步驟:

    +

    1. 初始化 UART

    +
      +
    • 設定 UART 的參數,如波特率(baud rate)、資料位元數(data bits)、停止位元(stop bits)和同位檢查位元(parity bit)。
    • +
    • 選擇要使用的 UART 模組(UART0 或 UART1)。
    • +
    • 配置 UART 使用的 TX 和 RX 引腳。
    • +
    +

    2. 發送資料

    +
      +
    • 使用 uart_putc() 函式發送單個字元。
    • +
    • 使用 uart_puts() 函式發送字串。
    • +
    • 透過檢查 UART 的可寫入狀態(uart_is_writable())來避免資料覆寫。
    • +
    +

    3. 接收資料

    +
      +
    • 使用 uart_getc() 函式接收單個字元。
    • +
    • 透過檢查 UART 的可讀取狀態(uart_is_readable())來判斷是否有新資料到達。
    • +
    • 在中斷處理函式中處理接收到的資料。
    • +
    +

    4. 設定中斷

    +
      +
    • 設定 UART 的中斷處理函式。
    • +
    • 啟用 UART 的 RX 中斷。
    • +
    • 在中斷處理函式中讀取接收到的資料,並進行相應的處理。
    • +
    +

    以下是一個使用 UART 的程式碼範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    static int chars_rxed = 0;

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    // 在此處理接收到的資料
    // ...
    chars_rxed++;
    }
    }

    int main() {
    // 初始化 UART
    uart_init(UART_ID, BAUD_RATE);

    // 設定 TX 和 RX 引腳的功能
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);

    // 設定 UART 資料格式
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    // 發送初始訊息
    uart_puts(UART_ID, "Hello, UART!\n");

    // 主迴圈
    while (1) {
    // 在此執行其他任務
    // ...
    }
    }
    +

    在這個程式碼範例中,我們首先引入了必要的標頭檔,並定義了 UART 的相關參數,如波特率、資料位元數、停止位元和校驗位元。接著,我們初始化 UART,設定 TX 和 RX 引腳的功能,並配置 UART 的資料格式。

    +

    為了處理接收到的資料,我們設定了 RX 中斷,並定義了中斷處理函式 on_uart_rx()。當 UART 接收到資料時,中斷處理函式會被觸發,我們可以在其中讀取接收到的資料並進行相應的處理。

    +

    接下來,我們發送一個初始訊息,表示 UART 已經就緒。在主迴圈中,我們可以執行其他任務,而接收到的資料會透過中斷處理函式自動處理。

    +

    FIFO 的使用

    +

    FIFO(First In First Out,先進先出)是一種資料緩衝區,可以用於暫存 UART 接收到的資料。在 RP2040 中,每個 UART 模組都有一個對應的 FIFO。

    +
    啟用 FIFO
      +
    • 使用 uart_set_fifo_enabled() 函式啟用 UART 的 FIFO 功能。
    • +
    • 設定 FIFO 的深度,即可存儲的資料量。
    • +
    +
    不啟用 FIFO
      +
    • 如果不啟用 FIFO,每次接收到資料都會觸發中斷。
    • +
    • 這種方式適用於對即時性要求較高的場景,但可能會增加 CPU 的負擔。
    • +
    +
    使用 FIFO 的好處
      +
    • 啟用 FIFO 後,只有當 FIFO 中累積了一定數量的資料或達到設定的閾值時,才會觸發中斷。
    • +
    • 這種方式可以減少中斷的頻率,降低 CPU 的負擔。
    • +
    • FIFO 提供了緩衝區,可以暫存一定量的資料,避免資料丟失。
    • +
    +

    以下是啟用 FIFO 的程式碼範例:

    +
    // 啟用 FIFO
    uart_set_fifo_enabled(UART_ID, true);

    // 設定 FIFO 的深度
    uart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);
    +

    在這個範例中,我們使用 uart_set_fifo_enabled() 函式啟用了 UART 的 FIFO 功能,並使用 uart_set_fifo_threshold() 函式設定了 FIFO 的深度。啟用 FIFO 後,當 FIFO 中累積的資料量達到設定的閾值時,才會觸發中斷。

    +

    資料發送和接收

    +

    在 RP2040 中,我們可以使用以下函式來發送和接收 UART 資料:

    +

    發送單個字元

    +
    uart_putc(UART_ID, char_to_send);
    +

    發送字串

    +
    uart_puts(UART_ID, string_to_send);
    +

    接收單個字元

    +
    uint8_t received_char = uart_getc(UART_ID);
    +

    檢查是否有可讀取的資料

    +
    if (uart_is_readable(UART_ID)) {
    // 有可讀取的資料
    // ...
    }
    +

    檢查是否可以寫入資料

    +
    if (uart_is_writable(UART_ID)) {
    // 可以寫入資料
    // ...
    }
    +

    透過這些函式,我們可以方便地發送和接收 UART 資料。在發送資料時,我們可以使用 uart_putc() 發送單個字元,或使用 uart_puts() 發送字串。在接收資料時,我們可以使用 uart_getc() 接收單個字元,並使用 uart_is_readable() 檢查是否有可讀取的資料。

    +

    實際應用範例

    +

    以下是一個使用 UART 控制 LED 的範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    #define LED_PIN 25

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    switch (ch) {
    case 'o':
    gpio_put(LED_PIN, 1);
    uart_puts(UART_ID, "LED ON\n");
    break;
    case 'f':
    gpio_put(LED_PIN, 0);
    uart_puts(UART_ID, "LED OFF\n");
    break;
    default:
    uart_puts(UART_ID, "Invalid command\n");
    break;
    }
    }
    }

    int main() {
    // 初始化 UART 和 LED
    uart_init(UART_ID, BAUD_RATE);
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    uart_puts(UART_ID, "UART LED Control\n");
    uart_puts(UART_ID, "Commands: 'o' - LED ON, 'f' - LED OFF\n");

    while (1) {
    tight_loop_contents();
    }
    }
    +

    在這個範例中,我們使用 UART 接收指令,並根據接收到的指令控制 LED 的亮滅。當接收到字元 'o' 時,LED 會亮起,並回傳 "LED ON" 的訊息;當接收到字元 'f' 時,LED 會熄滅,並回傳 "LED OFF" 的訊息。如果接收到其他字元,則回傳 "Invalid command" 的訊息。

    +

    透過這種方式,我們可以使用 UART 發送簡單的指令來控制 RP2040 上的 LED,實現遠端控制的功能。

    + + \ No newline at end of file diff --git a/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html b/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html new file mode 100644 index 000000000..ce4de460e --- /dev/null +++ b/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html @@ -0,0 +1,109 @@ + + + + + +Desarrollo de comunicación CDC con STM32CubeMX | 🌵 El Jardín Secreto 🌵 + + + + + +

    Desarrollo de comunicación CDC con STM32CubeMX

    +

    Configuración de STM32CubeMX

    +
      +
    1. Habilitar el modo USB Device FS (Full Speed) en la pestaña de Pinout & Configuration.
    2. +
    3. Seleccionar el modo CDC (Communication Device Class) en la pestaña de USB Device.
    4. +
    5. Generar el código del proyecto.
    6. +
    +

    Implementación del código

    +

    En la función CDC_Receive_FS():

    +
      +
    1. Establecer el búfer de recepción USB utilizando USBD_CDC_SetRxBuffer().
    2. +
    3. Llamar a USBD_CDC_ReceivePacket() para indicar que el dispositivo está listo para recibir más datos.
    4. +
    5. Si se desea enviar los datos recibidos de vuelta al host, llamar a CDC_Transmit_FS().
    6. +
    7. Retornar USBD_OK para indicar que los datos han sido procesados.
    8. +
    +

    En la función CDC_Transmit_FS():

    +
      +
    1. Verificar el estado del búfer de transmisión USB (hcdc->TxState).
    2. +
    3. Establecer el búfer de transmisión USB utilizando USBD_CDC_SetTxBuffer().
    4. +
    5. Llamar a USBD_CDC_TransmitPacket() para enviar los datos.
    6. +
    7. Retornar el resultado de la transmisión.
    8. +
    +

    Habilitación de interrupciones

    +
      +
    1. Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX.
    2. +
    3. Implementar las funciones de callback de recepción y transmisión USB, como USBD_CDC_DataReceived_FS() y USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Procesamiento de datos

    +
      +
    1. En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar.
    2. +
    3. Utilizar las funciones CDC_Receive_FS() y CDC_Transmit_FS() para gestionar la recepción y transmisión de datos.
    4. +
    +

    CDC Development with STM32CubeMX

    +

    STM32CubeMX Configuration

    +
      +
    1. Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab.
    2. +
    3. Select CDC (Communication Device Class) mode in the USB Device tab.
    4. +
    5. Generate the project code.
    6. +
    +

    Code Implementation

    +

    In the CDC_Receive_FS() function:

    +
      +
    1. Set the USB receive buffer using USBD_CDC_SetRxBuffer().
    2. +
    3. Call USBD_CDC_ReceivePacket() to indicate the device is ready to receive more data.
    4. +
    5. If you want to send the received data back to the host, call CDC_Transmit_FS().
    6. +
    7. Return USBD_OK to indicate the data has been processed.
    8. +
    +

    In the CDC_Transmit_FS() function:

    +
      +
    1. Verify the state of the USB transmit buffer (hcdc->TxState).
    2. +
    3. Set the USB transmit buffer using USBD_CDC_SetTxBuffer().
    4. +
    5. Call USBD_CDC_TransmitPacket() to send the data.
    6. +
    7. Return the result of the transmission.
    8. +
    +

    Interrupt Enablement

    +
      +
    1. Enable the USB interrupts in the project generated by STM32CubeMX.
    2. +
    3. Implement the USB receive and transmit callback functions, such as USBD_CDC_DataReceived_FS() and USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Data Processing

    +
      +
    1. In the callback functions, process the received data and prepare the data to be sent.
    2. +
    3. Use the CDC_Receive_FS() and CDC_Transmit_FS() functions to manage the data reception and transmission.
    4. +
    +

    使用 STM32CubeMX 開發 CDC 通訊

    +

    STM32CubeMX 設定

    +
      +
    1. 在 Pinout & Configuration 標籤中啟用 USB Device FS (Full Speed) 模式。
    2. +
    3. 在 USB Device 標籤中選擇 CDC (Communication Device Class) 模式。
    4. +
    5. 產生專案程式碼。
    6. +
    +

    程式碼實作

    +

    CDC_Receive_FS() 函數中:

    +
      +
    1. 使用 USBD_CDC_SetRxBuffer() 設定接收緩衝區。
    2. +
    3. 呼叫 USBD_CDC_ReceivePacket() 表示設備已準備好接收更多資料。
    4. +
    5. 如果需要將收到的資料回傳至主機, 呼叫 CDC_Transmit_FS()
    6. +
    7. 返回 USBD_OK 表示資料已處理完成。
    8. +
    +

    CDC_Transmit_FS() 函數中:

    +
      +
    1. 檢查傳輸緩衝區的狀態 (hcdc->TxState)。
    2. +
    3. 使用 USBD_CDC_SetTxBuffer() 設定傳輸緩衝區。
    4. +
    5. 呼叫 USBD_CDC_TransmitPacket() 傳送資料。
    6. +
    7. 返回傳輸結果。
    8. +
    +

    中斷啟用

    +
      +
    1. 在 STM32CubeMX 產生的專案中啟用 USB 中斷。
    2. +
    3. 實作接收和傳輸的回呼函數, 如 USBD_CDC_DataReceived_FS()USBD_CDC_TransmitCplt_FS()
    4. +
    +

    資料處理

    +
      +
    1. 在回呼函數中處理接收到的資料, 並準備要傳送的資料。
    2. +
    3. 使用 CDC_Receive_FS()CDC_Transmit_FS() 函數管理資料的接收和傳輸。
    4. +
    + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..e180e3c31 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://me.w0x7ce.eu/blogweekly0.5https://me.w0x7ce.eu/blog/archiveweekly0.5https://me.w0x7ce.eu/blog/Docker-Getting-Srart-01weekly0.5https://me.w0x7ce.eu/blog/first-blog-postweekly0.5https://me.w0x7ce.eu/blog/tagsweekly0.5https://me.w0x7ce.eu/blog/tags/dockerweekly0.5https://me.w0x7ce.eu/blog/tags/docusaurusweekly0.5https://me.w0x7ce.eu/blog/tags/holaweekly0.5https://me.w0x7ce.eu/blog/tags/linuxweekly0.5https://me.w0x7ce.eu/blog/tags/miscweekly0.5https://me.w0x7ce.eu/blog/tags/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92weekly0.5https://me.w0x7ce.eu/blog/tags/%E8%BB%9F%E4%BB%B6weekly0.5https://me.w0x7ce.eu/index.zh-hkweekly0.5https://me.w0x7ce.eu/markdown-pageweekly0.5https://me.w0x7ce.eu/weekly0.5https://me.w0x7ce.eu/tagsweekly0.5https://me.w0x7ce.eu/tags/alarmweekly0.5https://me.w0x7ce.eu/tags/cdcweekly0.5https://me.w0x7ce.eu/tags/embedded-systemsweekly0.5https://me.w0x7ce.eu/tags/interruptsweekly0.5https://me.w0x7ce.eu/tags/led-controlweekly0.5https://me.w0x7ce.eu/tags/pioweekly0.5https://me.w0x7ce.eu/tags/pwmweekly0.5https://me.w0x7ce.eu/tags/raspberry-pi-picoweekly0.5https://me.w0x7ce.eu/tags/resource-managementweekly0.5https://me.w0x7ce.eu/tags/rp-2040weekly0.5https://me.w0x7ce.eu/tags/serial-communicationweekly0.5https://me.w0x7ce.eu/tags/state-machine-optimizationweekly0.5https://me.w0x7ce.eu/tags/stm-32weekly0.5https://me.w0x7ce.eu/tags/timerweekly0.5https://me.w0x7ce.eu/tags/uartweekly0.5https://me.w0x7ce.eu/tags/usbweekly0.5https://me.w0x7ce.eu/introweekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040weekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/mastering-pio-programming-rp2040weekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/pio-uart-implementation-rp2040weekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/rp2040-pwm-usage-and-examplesweekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/rp2040-timer-and-alarm-usageweekly0.5https://me.w0x7ce.eu/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usageweekly0.5https://me.w0x7ce.eu/micro-controladores/STM32/desarrollo-cdc-stm32cubemxweekly0.5https://me.w0x7ce.eu/tutorialweekly0.5https://me.w0x7ce.eu/tutorial-basics/congratulationsweekly0.5https://me.w0x7ce.eu/tutorial-basics/create-a-blog-postweekly0.5https://me.w0x7ce.eu/tutorial-basics/create-a-documentweekly0.5https://me.w0x7ce.eu/tutorial-basics/create-a-pageweekly0.5https://me.w0x7ce.eu/tutorial-basics/deploy-your-siteweekly0.5https://me.w0x7ce.eu/tutorial-basics/markdown-featuresweekly0.5https://me.w0x7ce.eu/tutorial-extras/manage-docs-versionsweekly0.5https://me.w0x7ce.eu/tutorial-extras/translate-your-siteweekly0.5 \ No newline at end of file diff --git a/tags/alarm/index.html b/tags/alarm/index.html new file mode 100644 index 000000000..7ca464b19 --- /dev/null +++ b/tags/alarm/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "alarm" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "alarm"

    Ver Todas las Etiquetas

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/tags/cdc/index.html b/tags/cdc/index.html new file mode 100644 index 000000000..a4402cba0 --- /dev/null +++ b/tags/cdc/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "cdc" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/tags/embedded-systems/index.html b/tags/embedded-systems/index.html new file mode 100644 index 000000000..a8209b57c --- /dev/null +++ b/tags/embedded-systems/index.html @@ -0,0 +1,14 @@ + + + + + +6 documentos etiquetados con "embedded systems" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 documentos etiquetados con "embedded systems"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 000000000..2d86e9cd9 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,14 @@ + + + + + +Etiquetas | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/tags/interrupts/index.html b/tags/interrupts/index.html new file mode 100644 index 000000000..c85c4af02 --- /dev/null +++ b/tags/interrupts/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "interrupts" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "interrupts"

    Ver Todas las Etiquetas

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/led-control/index.html b/tags/led-control/index.html new file mode 100644 index 000000000..841901c0a --- /dev/null +++ b/tags/led-control/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "LED Control" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "LED Control"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/tags/pio/index.html b/tags/pio/index.html new file mode 100644 index 000000000..5cd7203e9 --- /dev/null +++ b/tags/pio/index.html @@ -0,0 +1,14 @@ + + + + + +3 documentos etiquetados con "PIO" | 🌵 El Jardín Secreto 🌵 + + + + + +

    3 documentos etiquetados con "PIO"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/tags/pwm/index.html b/tags/pwm/index.html new file mode 100644 index 000000000..0d34f2be1 --- /dev/null +++ b/tags/pwm/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "PWM" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "PWM"

    Ver Todas las Etiquetas

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    + + \ No newline at end of file diff --git a/tags/raspberry-pi-pico/index.html b/tags/raspberry-pi-pico/index.html new file mode 100644 index 000000000..c1059fcca --- /dev/null +++ b/tags/raspberry-pi-pico/index.html @@ -0,0 +1,14 @@ + + + + + +6 documentos etiquetados con "Raspberry Pi Pico" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 documentos etiquetados con "Raspberry Pi Pico"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/resource-management/index.html b/tags/resource-management/index.html new file mode 100644 index 000000000..6229ea106 --- /dev/null +++ b/tags/resource-management/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "Resource Management" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "Resource Management"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/tags/rp-2040/index.html b/tags/rp-2040/index.html new file mode 100644 index 000000000..370f927a3 --- /dev/null +++ b/tags/rp-2040/index.html @@ -0,0 +1,14 @@ + + + + + +6 documentos etiquetados con "RP2040" | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 documentos etiquetados con "RP2040"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/serial-communication/index.html b/tags/serial-communication/index.html new file mode 100644 index 000000000..620d09c7c --- /dev/null +++ b/tags/serial-communication/index.html @@ -0,0 +1,14 @@ + + + + + +2 documentos etiquetados con "serial communication" | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 documentos etiquetados con "serial communication"

    Ver Todas las Etiquetas

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/state-machine-optimization/index.html b/tags/state-machine-optimization/index.html new file mode 100644 index 000000000..5c6c30a81 --- /dev/null +++ b/tags/state-machine-optimization/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "state machine optimization" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "state machine optimization"

    Ver Todas las Etiquetas

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/tags/stm-32/index.html b/tags/stm-32/index.html new file mode 100644 index 000000000..59cbf5766 --- /dev/null +++ b/tags/stm-32/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "stm32" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/tags/timer/index.html b/tags/timer/index.html new file mode 100644 index 000000000..bea0cb4c0 --- /dev/null +++ b/tags/timer/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "timer" | 🌵 El Jardín Secreto 🌵 + + + + + +

    Un documento etiquetado con "timer"

    Ver Todas las Etiquetas

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/tags/uart/index.html b/tags/uart/index.html new file mode 100644 index 000000000..80aad4b14 --- /dev/null +++ b/tags/uart/index.html @@ -0,0 +1,14 @@ + + + + + +2 documentos etiquetados con "UART" | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 documentos etiquetados con "UART"

    Ver Todas las Etiquetas

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/tags/usb/index.html b/tags/usb/index.html new file mode 100644 index 000000000..a105641af --- /dev/null +++ b/tags/usb/index.html @@ -0,0 +1,14 @@ + + + + + +Un documento etiquetado con "usb" | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/tutorial-basics/congratulations/index.html b/tutorial-basics/congratulations/index.html new file mode 100644 index 000000000..80e268f8a --- /dev/null +++ b/tutorial-basics/congratulations/index.html @@ -0,0 +1,28 @@ + + + + + +Congratulations! | 🌵 El Jardín Secreto 🌵 + + + + + +

    Congratulations!

    +

    You have just learned the basics of Docusaurus and made some changes to the initial template.

    +

    Docusaurus has much more to offer!

    +

    Have 5 more minutes? Take a look at versioning and i18n.

    +

    Anything unclear or buggy in this tutorial? Please report it!

    +

    What's next?

    +
    + + \ No newline at end of file diff --git a/tutorial-basics/create-a-blog-post/index.html b/tutorial-basics/create-a-blog-post/index.html new file mode 100644 index 000000000..1f0c4794e --- /dev/null +++ b/tutorial-basics/create-a-blog-post/index.html @@ -0,0 +1,19 @@ + + + + + +Create a Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Blog Post

    +

    Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...

    +

    Create your first Post

    +

    Create a file at blog/2021-02-28-greetings.md:

    +
    blog/2021-02-28-greetings.md
    ---
    slug: greetings
    title: Greetings!
    authors:
    - name: Joel Marcey
    title: Co-creator of Docusaurus 1
    url: https://github.com/JoelMarcey
    image_url: https://github.com/JoelMarcey.png
    - name: Sébastien Lorber
    title: Docusaurus maintainer
    url: https://sebastienlorber.com
    image_url: https://github.com/slorber.png
    tags: [greetings]
    ---

    Congratulations, you have made your first post!

    Feel free to play around and edit this post as much as you like.
    +

    A new blog post is now available at http://localhost:3000/blog/greetings.

    + + \ No newline at end of file diff --git a/tutorial-basics/create-a-document/index.html b/tutorial-basics/create-a-document/index.html new file mode 100644 index 000000000..a09a1d313 --- /dev/null +++ b/tutorial-basics/create-a-document/index.html @@ -0,0 +1,30 @@ + + + + + +Create a Document | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Document

    +

    Documents are groups of pages connected through:

    +
      +
    • a sidebar
    • +
    • previous/next navigation
    • +
    • versioning
    • +
    +

    Create your first Doc

    +

    Create a Markdown file at docs/hello.md:

    +
    docs/hello.md
    # Hello

    This is my **first Docusaurus document**!
    +

    A new document is now available at http://localhost:3000/docs/hello.

    +

    Configure the Sidebar

    +

    Docusaurus automatically creates a sidebar from the docs folder.

    +

    Add metadata to customize the sidebar label and position:

    +
    docs/hello.md
    ---
    sidebar_label: 'Hi!'
    sidebar_position: 3
    ---

    # Hello

    This is my **first Docusaurus document**!
    +

    It is also possible to create your sidebar explicitly in sidebars.js:

    +
    sidebars.js
    export default {
    tutorialSidebar: [
    'intro',
    'hello',
    {
    type: 'category',
    label: 'Tutorial',
    items: ['tutorial-basics/create-a-document'],
    },
    ],
    };
    + + \ No newline at end of file diff --git a/tutorial-basics/create-a-page/index.html b/tutorial-basics/create-a-page/index.html new file mode 100644 index 000000000..d6512aa41 --- /dev/null +++ b/tutorial-basics/create-a-page/index.html @@ -0,0 +1,28 @@ + + + + + +Create a Page | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Page

    +

    Add Markdown or React files to src/pages to create a standalone page:

    +
      +
    • src/pages/index.jslocalhost:3000/
    • +
    • src/pages/foo.mdlocalhost:3000/foo
    • +
    • src/pages/foo/bar.jslocalhost:3000/foo/bar
    • +
    +

    Create your first React Page

    +

    Create a file at src/pages/my-react-page.js:

    +
    src/pages/my-react-page.js
    import React from 'react';
    import Layout from '@theme/Layout';

    export default function MyReactPage() {
    return (
    <Layout>
    <h1>My React page</h1>
    <p>This is a React page</p>
    </Layout>
    );
    }
    +

    A new page is now available at http://localhost:3000/my-react-page.

    +

    Create your first Markdown Page

    +

    Create a file at src/pages/my-markdown-page.md:

    +
    src/pages/my-markdown-page.md
    # My Markdown page

    This is a Markdown page
    +

    A new page is now available at http://localhost:3000/my-markdown-page.

    + + \ No newline at end of file diff --git a/tutorial-basics/deploy-your-site/index.html b/tutorial-basics/deploy-your-site/index.html new file mode 100644 index 000000000..89f0e9ffc --- /dev/null +++ b/tutorial-basics/deploy-your-site/index.html @@ -0,0 +1,25 @@ + + + + + +Deploy your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Deploy your site

    +

    Docusaurus is a static-site-generator (also called Jamstack).

    +

    It builds your site as simple static HTML, JavaScript and CSS files.

    +

    Build your site

    +

    Build your site for production:

    +
    npm run build
    +

    The static files are generated in the build folder.

    +

    Deploy your site

    +

    Test your production build locally:

    +
    npm run serve
    +

    The build folder is now served at http://localhost:3000/.

    +

    You can now deploy the build folder almost anywhere easily, for free or very small cost (read the Deployment Guide).

    + + \ No newline at end of file diff --git a/tutorial-basics/markdown-features/index.html b/tutorial-basics/markdown-features/index.html new file mode 100644 index 000000000..fcb02556f --- /dev/null +++ b/tutorial-basics/markdown-features/index.html @@ -0,0 +1,45 @@ + + + + + +Markdown Features | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown Features

    +

    Docusaurus supports Markdown and a few additional features.

    +

    Front Matter

    +

    Markdown documents have metadata at the top called Front Matter:

    +
    my-doc.md
    ---
    id: my-doc-id
    title: My document title
    description: My document description
    slug: /my-custom-url
    ---

    ## Markdown heading

    Markdown text with [links](./hello.md)
    + +

    Regular Markdown links are supported, using url paths or relative file paths.

    +
    Let's see how to [Create a page](/create-a-page).
    +
    Let's see how to [Create a page](./create-a-page.md).
    +

    Result: Let's see how to Create a page.

    +

    Images

    +

    Regular Markdown images are supported.

    +

    You can use absolute paths to reference images in the static directory (static/img/docusaurus.png):

    +
    ![Docusaurus logo](/img/docusaurus.png)
    +

    Docusaurus logo

    +

    You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:

    +
    ![Docusaurus logo](./img/docusaurus.png)
    +

    Code Blocks

    +

    Markdown code blocks are supported with Syntax highlighting.

    +
    ```jsx title="src/components/HelloDocusaurus.js"
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    ```
    +
    src/components/HelloDocusaurus.js
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    +

    Admonitions

    +

    Docusaurus has a special syntax to create admonitions and callouts:

    +
    :::tip[My tip]

    Use this awesome feature option

    :::

    :::danger[Take care]

    This action is dangerous

    :::
    +
    My tip

    Use this awesome feature option

    +
    Take care

    This action is dangerous

    +

    MDX and React Components

    +

    MDX can make your documentation more interactive and allows using any React components inside Markdown:

    +
    export const Highlight = ({children, color}) => (
    <span
    style={{
    backgroundColor: color,
    borderRadius: '20px',
    color: '#fff',
    padding: '10px',
    cursor: 'pointer',
    }}
    onClick={() => {
    alert(`You clicked the color ${color} with label ${children}`)
    }}>
    {children}
    </span>
    );

    This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !

    This is <Highlight color="#1877F2">Facebook blue</Highlight> !
    + +

    This is Docusaurus green !

    +

    This is Facebook blue !

    + + \ No newline at end of file diff --git a/tutorial-extras/manage-docs-versions/index.html b/tutorial-extras/manage-docs-versions/index.html new file mode 100644 index 000000000..075a51c30 --- /dev/null +++ b/tutorial-extras/manage-docs-versions/index.html @@ -0,0 +1,36 @@ + + + + + +Manage Docs Versions | 🌵 El Jardín Secreto 🌵 + + + + + +

    Manage Docs Versions

    +

    Docusaurus can manage multiple versions of your docs.

    +

    Create a docs version

    +

    Release a version 1.0 of your project:

    +
    npm run docusaurus docs:version 1.0
    +

    The docs folder is copied into versioned_docs/version-1.0 and versions.json is created.

    +

    Your docs now have 2 versions:

    +
      +
    • 1.0 at http://localhost:3000/docs/ for the version 1.0 docs
    • +
    • current at http://localhost:3000/docs/next/ for the upcoming, unreleased docs
    • +
    +

    Add a Version Dropdown

    +

    To navigate seamlessly across versions, add a version dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'docsVersionDropdown',
    },
    ],
    },
    },
    };
    +

    The docs version dropdown appears in your navbar:

    +

    Docs Version Dropdown

    +

    Update an existing version

    +

    It is possible to edit versioned docs in their respective folder:

    +
      +
    • versioned_docs/version-1.0/hello.md updates http://localhost:3000/docs/hello
    • +
    • docs/hello.md updates http://localhost:3000/docs/next/hello
    • +
    + + \ No newline at end of file diff --git a/tutorial-extras/translate-your-site/index.html b/tutorial-extras/translate-your-site/index.html new file mode 100644 index 000000000..b4ae4024d --- /dev/null +++ b/tutorial-extras/translate-your-site/index.html @@ -0,0 +1,38 @@ + + + + + +Translate your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Translate your site

    +

    Let's translate docs/intro.md to French.

    +

    Configure i18n

    +

    Modify docusaurus.config.js to add support for the fr locale:

    +
    docusaurus.config.js
    export default {
    i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr'],
    },
    };
    +

    Translate a doc

    +

    Copy the docs/intro.md file to the i18n/fr folder:

    +
    mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/

    cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
    +

    Translate i18n/fr/docusaurus-plugin-content-docs/current/intro.md in French.

    +

    Start your localized site

    +

    Start your site on the French locale:

    +
    npm run start -- --locale fr
    +

    Your localized site is accessible at http://localhost:3000/fr/ and the Getting Started page is translated.

    +
    precaución

    In development, you can only use one locale at a time.

    +

    Add a Locale Dropdown

    +

    To navigate seamlessly across languages, add a locale dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'localeDropdown',
    },
    ],
    },
    },
    };
    +

    The locale dropdown now appears in your navbar:

    +

    Locale Dropdown

    +

    Build your localized site

    +

    Build your site for a specific locale:

    +
    npm run build -- --locale fr
    +

    Or build your site to include all the locales at once:

    +
    npm run build
    + + \ No newline at end of file diff --git a/tutorial/index.html b/tutorial/index.html new file mode 100644 index 000000000..21a24cef9 --- /dev/null +++ b/tutorial/index.html @@ -0,0 +1,16 @@ + + + + + +Tutorial | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/.nojekyll b/zh-hk/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/zh-hk/404.html b/zh-hk/404.html new file mode 100644 index 000000000..896b95db4 --- /dev/null +++ b/zh-hk/404.html @@ -0,0 +1,14 @@ + + + + + +🌵 El Jardín Secreto 🌵 + + + + + +

    找不到頁面

    我們沒有您要找的頁面。

    請聯絡原始連結來源網站的所有者,並通知他們連結已毀損。

    + + \ No newline at end of file diff --git a/zh-hk/assets/css/styles.952d87a7.css b/zh-hk/assets/css/styles.952d87a7.css new file mode 100644 index 000000000..c784a6394 --- /dev/null +++ b/zh-hk/assets/css/styles.952d87a7.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{display:grid;grid-gap:var(--ifm-spacing-horizontal);gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}footer.footer{background-color:#34c759;color:#1b200f;padding:2rem 0}footer.footer a{color:#140e0e}footer.footer a:hover{color:#fff}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.navbarSearchContainer_Bca1:empty,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.features_t9lD{align-items:center;display:flex;padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN{align-items:center;display:flex;justify-content:center}.heroSecretGarden_pfpy{background-color:#45f76b;background-position:50%;background-repeat:no-repeat;background-size:cover}.mainContent_EI1P{background-color:#12af1f;padding:0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.lastUpdated_JAkA{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_JAkA{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media screen and (max-width:996px){.heroBanner_qdFl{padding:2rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/zh-hk/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png b/zh-hk/assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png new file mode 100644 index 0000000000000000000000000000000000000000..97e4164618b5f8beda34cfa699720aba0ad2e342 GIT binary patch literal 25427 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 literal 0 HcmV?d00001 diff --git a/zh-hk/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png b/zh-hk/assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png new file mode 100644 index 0000000000000000000000000000000000000000..e257edc1f932985396bf59584c7ccfaddf955779 GIT binary patch literal 27841 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 JrC|B>e*nH7H{}2T literal 0 HcmV?d00001 diff --git a/zh-hk/assets/js/008d63a2.57e7157c.js b/zh-hk/assets/js/008d63a2.57e7157c.js new file mode 100644 index 000000000..f8939e595 --- /dev/null +++ b/zh-hk/assets/js/008d63a2.57e7157c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7699],{3216:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Tutorial","href":"/zh-hk/tutorial","docId":"tutorial","unlisted":false},{"type":"category","label":"Micro-Controladores","collapsed":false,"items":[{"type":"category","label":"STM32","collapsed":false,"items":[{"type":"link","label":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","href":"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","docId":"micro-controladores/STM32/stm32_cdc_develop","unlisted":false}],"collapsible":true},{"type":"category","label":"ESP32","collapsed":false,"items":[{"type":"link","label":" ","href":"#"}],"collapsible":true},{"type":"category","label":"RP2040","collapsed":false,"items":[{"type":"link","label":" ","href":"#"},{"type":"link","label":"UART Interrupt Handling and Data Transmission in RP2040","href":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","docId":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","unlisted":false},{"type":"link","label":"Detailed Explanation of PWM Usage and Examples in RP2040","href":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","docId":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","unlisted":false},{"type":"link","label":"Timer and Alarm Usage in RP2040","href":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","docId":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","unlisted":false},{"type":"link","label":"Mastering PIO Programming on RP2040","href":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040","docId":"micro-controladores/RP2040/mastering-pio-programming","unlisted":false},{"type":"link","label":"Implementing UART (TX )with PIO on RP2040","href":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040","docId":"micro-controladores/RP2040/pio-uart-implementation","unlisted":false},{"type":"link","label":"Advanced PIO LED Control and Resource Management on RP2040","href":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","docId":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","unlisted":false}],"collapsible":true}],"collapsible":true}]},"docs":{"intro":{"id":"intro","title":"intro","description":"\x3c!-- ---"},"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management":{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/mastering-pio-programming":{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/pio-uart-implementation":{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-pwm-usage-and-examples":{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-timer-and-alarm-usage":{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","sidebar":"tutorialSidebar"},"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage":{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","sidebar":"tutorialSidebar"},"micro-controladores/STM32/stm32_cdc_develop":{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","sidebar":"tutorialSidebar"},"tutorial":{"id":"tutorial","title":"Tutorial","description":"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.","sidebar":"tutorialSidebar"},"tutorial-basics/congratulations":{"id":"tutorial-basics/congratulations","title":"Congratulations!","description":"You have just learned the basics of Docusaurus and made some changes to the initial template."},"tutorial-basics/create-a-blog-post":{"id":"tutorial-basics/create-a-blog-post","title":"Create a Blog Post","description":"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed..."},"tutorial-basics/create-a-document":{"id":"tutorial-basics/create-a-document","title":"Create a Document","description":"Documents are groups of pages connected through:"},"tutorial-basics/create-a-page":{"id":"tutorial-basics/create-a-page","title":"Create a Page","description":"Add Markdown or React files to src/pages to create a standalone page:"},"tutorial-basics/deploy-your-site":{"id":"tutorial-basics/deploy-your-site","title":"Deploy your site","description":"Docusaurus is a static-site-generator (also called Jamstack)."},"tutorial-basics/markdown-features":{"id":"tutorial-basics/markdown-features","title":"Markdown Features","description":"Docusaurus supports Markdown and a few additional features."},"tutorial-extras/manage-docs-versions":{"id":"tutorial-extras/manage-docs-versions","title":"Manage Docs Versions","description":"Docusaurus can manage multiple versions of your docs."},"tutorial-extras/translate-your-site":{"id":"tutorial-extras/translate-your-site","title":"Translate your site","description":"Let\'s translate docs/intro.md to French."}}}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/01a85c17.1f01f224.js b/zh-hk/assets/js/01a85c17.1f01f224.js new file mode 100644 index 000000000..c6a16454d --- /dev/null +++ b/zh-hk/assets/js/01a85c17.1f01f224.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8209],{6535:(e,t,s)=>{s.d(t,{A:()=>_});var a=s(6540),i=s(4164),r=s(5733),l=s(4581),n=s(8774),c=s(1312),d=s(6347),o=s(9169);function m(e){const{pathname:t}=(0,d.zy)();return(0,a.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,o.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var b=s(4848);function g(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("aside",{className:"col col--3",children:(0,b.jsxs)("nav",{className:(0,i.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,c.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,b.jsx)("div",{className:(0,i.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,b.jsx)("ul",{className:(0,i.A)(u.sidebarItemList,"clean-list"),children:s.map((e=>(0,b.jsx)("li",{className:u.sidebarItem,children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var h=s(5600);function j(e){let{sidebar:t}=e;const s=m(t.items);return(0,b.jsx)("ul",{className:"menu__list",children:s.map((e=>(0,b.jsx)("li",{className:"menu__list-item",children:(0,b.jsx)(n.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,b.jsx)(h.GX,{component:j,props:e})}function x(e){let{sidebar:t}=e;const s=(0,l.l)();return t?.items.length?"mobile"===s?(0,b.jsx)(p,{sidebar:t}):(0,b.jsx)(g,{sidebar:t}):null}function _(e){const{sidebar:t,toc:s,children:a,...l}=e,n=t&&t.items.length>0;return(0,b.jsx)(r.A,{...l,children:(0,b.jsx)("div",{className:"container margin-vert--lg",children:(0,b.jsxs)("div",{className:"row",children:[(0,b.jsx)(x,{sidebar:t}),(0,b.jsx)("main",{className:(0,i.A)("col",{"col--7":n,"col--9 col--offset-1":!n}),children:a}),s&&(0,b.jsx)("div",{className:"col col--2",children:s})]})})})}},9140:(e,t,s)=>{s.r(t),s.d(t,{default:()=>u});s(6540);var a=s(4164),i=s(6820),r=s(1213),l=s(7559),n=s(6535),c=s(2557),d=s(1463),o=s(1107),m=s(4848);function u(e){let{tags:t,sidebar:s}=e;const u=(0,i.b)();return(0,m.jsxs)(r.e3,{className:(0,a.A)(l.G.wrapper.blogPages,l.G.page.blogTagsListPage),children:[(0,m.jsx)(r.be,{title:u}),(0,m.jsx)(d.A,{tag:"blog_tags_list"}),(0,m.jsxs)(n.A,{sidebar:s,children:[(0,m.jsx)(o.A,{as:"h1",children:u}),(0,m.jsx)(c.A,{tags:t})]})]})}},6133:(e,t,s)=>{s.d(t,{A:()=>n});s(6540);var a=s(4164),i=s(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=s(4848);function n(e){let{permalink:t,label:s,count:n,description:c}=e;return(0,l.jsxs)(i.A,{href:t,title:c,className:(0,a.A)(r.tag,n?r.tagWithCount:r.tagRegular),children:[s,n&&(0,l.jsx)("span",{children:n})]})}},2557:(e,t,s)=>{s.d(t,{A:()=>d});s(6540);var a=s(6820),i=s(6133),r=s(1107);const l={tag:"tag_Nnez"};var n=s(4848);function c(e){let{letterEntry:t}=e;return(0,n.jsxs)("article",{children:[(0,n.jsx)(r.A,{as:"h2",id:t.letter,children:t.letter}),(0,n.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,n.jsx)("li",{className:l.tag,children:(0,n.jsx)(i.A,{...e})},e.permalink)))}),(0,n.jsx)("hr",{})]})}function d(e){let{tags:t}=e;const s=(0,a.Q)(t);return(0,n.jsx)("section",{className:"margin-vert--lg",children:s.map((e=>(0,n.jsx)(c,{letterEntry:e},e.letter)))})}},6820:(e,t,s)=>{s.d(t,{Q:()=>r,b:()=>i});var a=s(1312);const i=()=>(0,a.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function r(e){const t={};return Object.values(e).forEach((e=>{const s=function(e){return e[0].toUpperCase()}(e.label);t[s]??=[],t[s].push(e)})),Object.entries(t).sort(((e,t)=>{let[s]=e,[a]=t;return s.localeCompare(a)})).map((e=>{let[t,s]=e;return{letter:t,tags:s.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/062f99bb.da8a4ffb.js b/zh-hk/assets/js/062f99bb.da8a4ffb.js new file mode 100644 index 000000000..22a2da716 --- /dev/null +++ b/zh-hk/assets/js/062f99bb.da8a4ffb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5323],{7264:e=>{e.exports=JSON.parse('{"tag":{"label":"timer","permalink":"/zh-hk/tags/timer","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1284e0b0.a35b12f2.js b/zh-hk/assets/js/1284e0b0.a35b12f2.js new file mode 100644 index 000000000..9afe450bc --- /dev/null +++ b/zh-hk/assets/js/1284e0b0.a35b12f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2387],{863:e=>{e.exports=JSON.parse('{"tag":{"label":"serial communication","permalink":"/zh-hk/tags/serial-communication","allTagsPath":"/zh-hk/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/14d3eb87.11ece549.js b/zh-hk/assets/js/14d3eb87.11ece549.js new file mode 100644 index 000000000..e5f61753c --- /dev/null +++ b/zh-hk/assets/js/14d3eb87.11ece549.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6725],{5427:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var l=e(4848),s=e(8453);const t={slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},r="RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",o={id:"micro-controladores/RP2040/pio-uart-implementation",title:"Implementing UART (TX )with PIO on RP2040",description:"1. UART \u57fa\u672c\u539f\u7406",source:"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/pio-uart-implementation-rp2040",permalink:"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/pio-uart-implementation.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/zh-hk/tags/pio"},{inline:!0,label:"UART",permalink:"/zh-hk/tags/uart"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/zh-hk/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/zh-hk/tags/serial-communication"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"pio-uart-implementation-rp2040",title:"Implementing UART (TX )with PIO on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","UART","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Mastering PIO Programming on RP2040",permalink:"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"},next:{title:"Advanced PIO LED Control and Resource Management on RP2040",permalink:"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}},c={},d=[{value:"1. UART \u57fa\u672c\u539f\u7406",id:"1-uart-\u57fa\u672c\u539f\u7406",level:2},{value:"2. PIO \u7a0b\u5e8f\u7d50\u69cb",id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",level:2},{value:"2.1 UART TX PIO \u7a0b\u5e8f",id:"21-uart-tx-pio-\u7a0b\u5e8f",level:3},{value:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",level:3},{value:"FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09",id:"fifo-\u586b\u5145\u793a\u4f8babcd",level:4},{value:"2.3 \u6642\u5e8f\u63a7\u5236",id:"23-\u6642\u5e8f\u63a7\u5236",level:3},{value:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e",id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",level:2},{value:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406",id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",level:2},{value:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe",id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",level:2},{value:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",level:2},{value:"7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"",id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",level:2},{value:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09",id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",level:3},{value:"7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a",id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",level:3},{value:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3",id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",level:3},{value:"7.4 FIFO \u64cd\u4f5c",id:"74-fifo-\u64cd\u4f5c",level:3},{value:"7.5 \u6642\u5e8f\u5206\u6790",id:"75-\u6642\u5e8f\u5206\u6790",level:3},{value:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",level:2},{value:"9. \u8abf\u8a66\u6280\u5de7",id:"9-\u8abf\u8a66\u6280\u5de7",level:2},{value:"10. \u6027\u80fd\u8003\u616e",id:"10-\u6027\u80fd\u8003\u616e",level:2},{value:"11. \u672a\u4f86\u64f4\u5c55",id:"11-\u672a\u4f86\u64f4\u5c55",level:2},{value:"\u5b8c\u6574\u4ee3\u78bc",id:"\u5b8c\u6574\u4ee3\u78bc",level:2}];function a(n){const i={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...n.components},{Details:e}=i;return e||function(n,i){throw new Error("Expected "+(i?"component":"object")+" `"+n+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.h1,{id:"rp2040-pio-uarttx-\u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50",children:"RP2040 PIO UART(TX) \u5be6\u73fe\u7d9c\u5408\u7e3d\u7d50"}),"\n",(0,l.jsx)(i.h2,{id:"1-uart-\u57fa\u672c\u539f\u7406",children:"1. UART \u57fa\u672c\u539f\u7406"}),"\n",(0,l.jsxs)(i.admonition,{type:"info",children:[(0,l.jsx)(i.p,{children:"UART\uff08\u901a\u7528\u975e\u540c\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u884c\u901a\u4fe1\u5354\u8b70\u3002\u5728\u6211\u5011\u7684\u5be6\u73fe\u4e2d\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 8 \u6578\u64da\u4f4d\uff0c1 \u8d77\u59cb\u4f4d\uff0c1 \u505c\u6b62\u4f4d\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u4e0d\u4f7f\u7528\u6d41\u63a7\u5236\u548c\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u9810\u8a2d\u6ce2\u7279\u7387\u8a2d\u7f6e\u70ba 9600 bps"}),"\n"]})]}),"\n",(0,l.jsx)(i.h2,{id:"2-pio-\u7a0b\u5e8f\u7d50\u69cb",children:"2. PIO \u7a0b\u5e8f\u7d50\u69cb"}),"\n",(0,l.jsx)(i.h3,{id:"21-uart-tx-pio-\u7a0b\u5e8f",children:"2.1 UART TX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-pio",metastring:'title="uart_tx.pio"',children:".program uart_tx\n.side_set 1 opt\n\n pull side 1 [7] ; \u5f9e FIFO \u7372\u53d6\u6578\u64da\uff0c\u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09\n set x, 7 side 0 [7] ; \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\uff0c\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09\nbitloop:\n out pins, 1 ; \u767c\u9001\u4e00\u4f4d\u6578\u64da\n jmp x-- bitloop [6] ; \u5faa\u74b0\u76f4\u5230\u767c\u9001\u5b8c 8 \u4f4d\u6578\u64da\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u9ede",type:"tip",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:".side_set 1 opt"}),": \u5b9a\u7fa9\u4e00\u500b\u53ef\u9078\u7684 1 \u4f4d\u5074\u8a2d\uff0c\u7528\u65bc\u63a7\u5236 TX \u5f15\u8173"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"pull"}),": \u5f9e TX FIFO \u7372\u53d6 32 \u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"set x, 7"}),": \u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668\u70ba 7\uff088\u4f4d\u6578\u64da\uff09"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u8f38\u51fa\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u5faa\u74b0\u767c\u9001 8 \u4f4d\u6578\u64da\uff0c\u6bcf\u6b21\u8fed\u4ee3 8 \u500b\u9031\u671f"]}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"22-fifo-\u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132",children:"2.2 FIFO \u4f7f\u7528\u548c\u5b57\u7b26\u5b58\u5132"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u57fa\u672c\u5bb9\u91cf\u548c\u5408\u4f75"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u65b9\u5411\uff08TX \u6216 RX\uff09\u7684 FIFO \u53ef\u4ee5\u5b58\u5132 4 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b 32 \u4f4d\u5b57\u7406\u8ad6\u4e0a\u53ef\u5b58\u5132 4 \u500b char\uff08\u6bcf\u500b char 8 \u4f4d\uff09\u3002"}),"\n",(0,l.jsx)(i.li,{children:"TX \u548c RX FIFO \u5408\u4f75\u5f8c\uff0c\u6df1\u5ea6\u589e\u52a0\u5230 8 \u500b 32 \u4f4d\u5b57\u3002"}),"\n",(0,l.jsx)(i.li,{children:"\u7406\u8ad6\u4e0a\u5408\u4f75\u5f8c\u53ef\u5b58\u5132 32 \u500b char\u3002"}),"\n"]})]}),"\n",(0,l.jsx)(i.admonition,{title:"\u5be6\u969b\u4f7f\u7528\u4e2d\u7684 char \u5b58\u5132",type:"caution",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5178\u578b UART \u5be6\u73fe\u4e2d\uff0c\u901a\u5e38\u6bcf\u6b21\u53ea\u653e\u5165\u4e00\u500b char\uff088 \u4f4d\uff09\u5230 FIFO\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u6bcf\u6b21\u5f9e FIFO \u53d6\u51fa 32 \u4f4d\u6578\u64da\uff0c\u4f46\u901a\u5e38\u53ea\u4f7f\u7528\u5176\u4e2d\u7684 8 \u4f4d\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h4,{id:"fifo-\u586b\u5145\u793a\u4f8babcd",children:'FIFO \u586b\u5145\u793a\u4f8b\uff08"ABCD"\uff09'}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"32\u4f4dFIFO\u689d\u76ee1: [A] [ ] [ ] [ ] \uff08\u53ea\u6709 'A' \u88ab\u5b58\u5132\uff0c\u5176\u9918\u672a\u4f7f\u7528\uff09\n32\u4f4dFIFO\u689d\u76ee2: [B] [ ] [ ] [ ] \uff08\u53ea\u6709 'B' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee3: [C] [ ] [ ] [ ] \uff08\u53ea\u6709 'C' \u88ab\u5b58\u5132\uff09\n32\u4f4dFIFO\u689d\u76ee4: [D] [ ] [ ] [ ] \uff08\u53ea\u6709 'D' \u88ab\u5b58\u5132\uff09\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"FIFO \u4f7f\u7528\u7b56\u7565",type:"note",children:(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u901a\u5e38\u9010\u500b char \u586b\u5145 FIFO\uff0c\u7c21\u5316 PIO \u7a0b\u5e8f\u908f\u8f2f\u3002"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u8a2d\u8a08\u70ba\u5728 FIFO \u6709\u6578\u64da\u6642\u7acb\u5373\u8655\u7406\uff0c\u4e0d\u7b49\u5f85 FIFO \u586b\u6eff\u3002"}),"\n"]})}),"\n",(0,l.jsx)(i.h3,{id:"23-\u6642\u5e8f\u63a7\u5236",children:"2.3 \u6642\u5e8f\u63a7\u5236"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b UART \u4f4d\u4f7f\u7528 8 \u500b PIO \u6642\u9418\u9031\u671f"}),"\n",(0,l.jsxs)(i.li,{children:["\u4f7f\u7528\u6307\u4ee4\u5f8c\u7684\u5ef6\u9072\uff08\u5982 ",(0,l.jsx)(i.code,{children:"[7]"}),"\uff09\u4f86\u7cbe\u78ba\u63a7\u5236\u6642\u5e8f"]}),"\n",(0,l.jsx)(i.li,{children:"\u7e3d\u5e40\u9577\u5ea6\uff1a1\uff08\u8d77\u59cb\u4f4d\uff09+ 8\uff08\u6578\u64da\u4f4d\uff09+ 1\uff08\u505c\u6b62\u4f4d\uff09= 10 \u4f4d * 8 \u9031\u671f = 80 PIO \u6642\u9418\u9031\u671f/\u5e40"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"3-pio-\u521d\u59cb\u5316\u548c\u914d\u7f6e",children:"3. PIO \u521d\u59cb\u5316\u548c\u914d\u7f6e"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="uart_tx_init.c"',children:"static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n \n sm_config_set_sideset_pins(&c, pin_tx);\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n \n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_gpio_init(pio, pin_tx);\n pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n"})}),"\n",(0,l.jsx)(i.admonition,{title:"\u95dc\u9375\u914d\u7f6e\u6b65\u9a5f",type:"info",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5074\u8a2d\uff08side-set\uff09\u548c\u8f38\u51fa\u5f15\u8173"}),"\n",(0,l.jsx)(i.li,{children:"\u914d\u7f6e FIFO \u70ba\u50c5 TX \u6a21\u5f0f"}),"\n",(0,l.jsx)(i.li,{children:"\u8a08\u7b97\u4e26\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u5339\u914d\u76ee\u6a19\u6ce2\u7279\u7387"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 GPIO \u548c\u8a2d\u7f6e\u5f15\u8173\u65b9\u5411"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316\u548c\u555f\u7528\u72c0\u614b\u6a5f"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"4-fifo-\u4f7f\u7528\u548c\u7ba1\u7406",children:"4. FIFO \u4f7f\u7528\u548c\u7ba1\u7406"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"FIFO \u64cd\u4f5c\u793a\u4f8b"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",children:"static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s) {\n uart_tx_program_putc(pio, sm, *s++);\n }\n}\n"})})]}),"\n",(0,l.jsx)(i.h2,{id:"5-\u4e3b\u7a0b\u5e8f\u5be6\u73fe",children:"5. \u4e3b\u7a0b\u5e8f\u5be6\u73fe"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c",metastring:'title="main.c"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n const uint PIN_TX = 0;\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.admonition,{title:"\u4e3b\u7a0b\u5e8f\u6b65\u9a5f",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u9078\u64c7 PIO \u5be6\u4f8b\u548c\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u5c07 PIO \u7a0b\u5e8f\u52a0\u8f09\u5230 PIO \u6307\u4ee4\u5167\u5b58"}),"\n",(0,l.jsx)(i.li,{children:"\u521d\u59cb\u5316 UART TX \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u4e3b\u5faa\u74b0\u4e2d\u767c\u9001\u6578\u64da"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"6-\u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6",children:"6. \u6ce2\u7279\u7387\u8a08\u7b97\u548c\u7cbe\u5ea6"}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5be6\u969b\u6ce2\u7279\u7387\u8a08\u7b97",type:"note",children:[(0,l.jsx)(i.p,{children:"\u5be6\u969b\u6ce2\u7279\u7387 = (\u7cfb\u7d71\u6642\u9418\u983b\u7387) / (\u6642\u9418\u5206\u983b * \u6bcf\u5e40\u9031\u671f\u6578)\n= 125,000,000 / (div * 80)"}),(0,l.jsxs)(i.p,{children:["\u5176\u4e2d\uff0c",(0,l.jsx)(i.code,{children:"div"})," \u662f\u521d\u59cb\u5316\u6642\u8a08\u7b97\u7684\u5206\u983b\u503c\u3002"]})]}),"\n",(0,l.jsx)(i.p,{children:"\u6ce8\u610f\uff1a\u5be6\u969b\u6ce2\u7279\u7387\u53ef\u80fd\u8207\u76ee\u6a19\u6ce2\u7279\u7387\u7565\u6709\u504f\u5dee\uff0c\u9019\u53d6\u6c7a\u65bc\u7cfb\u7d71\u6642\u9418\u983b\u7387\u548c\u53ef\u7528\u7684\u5206\u983b\u503c\u3002"}),"\n",(0,l.jsx)(i.h2,{id:"7-8-\u4f4d-uart-\u50b3\u8f38\u8a73\u89e3\u767c\u9001-abc",children:'7. 8 \u4f4d UART \u50b3\u8f38\u8a73\u89e3\uff1a\u767c\u9001 "ABC"'}),"\n",(0,l.jsx)(i.h3,{id:"71-uart-\u5e40\u7d50\u69cb8n1-\u683c\u5f0f",children:"7.1 UART \u5e40\u7d50\u69cb\uff088N1 \u683c\u5f0f\uff09"}),"\n",(0,l.jsx)(i.p,{children:"\u6bcf\u500b UART \u5b57\u7b26\u5e40\u5305\u542b 10 \u4f4d\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"1 \u500b\u8d77\u59cb\u4f4d\uff08\u59cb\u7d42\u70ba 0\uff09"}),"\n",(0,l.jsx)(i.li,{children:"8 \u500b\u6578\u64da\u4f4d\uff08\u6700\u4f4e\u6709\u6548\u4f4d LSB \u5148\u767c\u9001\uff09"}),"\n",(0,l.jsx)(i.li,{children:"1 \u500b\u505c\u6b62\u4f4d\uff08\u59cb\u7d42\u70ba 1\uff09"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"72-\u5b57\u7b26-abc-\u7684\u4e8c\u9032\u5236\u8868\u793a",children:'7.2 \u5b57\u7b26 "ABC" \u7684\u4e8c\u9032\u5236\u8868\u793a'}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'A': ASCII 65 = 0100 0001"}),"\n",(0,l.jsx)(i.li,{children:"'B': ASCII 66 = 0100 0010"}),"\n",(0,l.jsx)(i.li,{children:"'C': ASCII 67 = 0100 0011"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"73-\u767c\u9001\u904e\u7a0b\u8a73\u89e3",children:"7.3 \u767c\u9001\u904e\u7a0b\u8a73\u89e3"}),"\n",(0,l.jsxs)(e,{children:[(0,l.jsx)("summary",{children:"\u5b57\u7b26 'A' \u7684\u767c\u9001\u904e\u7a0b"}),(0,l.jsx)(i.p,{children:"\u5b8c\u6574\u5e40\uff1a"}),(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{children:"0 01000001 1\n\u2191 \u2191 \u2191\n| | |\n| | \u505c\u6b62\u4f4d\n| \u6578\u64da\u4f4d\n\u8d77\u59cb\u4f4d\n"})}),(0,l.jsx)(i.p,{children:"PIO \u7a0b\u5e8f\u57f7\u884c\u904e\u7a0b\uff1a"}),(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"pull side 1 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5f9e FIFO \u7372\u53d6 'A'\uff080x41\uff09"}),"\n",(0,l.jsx)(i.li,{children:"TX \u5f15\u8173\u4fdd\u6301\u9ad8\u96fb\u5e73\uff08\u505c\u6b62\u4f4d\u72c0\u614b\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"set x, 7 side 0 [7]"}),":"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u8a2d\u7f6e\u5faa\u74b0\u8a08\u6578\u5668 x = 7"}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u8d77\u59cb\u4f4d\uff08\u4f4e\u96fb\u5e73\uff09"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:[(0,l.jsx)(i.code,{children:"bitloop:"})," \u5faa\u74b0 8 \u6b21\uff1a"]}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"out pins, 1"}),": \u767c\u9001\u4e00\u4f4d\u6578\u64da"]}),"\n",(0,l.jsxs)(i.li,{children:[(0,l.jsx)(i.code,{children:"jmp x-- bitloop [6]"}),": \u6e1b\u5c11\u8a08\u6578\u5668\u4e26\u8df3\u8f49"]}),"\n",(0,l.jsx)(i.li,{children:"\u767c\u9001\u9806\u5e8f\uff1a1, 0, 0, 0, 0, 0, 1, 0 (LSB first)"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsxs)(i.p,{children:["\u5faa\u74b0\u7d50\u675f\u5f8c\uff0c\u901a\u904e ",(0,l.jsx)(i.code,{children:"side 1"})," \u8a2d\u7f6e\u505c\u6b62\u4f4d\uff08\u9ad8\u96fb\u5e73\uff09"]}),"\n"]}),"\n"]})]}),"\n",(0,l.jsxs)(i.admonition,{title:"\u5b57\u7b26 'B' \u548c 'C' \u7684\u767c\u9001",type:"info",children:[(0,l.jsx)(i.p,{children:"'B' \u548c 'C' \u7684\u767c\u9001\u904e\u7a0b\u8207 'A' \u76f8\u540c\uff0c\u53ea\u662f\u6578\u64da\u4f4d\u4e0d\u540c\uff1a"}),(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"'B': 0 01000010 1"}),"\n",(0,l.jsx)(i.li,{children:"'C': 0 01000011 1"}),"\n"]})]}),"\n",(0,l.jsx)(i.h3,{id:"74-fifo-\u64cd\u4f5c",children:"7.4 FIFO \u64cd\u4f5c"}),"\n",(0,l.jsxs)(i.p,{children:["\u7576\u8abf\u7528 ",(0,l.jsx)(i.code,{children:'uart_tx_program_puts(pio, sm, "ABC")'})," \u6642\uff1a"]}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"'A' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u5f9e FIFO \u62c9\u53d6 'A' \u4e26\u958b\u59cb\u767c\u9001"}),"\n",(0,l.jsx)(i.li,{children:"\u540c\u6642\uff0c'B' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'A' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u7acb\u5373\u62c9\u53d6\u4e26\u767c\u9001 'B'"}),"\n",(0,l.jsx)(i.li,{children:"'C' \u88ab\u653e\u5165 FIFO"}),"\n",(0,l.jsx)(i.li,{children:"'B' \u767c\u9001\u5b8c\u6210\u5f8c\uff0cPIO \u7a0b\u5e8f\u62c9\u53d6\u4e26\u767c\u9001 'C'"}),"\n"]}),"\n",(0,l.jsx)(i.h3,{id:"75-\u6642\u5e8f\u5206\u6790",children:"7.5 \u6642\u5e8f\u5206\u6790"}),"\n",(0,l.jsx)(i.p,{children:"\u5047\u8a2d UART \u6ce2\u7279\u7387\u70ba 9600 bps\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u4f4d\u6301\u7e8c\u6642\u9593\uff1a1/9600 \u79d2 \u2248 104.17 \u5fae\u79d2"}),"\n",(0,l.jsx)(i.li,{children:"\u6bcf\u500b\u5b57\u7b26\uff0810 \u4f4d\uff09\u50b3\u8f38\u6642\u9593\uff1a104.17 * 10 \u2248 1.0417 \u6beb\u79d2"}),"\n",(0,l.jsx)(i.li,{children:'"ABC" \u7e3d\u50b3\u8f38\u6642\u9593\uff1a3 * 1.0417 \u2248 3.125 \u6beb\u79d2'}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"8-\u9ad8\u7d1a\u8003\u616e\u56e0\u7d20",children:"8. \u9ad8\u7d1a\u8003\u616e\u56e0\u7d20"}),"\n",(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u932f\u8aa4\u8655\u7406\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO \u4e0d\u63d0\u4f9b\u5167\u7f6e\u7684\u5e40\u932f\u8aa4\u6aa2\u6e2c"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u901a\u904e\u984d\u5916\u7684 PIO \u7a0b\u5e8f\u908f\u8f2f\u6216\u8edf\u4ef6\u5c64\u9762\u5be6\u73fe\u932f\u8aa4\u6aa2\u6e2c"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u96d9\u5411\u901a\u4fe1\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u55ae\u7368\u7684 RX PIO \u7a0b\u5e8f"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u80fd\u9700\u8981\u4f7f\u7528\u984d\u5916\u7684\u72c0\u614b\u6a5f\u6216 PIO \u5be6\u4f8b"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"DMA \u4f7f\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u5927\u91cf\u6578\u64da\u50b3\u8f38\uff0c\u53ef\u4ee5\u914d\u5408 DMA \u4f7f\u7528"}),"\n",(0,l.jsx)(i.li,{children:"DMA \u53ef\u4ee5\u81ea\u52d5\u586b\u5145 TX FIFO\uff0c\u6e1b\u5c11 CPU \u5e72\u9810"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u8cc7\u6e90\u5229\u7528\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u4e00\u500b UART \u5be6\u4f8b\u4f54\u7528\u4e00\u500b PIO \u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(i.li,{children:"\u9700\u8981\u8003\u616e PIO \u6307\u4ee4\u5167\u5b58\u7684\u4f7f\u7528"}),"\n"]}),"\n"]}),"\n",(0,l.jsxs)(i.li,{children:["\n",(0,l.jsx)(i.p,{children:"\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u8f15\u9b06\u4fee\u6539 PIO \u7a0b\u5e8f\u4ee5\u652f\u6301\u4e0d\u540c\u7684\u6578\u64da\u683c\u5f0f\uff08\u5982 7 \u4f4d\u6578\u64da\u30012 \u500b\u505c\u6b62\u4f4d\uff09"}),"\n",(0,l.jsx)(i.li,{children:"\u53ef\u4ee5\u5be6\u73fe\u81ea\u5b9a\u7fa9\u5354\u8b70\u6216\u975e\u6a19\u6e96\u6ce2\u7279\u7387"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"9-\u8abf\u8a66\u6280\u5de7",children:"9. \u8abf\u8a66\u6280\u5de7"}),"\n",(0,l.jsx)(i.admonition,{title:"\u8abf\u8a66\u65b9\u6cd5",type:"tip",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528\u908f\u8f2f\u5206\u6790\u5100\u6216\u793a\u6ce2\u5668\u9a57\u8b49\u4fe1\u865f\u6642\u5e8f"}),"\n",(0,l.jsxs)(i.li,{children:["\u5229\u7528 ",(0,l.jsx)(i.code,{children:"printf"})," \u8abf\u8a66\u8f38\u51fa\u4f86\u76e3\u63a7\u6578\u64da\u6d41"]}),"\n",(0,l.jsx)(i.li,{children:"\u4f7f\u7528 Pico \u7684 LED \u9032\u884c\u7c21\u55ae\u7684\u53ef\u8996\u5316\u8abf\u8a66"}),"\n",(0,l.jsx)(i.li,{children:"\u5728\u95dc\u9375\u9ede\u6dfb\u52a0 GPIO \u89f8\u767c\uff0c\u65b9\u4fbf\u4f7f\u7528\u793a\u6ce2\u5668\u6355\u7372\u7279\u5b9a\u4e8b\u4ef6"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"10-\u6027\u80fd\u8003\u616e",children:"10. \u6027\u80fd\u8003\u616e"}),"\n",(0,l.jsxs)(i.ul,{children:["\n",(0,l.jsx)(i.li,{children:"PIO UART \u5be6\u73fe\u5141\u8a31\u9ad8\u901f\u6578\u64da\u50b3\u8f38\uff0c\u50c5\u53d7 PIO \u6642\u9418\u983b\u7387\u9650\u5236"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u7c21\u55ae\u7684\u6578\u64da\u767c\u9001\uff0cPIO \u65b9\u6cd5\u53ef\u80fd\u6bd4\u786c\u4ef6 UART \u66f4\u9748\u6d3b"}),"\n",(0,l.jsx)(i.li,{children:"\u5c0d\u65bc\u8907\u96dc\u7684\u5354\u8b70\u6216\u9700\u8981\u983b\u7e41\u66f4\u6539\u914d\u7f6e\u7684\u5834\u666f\uff0cPIO \u65b9\u6cd5\u5c24\u5176\u6709\u512a\u52e2"}),"\n"]}),"\n",(0,l.jsx)(i.h2,{id:"11-\u672a\u4f86\u64f4\u5c55",children:"11. \u672a\u4f86\u64f4\u5c55"}),"\n",(0,l.jsx)(i.admonition,{title:"\u53ef\u80fd\u7684\u64f4\u5c55\u65b9\u5411",type:"note",children:(0,l.jsxs)(i.ol,{children:["\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe UART \u63a5\u6536\u529f\u80fd"}),"\n",(0,l.jsx)(i.li,{children:"\u6dfb\u52a0\u6d41\u63a7\u5236\u652f\u6301"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u5947\u5076\u6821\u9a57"}),"\n",(0,l.jsx)(i.li,{children:"\u652f\u6301\u53ef\u8b8a\u6578\u64da\u4f4d\u6578\uff085-8 \u4f4d\uff09\u548c\u505c\u6b62\u4f4d\u6578"}),"\n",(0,l.jsx)(i.li,{children:"\u5be6\u73fe\u81ea\u52d5\u6ce2\u7279\u7387\u6aa2\u6e2c"}),"\n"]})}),"\n",(0,l.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u78bc",children:"\u5b8c\u6574\u4ee3\u78bc"}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "uart_tx.pio.h"\n\nint main() {\n // We\'re going to use PIO to print "Hello, world!" on the same GPIO which we\n // normally attach UART0 to.\n const uint PIN_TX = 7;\n // This is the same as the default UART baud rate on Pico\n const uint SERIAL_BAUD = 9600;\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &uart_tx_program);\n uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);\n\n while (true) {\n uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\\n");\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,l.jsx)(i.pre,{children:(0,l.jsx)(i.code,{className:"language-c++",metastring:'title="uart_tx.pio"',children:';\n; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.\n;\n; SPDX-License-Identifier: BSD-3-Clause\n;\n\n.program uart_tx\n.side_set 1 opt\n\n; An 8n1 UART transmit program.\n; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.\n\n pull side 1 [7] ; Assert stop bit, or stall with line in idle state\n set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks\nbitloop: ; This loop will run 8 times (8n1 UART)\n out pins, 1 ; Shift 1 bit from OSR to the first OUT pin\n jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.\n\n\n% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {\n // Tell PIO to initially drive output-high on the selected pin, then map PIO\n // onto that pin with the IO muxes.\n pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);\n pio_gpio_init(pio, pin_tx);\n\n pio_sm_config c = uart_tx_program_get_default_config(offset);\n\n // OUT shifts to right, no autopull\n sm_config_set_out_shift(&c, true, false, 32);\n\n // We are mapping both OUT and side-set to the same pin, because sometimes\n // we need to assert user data onto the pin (with OUT) and sometimes\n // assert constant values (start/stop bit)\n sm_config_set_out_pins(&c, pin_tx, 1);\n sm_config_set_sideset_pins(&c, pin_tx);\n\n // We only need TX, so get an 8-deep FIFO!\n sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);\n\n // SM transmits 1 bit per 8 execution cycles.\n float div = (float)clock_get_hz(clk_sys) / (8 * baud);\n sm_config_set_clkdiv(&c, div);\n\n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n\nstatic inline void uart_tx_program_putc(PIO pio, uint sm, char c) {\n pio_sm_put_blocking(pio, sm, (uint32_t)c);\n}\n\nstatic inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {\n while (*s)\n uart_tx_program_putc(pio, sm, *s++);\n}\n\n%}\n\n\n\n'})})]})}function h(n={}){const{wrapper:i}={...(0,s.R)(),...n.components};return i?(0,l.jsx)(i,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>r,x:()=>o});var l=e(6540);const s={},t=l.createContext(s);function r(n){const i=l.useContext(t);return l.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function o(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:r(n.components),l.createElement(t.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1538.bcfcd850.js b/zh-hk/assets/js/1538.bcfcd850.js new file mode 100644 index 000000000..ca835d2a4 --- /dev/null +++ b/zh-hk/assets/js/1538.bcfcd850.js @@ -0,0 +1 @@ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1538],{7293:(e,t,n)=>{"use strict";n.d(t,{A:()=>L});var s=n(6540),o=n(4848);function a(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),c=n?.props.children;return{mdxAdmonitionTitle:c,rest:a.length>0?(0,o.jsx)(o.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}var c=n(4164),r=n(1312),i=n(7559);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:t,className:n,children:s}=e;return(0,o.jsx)("div",{className:(0,c.A)(i.G.common.admonition,i.G.common.admonitionType(t),l.admonition,n),children:s})}function u(e){let{icon:t,title:n}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,o.jsx)("div",{className:l.admonitionContent,children:t}):null}function h(e){const{type:t,icon:n,title:s,children:a,className:c}=e;return(0,o.jsxs)(d,{type:t,className:c,children:[s||n?(0,o.jsx)(u,{title:s,icon:n}):null,(0,o.jsx)(m,{children:a})]})}function p(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,o.jsx)(p,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function x(e){return(0,o.jsx)(h,{...f,...e,className:(0,c.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const j={icon:(0,o.jsx)(b,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,o.jsx)(h,{...j,...e,className:(0,c.A)("alert alert--success",e.className),children:e.children})}function v(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,o.jsx)(v,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function N(e){return(0,o.jsx)(h,{...y,...e,className:(0,c.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const B={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const w={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const C={icon:(0,o.jsx)(A,{}),title:(0,o.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const E={...{note:x,tip:g,info:N,warning:function(e){return(0,o.jsx)(h,{...B,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...w,...e,className:(0,c.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(x,{title:"secondary",...e}),important:e=>(0,o.jsx)(N,{title:"important",...e}),success:e=>(0,o.jsx)(g,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...C,...e,className:(0,c.A)("alert alert--warning",e.className),children:e.children})}}};function L(e){const t=a(e),n=(s=t.type,E[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),E.info));var s;return(0,o.jsx)(n,{...t})}},4336:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),o=n(1312),a=n(7559),c=n(8774);const r={iconEdit:"iconEdit_Z9Sw"};var i=n(4848);function l(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,s.A)(r.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function d(e){let{editUrl:t}=e;return(0,i.jsxs)(c.A,{to:t,className:a.G.common.editThisPage,children:[(0,i.jsx)(l,{}),(0,i.jsx)(o.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var u=n(6266);function m(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=(0,u.i)({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(o.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function h(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(o.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function p(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:a.G.common.lastUpdated,children:[(0,i.jsx)(o.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(m,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(h,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const f={lastUpdated:"lastUpdated_JAkA"};function x(e){let{className:t,editUrl:n,lastUpdatedAt:o,lastUpdatedBy:a}=e;return(0,i.jsxs)("div",{className:(0,s.A)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(d,{editUrl:n})}),(0,i.jsx)("div",{className:(0,s.A)("col",f.lastUpdated),children:(o||a)&&(0,i.jsx)(p,{lastUpdatedAt:o,lastUpdatedBy:a})})]})}},5533:(e,t,n)=>{"use strict";n.d(t,{A:()=>ie});var s=n(6540),o=n(8453),a=n(5260),c=n(2303),r=n(4164),i=n(5293),l=n(6342);function d(){const{prism:e}=(0,l.p)(),{colorMode:t}=(0,i.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var u=n(7559),m=n(8426),h=n.n(m);const p=/title=(?["'])(?.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,x={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},b={...x,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},j=Object.keys(x);function g(e,t){const n=e.map((e=>{const{start:n,end:s}=b[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function v(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:a}=t;if(a&&f.test(a)){const e=a.match(f).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],t);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],t);case"html":return g(["js","jsBlock","html"],t);case"python":case"py":case"bash":return g(["bash"],t);case"markdown":case"md":return g(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return g(["tex"],t);case"lua":case"haskell":case"sql":return g(["lua"],t);case"wasm":return g(["wasm"],t);case"vb":case"vba":case"visual-basic":return g(["vb","rem"],t);case"vbnet":return g(["vbnet","rem"],t);case"batch":return g(["rem"],t);case"basic":return g(["rem","f90"],t);case"fsharp":return g(["js","ml"],t);case"ocaml":case"sml":return g(["ml"],t);case"fortran":return g(["f90"],t);case"cobol":return g(["cobol"],t);default:return g(j,t)}}(s,o),r=n.split("\n"),i=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<r.length;){const e=r[h].match(c);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?i[l[t]].range+=`${h},`:d[t]?i[d[t]].start=h:u[t]&&(i[u[t]].range+=`${i[u[t]].start}-${h-1},`),r.splice(h,1)}n=r.join("\n");const m={};return Object.entries(i).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Ckt0"};var N=n(4848);function A(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const a=t[s];a&&"string"==typeof o&&(n[a]=o)})),n}(d());return(0,N.jsx)(t,{...n,style:s,className:(0,r.A)(n.className,y.codeBlockContainer,u.G.common.codeBlock)})}const B={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function k(e){let{children:t,className:n}=e;return(0,N.jsx)(A,{as:"pre",tabIndex:0,className:(0,r.A)(B.codeBlockStandalone,"thin-scrollbar",n),children:(0,N.jsx)("code",{className:B.codeBlockLines,children:t})})}var w=n(9532);const C={attributes:!0,characterData:!0,childList:!0,subtree:!0};function E(e,t){const[n,o]=(0,s.useState)(),a=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=C);const o=(0,w._q)(t),a=(0,w.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,a),()=>t.disconnect()}),[e,o,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var L=n(1765);const T={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function _(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:o,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const c=o({line:t,className:(0,r.A)(n,s&&T.codeLine)}),i=t.map(((e,t)=>(0,N.jsx)("span",{...a({token:e})},t)));return(0,N.jsxs)("span",{...c,children:[s?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)("span",{className:T.codeLineNumber}),(0,N.jsx)("span",{className:T.codeLineContent,children:i})]}):i,(0,N.jsx)("br",{})]})}var S=n(1312);function U(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function M(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function I(e){let{code:t,className:n}=e;const[o,a]=(0,s.useState)(!1),c=(0,s.useRef)(void 0),i=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const a=document.getSelection(),c=a.rangeCount>0&&a.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let r=!1;try{r=document.execCommand("copy")}catch{}s.remove(),c&&(a.removeAllRanges(),a.addRange(c)),o&&o.focus()}(t),a(!0),c.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(c.current)),[]),(0,N.jsx)("button",{type:"button","aria-label":o?(0,S.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,S.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,S.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,r.A)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:i,children:(0,N.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,N.jsx)(U,{className:z.copyButtonIcon}),(0,N.jsx)(M,{className:z.copyButtonSuccessIcon})]})})}function H(e){return(0,N.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,N.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const R={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function V(e){let{className:t,onClick:n,isEnabled:s}=e;const o=(0,S.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,N.jsx)("button",{type:"button",onClick:n,className:(0,r.A)("clean-btn",t,s&&R.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,N.jsx)(H,{className:R.wordWrapButtonIcon,"aria-hidden":"true"})})}function $(e){let{children:t,className:n="",metastring:o,title:a,showLineNumbers:c,language:i}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.p)(),h=function(e){return e?.toLowerCase()}(i??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),x=function(){const[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),a=(0,s.useRef)(null),c=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),r=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");o(n)}),[a]);return E(a,r),(0,s.useEffect)((()=>{r()}),[e,r]),(0,s.useEffect)((()=>(window.addEventListener("resize",r,{passive:!0}),()=>{window.removeEventListener("resize",r)})),[r]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:c}}(),b=function(e){return e?.match(p)?.groups.title??""}(o)||a,{lineClassNames:j,code:g}=v(t,{metastring:o,language:h,magicComments:m}),y=c??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,N.jsxs)(A,{as:"div",className:(0,r.A)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[b&&(0,N.jsx)("div",{className:B.codeBlockTitle,children:b}),(0,N.jsxs)("div",{className:B.codeBlockContent,children:[(0,N.jsx)(L.f4,{theme:f,code:g,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:o,getTokenProps:a}=e;return(0,N.jsx)("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,r.A)(t,B.codeBlock,"thin-scrollbar"),style:n,children:(0,N.jsx)("code",{className:(0,r.A)(B.codeBlockLines,y&&B.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,N.jsx)(_,{line:e,getLineProps:o,getTokenProps:a,classNames:j[t],showLineNumbers:y},t)))})})}}),(0,N.jsxs)("div",{className:B.buttonGroup,children:[(x.isEnabled||x.isCodeScrollable)&&(0,N.jsx)(V,{className:B.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),(0,N.jsx)(I,{className:B.codeButton,code:g})]})]})]})}function W(e){let{children:t,...n}=e;const o=(0,c.A)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),r="string"==typeof a?$:k;return(0,N.jsx)(r,{...n,children:a},String(o))}function D(e){return(0,N.jsx)("code",{...e})}var P=n(8774);var q=n(3427),G=n(1422);const O={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function F(e){return!!e&&("SUMMARY"===e.tagName||F(e.parentElement))}function J(e,t){return!!e&&(e===t||J(e.parentElement,t))}function Z(e){let{summary:t,children:n,...o}=e;(0,q.A)().collectAnchor(o.id);const a=(0,c.A)(),i=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,G.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(t)?t:(0,N.jsx)("summary",{children:t??"Details"});return(0,N.jsxs)("details",{...o,ref:i,open:u,"data-collapsed":l,className:(0,r.A)(O.details,a&&O.isBrowser,o.className),onMouseDown:e=>{F(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;F(t)&&J(t,i.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,N.jsx)(G.N,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,N.jsx)("div",{className:O.collapsibleContent,children:n})})]})}const Y={details:"details_b_Ee"},K="alert alert--info";function Q(e){let{...t}=e;return(0,N.jsx)(Z,{...t,className:(0,r.A)(K,Y.details,t.className)})}function X(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,N.jsx)(N.Fragment,{children:t.filter((e=>e!==n))});return(0,N.jsx)(Q,{...e,summary:n,children:o})}var ee=n(1107);function te(e){return(0,N.jsx)(ee.A,{...e})}const ne={containsTaskList:"containsTaskList_mC6p"};function se(e){if(void 0!==e)return(0,r.A)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const oe={img:"img_ev3q"};var ae=n(7293),ce=n(418);const re={Head:a.A,details:X,Details:X,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,N.jsx)(D,{...e}):(0,N.jsx)(W,{...e})},a:function(e){return(0,N.jsx)(P.A,{...e})},pre:function(e){return(0,N.jsx)(N.Fragment,{children:e.children})},ul:function(e){return(0,N.jsx)("ul",{...e,className:se(e.className)})},li:function(e){return(0,q.A)().collectAnchor(e.id),(0,N.jsx)("li",{...e})},img:function(e){return(0,N.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,r.A)(t,oe.img))});var t},h1:e=>(0,N.jsx)(te,{as:"h1",...e}),h2:e=>(0,N.jsx)(te,{as:"h2",...e}),h3:e=>(0,N.jsx)(te,{as:"h3",...e}),h4:e=>(0,N.jsx)(te,{as:"h4",...e}),h5:e=>(0,N.jsx)(te,{as:"h5",...e}),h6:e=>(0,N.jsx)(te,{as:"h6",...e}),admonition:ae.A,mermaid:ce.A};function ie(e){let{children:t}=e;return(0,N.jsx)(o.x,{components:re,children:t})}},6266:(e,t,n)=>{"use strict";n.d(t,{i:()=>o});var s=n(4586);function o(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,s.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,s.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,a]=t;if(s&&a){s=parseInt(s),a=parseInt(a);const e=s<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=s;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},8453:(e,t,n)=>{"use strict";n.d(t,{R:()=>c,x:()=>r});var s=n(6540);const o={},a=s.createContext(o);function c(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/17896441.620a8489.js b/zh-hk/assets/js/17896441.620a8489.js new file mode 100644 index 000000000..a473484cf --- /dev/null +++ b/zh-hk/assets/js/17896441.620a8489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8401],{2447:(e,n,t)=>{t.r(n),t.d(n,{default:()=>ae});var s=t(6540),a=t(1213),i=t(9532),l=t(4848);const o=s.createContext(null);function r(e){let{children:n,content:t}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(t);return(0,l.jsx)(o.Provider,{value:a,children:n})}function c(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=c();return(0,l.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(4164),m=t(4581),h=t(1312),v=t(9022);function x(e){const{previous:n,next:t}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[n&&(0,l.jsx)(v.A,{...n,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),t&&(0,l.jsx)(v.A,{...t,subLabel:(0,l.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function b(){const{metadata:e}=c();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var g=t(4586),p=t(8774),f=t(4070),j=t(7559),A=t(5597),_=t(2252);const C={unreleased:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:n,versionMetadata:t}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:n,versionLabel:(0,l.jsx)("b",{children:t.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function L(e){const n=C[e.versionMetadata.banner];return(0,l.jsx)(n,{...e})}function N(e){let{versionLabel:n,to:t,onClick:s}=e;return(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:n,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(p.A,{to:t,onClick:s,children:(0,l.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k(e){let{className:n,versionMetadata:t}=e;const{siteConfig:{title:s}}=(0,g.A)(),{pluginId:a}=(0,f.vT)({failfast:!0}),{savePreferredVersionName:i}=(0,A.g1)(a),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,f.HW)(a),c=o??(d=r).docs.find((e=>e.id===d.mainDocId));var d;return(0,l.jsxs)("div",{className:(0,u.A)(n,j.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(L,{siteTitle:s,versionMetadata:t})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(N,{versionLabel:r.label,to:c.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:n}=e;const t=(0,_.r)();return t.banner?(0,l.jsx)(k,{className:n,versionMetadata:t}):null}function H(e){let{className:n}=e;const t=(0,_.r)();return t.badge?(0,l.jsx)("span",{className:(0,u.A)(n,j.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:t.label},children:"Version: {versionLabel}"})}):null}var M=t(2053),w=t(4336);function y(){const{metadata:e}=c(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,l.jsxs)("footer",{className:(0,u.A)(j.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,l.jsx)("div",{className:(0,u.A)("row margin-top--sm",j.G.docs.docFooterTagsRow),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(M.A,{tags:a})})}),o&&(0,l.jsx)(w.A,{className:(0,u.A)("margin-top--sm",j.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var E=t(1422),I=t(5195);const B={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function O(e){let{collapsed:n,...t}=e;return(0,l.jsx)("button",{type:"button",...t,className:(0,u.A)("clean-btn",B.tocCollapsibleButton,!n&&B.tocCollapsibleButtonExpanded,t.className),children:(0,l.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const V={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function S(e){let{toc:n,className:t,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:i,toggleCollapsed:o}=(0,E.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.A)(V.tocCollapsible,!i&&V.tocCollapsibleExpanded,t),children:[(0,l.jsx)(O,{collapsed:i,onClick:o}),(0,l.jsx)(E.N,{lazy:!0,className:V.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(I.A,{toc:n,minHeadingLevel:s,maxHeadingLevel:a})})]})}const G={tocMobile:"tocMobile_ITEo"};function R(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(S,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(j.G.docs.docTocMobile,G.tocMobile)})}var P=t(7763);function F(){const{toc:e,frontMatter:n}=c();return(0,l.jsx)(P.A,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:j.G.docs.docTocDesktop})}var U=t(1107),D=t(5533);function z(e){let{children:n}=e;const t=function(){const{metadata:e,frontMatter:n,contentTitle:t}=c();return n.hide_title||void 0!==t?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.A)(j.G.docs.docMarkdown,"markdown"),children:[t&&(0,l.jsx)("header",{children:(0,l.jsx)(U.A,{as:"h1",children:t})}),(0,l.jsx)(D.A,{children:n})]})}var W=t(1754),q=t(9169),$=t(6025);function J(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const Q={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function X(){const e=(0,$.Ay)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(p.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(J,{className:Q.breadcrumbHomeIcon})})})}const Y={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Z(e){let{children:n,href:t,isLast:s}=e;const a="breadcrumbs__link";return s?(0,l.jsx)("span",{className:a,itemProp:"name",children:n}):t?(0,l.jsx)(p.A,{className:a,href:t,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:n})}):(0,l.jsx)("span",{className:a,children:n})}function K(e){let{children:n,active:t,index:s,addMicrodata:a}=e;return(0,l.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":t}),children:[n,(0,l.jsx)("meta",{itemProp:"position",content:String(s+1)})]})}function ee(){const e=(0,W.OF)(),n=(0,q.Dt)();return e?(0,l.jsx)("nav",{className:(0,u.A)(j.G.docs.docBreadcrumbs,Y.breadcrumbsContainer),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[n&&(0,l.jsx)(X,{}),e.map(((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,l.jsx)(K,{active:s,index:t,addMicrodata:!!a,children:(0,l.jsx)(Z,{href:a,isLast:s,children:n.label})},t)}))]})}):null}var ne=t(996);const te={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function se(e){let{children:n}=e;const t=function(){const{frontMatter:e,toc:n}=c(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,l.jsx)(R,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,l.jsx)(F,{})}}(),{metadata:{unlisted:s}}=c();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.A)("col",!t.hidden&&te.docItemCol),children:[s&&(0,l.jsx)(ne.A,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:te.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ee,{}),(0,l.jsx)(H,{}),t.mobile,(0,l.jsx)(z,{children:n}),(0,l.jsx)(y,{})]}),(0,l.jsx)(b,{})]})]}),t.desktop&&(0,l.jsx)("div",{className:"col col--3",children:t.desktop})]})}function ae(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(a.e3,{className:n,children:[(0,l.jsx)(d,{}),(0,l.jsx)(se,{children:(0,l.jsx)(t,{})})]})})}},9022:(e,n,t)=>{t.d(n,{A:()=>l});t(6540);var s=t(4164),a=t(8774),i=t(4848);function l(e){const{permalink:n,title:t,subLabel:l,isNext:o}=e;return(0,i.jsxs)(a.A,{className:(0,s.A)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[l&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,i.jsx)("div",{className:"pagination-nav__label",children:t})]})}},7763:(e,n,t)=>{t.d(n,{A:()=>c});t(6540);var s=t(4164),a=t(5195);const i={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const o="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,s.A)(i.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(a.A,{...t,linkClassName:o,linkActiveClassName:r})})}},5195:(e,n,t)=>{t.d(n,{A:()=>x});var s=t(6540),a=t(6342);function i(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)})),s}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:s});return function(e){return e.level>=t&&e.level<=s}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const s=e.find((e=>o(e).top>=t));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(o(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function c(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,a.p)();return(0,s.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=c();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:l}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const s=[];for(let a=n;a<=t;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:i,maxHeadingLevel:l}),c=r(o,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}}),[e,t])}var u=t(8774),m=t(4848);function h(e){let{toc:n,className:t,linkClassName:s,isChild:a}=e;return n.length?(0,m.jsx)("ul",{className:a?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:s})]},e.id)))}):null}const v=s.memo(h);function x(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...h}=e;const x=(0,a.p)(),b=c??x.tableOfContents.minHeadingLevel,g=u??x.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>l({toc:i(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:b,maxHeadingLevel:g});return d((0,s.useMemo)((()=>{if(o&&r)return{linkClassName:o,linkActiveClassName:r,minHeadingLevel:b,maxHeadingLevel:g}}),[o,r,b,g])),(0,m.jsx)(v,{toc:p,className:t,linkClassName:o,...h})}},6133:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var s=t(4164),a=t(8774);const i={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=t(4848);function o(e){let{permalink:n,label:t,count:o,description:r}=e;return(0,l.jsxs)(a.A,{href:n,title:r,className:(0,s.A)(i.tag,o?i.tagWithCount:i.tagRegular),children:[t,o&&(0,l.jsx)("span",{children:o})]})}},2053:(e,n,t)=>{t.d(n,{A:()=>r});t(6540);var s=t(4164),a=t(1312),i=t(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var o=t(4848);function r(e){let{tags:n}=e;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("b",{children:(0,o.jsx)(a.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,o.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:n.map((e=>(0,o.jsx)("li",{className:l.tag,children:(0,o.jsx)(i.A,{...e})},e.permalink)))})]})}},996:(e,n,t)=>{t.d(n,{A:()=>h});t(6540);var s=t(4164),a=t(1312),i=t(5260),l=t(4848);function o(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,l.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function m(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(o,{}),className:(0,s.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(r,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1a0e45eb.445c0174.js b/zh-hk/assets/js/1a0e45eb.445c0174.js new file mode 100644 index 000000000..0985132cf --- /dev/null +++ b/zh-hk/assets/js/1a0e45eb.445c0174.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6248],{7800:(e,n,s)=>{s.r(n),s.d(n,{Highlight:()=>d,assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var r=s(4848),t=s(8453);const a={sidebar_position:4},i="Markdown Features",o={id:"tutorial-basics/markdown-features",title:"Markdown Features",description:"Docusaurus supports Markdown and a few additional features.",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/markdown-features.mdx",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/markdown-features",permalink:"/zh-hk/tutorial-basics/markdown-features",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/markdown-features.mdx",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:4,frontMatter:{sidebar_position:4}},c={},d=({children:e,color:n})=>{const s={span:"span",...(0,t.R)()};return(0,r.jsx)(s.span,{style:{backgroundColor:n,borderRadius:"20px",color:"#fff",padding:"10px",cursor:"pointer"},onClick:()=>{alert(`You clicked the color ${n} with label ${e}`)},children:e})},l=[{value:"Front Matter",id:"front-matter",level:2},{value:"Links",id:"links",level:2},{value:"Images",id:"images",level:2},{value:"Code Blocks",id:"code-blocks",level:2},{value:"Admonitions",id:"admonitions",level:2},{value:"MDX and React Components",id:"mdx-and-react-components",level:2}];function u(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"markdown-features",children:"Markdown Features"}),"\n",(0,r.jsxs)(n.p,{children:["Docusaurus supports ",(0,r.jsx)(n.strong,{children:(0,r.jsx)(n.a,{href:"https://daringfireball.net/projects/markdown/syntax",children:"Markdown"})})," and a few ",(0,r.jsx)(n.strong,{children:"additional features"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"front-matter",children:"Front Matter"}),"\n",(0,r.jsxs)(n.p,{children:["Markdown documents have metadata at the top called ",(0,r.jsx)(n.a,{href:"https://jekyllrb.com/docs/front-matter/",children:"Front Matter"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",metastring:'title="my-doc.md"',children:"// highlight-start\n---\nid: my-doc-id\ntitle: My document title\ndescription: My document description\nslug: /my-custom-url\n---\n// highlight-end\n\n## Markdown heading\n\nMarkdown text with [links](./hello.md)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"links",children:"Links"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown links are supported, using url paths or relative file paths."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](/create-a-page).\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"Let's see how to [Create a page](./create-a-page.md).\n"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Result:"})," Let's see how to ",(0,r.jsx)(n.a,{href:"/zh-hk/tutorial-basics/create-a-page",children:"Create a page"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"images",children:"Images"}),"\n",(0,r.jsx)(n.p,{children:"Regular Markdown images are supported."}),"\n",(0,r.jsxs)(n.p,{children:["You can use absolute paths to reference images in the static directory (",(0,r.jsx)(n.code,{children:"static/img/docusaurus.png"}),"):"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](/img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Docusaurus logo",src:s(9335).A+"",width:"200",height:"200"})}),"\n",(0,r.jsx)(n.p,{children:"You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:"![Docusaurus logo](./img/docusaurus.png)\n"})}),"\n",(0,r.jsx)(n.h2,{id:"code-blocks",children:"Code Blocks"}),"\n",(0,r.jsx)(n.p,{children:"Markdown code blocks are supported with Syntax highlighting."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:'```jsx title="src/components/HelloDocusaurus.js"\nfunction HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n```\n'})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",metastring:'title="src/components/HelloDocusaurus.js"',children:"function HelloDocusaurus() {\n return <h1>Hello, Docusaurus!</h1>;\n}\n"})}),"\n",(0,r.jsx)(n.h2,{id:"admonitions",children:"Admonitions"}),"\n",(0,r.jsx)(n.p,{children:"Docusaurus has a special syntax to create admonitions and callouts:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-md",children:":::tip[My tip]\n\nUse this awesome feature option\n\n:::\n\n:::danger[Take care]\n\nThis action is dangerous\n\n:::\n"})}),"\n",(0,r.jsx)(n.admonition,{title:"My tip",type:"tip",children:(0,r.jsx)(n.p,{children:"Use this awesome feature option"})}),"\n",(0,r.jsx)(n.admonition,{title:"Take care",type:"danger",children:(0,r.jsx)(n.p,{children:"This action is dangerous"})}),"\n",(0,r.jsx)(n.h2,{id:"mdx-and-react-components",children:"MDX and React Components"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://mdxjs.com/",children:"MDX"})," can make your documentation more ",(0,r.jsx)(n.strong,{children:"interactive"})," and allows using any ",(0,r.jsx)(n.strong,{children:"React components inside Markdown"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-jsx",children:"export const Highlight = ({children, color}) => (\n <span\n style={{\n backgroundColor: color,\n borderRadius: '20px',\n color: '#fff',\n padding: '10px',\n cursor: 'pointer',\n }}\n onClick={() => {\n alert(`You clicked the color ${color} with label ${children}`)\n }}>\n {children}\n </span>\n);\n\nThis is <Highlight color=\"#25c2a0\">Docusaurus green</Highlight> !\n\nThis is <Highlight color=\"#1877F2\">Facebook blue</Highlight> !\n"})}),"\n","\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#25c2a0",children:"Docusaurus green"})," !"]}),"\n",(0,r.jsxs)(n.p,{children:["This is ",(0,r.jsx)(d,{color:"#1877F2",children:"Facebook blue"})," !"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},9335:(e,n,s)=>{s.d(n,{A:()=>r});const r="data:image/png;base64,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"},8453:(e,n,s)=>{s.d(n,{R:()=>i,x:()=>o});var r=s(6540);const t={},a=r.createContext(t);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1ce4999c.a1d026ea.js b/zh-hk/assets/js/1ce4999c.a1d026ea.js new file mode 100644 index 000000000..4136996ce --- /dev/null +++ b/zh-hk/assets/js/1ce4999c.a1d026ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5290],{5396:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>a});var r=n(4848),o=n(8453);const i={},c=void 0,s={id:"intro",title:"intro",description:"\x3c!-- ---",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/intro.md",sourceDirName:".",slug:"/intro",permalink:"/zh-hk/intro",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/intro.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,frontMatter:{}},u={},a=[];function d(t){return(0,r.jsx)(r.Fragment,{})}function l(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(d,{...t})}):d()}},8453:(t,e,n)=>{n.d(e,{R:()=>c,x:()=>s});var r=n(6540);const o={},i=r.createContext(o);function c(t){const e=r.useContext(i);return r.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),r.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1e71edf6.73c1e96f.js b/zh-hk/assets/js/1e71edf6.73c1e96f.js new file mode 100644 index 000000000..7b9ae9174 --- /dev/null +++ b/zh-hk/assets/js/1e71edf6.73c1e96f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8094],{9393:e=>{e.exports=JSON.parse('{"tag":{"label":"state machine optimization","permalink":"/zh-hk/tags/state-machine-optimization","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/1f391b9e.1479ec8d.js b/zh-hk/assets/js/1f391b9e.1479ec8d.js new file mode 100644 index 000000000..a511c185c --- /dev/null +++ b/zh-hk/assets/js/1f391b9e.1479ec8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6061],{7973:(e,n,t)=>{t.r(n),t.d(n,{default:()=>f});t(6540);var a=t(4164),i=t(1213),s=t(7559),l=t(5733),r=t(5533),c=t(7763),o=t(996),d=t(4336);const m={mdxPageWrapper:"mdxPageWrapper_j9I6"};var u=t(4848);function f(e){const{content:n}=e,{metadata:{title:t,editUrl:f,description:v,frontMatter:h,unlisted:g,lastUpdatedBy:x,lastUpdatedAt:p},assets:L}=n,{keywords:j,wrapperClassName:A,hide_table_of_contents:N}=h,_=L.image??h.image,C=!!(f||p||x);return(0,u.jsx)(i.e3,{className:(0,a.A)(A??s.G.wrapper.mdxPages,s.G.page.mdxPage),children:(0,u.jsxs)(l.A,{children:[(0,u.jsx)(i.be,{title:t,description:v,keywords:j,image:_}),(0,u.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,u.jsxs)("div",{className:(0,a.A)("row",m.mdxPageWrapper),children:[(0,u.jsxs)("div",{className:(0,a.A)("col",!N&&"col--8"),children:[g&&(0,u.jsx)(o.A,{}),(0,u.jsx)("article",{children:(0,u.jsx)(r.A,{children:(0,u.jsx)(n,{})})}),C&&(0,u.jsx)(d.A,{className:(0,a.A)("margin-top--sm",s.G.pages.pageFooterEditMetaRow),editUrl:f,lastUpdatedAt:p,lastUpdatedBy:x})]}),!N&&n.toc.length>0&&(0,u.jsx)("div",{className:"col col--2",children:(0,u.jsx)(c.A,{toc:n.toc,minHeadingLevel:h.toc_min_heading_level,maxHeadingLevel:h.toc_max_heading_level})})]})})]})})}},7763:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var a=t(4164),i=t(5195);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var l=t(4848);const r="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function o(e){let{className:n,...t}=e;return(0,l.jsx)("div",{className:(0,a.A)(s.tableOfContents,"thin-scrollbar",n),children:(0,l.jsx)(i.A,{...t,linkClassName:r,linkActiveClassName:c})})}},5195:(e,n,t)=>{t.d(n,{A:()=>h});var a=t(6540),i=t(6342);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)})),a}function l(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=l({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function r(e){const n=e.getBoundingClientRect();return n.top===n.bottom?r(e.parentNode):n}function c(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>r(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(r(a))?a:e[e.indexOf(a)-1]??null}return e[e.length-1]??null}function o(){const e=(0,a.useRef)(0),{navbar:{hideOnScroll:n}}=(0,i.p)();return(0,a.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=o();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:l}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),r=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let i=n;i<=t;i+=1)a.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:s,maxHeadingLevel:l}),o=c(r,{anchorTopOffset:t.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,t])}var m=t(8774),u=t(4848);function f(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?(0,u.jsx)("ul",{className:i?void 0:t,children:n.map((e=>(0,u.jsxs)("li",{children:[(0,u.jsx)(m.A,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,u.jsx)(f,{isChild:!0,toc:e.children,className:t,linkClassName:a})]},e.id)))}):null}const v=a.memo(f);function h(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:r="table-of-contents__link",linkActiveClassName:c,minHeadingLevel:o,maxHeadingLevel:m,...f}=e;const h=(0,i.p)(),g=o??h.tableOfContents.minHeadingLevel,x=m??h.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>l({toc:s(n),minHeadingLevel:t,maxHeadingLevel:i})),[n,t,i])}({toc:n,minHeadingLevel:g,maxHeadingLevel:x});return d((0,a.useMemo)((()=>{if(r&&c)return{linkClassName:r,linkActiveClassName:c,minHeadingLevel:g,maxHeadingLevel:x}}),[r,c,g,x])),(0,u.jsx)(v,{toc:p,className:t,linkClassName:r,...f})}},996:(e,n,t)=>{t.d(n,{A:()=>f});t(6540);var a=t(4164),i=t(1312),s=t(5260),l=t(4848);function r(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,l.jsx)(i.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function o(){return(0,l.jsx)(s.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),m=t(7293);function u(e){let{className:n}=e;return(0,l.jsx)(m.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,a.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(c,{})})}function f(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/2237.e0c95162.js b/zh-hk/assets/js/2237.e0c95162.js new file mode 100644 index 000000000..561471393 --- /dev/null +++ b/zh-hk/assets/js/2237.e0c95162.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2237],{3363:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var i=n(4164),o=n(1312),r=n(1107),s=n(4848);function a(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,i.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(r.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},2237:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});n(6540);var i=n(1312),o=n(1213),r=n(5733),s=n(3363),a=n(4848);function d(){const e=(0,i.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.be,{title:e}),(0,a.jsx)(r.A,{children:(0,a.jsx)(s.A,{})})]})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/2b354d69.02de5fcb.js b/zh-hk/assets/js/2b354d69.02de5fcb.js new file mode 100644 index 000000000..56386a7ce --- /dev/null +++ b/zh-hk/assets/js/2b354d69.02de5fcb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4544],{8676:e=>{e.exports=JSON.parse('{"tag":{"label":"Docker","permalink":"/zh-hk/blog/tags/docker","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/docker","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/2b6ce744.a7c03f5f.js b/zh-hk/assets/js/2b6ce744.a7c03f5f.js new file mode 100644 index 000000000..cdf447a87 --- /dev/null +++ b/zh-hk/assets/js/2b6ce744.a7c03f5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8758],{4640:n=>{n.exports=JSON.parse('{"archive":{"blogPosts":[{"id":"Docker-Getting-Srart-01","metadata":{"permalink":"/zh-hk/blog/Docker-Getting-Srart-01","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md","source":"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2021-09-14-Docker-Getting-Srart-01.md","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","description":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002","date":"2021-09-14T00:00:00.000Z","tags":[{"inline":true,"label":"misc","permalink":"/zh-hk/blog/tags/misc"},{"inline":true,"label":"Linux","permalink":"/zh-hk/blog/tags/linux"},{"inline":true,"label":"Linux","permalink":"/zh-hk/blog/tags/linux"},{"inline":true,"label":"Docker","permalink":"/zh-hk/blog/tags/docker"},{"inline":true,"label":"\u8edf\u4ef6","permalink":"/zh-hk/blog/tags/\u8edf\u4ef6"},{"inline":true,"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],"readingTime":7.345,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"Docker-Getting-Srart-01","title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},"unlisted":false,"nextItem":{"title":"First Blog Post","permalink":"/zh-hk/blog/first-blog-post"}},"content":"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002\\n- \u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002\\n- \u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002\\n- \u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002\\n\\n# Docker \u7684\u512a\u9ede\\nDocker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002\\n\\n1. \u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002\\n\\n\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a\\n\\n\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002\\n\\n\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002\\n\\n\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002\\n\\n\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002\\n\\n2. \u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002\\n\\nDocker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002\\n\\n3. \u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5\\n\\n# Docker\u5b89\u88dd\\n```\\ncurl -sSL https://get.daocloud.io/docker | sh\\n```\\n\\n# Docker\u5378\u8f09\\n```\\n sudo apt-get remove docker docker-engine docker.io containerd runc\\n```\\n\\n\\n# Docker\u4f7f\u7528\u57fa\u790e\\n## Docker Hello World\\nDocker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002\\n\\n\u8f38\u51faHello world\\n```\\nw0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo \\"Hello world\\"\\nHello world\\n```\\n\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\ndocker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\\n\\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\\n\\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\\n\\n/bin/echo \\"Hello world\\": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\\n```\\n\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo \\"Hello world\\"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002\\n\\n## \u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668\\n\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe\\"\u5c0d\u8a71\\"\u7684\u80fd\u529b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\\nroot@0123ce188bd8:/#\\n```\\n\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a\\n```\\n-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\\n\\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\\n```\\n\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668\\n\\n\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868\\n```\\nroot@0123ce188bd8:/# cat /proc/version\\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\\nroot@0123ce188bd8:/# ls\\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\\nroot@0123ce188bd8:/# \\n```\\n\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002\\n```\\nroot@0123ce188bd8:/# exit\\nexit\\nroot@w0x7ce:~# \\n```\\n\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002\\n\\n## \u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09\\n\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668\\n```\\nw0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c \\"while true; do echo hello world; sleep 1; done\\"\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n```\\n\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 \\"hello world\\"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26\\n\\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\\n\\n\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002\\n\\n\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\nCONTAINER ID IMAGE COMMAND ... \\n5917eac21c36 ubuntu:15.10 \\"/bin/sh -c \'while t\u2026\\" ...\\n```\\n\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a\\n```\\nCONTAINER ID: \u5bb9\u5668 ID\u3002\\n\\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\\n\\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\\n\\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\\n\\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\\n\\n\u72c0\u614b\u67097\u7a2e\uff1a\\n\\ncreated\uff08\u5df2\u5275\u5efa\uff09\\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\\nremoving\uff08\u9077\u79fb\u4e2d\uff09\\npaused\uff08\u66ab\u505c\uff09\\nexited\uff08\u505c\u6b62\uff09\\ndead\uff08\u6b7b\u4ea1\uff09\\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\\\udp\uff09\u3002\\n\\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\\n```\\n\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a\\n```\\nw0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\\n```\\n```\\nw0x7ce@w0x7ce:~$ docker logs amazing_cori\\n```\\n\\n## \u505c\u6b62\u5bb9\u5668\\n\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:\\n\\n\\n\\n\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:\\n```\\nw0x7ce@w0x7ce:~$ docker ps\\n```\\n\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002\\n\\n\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:\\n```\\nw0x7ce@w0x7ce:~$ docker stop amazing_cori\\n```"},{"id":"first-blog-post","metadata":{"permalink":"/zh-hk/blog/first-blog-post","editUrl":"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md","source":"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2019-05-28-first-blog-post.md","title":"First Blog Post","description":"","date":"2019-05-28T00:00:00.000Z","tags":[{"inline":false,"label":"Hola","permalink":"/zh-hk/blog/tags/hola","description":"Hola tag description"},{"inline":false,"label":"Docusaurus","permalink":"/zh-hk/blog/tags/docusaurus","description":"Docusaurus tag description"}],"readingTime":0,"hasTruncateMarker":false,"authors":[{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"}],"frontMatter":{"slug":"first-blog-post","title":"First Blog Post","authors":{"name":"w0x7ce","title":"MySelf","url":"https://github.com/tianrking","image_url":"https://github.com/tianrking.png","imageURL":"https://github.com/tianrking.png"},"tags":["hola","docusaurus"]},"unlisted":false,"prevItem":{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/zh-hk/blog/Docker-Getting-Srart-01"}},"content":""}]}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/2d233033.5ec7e093.js b/zh-hk/assets/js/2d233033.5ec7e093.js new file mode 100644 index 000000000..f7d9f825a --- /dev/null +++ b/zh-hk/assets/js/2d233033.5ec7e093.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6563],{3644:e=>{e.exports=JSON.parse('{"tag":{"label":"Resource Management","permalink":"/zh-hk/tags/resource-management","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/3242.35bb0ee0.js b/zh-hk/assets/js/3242.35bb0ee0.js new file mode 100644 index 000000000..77f82d5a9 --- /dev/null +++ b/zh-hk/assets/js/3242.35bb0ee0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3242],{6535:(e,t,a)=>{a.d(t,{A:()=>b});var s=a(6540),n=a(4164),r=a(5733),l=a(4581),i=a(8774),o=a(1312),c=a(6347),d=a(9169);function m(e){const{pathname:t}=(0,c.zy)();return(0,s.useMemo)((()=>e.filter((e=>function(e,t){return!(e.unlisted&&!(0,d.ys)(e.permalink,t))}(e,t)))),[e,t])}const u={sidebar:"sidebar_re4s",sidebarItemTitle:"sidebarItemTitle_pO2u",sidebarItemList:"sidebarItemList_Yudw",sidebarItem:"sidebarItem__DBe",sidebarItemLink:"sidebarItemLink_mo7H",sidebarItemLinkActive:"sidebarItemLinkActive_I1ZP"};var h=a(4848);function g(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("aside",{className:"col col--3",children:(0,h.jsxs)("nav",{className:(0,n.A)(u.sidebar,"thin-scrollbar"),"aria-label":(0,o.T)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"}),children:[(0,h.jsx)("div",{className:(0,n.A)(u.sidebarItemTitle,"margin-bottom--md"),children:t.title}),(0,h.jsx)("ul",{className:(0,n.A)(u.sidebarItemList,"clean-list"),children:a.map((e=>(0,h.jsx)("li",{className:u.sidebarItem,children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:u.sidebarItemLink,activeClassName:u.sidebarItemLinkActive,children:e.title})},e.permalink)))})]})})}var x=a(5600);function j(e){let{sidebar:t}=e;const a=m(t.items);return(0,h.jsx)("ul",{className:"menu__list",children:a.map((e=>(0,h.jsx)("li",{className:"menu__list-item",children:(0,h.jsx)(i.A,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active",children:e.title})},e.permalink)))})}function p(e){return(0,h.jsx)(x.GX,{component:j,props:e})}function f(e){let{sidebar:t}=e;const a=(0,l.l)();return t?.items.length?"mobile"===a?(0,h.jsx)(p,{sidebar:t}):(0,h.jsx)(g,{sidebar:t}):null}function b(e){const{sidebar:t,toc:a,children:s,...l}=e,i=t&&t.items.length>0;return(0,h.jsx)(r.A,{...l,children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsxs)("div",{className:"row",children:[(0,h.jsx)(f,{sidebar:t}),(0,h.jsx)("main",{className:(0,n.A)("col",{"col--7":i,"col--9 col--offset-1":!i}),children:s}),a&&(0,h.jsx)("div",{className:"col col--2",children:a})]})})})}},4651:(e,t,a)=>{a.d(t,{A:()=>R});a(6540);var s=a(4164),n=a(7131),r=a(4848);function l(e){let{children:t,className:a}=e;return(0,r.jsx)("article",{className:a,children:t})}var i=a(8774);const o={title:"title_f1Hy"};function c(e){let{className:t}=e;const{metadata:a,isBlogPostPage:l}=(0,n.e)(),{permalink:c,title:d}=a,m=l?"h1":"h2";return(0,r.jsx)(m,{className:(0,s.A)(o.title,t),children:l?d:(0,r.jsx)(i.A,{to:c,children:d})})}var d=a(1312),m=a(5846),u=a(6266);const h={container:"container_mt6G"};function g(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,m.W)();return t=>{const a=Math.ceil(t);return e(a,(0,d.T)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return(0,r.jsx)(r.Fragment,{children:a(t)})}function x(e){let{date:t,formattedDate:a}=e;return(0,r.jsx)("time",{dateTime:t,children:a})}function j(){return(0,r.jsx)(r.Fragment,{children:" \xb7 "})}function p(e){let{className:t}=e;const{metadata:a}=(0,n.e)(),{date:l,readingTime:i}=a,o=(0,u.i)({day:"numeric",month:"long",year:"numeric",timeZone:"UTC"});return(0,r.jsxs)("div",{className:(0,s.A)(h.container,"margin-vert--md",t),children:[(0,r.jsx)(x,{date:l,formattedDate:(c=l,o.format(new Date(c)))}),void 0!==i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(j,{}),(0,r.jsx)(g,{readingTime:i})]})]});var c}function f(e){return e.href?(0,r.jsx)(i.A,{...e}):(0,r.jsx)(r.Fragment,{children:e.children})}function b(e){let{author:t,className:a}=e;const{name:n,title:l,url:i,imageURL:o,email:c}=t,d=i||c&&`mailto:${c}`||void 0;return(0,r.jsxs)("div",{className:(0,s.A)("avatar margin-bottom--sm",a),children:[o&&(0,r.jsx)(f,{href:d,className:"avatar__photo-link",children:(0,r.jsx)("img",{className:"avatar__photo",src:o,alt:n})}),n&&(0,r.jsxs)("div",{className:"avatar__intro",children:[(0,r.jsx)("div",{className:"avatar__name",children:(0,r.jsx)(f,{href:d,children:(0,r.jsx)("span",{children:n})})}),l&&(0,r.jsx)("small",{className:"avatar__subtitle",children:l})]})]})}const v={authorCol:"authorCol_Hf19",imageOnlyAuthorRow:"imageOnlyAuthorRow_pa_O",imageOnlyAuthorCol:"imageOnlyAuthorCol_G86a"};function _(e){let{className:t}=e;const{metadata:{authors:a},assets:l}=(0,n.e)();if(0===a.length)return null;const i=a.every((e=>{let{name:t}=e;return!t}));return(0,r.jsx)("div",{className:(0,s.A)("margin-top--md margin-bottom--sm",i?v.imageOnlyAuthorRow:"row",t),children:a.map(((e,t)=>(0,r.jsx)("div",{className:(0,s.A)(!i&&"col col--6",i?v.imageOnlyAuthorCol:v.authorCol),children:(0,r.jsx)(b,{author:{...e,imageURL:l.authorsImageUrls[t]??e.imageURL}})},t)))})}function A(){return(0,r.jsxs)("header",{children:[(0,r.jsx)(c,{}),(0,r.jsx)(p,{}),(0,r.jsx)(_,{})]})}var N=a(440),k=a(5533);function P(e){let{children:t,className:a}=e;const{isBlogPostPage:l}=(0,n.e)();return(0,r.jsx)("div",{id:l?N.blogPostContainerID:void 0,className:(0,s.A)("markdown",a),children:(0,r.jsx)(k.A,{children:t})})}var w=a(7559),T=a(4336),I=a(2053);function L(){return(0,r.jsx)("b",{children:(0,r.jsx)(d.A,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts",children:"Read More"})})}function y(e){const{blogPostTitle:t,...a}=e;return(0,r.jsx)(i.A,{"aria-label":(0,d.T)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t}),...a,children:(0,r.jsx)(L,{})})}function C(){const{metadata:e,isBlogPostPage:t}=(0,n.e)(),{tags:a,title:l,editUrl:i,hasTruncateMarker:o,lastUpdatedBy:c,lastUpdatedAt:d}=e,m=!t&&o,u=a.length>0;if(!(u||m||i))return null;if(t){const e=!!(i||d||c);return(0,r.jsxs)("footer",{className:"docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("row","margin-top--sm",w.G.blog.blogFooterEditMetaRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(I.A,{tags:a})})}),e&&(0,r.jsx)(T.A,{className:(0,s.A)("margin-top--sm",w.G.blog.blogFooterEditMetaRow),editUrl:i,lastUpdatedAt:d,lastUpdatedBy:c})]})}return(0,r.jsxs)("footer",{className:"row docusaurus-mt-lg",children:[u&&(0,r.jsx)("div",{className:(0,s.A)("col",{"col--9":m}),children:(0,r.jsx)(I.A,{tags:a})}),m&&(0,r.jsx)("div",{className:(0,s.A)("col text--right",{"col--3":u}),children:(0,r.jsx)(y,{blogPostTitle:l,to:e.permalink})})]})}function R(e){let{children:t,className:a}=e;const i=function(){const{isBlogPostPage:e}=(0,n.e)();return e?void 0:"margin-bottom--xl"}();return(0,r.jsxs)(l,{className:(0,s.A)(i,a),children:[(0,r.jsx)(A,{}),(0,r.jsx)(P,{children:t}),(0,r.jsx)(C,{})]})}},9022:(e,t,a)=>{a.d(t,{A:()=>l});a(6540);var s=a(4164),n=a(8774),r=a(4848);function l(e){const{permalink:t,title:a,subLabel:l,isNext:i}=e;return(0,r.jsxs)(n.A,{className:(0,s.A)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[l&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:l}),(0,r.jsx)("div",{className:"pagination-nav__label",children:a})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>i});a(6540);var s=a(4164),n=a(8774);const r={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var l=a(4848);function i(e){let{permalink:t,label:a,count:i,description:o}=e;return(0,l.jsxs)(n.A,{href:t,title:o,className:(0,s.A)(r.tag,i?r.tagWithCount:r.tagRegular),children:[a,i&&(0,l.jsx)("span",{children:i})]})}},2053:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(4164),n=a(1312),r=a(6133);const l={tags:"tags_jXut",tag:"tag_QGVx"};var i=a(4848);function o(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(n.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,s.A)(l.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:l.tag,children:(0,i.jsx)(r.A,{...e})},e.permalink)))})]})}},7131:(e,t,a)=>{a.d(t,{e:()=>o,i:()=>i});var s=a(6540),n=a(9532),r=a(4848);const l=s.createContext(null);function i(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const i=function(e){let{content:t,isBlogPostPage:a}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return(0,r.jsx)(l.Provider,{value:i,children:t})}function o(){const e=(0,s.useContext)(l);if(null===e)throw new n.dV("BlogPostProvider");return e}},5846:(e,t,a)=>{a.d(t,{W:()=>c});var s=a(6540),n=a(4586);const r=["zero","one","two","few","many","other"];function l(e){return r.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function o(){const{i18n:{currentLocale:e}}=(0,n.A)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:l(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function c(){const e=o();return{selectMessage:(t,a)=>function(e,t,a){const s=e.split("|");if(1===s.length)return s[0];s.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return s[Math.min(r,s.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/336ea2cf.59438417.js b/zh-hk/assets/js/336ea2cf.59438417.js new file mode 100644 index 000000000..458762607 --- /dev/null +++ b/zh-hk/assets/js/336ea2cf.59438417.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8348],{3858:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>t,toc:()=>a});var o=s(4848),r=s(8453);const i={sidebar_position:1},d="Manage Docs Versions",t={id:"tutorial-extras/manage-docs-versions",title:"Manage Docs Versions",description:"Docusaurus can manage multiple versions of your docs.",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-extras/manage-docs-versions.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/manage-docs-versions",permalink:"/zh-hk/tutorial-extras/manage-docs-versions",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/manage-docs-versions.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},c={},a=[{value:"Create a docs version",id:"create-a-docs-version",level:2},{value:"Add a Version Dropdown",id:"add-a-version-dropdown",level:2},{value:"Update an existing version",id:"update-an-existing-version",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"manage-docs-versions",children:"Manage Docs Versions"}),"\n",(0,o.jsx)(n.p,{children:"Docusaurus can manage multiple versions of your docs."}),"\n",(0,o.jsx)(n.h2,{id:"create-a-docs-version",children:"Create a docs version"}),"\n",(0,o.jsx)(n.p,{children:"Release a version 1.0 of your project:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",children:"npm run docusaurus docs:version 1.0\n"})}),"\n",(0,o.jsxs)(n.p,{children:["The ",(0,o.jsx)(n.code,{children:"docs"})," folder is copied into ",(0,o.jsx)(n.code,{children:"versioned_docs/version-1.0"})," and ",(0,o.jsx)(n.code,{children:"versions.json"})," is created."]}),"\n",(0,o.jsx)(n.p,{children:"Your docs now have 2 versions:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"1.0"})," at ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/"})," for the version 1.0 docs"]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"current"})," at ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/next/"})," for the ",(0,o.jsx)(n.strong,{children:"upcoming, unreleased docs"})]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"add-a-version-dropdown",children:"Add a Version Dropdown"}),"\n",(0,o.jsx)(n.p,{children:"To navigate seamlessly across versions, add a version dropdown."}),"\n",(0,o.jsxs)(n.p,{children:["Modify the ",(0,o.jsx)(n.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'docsVersionDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,o.jsx)(n.p,{children:"The docs version dropdown appears in your navbar:"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"Docs Version Dropdown",src:s(5390).A+"",width:"370",height:"302"})}),"\n",(0,o.jsx)(n.h2,{id:"update-an-existing-version",children:"Update an existing version"}),"\n",(0,o.jsx)(n.p,{children:"It is possible to edit versioned docs in their respective folder:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"versioned_docs/version-1.0/hello.md"})," updates ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/hello"})]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"docs/hello.md"})," updates ",(0,o.jsx)(n.code,{children:"http://localhost:3000/docs/next/hello"})]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},5390:(e,n,s)=>{s.d(n,{A:()=>o});const o=s.p+"assets/images/docsVersionDropdown-35e13cbe46c9923327f30a76a90bff3b.png"},8453:(e,n,s)=>{s.d(n,{R:()=>d,x:()=>t});var o=s(6540);const r={},i=o.createContext(r);function d(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/33fe0373.3dc10175.js b/zh-hk/assets/js/33fe0373.3dc10175.js new file mode 100644 index 000000000..31d63acce --- /dev/null +++ b/zh-hk/assets/js/33fe0373.3dc10175.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2351],{4589:e=>{e.exports=JSON.parse('{"tag":{"label":"\u8edf\u4ef6","permalink":"/zh-hk/blog/tags/\u8edf\u4ef6","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/\u8edf\u4ef6","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/36994c47.77d49b04.js b/zh-hk/assets/js/36994c47.77d49b04.js new file mode 100644 index 000000000..10c144817 --- /dev/null +++ b/zh-hk/assets/js/36994c47.77d49b04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9858],{5516:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/3720c009.f8828a1d.js b/zh-hk/assets/js/3720c009.f8828a1d.js new file mode 100644 index 000000000..29a033a87 --- /dev/null +++ b/zh-hk/assets/js/3720c009.f8828a1d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4787],{2194:(e,t,a)=>{a.r(t),a.d(t,{default:()=>h});a(6540);var s=a(4164),r=a(1213),l=a(7559),n=a(6820),c=a(2557),i=a(1463),o=a(1107),g=a(4848);function d(e){let{title:t}=e;return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(r.be,{title:t}),(0,g.jsx)(i.A,{tag:"doc_tags_list"})]})}function u(e){let{tags:t,title:a}=e;return(0,g.jsx)(r.e3,{className:(0,s.A)(l.G.page.docsTagsListPage),children:(0,g.jsx)("div",{className:"container margin-vert--lg",children:(0,g.jsx)("div",{className:"row",children:(0,g.jsxs)("main",{className:"col col--8 col--offset-2",children:[(0,g.jsx)(o.A,{as:"h1",children:a}),(0,g.jsx)(c.A,{tags:t})]})})})})}function h(e){const t=(0,n.b)();return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(d,{...e,title:t}),(0,g.jsx)(u,{...e,title:t})]})}},6133:(e,t,a)=>{a.d(t,{A:()=>c});a(6540);var s=a(4164),r=a(8774);const l={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var n=a(4848);function c(e){let{permalink:t,label:a,count:c,description:i}=e;return(0,n.jsxs)(r.A,{href:t,title:i,className:(0,s.A)(l.tag,c?l.tagWithCount:l.tagRegular),children:[a,c&&(0,n.jsx)("span",{children:c})]})}},2557:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var s=a(6820),r=a(6133),l=a(1107);const n={tag:"tag_Nnez"};var c=a(4848);function i(e){let{letterEntry:t}=e;return(0,c.jsxs)("article",{children:[(0,c.jsx)(l.A,{as:"h2",id:t.letter,children:t.letter}),(0,c.jsx)("ul",{className:"padding--none",children:t.tags.map((e=>(0,c.jsx)("li",{className:n.tag,children:(0,c.jsx)(r.A,{...e})},e.permalink)))}),(0,c.jsx)("hr",{})]})}function o(e){let{tags:t}=e;const a=(0,s.Q)(t);return(0,c.jsx)("section",{className:"margin-vert--lg",children:a.map((e=>(0,c.jsx)(i,{letterEntry:e},e.letter)))})}},6820:(e,t,a)=>{a.d(t,{Q:()=>l,b:()=>r});var s=a(1312);const r=()=>(0,s.T)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function l(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[s]=t;return a.localeCompare(s)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/37c603c4.a87544cb.js b/zh-hk/assets/js/37c603c4.a87544cb.js new file mode 100644 index 000000000..8ff535fdd --- /dev/null +++ b/zh-hk/assets/js/37c603c4.a87544cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7268],{6783:e=>{e.exports=JSON.parse('{"tag":{"label":"stm32","permalink":"/zh-hk/tags/stm-32","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/3848d9e1.9537ac37.js b/zh-hk/assets/js/3848d9e1.9537ac37.js new file mode 100644 index 000000000..68c30ef86 --- /dev/null +++ b/zh-hk/assets/js/3848d9e1.9537ac37.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8917],{5039:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/zh-hk/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/zh-hk/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/zh-hk/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/zh-hk/blog/Docker-Getting-Srart-01"}},u={authorsImageUrls:[void 0]},l=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/393be207.e69ccf4c.js b/zh-hk/assets/js/393be207.e69ccf4c.js new file mode 100644 index 000000000..2bd84da29 --- /dev/null +++ b/zh-hk/assets/js/393be207.e69ccf4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4134],{633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>l,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var o=t(4848),a=t(8453);const r={title:"Markdown page example"},s="Markdown page example",c={type:"mdx",permalink:"/zh-hk/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"},unlisted:!1},p={},d=[];function i(e){const n={h1:"h1",p:"p",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"markdown-page-example",children:"Markdown page example"}),"\n",(0,o.jsx)(n.p,{children:"You don't need React to write simple standalone pages."})]})}function l(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>c});var o=t(6540);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/3bd8aa35.31e8819f.js b/zh-hk/assets/js/3bd8aa35.31e8819f.js new file mode 100644 index 000000000..e3cf94122 --- /dev/null +++ b/zh-hk/assets/js/3bd8aa35.31e8819f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9462],{7698:e=>{e.exports=JSON.parse('{"tag":{"label":"Linux","permalink":"/zh-hk/blog/tags/linux","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/linux","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/3ea259e6.ca948adc.js b/zh-hk/assets/js/3ea259e6.ca948adc.js new file mode 100644 index 000000000..8ba1f75e9 --- /dev/null +++ b/zh-hk/assets/js/3ea259e6.ca948adc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7733],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>F});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,v,x,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,k=t(6540);function z(){return z=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},z.apply(null,arguments)}const F=e=>{let{title:a,titleId:t,...F}=e;return k.createElement("svg",z({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},F),void 0===a?k.createElement("title",{id:t},"Focus on What Matters"):a?k.createElement("title",{id:t},a):null,l||(l=k.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=k.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=k.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=k.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=k.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=k.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=k.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=k.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=k.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=k.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=k.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=k.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=k.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=k.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),v||(v=k.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),x||(x=k.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=k.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=k.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=k.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=k.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=k.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=k.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=k.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=k.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=k.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=k.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=k.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},8154:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/blog",children:"\ud83d\udc49 \xa1hjk! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/45170d14.183690c9.js b/zh-hk/assets/js/45170d14.183690c9.js new file mode 100644 index 000000000..fa1f25d86 --- /dev/null +++ b/zh-hk/assets/js/45170d14.183690c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1649],{3133:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>u,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var i=n(4848),o=n(8453);const r={slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},s=void 0,a={permalink:"/zh-hk/blog/first-blog-post",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2019-05-28-first-blog-post.md",source:"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2019-05-28-first-blog-post.md",title:"First Blog Post",description:"",date:"2019-05-28T00:00:00.000Z",tags:[{inline:!1,label:"Hola",permalink:"/zh-hk/blog/tags/hola",description:"Hola tag description"},{inline:!1,label:"Docusaurus",permalink:"/zh-hk/blog/tags/docusaurus",description:"Docusaurus tag description"}],readingTime:0,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"first-blog-post",title:"First Blog Post",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["hola","docusaurus"]},unlisted:!1,prevItem:{title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",permalink:"/zh-hk/blog/Docker-Getting-Srart-01"}},u={authorsImageUrls:[void 0]},l=[];function g(t){return(0,i.jsx)(i.Fragment,{})}function c(t={}){const{wrapper:e}={...(0,o.R)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(g,{...t})}):g()}},8453:(t,e,n)=>{n.d(e,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(t){const e=i.useContext(r);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:s(t.components),i.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/4cb30fd1.fc582d4b.js b/zh-hk/assets/js/4cb30fd1.fc582d4b.js new file mode 100644 index 000000000..39911408c --- /dev/null +++ b/zh-hk/assets/js/4cb30fd1.fc582d4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8462],{5938:a=>{a.exports=JSON.parse('{"tag":{"label":"Hola","permalink":"/zh-hk/blog/tags/hola","description":"Hola tag description","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/hola","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/4f84c381.22cb1f4e.js b/zh-hk/assets/js/4f84c381.22cb1f4e.js new file mode 100644 index 000000000..4513a17a6 --- /dev/null +++ b/zh-hk/assets/js/4f84c381.22cb1f4e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8706],{1132:(s,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var e=n(4848),i=n(8453);const o={sidebar_position:6},r="Congratulations!",a={id:"tutorial-basics/congratulations",title:"Congratulations!",description:"You have just learned the basics of Docusaurus and made some changes to the initial template.",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/congratulations.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/congratulations",permalink:"/zh-hk/tutorial-basics/congratulations",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/congratulations.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:6,frontMatter:{sidebar_position:6}},c={},u=[{value:"What's next?",id:"whats-next",level:2}];function d(s){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...s.components};return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.h1,{id:"congratulations",children:"Congratulations!"}),"\n",(0,e.jsxs)(t.p,{children:["You have just learned the ",(0,e.jsx)(t.strong,{children:"basics of Docusaurus"})," and made some changes to the ",(0,e.jsx)(t.strong,{children:"initial template"}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Docusaurus has ",(0,e.jsx)(t.strong,{children:"much more to offer"}),"!"]}),"\n",(0,e.jsxs)(t.p,{children:["Have ",(0,e.jsx)(t.strong,{children:"5 more minutes"}),"? Take a look at ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/zh-hk/tutorial-extras/manage-docs-versions",children:"versioning"})})," and ",(0,e.jsx)(t.strong,{children:(0,e.jsx)(t.a,{href:"/zh-hk/tutorial-extras/translate-your-site",children:"i18n"})}),"."]}),"\n",(0,e.jsxs)(t.p,{children:["Anything ",(0,e.jsx)(t.strong,{children:"unclear"})," or ",(0,e.jsx)(t.strong,{children:"buggy"})," in this tutorial? ",(0,e.jsx)(t.a,{href:"https://github.com/facebook/docusaurus/discussions/4610",children:"Please report it!"})]}),"\n",(0,e.jsx)(t.h2,{id:"whats-next",children:"What's next?"}),"\n",(0,e.jsxs)(t.ul,{children:["\n",(0,e.jsxs)(t.li,{children:["Read the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/",children:"official documentation"})]}),"\n",(0,e.jsxs)(t.li,{children:["Modify your site configuration with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/docusaurus-config",children:(0,e.jsx)(t.code,{children:"docusaurus.config.js"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add navbar and footer items with ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/api/themes/configuration",children:(0,e.jsx)(t.code,{children:"themeConfig"})})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a custom ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/styling-layout",children:"Design and Layout"})]}),"\n",(0,e.jsxs)(t.li,{children:["Add a ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/docs/search",children:"search bar"})]}),"\n",(0,e.jsxs)(t.li,{children:["Find inspirations in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/showcase",children:"Docusaurus showcase"})]}),"\n",(0,e.jsxs)(t.li,{children:["Get involved in the ",(0,e.jsx)(t.a,{href:"https://docusaurus.io/community/support",children:"Docusaurus Community"})]}),"\n"]})]})}function h(s={}){const{wrapper:t}={...(0,i.R)(),...s.components};return t?(0,e.jsx)(t,{...s,children:(0,e.jsx)(d,{...s})}):d(s)}},8453:(s,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var e=n(6540);const i={},o=e.createContext(i);function r(s){const t=e.useContext(o);return e.useMemo((function(){return"function"==typeof s?s(t):{...t,...s}}),[t,s])}function a(s){let t;return t=s.disableParentContext?"function"==typeof s.components?s.components(i):s.components||i:r(s.components),e.createElement(o.Provider,{value:t},s.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/53188526.0cd08ed3.js b/zh-hk/assets/js/53188526.0cd08ed3.js new file mode 100644 index 000000000..54c51df9c --- /dev/null +++ b/zh-hk/assets/js/53188526.0cd08ed3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9873],{1155:r=>{r.exports=JSON.parse('{"tag":{"label":"RP2040","permalink":"/zh-hk/tags/rp-2040","allTagsPath":"/zh-hk/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/54ebc4ab.2f1f95e2.js b/zh-hk/assets/js/54ebc4ab.2f1f95e2.js new file mode 100644 index 000000000..3a90343fc --- /dev/null +++ b/zh-hk/assets/js/54ebc4ab.2f1f95e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1845],{4089:e=>{e.exports=JSON.parse('{"tag":{"label":"PIO","permalink":"/zh-hk/tags/pio","allTagsPath":"/zh-hk/tags","count":3,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/5da95eec.90f8572a.js b/zh-hk/assets/js/5da95eec.90f8572a.js new file mode 100644 index 000000000..acf876424 --- /dev/null +++ b/zh-hk/assets/js/5da95eec.90f8572a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6884],{228:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>d});var r=t(4848),o=t(8453);const n={sidebar_position:5},i="Deploy your site",l={id:"tutorial-basics/deploy-your-site",title:"Deploy your site",description:"Docusaurus is a static-site-generator (also called Jamstack).",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/deploy-your-site.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/deploy-your-site",permalink:"/zh-hk/tutorial-basics/deploy-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/deploy-your-site.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:5,frontMatter:{sidebar_position:5}},c={},d=[{value:"Build your site",id:"build-your-site",level:2},{value:"Deploy your site",id:"deploy-your-site-1",level:2}];function a(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h1,{id:"deploy-your-site",children:"Deploy your site"}),"\n",(0,r.jsxs)(s.p,{children:["Docusaurus is a ",(0,r.jsx)(s.strong,{children:"static-site-generator"})," (also called ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://jamstack.org/",children:"Jamstack"})}),")."]}),"\n",(0,r.jsxs)(s.p,{children:["It builds your site as simple ",(0,r.jsx)(s.strong,{children:"static HTML, JavaScript and CSS files"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"build-your-site",children:"Build your site"}),"\n",(0,r.jsxs)(s.p,{children:["Build your site ",(0,r.jsx)(s.strong,{children:"for production"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The static files are generated in the ",(0,r.jsx)(s.code,{children:"build"})," folder."]}),"\n",(0,r.jsx)(s.h2,{id:"deploy-your-site-1",children:"Deploy your site"}),"\n",(0,r.jsx)(s.p,{children:"Test your production build locally:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-bash",children:"npm run serve\n"})}),"\n",(0,r.jsxs)(s.p,{children:["The ",(0,r.jsx)(s.code,{children:"build"})," folder is now served at ",(0,r.jsx)(s.a,{href:"http://localhost:3000/",children:"http://localhost:3000/"}),"."]}),"\n",(0,r.jsxs)(s.p,{children:["You can now deploy the ",(0,r.jsx)(s.code,{children:"build"})," folder ",(0,r.jsx)(s.strong,{children:"almost anywhere"})," easily, ",(0,r.jsx)(s.strong,{children:"for free"})," or very small cost (read the ",(0,r.jsx)(s.strong,{children:(0,r.jsx)(s.a,{href:"https://docusaurus.io/docs/deployment",children:"Deployment Guide"})}),")."]})]})}function u(e={}){const{wrapper:s}={...(0,o.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},8453:(e,s,t)=>{t.d(s,{R:()=>i,x:()=>l});var r=t(6540);const o={},n=r.createContext(o);function i(e){const s=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(n.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/5e28b2f4.716c177d.js b/zh-hk/assets/js/5e28b2f4.716c177d.js new file mode 100644 index 000000000..432e830a5 --- /dev/null +++ b/zh-hk/assets/js/5e28b2f4.716c177d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6221],{105:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var l=i(4848),o=i(8453);const r={slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},s="RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",t={id:"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management",title:"Advanced PIO LED Control and Resource Management on RP2040",description:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002",source:"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",permalink:"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/zh-hk/tags/pio"},{inline:!0,label:"LED Control",permalink:"/zh-hk/tags/led-control"},{inline:!0,label:"Resource Management",permalink:"/zh-hk/tags/resource-management"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/zh-hk/tags/embedded-systems"},{inline:!0,label:"state machine optimization",permalink:"/zh-hk/tags/state-machine-optimization"}],version:"current",lastUpdatedAt:1720759604e3,frontMatter:{slug:"advanced-pio-led-control-resource-management-rp2040",title:"Advanced PIO LED Control and Resource Management on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","LED Control","Resource Management","Raspberry Pi Pico","embedded systems","state machine optimization"]},sidebar:"tutorialSidebar",previous:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f",id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",level:2},{value:"\u7a0b\u5f0f\u89e3\u6790",id:"\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"PIO \u521d\u59cb\u5316\u51fd\u6578",id:"pio-\u521d\u59cb\u5316\u51fd\u6578",level:2},{value:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",level:2},{value:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",level:3},{value:"\u7de8\u8b6f\u548c\u904b\u884c",id:"\u7de8\u8b6f\u548c\u904b\u884c",level:2},{value:"\u6e2c\u8a66\u7d50\u679c",id:"\u6e2c\u8a66\u7d50\u679c",level:2},{value:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",level:2},{value:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",level:2},{value:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",level:3},{value:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",level:3},{value:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",level:3},{value:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",level:3},{value:"\u64f4\u5c55\u6027\u8003\u616e",id:"\u64f4\u5c55\u6027\u8003\u616e",level:3}];function a(n){const e={admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.R)(),...n.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.h1,{id:"rp2040-\u4e0a\u7684\u9032\u968e-pio-led-\u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406",children:"RP2040 \u4e0a\u7684\u9032\u968e PIO LED \u63a7\u5236\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u7a0b\u5f0f\u8a2d\u8a08\u5be6\u73fe\u8907\u96dc\u7684-led-\u63a7\u5236\u908f\u8f2f",children:"PIO \u7a0b\u5f0f\u8a2d\u8a08\uff1a\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f"}),"\n",(0,l.jsx)(e.p,{children:"\u9996\u5148\uff0c\u8b93\u6211\u5011\u4f86\u770b\u6211\u5011\u7684 PIO \u7a0b\u5f0f\uff0c\u5b83\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u5b9a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-asm",metastring:'title="hello.pio"',children:".program led_controller\n.side_set 1 opt\n\n.wrap_target\n pull block ; \u5f9e FIFO \u63d0\u53d6\u6578\u64da\u5230 OSR\n out x, 32 ; \u5c07 32 \u4f4d\u6578\u64da\u79fb\u81f3 x \u5bc4\u5b58\u5668\n \n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 0\n jmp !x, off ; \u5982\u679c x \u70ba 0\uff0c\u8df3\u8f49\u81f3 off\n\n ; \u6aa2\u67e5 x \u662f\u5426\u70ba 3\u30018\u300115 \u6216 21\n mov y, x ; \u5c07 x \u8907\u88fd\u5230 y\n set x, 2 ; \u8a2d\u7f6e x \u70ba 3\uff08\u4e8c\u9032\u5236 11\uff09\n jmp x!=y, check_8 ; \u5982\u679c\u4e0d\u662f 3\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp off ; \u5982\u679c\u662f 3\uff0c\u95dc\u9589 LED\n\ncheck_8:\n set x, 8 ; \u6aa2\u67e5\u662f\u5426\u70ba 8\n jmp x!=y, check_15 ; \u5982\u679c\u4e0d\u662f 8\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp off ; \u5982\u679c\u662f 8\uff0c\u95dc\u9589 LED\n\ncheck_15:\n set x, 15 ; \u6aa2\u67e5\u662f\u5426\u70ba 15\n jmp x!=y, check_21 ; \u5982\u679c\u4e0d\u662f 15\uff0c\u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp off ; \u5982\u679c\u662f 15\uff0c\u95dc\u9589 LED\n\ncheck_21:\n set x, 21 ; \u6aa2\u67e5\u662f\u5426\u70ba 21\n jmp x!=y, on ; \u5982\u679c\u4e0d\u662f 21\uff0c\u958b\u555f LED\n jmp off ; \u5982\u679c\u662f 21\uff0c\u95dc\u9589 LED\n\noff:\n nop side 0 ; \u95dc\u9589 LED\n jmp continue\n\non:\n nop side 1 ; \u958b\u555f LED\n\ncontinue:\n nop ; \u78ba\u4fdd\u6700\u5f8c\u6a19\u7c64\u5f8c\u6709\u6307\u4ee4\n.wrap\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u7a0b\u5f0f\u89e3\u6790",children:"\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:".side_set 1 opt"}),"\uff1a\u8a2d\u7f6e\u4e00\u500b\u53ef\u9078\u7684\u5074\u8a2d\u7f6e\u5f15\u8173\uff0c\u7528\u65bc\u63a7\u5236 LED\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"pull block"})," \u548c ",(0,l.jsx)(e.code,{children:"out x, 32"}),"\uff1a\u5f9e FIFO \u8b80\u53d6 32 \u4f4d\u6578\u64da\u5230 x \u5bc4\u5b58\u5668\u3002"]}),"\n",(0,l.jsx)(e.li,{children:"\u63a5\u4e0b\u4f86\u7684\u908f\u8f2f\u6aa2\u67e5\u8f38\u5165\u503c\u662f\u5426\u70ba 0\u30013\u30018\u300115 \u6216 21\uff0c\u5982\u679c\u662f\u5247\u95dc\u9589 LED\uff0c\u5426\u5247\u958b\u555f LED\u3002"}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.code,{children:"side 0"})," \u548c ",(0,l.jsx)(e.code,{children:"side 1"})," \u7528\u65bc\u63a7\u5236 LED \u7684\u958b\u95dc\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u9019\u500b\u7a0b\u5f0f\u5be6\u73fe\u4e86\u4e00\u500b\u7279\u6b8a\u7684 LED \u63a7\u5236\u908f\u8f2f\uff1a\u7576\u8f38\u5165\u503c\u70ba 0\u30013\u30018\u300115 \u6216 21 \u6642\u95dc\u9589 LED\uff0c\u5176\u4ed6\u503c\u5247\u958b\u555f LED\u3002"})}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u521d\u59cb\u5316\u51fd\u6578",children:"PIO \u521d\u59cb\u5316\u51fd\u6578"}),"\n",(0,l.jsx)(e.p,{children:"\u5728 PIO \u7a0b\u5f0f\u4e4b\u5f8c\uff0c\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b C \u51fd\u6578\u4f86\u521d\u59cb\u5316 PIO \u72c0\u614b\u6a5f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="hello.pio"',children:'% c-sdk {\n#include "hardware/clocks.h"\n\nstatic inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {\n pio_sm_config c = led_controller_program_get_default_config(offset);\n \n sm_config_set_set_pins(&c, pin, 1);\n sm_config_set_sideset_pins(&c, pin);\n pio_gpio_init(pio, pin);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n sm_config_set_clkdiv(&c, 1);\n \n pio_sm_init(pio, sm, offset, &c);\n pio_sm_set_enabled(pio, sm, true);\n}\n%}\n'})}),"\n",(0,l.jsx)(e.p,{children:"\u9019\u500b\u51fd\u6578\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\u7684\u914d\u7f6e\uff0c\u5305\u62ec\u8a2d\u7f6e\u5f15\u8173\u3001\u6642\u9418\u5206\u983b\u7b49\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe",children:"\u4e3b\u7a0b\u5f0f\u5be6\u73fe"}),"\n",(0,l.jsx)(e.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5f0f\u4e2d\u4f7f\u7528\u9019\u500b PIO \u7a0b\u5f0f\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-c",metastring:'title="main.c"',children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hello.pio.h"\n\nint main() {\n stdio_init_all();\n printf("LED Controller Test\\n");\n\n PIO pio = pio0;\n uint sm = 0;\n uint offset = pio_add_program(pio, &led_controller_program);\n led_controller_program_init(pio, sm, offset, 25); // \u5047\u8a2d LED \u9023\u63a5\u5230 GPIO 25\n\n while (true) {\n for (int i = 1; i <= 25; i++) {\n if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {\n printf("LED off (%d)\\n", i);\n } else {\n printf("LED on (%d)\\n", i);\n }\n pio_sm_put_blocking(pio, sm, i);\n sleep_ms(1000); // \u7b49\u5f85 1 \u79d2\n }\n printf("\\nRestarting sequence...\\n\\n");\n sleep_ms(2000); // \u91cd\u65b0\u958b\u59cb\u524d\u7b49\u5f85 2 \u79d2\n }\n\n return 0;\n}\n'})}),"\n",(0,l.jsx)(e.h3,{id:"\u4e3b\u7a0b\u5f0f\u89e3\u6790",children:"\u4e3b\u7a0b\u5f0f\u89e3\u6790"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u521d\u59cb\u5316\u6a19\u6e96\u8f38\u5165\u8f38\u51fa\u548c PIO\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c07 PIO \u7a0b\u5f0f\u52a0\u8f09\u5230 pio0 \u7684\u72c0\u614b\u6a5f 0 \u4e2d\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5728\u4e00\u500b\u7121\u9650\u5faa\u74b0\u4e2d\uff0c\u904d\u6b77 1 \u5230 25 \u7684\u6578\u5b57\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6578\u5b57\uff0c\u5c07\u5176\u767c\u9001\u5230 PIO \u72c0\u614b\u6a5f\uff0c\u4e26\u5370\u51fa LED \u7684\u9810\u671f\u72c0\u614b\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u6b21\u64cd\u4f5c\u5f8c\u7b49\u5f85 1 \u79d2\uff0c\u6bcf\u8f2a\u5faa\u74b0\u5f8c\u7b49\u5f85 2 \u79d2\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.h2,{id:"\u7de8\u8b6f\u548c\u904b\u884c",children:"\u7de8\u8b6f\u548c\u904b\u884c"}),"\n",(0,l.jsxs)(e.p,{children:["\u8981\u7de8\u8b6f\u9019\u500b\u7a0b\u5f0f\uff0c\u60a8\u9700\u8981\u78ba\u4fdd\u60a8\u7684 ",(0,l.jsx)(e.code,{children:"CMakeLists.txt"})," \u6587\u4ef6\u6b63\u78ba\u8a2d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u793a\u4f8b\uff1a"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-cmake",metastring:'title="CMakeLists.txt"',children:"cmake_minimum_required(VERSION 3.13)\ninclude(pico_sdk_import.cmake)\nproject(led_controller C CXX ASM)\nset(CMAKE_C_STANDARD 11)\nset(CMAKE_CXX_STANDARD 17)\npico_sdk_init()\n\nadd_executable(led_controller\n main.c\n)\n\npico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)\n\ntarget_link_libraries(led_controller \n pico_stdlib \n hardware_pio\n)\n\npico_enable_stdio_usb(led_controller 1)\npico_enable_stdio_uart(led_controller 0)\n\npico_add_extra_outputs(led_controller)\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u7de8\u8b6f\u5b8c\u6210\u5f8c\uff0c\u5c07\u7a0b\u5f0f\u4e0a\u50b3\u5230\u60a8\u7684 Raspberry Pi Pico\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"\u6e2c\u8a66\u7d50\u679c",children:"\u6e2c\u8a66\u7d50\u679c"}),"\n",(0,l.jsx)(e.p,{children:"\u7576\u60a8\u904b\u884c\u9019\u500b\u7a0b\u5f0f\u6642\uff0c\u60a8\u61c9\u8a72\u6703\u5728\u4e32\u53e3\u7d42\u7aef\u770b\u5230\u985e\u4f3c\u4ee5\u4e0b\u7684\u8f38\u51fa\uff1a"}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{children:"LED Controller Test\nLED on (1)\nLED on (2)\nLED off (3)\nLED on (4)\nLED on (5)\nLED on (6)\nLED on (7)\nLED off (8)\n...\nLED off (21)\nLED on (22)\nLED on (23)\nLED on (24)\nLED on (25)\n\nRestarting sequence...\n\nLED on (1)\nLED on (2)\nLED off (3)\n...\n"})}),"\n",(0,l.jsx)(e.p,{children:"\u540c\u6642\uff0c\u60a8\u61c9\u8a72\u80fd\u89c0\u5bdf\u5230\u9023\u63a5\u5230 GPIO 25 \u7684 LED \u76f8\u61c9\u5730\u958b\u555f\u548c\u95dc\u9589\u3002"}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316",children:"PIO \u8cc7\u6e90\u7ba1\u7406\u548c\u512a\u5316"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u9019\u500b\u4f8b\u5b50\u4e2d\uff0c\u6211\u5011\u7684 PIO \u7a0b\u5f0f\u4f7f\u7528\u4e86 12 \u500b\u6307\u4ee4\u69fd\u3002RP2040 \u7684\u6bcf\u500b PIO \u5be6\u4f8b\u6709 32 \u500b\u6307\u4ee4\u69fd\uff0c\u56e0\u6b64\u6211\u5011\u9084\u6709 20 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u65bc\u5176\u4ed6\u76ee\u7684\u3002"}),"\n",(0,l.jsx)(e.admonition,{title:"\u512a\u5316\u8003\u616e",type:"tip",children:(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsx)(e.li,{children:"\u5982\u679c\u9700\u8981\u5728\u540c\u4e00\u500b PIO \u4e2d\u904b\u884c\u591a\u500b\u7a0b\u5f0f\uff0c\u53ef\u4ee5\u8003\u616e\u6e1b\u5c11\u6bcf\u500b\u7a0b\u5f0f\u7684\u6307\u4ee4\u6578\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f7f\u7528 pio1 \u4f86\u904b\u884c\u984d\u5916\u7684\u7a0b\u5f0f\uff0c\u5b83\u6709\u5b8c\u6574\u7684 32 \u500b\u6307\u4ee4\u69fd\u53ef\u7528\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u8003\u616e\u8b93\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u90e8\u5206\u6307\u4ee4\uff0c\u4ee5\u6700\u5927\u5316\u6307\u4ee4\u4f7f\u7528\u6548\u7387\u3002"}),"\n"]})}),"\n",(0,l.jsx)(e.p,{children:"\u60a8\u63d0\u51fa\u4e86\u4e00\u500b\u5f88\u597d\u7684\u89c0\u9ede\u3002\u6211\u6703\u70ba\u60a8\u6dfb\u52a0\u9019\u4e9b\u91cd\u8981\u7684\u77e5\u8b58\u9ede\uff0c\u8a73\u7d30\u89e3\u91cb PIO \u7684\u6574\u9ad4\u67b6\u69cb\u3001\u591a\u72c0\u614b\u6a5f\u4f7f\u7528\u4ee5\u53ca\u6307\u4ee4\u9650\u5236\u3002\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u6bb5\u843d\uff0c\u60a8\u53ef\u4ee5\u5c07\u5176\u63d2\u5165\u5230\u9069\u7576\u7684\u4f4d\u7f6e\uff1a"}),"\n",(0,l.jsx)(e.hr,{}),"\n",(0,l.jsx)(e.h2,{id:"pio-\u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406",children:"PIO \u67b6\u69cb\u8207\u8cc7\u6e90\u7ba1\u7406"}),"\n",(0,l.jsx)(e.h3,{id:"pio-\u5be6\u4f8b\u8207\u72c0\u614b\u6a5f",children:"PIO \u5be6\u4f8b\u8207\u72c0\u614b\u6a5f"}),"\n",(0,l.jsx)(e.p,{children:"RP2040 \u64c1\u6709\u5169\u500b PIO \u5be6\u4f8b\uff08PIO0 \u548c PIO1\uff09\uff0c\u6bcf\u500b PIO \u5be6\u4f8b\u5305\u542b\u56db\u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f\u3002\u9019\u7a2e\u8a2d\u8a08\u63d0\u4f9b\u4e86\u6975\u5927\u7684\u9748\u6d3b\u6027\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u53ef\u4ee5\u540c\u6642\u904b\u884c\u6700\u591a\u56db\u500b\u7368\u7acb\u7684\u7a0b\u5e8f\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u72c0\u614b\u6a5f\u53ef\u4ee5\u7368\u7acb\u904b\u884c\uff0c\u4e5f\u53ef\u4ee5\u5354\u540c\u5de5\u4f5c\uff0c\u5be6\u73fe\u8907\u96dc\u7684\u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"info",children:(0,l.jsx)(e.p,{children:"\u4f8b\u5982\uff0c\u5728 VGA \u4fe1\u865f\u751f\u6210\u4e2d\uff0c\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u80fd\u8ca0\u8cac\u6c34\u5e73\u540c\u6b65\uff0c\u53e6\u4e00\u500b\u8ca0\u8cac\u5782\u76f4\u540c\u6b65\uff0c\u800c\u7b2c\u4e09\u500b\u8655\u7406\u50cf\u7d20\u6578\u64da\u8f38\u51fa\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab",children:"\u6307\u4ee4\u5167\u5b58\u5171\u4eab"}),"\n",(0,l.jsx)(e.p,{children:"\u6bcf\u500b PIO \u5be6\u4f8b\u64c1\u6709 32 \u689d\u6307\u4ee4\u7684\u5171\u4eab\u5167\u5b58\u3002\u9019\u662f\u4e00\u500b\u95dc\u9375\u7684\u9650\u5236\u548c\u8a2d\u8a08\u8003\u616e\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6240\u6709\u56db\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u9019 32 \u689d\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u6bcf\u500b\u7a0b\u5e8f\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u6578\u91cf\u7684\u6307\u4ee4\uff0c\u53ea\u8981\u7e3d\u548c\u4e0d\u8d85\u904e 32\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4e00\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u5168\u90e8 32 \u689d\u6307\u4ee4\uff0c\u6216\u8005\u591a\u500b\u72c0\u614b\u6a5f\u53ef\u4ee5\u4f7f\u7528\u4e0d\u540c\u6578\u91cf\u7684\u6307\u4ee4\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"caution",children:(0,l.jsx)(e.p,{children:"\u7576\u8a2d\u8a08 PIO \u7a0b\u5e8f\u6642\uff0c\u5fc5\u9808\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u9019\u8981\u6c42\u958b\u767c\u8005\u5728\u529f\u80fd\u5be6\u73fe\u548c\u8cc7\u6e90\u4f7f\u7528\u4e4b\u9593\u53d6\u5f97\u5e73\u8861\u3002"})}),"\n",(0,l.jsx)(e.h3,{id:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565",children:"\u8cc7\u6e90\u512a\u5316\u7b56\u7565"}),"\n",(0,l.jsx)(e.p,{children:"\u8003\u616e\u5230 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\uff0c\u4ee5\u4e0b\u662f\u4e00\u4e9b\u512a\u5316\u7b56\u7565\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u6307\u4ee4\u91cd\u7528"}),"\uff1a\u8a2d\u8a08\u53ef\u4ee5\u88ab\u591a\u500b\u72c0\u614b\u6a5f\u5171\u4eab\u7684\u6307\u4ee4\u5e8f\u5217\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u529f\u80fd\u5283\u5206"}),"\uff1a\u5c07\u8907\u96dc\u529f\u80fd\u5206\u89e3\u70ba\u591a\u500b\u7c21\u55ae\u7a0b\u5e8f\uff0c\u5206\u914d\u7d66\u4e0d\u540c\u7684\u72c0\u614b\u6a5f\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5be6\u4f8b\u8a2d\u8a08"}),"\uff1a\u5982\u679c\u4e00\u500b PIO \u5be6\u4f8b\u7684\u8cc7\u6e90\u4e0d\u8db3\uff0c\u8003\u616e\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.h3,{id:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u793a\u4f8b"}),"\n",(0,l.jsx)(e.p,{children:"\u5728\u6211\u5011\u7684 LED \u63a7\u5236\u5668\u793a\u4f8b\u4e2d\uff1a"}),"\n",(0,l.jsxs)(e.ul,{children:["\n",(0,l.jsx)(e.li,{children:"\u6211\u5011\u4f7f\u7528\u4e86 12 \u689d\u6307\u4ee4\uff0c\u4f54\u7528\u4e86 PIO \u5be6\u4f8b\u7d04 37.5% \u7684\u6307\u4ee4\u7a7a\u9593\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u9019\u610f\u5473\u8457\u6211\u5011\u9084\u6709\u8db3\u5920\u7684\u7a7a\u9593\u5728\u540c\u4e00 PIO \u5be6\u4f8b\u4e2d\u5be6\u73fe\u5176\u4ed6\u529f\u80fd\u3002"}),"\n",(0,l.jsx)(e.li,{children:"\u4f8b\u5982\uff0c\u6211\u5011\u53ef\u4ee5\u6dfb\u52a0\u53e6\u4e00\u500b\u7a0b\u5e8f\u4f86\u63a7\u5236\u4e0d\u540c\u7684 LED \u6a21\u5f0f\uff0c\u6216\u5be6\u73fe\u5176\u4ed6 I/O \u529f\u80fd\u3002"}),"\n"]}),"\n",(0,l.jsx)(e.pre,{children:(0,l.jsx)(e.code,{className:"language-python",children:"\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - \u7576\u524d\u7a0b\u5e8f\u4f7f\u7528\u7684\u6307\u4ee4\u6578\n\u5269\u9918\u6307\u4ee4\u7a7a\u9593 = 32 - 12 = 20 \u689d\u6307\u4ee4\n"})}),"\n",(0,l.jsx)(e.h3,{id:"\u64f4\u5c55\u6027\u8003\u616e",children:"\u64f4\u5c55\u6027\u8003\u616e"}),"\n",(0,l.jsx)(e.p,{children:"\u7406\u89e3 PIO \u67b6\u69cb\u548c\u8cc7\u6e90\u9650\u5236\u5f8c\uff0c\u6211\u5011\u53ef\u4ee5\u66f4\u597d\u5730\u898f\u5283\u8907\u96dc\u9805\u76ee\uff1a"}),"\n",(0,l.jsxs)(e.ol,{children:["\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u4e26\u884c\u4efb\u52d9"}),"\uff1a\u5229\u7528\u591a\u500b\u72c0\u614b\u6a5f\u540c\u6642\u57f7\u884c\u4e0d\u540c\u4efb\u52d9\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8cc7\u6e90\u5206\u914d"}),"\uff1a\u5728\u8a2d\u8a08\u521d\u671f\u5c31\u8003\u616e\u6307\u4ee4\u4f7f\u7528\uff0c\u5408\u7406\u5206\u914d\u8cc7\u6e90\u3002"]}),"\n",(0,l.jsxs)(e.li,{children:[(0,l.jsx)(e.strong,{children:"\u8de8 PIO \u5354\u4f5c"}),"\uff1a\u5c0d\u65bc\u66f4\u8907\u96dc\u7684\u9805\u76ee\uff0c\u8003\u616e PIO0 \u548c PIO1 \u7684\u5354\u540c\u5de5\u4f5c\u3002"]}),"\n"]}),"\n",(0,l.jsx)(e.admonition,{type:"tip",children:(0,l.jsx)(e.p,{children:"\u5728\u958b\u767c\u904e\u7a0b\u4e2d\uff0c\u5b9a\u671f\u6aa2\u67e5\u6307\u4ee4\u4f7f\u7528\u60c5\u6cc1\uff0c\u78ba\u4fdd\u4e0d\u6703\u8d85\u51fa 32 \u689d\u6307\u4ee4\u7684\u9650\u5236\u3002\u5982\u679c\u63a5\u8fd1\u9650\u5236\uff0c\u8003\u616e\u91cd\u69cb\u4ee3\u78bc\u6216\u4f7f\u7528\u53e6\u4e00\u500b PIO \u5be6\u4f8b\u3002"})})]})}function p(n={}){const{wrapper:e}={...(0,o.R)(),...n.components};return e?(0,l.jsx)(e,{...n,children:(0,l.jsx)(a,{...n})}):a(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>s,x:()=>t});var l=i(6540);const o={},r=l.createContext(o);function s(n){const e=l.useContext(r);return l.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function t(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:s(n.components),l.createElement(r.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/5e95c892.794757cd.js b/zh-hk/assets/js/5e95c892.794757cd.js new file mode 100644 index 000000000..cbedc4ab1 --- /dev/null +++ b/zh-hk/assets/js/5e95c892.794757cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9647],{7121:(e,r,c)=>{c.r(r),c.d(r,{default:()=>l});c(6540);var s=c(4164),a=c(1213),d=c(7559),n=c(2831),t=c(5733),u=c(4848);function l(e){return(0,u.jsx)(a.e3,{className:(0,s.A)(d.G.wrapper.docsPages),children:(0,u.jsx)(t.A,{children:(0,n.v)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/60875e34.78eb2ee4.js b/zh-hk/assets/js/60875e34.78eb2ee4.js new file mode 100644 index 000000000..7d34187a2 --- /dev/null +++ b/zh-hk/assets/js/60875e34.78eb2ee4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9661],{7315:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var n=o(4848),r=o(8453);const i={sidebar_position:1},a="Tutorial",s={id:"tutorial",title:"Tutorial",description:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial.",source:"@site/docs/tutorial.md",sourceDirName:".",slug:"/tutorial",permalink:"/zh-hk/tutorial",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial.md",tags:[],version:"current",lastUpdatedAt:1720597722e3,sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}},c={},d=[];function l(e){const t={h1:"h1",p:"p",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"tutorial",children:"Tutorial"}),"\n",(0,n.jsx)(t.p,{children:"Este es el contenido de la p\xe1gina de Tutorial. Aqu\xed, puedes agregar el contenido introductorio sobre toda la secci\xf3n del tutorial."}),"\n",(0,n.jsx)(t.p,{children:'Desde aqu\xed, puedes enlazar a las p\xe1ginas de art\xedculos espec\xedficos, como los contenidos bajo "Micro-controladores".'})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,o)=>{o.d(t,{R:()=>a,x:()=>s});var n=o(6540);const r={},i=n.createContext(r);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/60f48b9d.a8270f71.js b/zh-hk/assets/js/60f48b9d.a8270f71.js new file mode 100644 index 000000000..82455ff61 --- /dev/null +++ b/zh-hk/assets/js/60f48b9d.a8270f71.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1850],{6658:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>t,contentTitle:()=>_,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var c=i(4848),l=i(8453);const s={slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},_=void 0,d={id:"micro-controladores/RP2040/rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"PWM",permalink:"/zh-hk/tags/pwm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"Embedded Systems",permalink:"/zh-hk/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-pwm-usage-and-examples",title:"Detailed Explanation of PWM Usage and Examples in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PWM","Raspberry Pi Pico","Embedded Systems"]},sidebar:"tutorialSidebar",previous:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"},next:{title:"Timer and Alarm Usage in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}},t={},r=[{value:"PWM \u57fa\u790e\u77e5\u8b58",id:"pwm-\u57fa\u790e\u77e5\u8b58",level:2},{value:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",level:2},{value:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09",id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",level:3},{value:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09",id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",level:3},{value:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09",id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",level:3},{value:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4",id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",level:3},{value:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f",id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6",id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",level:2},{value:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",level:2},{value:"\u55ae\u7368\u4f7f\u7528 PWM",id:"\u55ae\u7368\u4f7f\u7528-pwm",level:2},{value:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",level:3},{value:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",level:3},{value:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",level:4},{value:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",level:5},{value:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM",id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",level:5},{value:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053",id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",level:5},{value:"\u914d\u7f6e PWM \u5207\u7247",id:"\u914d\u7f6e-pwm-\u5207\u7247",level:5},{value:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u751f\u6210\u6b65\u9032\u8108\u885d",id:"\u751f\u6210\u6b65\u9032\u8108\u885d",level:5},{value:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",level:5},{value:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",level:5},{value:"\u5176\u4ed6 PWM \u914d\u7f6e",id:"\u5176\u4ed6-pwm-\u914d\u7f6e",level:5},{value:"\u63a7\u5236\u4f3a\u670d\u6a5f",id:"\u63a7\u5236\u4f3a\u670d\u6a5f",level:3},{value:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372",id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",level:3},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function o(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,l.R)(),...n.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u57fa\u790e\u77e5\u8b58",children:"PWM \u57fa\u790e\u77e5\u8b58"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u662f\u4e00\u7a2e\u5e38\u7528\u7684\u6578\u4f4d\u4fe1\u865f\u8655\u7406\u6280\u8853,\u901a\u904e\u6539\u8b8a\u8108\u885d\u7684\u5bec\u5ea6\u4f86\u8abf\u88fd\u4fe1\u865f\u7684\u5e73\u5747\u503c\u3002\u5728 RP2040 \u4e2d,PWM \u529f\u80fd\u7531\u5c08\u9580\u7684\u786c\u9ad4\u6a21\u7d44\u63d0\u4f9b,\u53ef\u4ee5\u751f\u6210 PWM \u4fe1\u865f\u4e26\u63a7\u5236\u5176\u53c3\u6578,\u5982\u983b\u7387\u3001\u4f54\u7a7a\u6bd4\u7b49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"PWM \u4fe1\u865f\u7531\u4e00\u7cfb\u5217\u8108\u885d\u7d44\u6210,\u6bcf\u500b\u8108\u885d\u7684\u5bec\u5ea6\u6c7a\u5b9a\u4e86\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u4f54\u7a7a\u6bd4\u662f\u6307\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6642\u9593\u8207\u6574\u500b\u9031\u671f\u7684\u6bd4\u503c,\u901a\u5e38\u4ee5\u767e\u5206\u6bd4\u8868\u793a\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u5be6\u73fe\u5c0d\u9023\u63a5\u8a2d\u5099\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"RP2040 \u7684 PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u500b PWM \u901a\u9053,\u6bcf\u500b\u901a\u9053\u90fd\u53ef\u4ee5\u7368\u7acb\u914d\u7f6e\u548c\u63a7\u5236\u3002\u9019\u4f7f\u5f97\u6211\u5011\u53ef\u4ee5\u540c\u6642\u8f38\u51fa\u591a\u500b PWM \u4fe1\u865f,\u4e26\u5c0d\u5b83\u5011\u9032\u884c\u7cbe\u78ba\u7684\u63a7\u5236\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u4ee5\u4e0b\u662f\u65b0\u589e\u7684\u958b\u982d\u6bb5\u843d,\u8a73\u7d30\u4ecb\u7d39\u4e86 PWM \u7684\u5404\u7a2e\u914d\u7f6e\u6a21\u5f0f\u3001\u4f5c\u7528\u4ee5\u53ca\u5982\u4f55\u8a2d\u7f6e:"}),"\n",(0,c.jsx)(e.h2,{id:"pwm-\u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e",children:"PWM \u7684\u914d\u7f6e\u6a21\u5f0f\u53ca\u8a2d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,PWM \u6a21\u7d44\u63d0\u4f9b\u4e86\u591a\u7a2e\u914d\u7f6e\u6a21\u5f0f,\u53ef\u4ee5\u6839\u64da\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u9032\u884c\u8a2d\u7f6e\u3002\u6bcf\u7a2e\u6a21\u5f0f\u90fd\u6709\u5176\u7279\u5b9a\u7684\u4f5c\u7528\u548c\u914d\u7f6e\u65b9\u6cd5\u3002\u4e0b\u9762\u6211\u5011\u4f86\u8a73\u7d30\u4ecb\u7d39\u4e00\u4e0b\u9019\u4e9b\u6a21\u5f0f:"}),"\n",(0,c.jsx)(e.h3,{id:"\u81ea\u7531\u904b\u884c\u6a21\u5f0ffree-running-mode",children:"\u81ea\u7531\u904b\u884c\u6a21\u5f0f\uff08Free-running mode\uff09"}),"\n",(0,c.jsxs)(e.p,{children:["\u81ea\u7531\u904b\u884c\u6a21\u5f0f\u662f PWM \u7684\u9ed8\u8a8d\u6a21\u5f0f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u4e0d\u65b7\u5730\u5f9e 0 \u8a08\u6578\u5230\u8a2d\u5b9a\u7684\u6700\u5927\u503c\uff08\u901a\u904e ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e\uff09,\u7136\u5f8c\u518d\u5f9e 0 \u958b\u59cb\u91cd\u8907\u8a08\u6578\u3002\u7576\u8a08\u6578\u5668\u7684\u503c\u8207\u6bd4\u8f03\u5668\u7684\u503c\u76f8\u7b49\u6642,PWM \u8f38\u51fa\u6703\u6839\u64da\u8a2d\u7f6e\u7684\u96fb\u5e73\uff08\u9ad8\u96fb\u5e73\u6216\u4f4e\u96fb\u5e73\uff09\u9032\u884c\u5207\u63db\u3002"]}),"\n",(0,c.jsx)(e.p,{children:"\u9002\u7528\u573a\u666f\uff1a\u7528\u65bc\u666e\u901a\u7684PWM\u8f38\u51fa\uff0c\u4f8b\u5982LED\u4eae\u5ea6\u8abf\u7bc0\u3001\u96fb\u6a5f\u901f\u5ea6\u63a7\u5236\u7b49\uff0c\u9700\u8981\u5b9a\u671f\u7684\u5468\u671f\u6027PWM\u4fe1\u53f7\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u81ea\u7531\u904b\u884c\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u6700\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a08\u6578\u6a21\u5f0fcounter-mode",children:"\u8a08\u6578\u6a21\u5f0f\uff08Counter mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u8a08\u6578\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u6703\u6839\u64da\u5916\u90e8\u8f38\u5165\u7684\u8108\u885d\u4fe1\u865f\u9032\u884c\u8a08\u6578\u3002\u9019\u7a2e\u6a21\u5f0f\u901a\u5e38\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\u3002\n\u9069\u7528\u5834\u666f\uff1a\u7528\u65bc\u6e2c\u91cf\u5916\u90e8\u8108\u885d\u4fe1\u865f\u7684\u983b\u7387\u6216\u8108\u885d\u5bec\u5ea6\uff0c\u901a\u5e38\u8207\u5916\u90e8\u8f38\u5165\u4fe1\u865f\u540c\u6b65\u8a08\u6578\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u8a08\u6578\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\npwm_init(slice_num, &config, false);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv_mode"})," \u51fd\u6578\u5c07 PWM \u7684\u6642\u9418\u5206\u983b\u6a21\u5f0f\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_RISING"}),",\u8868\u793a\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u9032\u884c\u8a08\u6578\u3002\u7136\u5f8c,\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0fphase-correct-mode",children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\uff08Phase-correct mode\uff09"}),"\n",(0,c.jsx)(e.p,{children:"\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u662f\u4e00\u7a2e\u7279\u6b8a\u7684 PWM \u6a21\u5f0f,\u5b83\u53ef\u4ee5\u7522\u751f\u5c0d\u7a31\u7684 PWM \u4fe1\u865f,\u4e26\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\u3002\u5728\u9019\u7a2e\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\n\u9002\u7528\u573a\u666f\uff1a\u7522\u751f\u5c0d\u7a31\u7684PWM\u4fe1\u53f7\uff0c\u6e1b\u5c11\u8f38\u51fa\u4fe1\u865f\u7684\u8ae7\u6ce2\u5931\u771f\uff0c\u9069\u5408\u5c0dPWM\u4fe1\u865f\u8cea\u91cf\u8981\u6c42\u8f03\u9ad8\u7684\u61c9\u7528\u3002\n\u8981\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u78bc:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_phase_correct(&config, true);\npwm_init(slice_num, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e0a\u9762\u7684\u4ee3\u78bc\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"})," \u51fd\u6578\u5c07 PWM \u914d\u7f6e\u70ba\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f,\u7136\u5f8c\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316 PWM \u5207\u7247,\u4e26\u5c07\u914d\u7f6e\u61c9\u7528\u5230\u5207\u7247\u4e0a\u3002"]}),"\n",(0,c.jsx)(e.h3,{id:"\u8a2d\u7f6e-pwm-\u983b\u7387\u548c\u4f54\u7a7a\u6bd4",children:"\u8a2d\u7f6e PWM \u983b\u7387\u548c\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u7121\u8ad6\u4f7f\u7528\u54ea\u7a2e PWM \u6a21\u5f0f,\u6211\u5011\u90fd\u9700\u8981\u8a2d\u7f6e PWM \u4fe1\u865f\u7684\u983b\u7387\u548c\u4f54\u7a7a\u6bd4\u3002PWM \u983b\u7387\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u7684\u9031\u671f,\u800c\u4f54\u7a7a\u6bd4\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u6bd4\u4f8b\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u983b\u7387,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6642\u9418\u5206\u983b\u5668\u548c\u5305\u88f9\u503c\u3002\u6642\u9418\u5206\u983b\u5668\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u8a08\u6578\u901f\u5ea6,\u800c\u5305\u88f9\u503c\u6c7a\u5b9a\u4e86 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u3002PWM \u983b\u7387\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = \u7cfb\u7d71\u6642\u9418\u983b\u7387 / (\u6642\u9418\u5206\u983b\u5668 * (\u5305\u88f9\u503c + 1))\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u7cfb\u7d71\u6642\u9418\u983b\u7387\u70ba 125 MHz,\u6642\u9418\u5206\u983b\u5668\u8a2d\u7f6e\u70ba 1.0\uff08\u4e0d\u5206\u983b\uff09,\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u5247 PWM \u983b\u7387\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u983b\u7387 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u8981\u8a2d\u7f6e PWM \u4f54\u7a7a\u6bd4,\u6211\u5011\u9700\u8981\u914d\u7f6e PWM \u7684\u6bd4\u8f03\u5668\u503c\u3002\u6bd4\u8f03\u5668\u503c\u6c7a\u5b9a\u4e86 PWM \u4fe1\u865f\u5728\u4e00\u500b\u9031\u671f\u5167\u9ad8\u96fb\u5e73\u7684\u6642\u9593\u3002PWM \u4f54\u7a7a\u6bd4\u7684\u8a08\u7b97\u516c\u5f0f\u5982\u4e0b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = \u6bd4\u8f03\u5668\u503c / (\u5305\u88f9\u503c + 1)\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u4f8b\u5982,\u5982\u679c\u5305\u88f9\u503c\u8a2d\u7f6e\u70ba 1249,\u6bd4\u8f03\u5668\u503c\u8a2d\u7f6e\u70ba 624,\u5247 PWM \u4f54\u7a7a\u6bd4\u70ba:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{children:"PWM \u4f54\u7a7a\u6bd4 = 624 / (1249 + 1) = 0.4992 \u2248 50%\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u7d9c\u4e0a\u6240\u8ff0,\u901a\u904e\u5408\u7406\u914d\u7f6e PWM \u7684\u6a21\u5f0f\u3001\u983b\u7387\u548c\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u7522\u751f\u5404\u7a2e\u4e0d\u540c\u7279\u6027\u7684 PWM \u4fe1\u865f,\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u61c9\u7528\u9700\u6c42\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,\u90fd\u53ef\u4ee5\u901a\u904e\u9748\u6d3b\u914d\u7f6e PWM \u4f86\u5be6\u73fe\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-1-\u8f38\u51fa-pwm-\u4fe1\u865f",children:"\u7a0b\u5e8f\u793a\u4f8b 1: \u8f38\u51fa PWM \u4fe1\u865f"}),"\n",(0,c.jsx)(e.p,{children:"\u9996\u5148,\u8b93\u6211\u5011\u4f86\u770b\u4e00\u500b\u7c21\u55ae\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u5728 RP2040 \u4e0a\u8f38\u51fa PWM \u4fe1\u865f:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nint main() {\n // \u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM\n gpio_set_function(0, GPIO_FUNC_PWM);\n gpio_set_function(1, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(0);\n\n // \u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0\uff080 \u5230 3\uff09\n pwm_set_wrap(slice_num, 3);\n\n // \u8a2d\u7f6e\u901a\u9053 A \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e00\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);\n\n // \u8a2d\u7f6e\u901a\u9053 B \u5728\u4e0b\u964d\u6cbf\u4e4b\u524d\u521d\u59cb\u8f38\u51fa\u9ad8\u96fb\u5e73\u4e09\u500b\u5faa\u74b0\n pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);\n\n // \u555f\u52d5 PWM\n pwm_set_enabled(slice_num, true);\n}\n'})}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07 GPIO 0 \u548c GPIO 1 \u5206\u914d\u7d66 PWM \u529f\u80fd,\u4e26\u627e\u5230\u9023\u63a5\u5230 GPIO 0 \u7684 PWM \u5207\u7247\uff08slice\uff09\u7de8\u865f\u3002\u7136\u5f8c,\u6211\u5011\u8a2d\u7f6e PWM \u9031\u671f\u70ba 4 \u500b\u5faa\u74b0,\u4e26\u914d\u7f6e\u901a\u9053 A \u548c\u901a\u9053 B \u7684\u8f38\u51fa\u96fb\u5e73\u3002\u6700\u5f8c,\u6211\u5011\u555f\u52d5 PWM,\u958b\u59cb\u8f38\u51fa PWM \u4fe1\u865f\u3002"})}),"\n",(0,c.jsxs)(e.p,{children:["\u503c\u5f97\u6ce8\u610f\u7684\u662f,\u6211\u5011\u4e5f\u53ef\u4ee5\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_gpio_level(gpio, x)"})," \u51fd\u6578,\u5b83\u6703\u81ea\u52d5\u67e5\u627e\u7d66\u5b9a GPIO \u7684\u6b63\u78ba\u5207\u7247\u548c\u901a\u9053,\u4e26\u8a2d\u7f6e\u8f38\u51fa\u96fb\u5e73\u3002"]}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-2-\u4f7f\u7528-pwm-\u63a7\u5236-led-\u4eae\u5ea6",children:"\u7a0b\u5e8f\u793a\u4f8b 2: \u4f7f\u7528 PWM \u63a7\u5236 LED \u4eae\u5ea6"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u8b93\u6211\u5011\u770b\u4e00\u500b\u66f4\u5be6\u7528\u7684\u4f8b\u5b50,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include <stdio.h>\n#include "pico/time.h"\n#include "hardware/irq.h"\n#include "hardware/pwm.h"\n\n#ifdef PICO_DEFAULT_LED_PIN\nvoid on_pwm_wrap() {\n static int fade = 0;\n static bool going_up = true;\n\n // \u6e05\u9664\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));\n\n if (going_up) {\n ++fade;\n if (fade > 255) {\n fade = 255;\n going_up = false;\n }\n } else {\n --fade;\n if (fade < 0) {\n fade = 0;\n going_up = true;\n }\n }\n\n // \u5c07 fade \u503c\u5e73\u65b9,\u4f7f LED \u7684\u4eae\u5ea6\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027\n // \u6ce8\u610f,\u9019\u500b\u7bc4\u570d\u8207 wrap \u503c\u5339\u914d\n pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);\n}\n#endif\n\nint main() {\n#ifndef PICO_DEFAULT_LED_PIN\n#warning pwm/led_fade example requires a board with a regular LED\n#else\n // \u544a\u8a34 LED \u5f15\u8173,PWM \u8ca0\u8cac\u63a7\u5236\u5176\u503c\n gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);\n\n // \u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);\n\n // \u5c07\u6211\u5011\u7684\u5207\u7247\u7684 IRQ \u8f38\u51fa\u906e\u7f69\u5230 PWM \u584a\u7684\u55ae\u500b\u4e2d\u65b7\u7dda,\n // \u4e26\u8a3b\u518a\u6211\u5011\u7684\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\n pwm_clear_irq(slice_num);\n pwm_set_irq_enabled(slice_num, true);\n irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);\n irq_set_enabled(PWM_IRQ_WRAP, true);\n\n // \u70ba\u5207\u7247\u914d\u7f6e\u7372\u53d6\u4e00\u4e9b\u5408\u7406\u7684\u9810\u8a2d\u503c\n // \u9810\u8a2d\u60c5\u6cc1\u4e0b,\u8a08\u6578\u5668\u53ef\u4ee5\u5728\u5176\u6700\u5927\u7bc4\u570d\uff080 \u5230 2^16-1\uff09\u5167\u5305\u88f9\n pwm_config config = pwm_get_default_config();\n\n // \u8a2d\u7f6e\u5206\u983b\u5668,\u5c07\u8a08\u6578\u5668\u6642\u9418\u6e1b\u5c11\u5230 sysclock/4\n pwm_config_set_clkdiv(&config, 4.f);\n\n // \u5c07\u914d\u7f6e\u8f09\u5165\u5230\u6211\u5011\u7684 PWM \u5207\u7247\u4e2d,\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n pwm_init(slice_num, &config, true);\n\n // \u5728\u9019\u4e00\u9ede\u4e4b\u5f8c\u7684\u6240\u6709\u64cd\u4f5c\u90fd\u5728 PWM \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d\u9032\u884c,\n // \u6240\u4ee5\u6211\u5011\u53ef\u4ee5\u5728\u4e3b\u8ff4\u5708\u4e2d\u4ec0\u9ebc\u4e5f\u4e0d\u505a\n while (1)\n tight_loop_contents();\n#endif\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 PWM \u63a7\u5236 LED \u7684\u4eae\u5ea6,\u5be6\u73fe\u6f38\u8b8a\u6548\u679c\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u5c07 LED \u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u627e\u5230\u9023\u63a5\u5230 LED \u5f15\u8173\u7684 PWM \u5207\u7247\u7de8\u865f\u3002"}),"\n",(0,c.jsxs)(e.li,{children:["\u8a2d\u7f6e PWM \u4e2d\u65b7,\u8a3b\u518a\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u548c\u8a08\u6578\u5668\u7bc4\u570d\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u4e26\u5728\u4e3b\u8ff4\u5708\u4e2d\u7b49\u5f85\u4e2d\u65b7\u89f8\u767c\u3002"}),"\n"]}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"on_pwm_wrap()"})," \u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u4e2d,\u6211\u5011\u901a\u904e\u6539\u8b8a ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u4f86\u63a7\u5236 LED \u7684\u4eae\u5ea6\u3002\u6bcf\u6b21\u4e2d\u65b7\u89f8\u767c\u6642,\u6211\u5011\u6839\u64da ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u7684\u8b8a\u5316\u65b9\u5411\uff08\u589e\u52a0\u6216\u6e1b\u5c11\uff09\u4f86\u66f4\u65b0 LED \u7684\u4eae\u5ea6\u3002\u70ba\u4e86\u4f7f\u4eae\u5ea6\u8b8a\u5316\u770b\u8d77\u4f86\u66f4\u52a0\u7dda\u6027,\u6211\u5011\u5c07 ",(0,c.jsx)(e.code,{children:"fade"})," \u503c\u5e73\u65b9\u5f8c\u518d\u8a2d\u7f6e\u7d66 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u4f7f\u7528\u4e2d\u65b7\u8655\u7406\u7a0b\u5e8f\u53ef\u4ee5\u5728\u4e0d\u5f71\u97ff\u4e3b\u7a0b\u5e8f\u57f7\u884c\u7684\u60c5\u6cc1\u4e0b\u5be6\u73fe LED \u4eae\u5ea6\u7684\u5e73\u6ed1\u8b8a\u5316\u3002\u9019\u7a2e\u65b9\u5f0f\u975e\u5e38\u9069\u5408\u9700\u8981\u6301\u7e8c\u66f4\u65b0\u8f38\u51fa\u7684\u5834\u666f\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7a0b\u5e8f\u793a\u4f8b-3-\u6e2c\u91cf-pwm-\u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4",children:"\u7a0b\u5e8f\u793a\u4f8b 3: \u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4"}),"\n",(0,c.jsx)(e.p,{children:"\u6700\u5f8c,\u8b93\u6211\u5011\u770b\u4e00\u500b\u793a\u4f8b,\u6f14\u793a\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint OUTPUT_PIN = 2;\nconst uint MEASURE_PIN = 5;\n\nfloat measure_duty_cycle(uint gpio) {\n // \u53ea\u6709 PWM B \u5f15\u8173\u53ef\u4ee5\u7528\u4f5c\u8f38\u5165\n assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);\n\n uint slice_num = pwm_gpio_to_slice_num(gpio);\n\n // \u6bcf 100 \u500b\u5faa\u74b0,PWM B \u8f38\u5165\u70ba\u9ad8\u96fb\u5e73\u6642\u8a08\u6578\u4e00\u6b21\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);\n pwm_config_set_clkdiv(&cfg, 100);\n pwm_init(slice_num, &cfg, false);\n\n gpio_set_function(gpio, GPIO_FUNC_PWM);\n pwm_set_enabled(slice_num, true);\n sleep_ms(10);\n pwm_set_enabled(slice_num, false);\n\n float counting_rate = clock_get_hz(clk_sys) / 100;\n float max_possible_count = counting_rate * 0.01;\n\n return pwm_get_counter(slice_num) / max_possible_count;\n}\n\nconst float test_duty_cycles[] = {\n 0.f,\n 0.1f,\n 0.5f,\n 0.9f,\n 1.f\n};\n\nint main() {\n stdio_init_all();\n printf("\\nPWM duty cycle measurement example\\n");\n\n // \u914d\u7f6e PWM \u5207\u7247\u4e26\u8a2d\u7f6e\u70ba\u904b\u884c\u72c0\u614b\n const uint count_top = 1000;\n pwm_config cfg = pwm_get_default_config();\n pwm_config_set_wrap(&cfg, count_top);\n pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);\n\n // \u6ce8\u610f,\u6211\u5011\u9084\u6c92\u6709\u89f8\u78b0\u53e6\u4e00\u500b\u5f15\u8173 -- PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\n // \u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\n // \u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!\n gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);\n\n // \u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u9a45\u52d5\u8a72\u96fb\u5e73,\n // \u7136\u5f8c\u4f7f\u7528\u53e6\u4e00\u500b\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002\u9019\u5169\u500b\u503c\u61c9\u8a72\u975e\u5e38\u63a5\u8fd1!\n for (int i = 0; i < count_of(test_duty_cycles); ++i) {\n float output_duty_cycle = test_duty_cycles[i];\n pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));\n\n float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);\n printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\\n",\n output_duty_cycle * 100.f, measured_duty_cycle * 100.f);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u6f14\u793a\u4e86\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u7a0b\u5e8f\u7684\u4e3b\u8981\u6b65\u9a5f\u5982\u4e0b:"}),"\n",(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsxs)(e.li,{children:["\u5b9a\u7fa9\u8f38\u51fa\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"OUTPUT_PIN"})," \u548c\u6e2c\u91cf\u5f15\u8173 ",(0,c.jsx)(e.code,{children:"MEASURE_PIN"}),"\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5be6\u73fe ",(0,c.jsx)(e.code,{children:"measure_duty_cycle()"})," \u51fd\u6578,\u7528\u65bc\u6e2c\u91cf\u7d66\u5b9a GPIO \u5f15\u8173\u4e0a\u7684 PWM \u4fe1\u865f\u4f54\u7a7a\u6bd4\u3002","\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:["\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5206\u983b\u5668\u6a21\u5f0f\u70ba ",(0,c.jsx)(e.code,{children:"PWM_DIV_B_HIGH"}),",\u5373\u6bcf 100 \u500b\u5faa\u74b0\u8a08\u6578\u4e00\u6b21\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u555f\u52d5 PWM,\u7b49\u5f85\u4e00\u6bb5\u6642\u9593,\u7136\u5f8c\u505c\u6b62 PWM\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a08\u7b97\u6700\u5927\u53ef\u80fd\u8a08\u6578\u503c,\u4e26\u6839\u64da\u5be6\u969b\u8a08\u6578\u503c\u8a08\u7b97\u4f54\u7a7a\u6bd4\u3002"}),"\n"]}),"\n"]}),"\n",(0,c.jsxs)(e.li,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main()"})," \u51fd\u6578\u4e2d,\u914d\u7f6e\u8f38\u51fa\u5f15\u8173\u7684 PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba ",(0,c.jsx)(e.code,{children:"count_top"}),"\u3002"]}),"\n",(0,c.jsx)(e.li,{children:"\u5c0d\u65bc\u6bcf\u500b\u6e2c\u8a66\u4f54\u7a7a\u6bd4,\u5728\u8f38\u51fa\u5f15\u8173\u4e0a\u8a2d\u7f6e\u76f8\u61c9\u7684\u96fb\u5e73,\u7136\u5f8c\u4f7f\u7528\u6e2c\u91cf\u5f15\u8173\u8b80\u56de\u5be6\u969b\u7684\u8f38\u51fa\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5c07\u8f38\u51fa\u4f54\u7a7a\u6bd4\u548c\u6e2c\u91cf\u4f54\u7a7a\u6bd4\u6253\u5370\u51fa\u4f86,\u6aa2\u67e5\u5b83\u5011\u662f\u5426\u63a5\u8fd1\u3002"}),"\n"]}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u5728\u5c07\u5169\u500b\u5f15\u8173\u9023\u63a5\u5728\u4e00\u8d77\u4e4b\u524d,\u9700\u8981\u6ce8\u610f PWM \u5f15\u8173\u7684\u9ed8\u8a8d\u72c0\u614b\u3002PWM \u5f15\u8173\u9810\u8a2d\u70ba\u8f38\u51fa,\u4f46\u4e00\u65e6\u5206\u983b\u5668\u6a21\u5f0f\u5f9e\u81ea\u7531\u904b\u884c\u6539\u8b8a,\u5c31\u6703\u8b8a\u70ba\u8f38\u5165\u3002\u5c07\u5169\u500b\u8f38\u51fa\u76f4\u63a5\u9023\u63a5\u5728\u4e00\u8d77\u662f\u4e0d\u660e\u667a\u7684!"})}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u9019\u500b\u793a\u4f8b,\u6211\u5011\u53ef\u4ee5\u770b\u5230\u5982\u4f55\u4f7f\u7528 RP2040 \u7684 PWM \u529f\u80fd\u4f86\u7cbe\u78ba\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4\u3002\u9019\u5728\u9700\u8981\u5c0d PWM \u4fe1\u865f\u9032\u884c\u5206\u6790\u548c\u63a7\u5236\u7684\u5834\u666f\u4e2d\u975e\u5e38\u6709\u7528\u3002"}),"\n",(0,c.jsx)(e.h2,{id:"\u55ae\u7368\u4f7f\u7528-pwm",children:"\u55ae\u7368\u4f7f\u7528 PWM"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u793a\u4f8b\u4e2d\u7684\u7528\u6cd5,\u6211\u5011\u9084\u53ef\u4ee5\u55ae\u7368\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u5404\u7a2e\u8a2d\u5099,\u5982\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u3001\u4f3a\u670d\u6a5f\u7b49\u3002\u4e0b\u9762\u6211\u5011\u5c07\u8a73\u7d30\u4ecb\u7d39\u5982\u4f55\u4f7f\u7528 PWM \u4f86\u63a7\u5236\u9019\u4e9b\u8a2d\u5099,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f",children:"\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f7f\u7528 PWM \u53ef\u4ee5\u65b9\u4fbf\u5730\u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u6211\u5011\u53ef\u4ee5\u8abf\u7bc0\u8f38\u51fa\u5230\u96fb\u6a5f\u7684\u5e73\u5747\u96fb\u58d3,\u5f9e\u800c\u63a7\u5236\u96fb\u6a5f\u7684\u8f49\u901f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint MOTOR_PIN = 2;\n\nint main() {\n // \u5c07\u96fb\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);\n uint channel = pwm_gpio_to_channel(MOTOR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u4f54\u7a7a\u6bd4,\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\n pwm_set_chan_level(slice_num, channel, 32768); // 50% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 16384); // 25% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 49152); // 75% \u4f54\u7a7a\u6bd4\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u96fb\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u7136\u5f8c,\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 65535,\u4ee5\u7372\u5f97\u66f4\u9ad8\u7684\u89e3\u6790\u5ea6\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u4f54\u7a7a\u6bd4\u4f86\u63a7\u5236\u96fb\u6a5f\u8f49\u901f\u3002\u4f54\u7a7a\u6bd4\u7684\u53d6\u503c\u7bc4\u570d\u70ba 0 \u5230 65535,\u5206\u5225\u5c0d\u61c9 0% \u5230 100% \u7684\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"tip",children:(0,c.jsx)(e.p,{children:"\u6839\u64da\u96fb\u6a5f\u7684\u898f\u683c\u548c\u96fb\u6e90\u96fb\u58d3,\u4f60\u53ef\u80fd\u9700\u8981\u4f7f\u7528 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u5b89\u5168\u5730\u9a45\u52d5\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u7528\u4f86\u63a7\u5236 H \u6a4b\u6216\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u5f9e\u800c\u8abf\u7bc0\u96fb\u6a5f\u8f49\u901f\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f",children:"\u63a7\u5236\u6b65\u9032\u96fb\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u7cbe\u5bc6\u5b9a\u4f4d\u8a2d\u5099,\u53ef\u4ee5\u901a\u904e\u63a7\u5236\u8108\u885d\u4fe1\u865f\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u89d2\u5ea6\u63a7\u5236\u3002\u4f7f\u7528 PWM,\u6211\u5011\u53ef\u4ee5\u751f\u6210\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u6240\u9700\u7684\u8108\u885d\u4fe1\u865f\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n\nint main() {\n // \u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\n gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\n uint channel_step = pwm_gpio_to_channel(STEP_PIN);\n uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\n uint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 65535);\n pwm_init(slice_num_step, &config, true);\n pwm_init(slice_num_dir, &config, true);\n\n // \u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n\n while (1) {\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n\n // \u6539\u8b8a\u65b9\u5411\u70ba\u53cd\u5411\n pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n\n // \u751f\u6210\u6b65\u9032\u8108\u885d\n for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n }\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528\u5169\u500b PWM \u901a\u9053\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u4e00\u500b\u901a\u9053\u7528\u65bc\u751f\u6210\u6b65\u9032\u8108\u885d,\u53e6\u4e00\u500b\u901a\u9053\u7528\u65bc\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65b9\u5411\u3002\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u8108\u885d\u7684\u4f54\u7a7a\u6bd4\u548c\u983b\u7387\u4f86\u751f\u6210\u6240\u9700\u7684\u6b65\u9032\u8108\u885d,\u4e26\u901a\u904e\u6539\u8b8a\u65b9\u5411\u901a\u9053\u7684\u96fb\u5e73\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u65cb\u8f49\u65b9\u5411\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u9ad8\u7684\u96fb\u6d41\u9a45\u52d5,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u4f86\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002PWM \u4fe1\u865f\u53ef\u4ee5\u4f5c\u70ba\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668\u7684\u8f38\u5165,\u7528\u65bc\u63a7\u5236\u6b65\u9032\u8108\u885d\u548c\u65b9\u5411\u3002"})}),"\n",(0,c.jsx)(e.p,{children:"\u597d\u7684,\u6211\u6703\u6839\u64da\u60a8\u7684\u8981\u6c42,\u9032\u4e00\u6b65\u512a\u5316\u9019\u90e8\u5206\u5167\u5bb9,\u4e26\u5584\u7528 Markdown \u548c Docusaurus \u7684\u7279\u6027,\u4f7f\u76ee\u9304\u66f4\u52a0\u6e05\u6670\u3002\u4ee5\u4e0b\u662f\u512a\u5316\u5f8c\u7684\u5167\u5bb9:"}),"\n",(0,c.jsx)(e.h4,{id:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc",children:"\u8a73\u89e3\u6b65\u9032\u96fb\u6a5f\u63a7\u5236\u7a0b\u5f0f\u78bc"}),"\n",(0,c.jsx)(e.p,{children:"\u8b93\u6211\u5011\u4f86\u8a73\u7d30\u8b1b\u89e3\u4e0a\u8ff0\u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u7684\u7a0b\u5f0f\u78bc,\u4e26\u89e3\u91cb\u5176\u4e2d\u6d89\u53ca\u7684\u53c3\u6578\u548c\u8a2d\u7f6e\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173",children:"\u5b9a\u7fa9\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"const uint STEP_PIN = 2;\nconst uint DIR_PIN = 3;\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u9996\u5148,\u6211\u5011\u5b9a\u7fa9\u4e86\u5169\u500b\u5e38\u91cf ",(0,c.jsx)(e.code,{children:"STEP_PIN"})," \u548c ",(0,c.jsx)(e.code,{children:"DIR_PIN"}),",\u5206\u5225\u8868\u793a\u9023\u63a5\u6b65\u9032\u96fb\u6a5f\u7684\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u3002\u9019\u88e1\u6211\u5011\u5c07\u5b83\u5011\u8a2d\u7f6e\u70ba GPIO2 \u548c GPIO3\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba-pwm",children:"\u8a2d\u7f6e\u5f15\u8173\u529f\u80fd\u70ba PWM"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);\ngpio_set_function(DIR_PIN, GPIO_FUNC_PWM);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728 ",(0,c.jsx)(e.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u9996\u5148\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"gpio_set_function"})," \u51fd\u6578\u5c07\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u9019\u6a23\u6211\u5011\u5c31\u53ef\u4ee5\u901a\u904e PWM \u4f86\u63a7\u5236\u9019\u5169\u500b\u5f15\u8173\u7684\u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u7372\u53d6-pwm-\u5207\u7247\u7de8\u865f\u548c\u901a\u9053",children:"\u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);\nuint channel_step = pwm_gpio_to_channel(STEP_PIN);\nuint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);\nuint channel_dir = pwm_gpio_to_channel(DIR_PIN);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_slice_num"})," \u548c ",(0,c.jsx)(e.code,{children:"pwm_gpio_to_channel"})," \u51fd\u6578\u7372\u53d6\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5c0d\u61c9\u7684 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\u3002\u6bcf\u500b PWM \u5207\u7247\u53ef\u4ee5\u63a7\u5236\u5169\u500b\u901a\u9053,\u901a\u5e38\u6a19\u8a18\u70ba A \u548c B\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u914d\u7f6e-pwm-\u5207\u7247",children:"\u914d\u7f6e PWM \u5207\u7247"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_config config = pwm_get_default_config();\npwm_config_set_wrap(&config, 65535);\npwm_init(slice_num_step, &config, true);\npwm_init(slice_num_dir, &config, true);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_get_default_config"})," \u51fd\u6578\u7372\u53d6 PWM \u7684\u9ed8\u8a8d\u914d\u7f6e,\u4e26\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_config_set_wrap"})," \u51fd\u6578\u8a2d\u7f6e PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u70ba 65535\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86 PWM \u7684\u89e3\u6790\u5ea6,\u8a2d\u7f6e\u70ba 65535 \u53ef\u4ee5\u63d0\u4f9b\u8f03\u9ad8\u7684\u89e3\u6790\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.p,{children:["\u63a5\u8457,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_init"})," \u51fd\u6578\u521d\u59cb\u5316\u6b65\u9032\u5f15\u8173\u548c\u65b9\u5411\u5f15\u8173\u6240\u5728\u7684 PWM \u5207\u7247,\u4e26\u5c07 ",(0,c.jsx)(e.code,{children:"config"})," \u61c9\u7528\u5230\u9019\u4e9b\u5207\u7247\u4e0a\u3002\u6700\u5f8c\u4e00\u500b\u53c3\u6578\u8a2d\u7f6e\u70ba ",(0,c.jsx)(e.code,{children:"true"}),",\u8868\u793a\u7acb\u5373\u555f\u7528 PWM \u8f38\u51fa\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u8a2d\u7f6e\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 0);\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u8a2d\u7f6e\u65b9\u5411\u70ba\u6b63\u5411\u6642,\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0\u3002\u9019\u901a\u5e38\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u6b63\u5411\u65cb\u8f49\u3002"]}),"\n",(0,c.jsx)(e.h5,{id:"\u751f\u6210\u6b65\u9032\u8108\u885d",children:"\u751f\u6210\u6b65\u9032\u8108\u885d"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"for (int i = 0; i < 200; i++) {\n pwm_set_chan_level(slice_num_step, channel_step, 32768);\n sleep_us(500);\n pwm_set_chan_level(slice_num_step, channel_step, 0);\n sleep_us(500);\n}\n"})}),"\n",(0,c.jsxs)(e.p,{children:["\u5728\u4e3b\u5faa\u74b0\u4e2d,\u6211\u5011\u9996\u5148\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d\u3002\u6bcf\u500b\u8108\u885d\u7531\u4e00\u500b\u9ad8\u96fb\u5e73\u548c\u4e00\u500b\u4f4e\u96fb\u5e73\u7d44\u6210,\u9ad8\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2,\u4f4e\u96fb\u5e73\u6301\u7e8c 500 \u5fae\u79d2\u3002\u6211\u5011\u4f7f\u7528 ",(0,c.jsx)(e.code,{children:"pwm_set_chan_level"})," \u51fd\u6578\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba 32768\uff0850% \u4f54\u7a7a\u6bd4\uff09\u4f86\u751f\u6210\u9ad8\u96fb\u5e73,\u7136\u5f8c\u5ef6\u9072 500 \u5fae\u79d2\u3002\u63a5\u8457,\u6211\u5011\u5c07\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 0 \u4f86\u751f\u6210\u4f4e\u96fb\u5e73,\u518d\u5ef6\u9072 500 \u5fae\u79d2\u3002\u9019\u6a23\u5c31\u751f\u6210\u4e86\u4e00\u500b\u5b8c\u6574\u7684\u6b65\u9032\u8108\u885d\u3002"]}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u751f\u6210\u6b65\u9032\u8108\u885d\u7684\u904e\u7a0b\u53ef\u4ee5\u5206\u70ba\u4ee5\u4e0b\u5e7e\u500b\u6b65\u9a5f:"}),(0,c.jsxs)(e.ol,{children:["\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u9ad8\u96fb\u5e73\uff0850% \u4f54\u7a7a\u6bd4\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u8a2d\u7f6e\u6b65\u9032\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u70ba\u4f4e\u96fb\u5e73\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\uff08\u8108\u885d\u7684\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593\uff09\u3002"}),"\n",(0,c.jsx)(e.li,{children:"\u91cd\u8907\u6b65\u9a5f 1-4,\u76f4\u5230\u751f\u6210\u8db3\u5920\u6578\u91cf\u7684\u6b65\u9032\u8108\u885d\u3002"}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411",children:"\u6539\u8b8a\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u65b9\u5411"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:"pwm_set_chan_level(slice_num_dir, channel_dir, 65535);\n"})}),"\n",(0,c.jsx)(e.p,{children:"\u751f\u6210\u5b8c 200 \u500b\u6b65\u9032\u8108\u885d\u5f8c,\u6211\u5011\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u5c07\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u751f\u6210 200 \u500b\u6b65\u9032\u8108\u885d,\u4f46\u9019\u6b21\u6b65\u9032\u96fb\u6a5f\u5c07\u5411\u76f8\u53cd\u65b9\u5411\u65cb\u8f49\u3002\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u5ef6\u9072 1 \u79d2\u9418,\u7136\u5f8c\u91cd\u8907\u6574\u500b\u904e\u7a0b\u3002"}),"\n",(0,c.jsx)(e.h5,{id:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578",children:"\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578"}),"\n",(0,c.jsxs)(e.admonition,{type:"note",children:[(0,c.jsx)(e.p,{children:"\u9019\u6bb5\u7a0b\u5f0f\u78bc\u4e2d\u7684\u6578\u5b57\u53c3\u6578\u7684\u542b\u7fa9\u5982\u4e0b:"}),(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"32768"}),": \u8868\u793a 50% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u56e0\u70ba\u6211\u5011\u5c07 PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c\u8a2d\u7f6e\u70ba 65535,\u6240\u4ee5 32768 \u5927\u7d04\u662f\u6700\u5927\u503c\u7684\u4e00\u534a,\u5c0d\u61c9 50% \u7684\u4f54\u7a7a\u6bd4\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"500"}),": \u8868\u793a\u6b65\u9032\u8108\u885d\u7684\u9ad8\u96fb\u5e73\u548c\u4f4e\u96fb\u5e73\u6301\u7e8c\u6642\u9593,\u55ae\u4f4d\u70ba\u5fae\u79d2\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u964d\u4f4e\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u63d0\u9ad8\u6b65\u9032\u96fb\u6a5f\u7684\u901f\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"200"}),": \u8868\u793a\u751f\u6210\u7684\u6b65\u9032\u8108\u885d\u6578\u91cf\u3002\u9019\u500b\u503c\u6c7a\u5b9a\u4e86\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002\u589e\u5927\u9019\u500b\u503c\u6703\u589e\u52a0\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6,\u6e1b\u5c0f\u9019\u500b\u503c\u6703\u6e1b\u5c0f\u6b65\u9032\u96fb\u6a5f\u65cb\u8f49\u7684\u89d2\u5ea6\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"65535"}),": \u8868\u793a PWM \u8a08\u6578\u5668\u7684\u6700\u5927\u503c,\u4e5f\u8868\u793a 100% \u7684 PWM \u4f54\u7a7a\u6bd4\u3002\u7576\u65b9\u5411\u5f15\u8173\u7684 PWM \u8f38\u51fa\u96fb\u5e73\u8a2d\u7f6e\u70ba 65535 \u6642,\u8868\u793a\u6b65\u9032\u96fb\u6a5f\u7684\u53cd\u5411\u65cb\u8f49\u3002"]}),"\n"]})]}),"\n",(0,c.jsx)(e.h5,{id:"\u5176\u4ed6-pwm-\u914d\u7f6e",children:"\u5176\u4ed6 PWM \u914d\u7f6e"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u4e0a\u8ff0\u53c3\u6578,\u6211\u5011\u9084\u53ef\u4ee5\u8a2d\u7f6e\u5176\u4ed6\u7684 PWM \u914d\u7f6e,\u4f8b\u5982:"}),"\n",(0,c.jsxs)(e.ul,{children:["\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_clkdiv"}),": \u8a2d\u7f6e PWM \u6642\u9418\u5206\u983b\u5668,\u53ef\u4ee5\u6539\u8b8a PWM \u7684\u983b\u7387\u3002\u589e\u5927\u5206\u983b\u503c\u6703\u964d\u4f4e PWM \u983b\u7387,\u6e1b\u5c0f\u5206\u983b\u503c\u6703\u63d0\u9ad8 PWM \u983b\u7387\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_phase_correct"}),": \u8a2d\u7f6e\u662f\u5426\u4f7f\u7528\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u3002\u5728\u76f8\u4f4d\u6821\u6b63\u6a21\u5f0f\u4e0b,PWM \u8a08\u6578\u5668\u5728\u9054\u5230\u6700\u5927\u503c\u5f8c\u6703\u5411\u4e0b\u8a08\u6578,\u800c\u4e0d\u662f\u76f4\u63a5\u91cd\u7f6e\u70ba 0\u3002\u9019\u53ef\u4ee5\u6e1b\u5c11 PWM \u8f38\u51fa\u7684\u5c16\u5cf0\u566a\u8072\u3002"]}),"\n",(0,c.jsxs)(e.li,{children:[(0,c.jsx)(e.code,{children:"pwm_config_set_output_polarity"}),": \u8a2d\u7f6e PWM \u8f38\u51fa\u7684\u6975\u6027\u3002\u53ef\u4ee5\u9078\u64c7\u5728 PWM \u8a08\u6578\u5668\u9054\u5230\u6bd4\u8f03\u503c\u6642\u8f38\u51fa\u9ad8\u96fb\u5e73\u9084\u662f\u4f4e\u96fb\u5e73\u3002"]}),"\n"]}),"\n",(0,c.jsx)(e.p,{children:"\u8abf\u6574\u9019\u4e9b PWM \u914d\u7f6e\u53ef\u4ee5\u6539\u8b8a PWM \u8f38\u51fa\u7684\u7279\u6027,\u5f9e\u800c\u5f71\u97ff\u6b65\u9032\u96fb\u6a5f\u7684\u904b\u884c\u65b9\u5f0f,\u5982\u901f\u5ea6\u3001\u626d\u77e9\u3001\u566a\u8072\u7b49\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u9700\u8981\u6ce8\u610f\u7684\u662f,\u9019\u6bb5\u7a0b\u5f0f\u78bc\u53ea\u662f\u4e00\u500b\u57fa\u672c\u7684\u793a\u4f8b,\u7528\u65bc\u6f14\u793a\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u6b65\u9032\u96fb\u6a5f\u3002\u5728\u5be6\u969b\u61c9\u7528\u4e2d,\u4f60\u53ef\u80fd\u9700\u8981\u6839\u64da\u5177\u9ad4\u7684\u6b65\u9032\u96fb\u6a5f\u578b\u865f\u548c\u9a45\u52d5\u5668\u4f86\u8abf\u6574\u53c3\u6578\u548c\u8a2d\u7f6e,\u4ee5\u7372\u5f97\u6700\u4f73\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\u3002\u6b64\u5916,\u6b65\u9032\u96fb\u6a5f\u901a\u5e38\u9700\u8981\u8f03\u5927\u7684\u96fb\u6d41,\u56e0\u6b64\u5efa\u8b70\u4f7f\u7528\u5c08\u7528\u7684\u6b65\u9032\u96fb\u6a5f\u9a45\u52d5\u5668,\u800c\u4e0d\u662f\u76f4\u63a5\u901a\u904e PWM \u5f15\u8173\u9a45\u52d5\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u63a7\u5236\u4f3a\u670d\u6a5f",children:"\u63a7\u5236\u4f3a\u670d\u6a5f"}),"\n",(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4f4d\u7f6e\u63a7\u5236\u8a2d\u5099,\u901a\u904e\u6539\u8b8a PWM \u4fe1\u865f\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n\nconst uint SERVO_PIN = 2;\n\nint main() {\n // \u5c07\u4f3a\u670d\u6a5f\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\u548c\u901a\u9053\n uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);\n uint channel = pwm_gpio_to_channel(SERVO_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\n pwm_config config = pwm_get_default_config();\n pwm_config_set_wrap(&config, 19999);\n pwm_config_set_clkdiv(&config, 9.6f);\n pwm_init(slice_num, &config, true);\n\n while (1) {\n // \u8a2d\u7f6e\u8108\u5bec,\u63a7\u5236\u4f3a\u670d\u6a5f\u89d2\u5ea6\n pwm_set_chan_level(slice_num, channel, 1000); // 0 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 1500); // 90 \u5ea6\n sleep_ms(2000);\n pwm_set_chan_level(slice_num, channel, 2000); // 180 \u5ea6\n sleep_ms(2000);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u4f3a\u670d\u6a5f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247,\u8a2d\u7f6e\u5305\u88f9\u503c\u70ba 19999,\u6642\u9418\u5206\u983b\u5668\u70ba 9.6,\u4ee5\u7372\u5f97 50Hz \u7684 PWM \u983b\u7387\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u901a\u904e\u8a2d\u7f6e\u4e0d\u540c\u7684\u8108\u5bec\u4f86\u63a7\u5236\u4f3a\u670d\u6a5f\u7684\u89d2\u5ea6\u3002\u8108\u5bec\u7684\u5178\u578b\u503c\u70ba 1000us\uff080 \u5ea6\uff09\u30011500us\uff0890 \u5ea6\uff09\u548c 2000us\uff08180 \u5ea6\uff09,\u4f46\u5177\u9ad4\u503c\u53ef\u80fd\u56e0\u4f3a\u670d\u6a5f\u578b\u865f\u800c\u6709\u6240\u4e0d\u540c\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"caution",children:(0,c.jsx)(e.p,{children:"\u4f3a\u670d\u6a5f\u7684\u63a7\u5236\u4fe1\u865f\u9700\u8981\u7cbe\u78ba\u7684\u8108\u5bec\u548c\u983b\u7387,\u56e0\u6b64\u5728\u914d\u7f6e PWM \u6642\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u5305\u88f9\u503c\u548c\u6642\u9418\u5206\u983b\u5668,\u4ee5\u7372\u5f97\u6240\u9700\u7684\u8108\u5bec\u548c\u983b\u7387\u3002\u6b64\u5916,\u4f3a\u670d\u6a5f\u901a\u5e38\u9700\u8981\u55ae\u7368\u7684\u96fb\u6e90\u4f9b\u96fb,\u4ee5\u63d0\u4f9b\u8db3\u5920\u7684\u96fb\u6d41\u3002"})}),"\n",(0,c.jsx)(e.h3,{id:"\u4f7f\u7528-pwm-\u4f5c\u70ba\u8f38\u5165\u6355\u7372",children:"\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372"}),"\n",(0,c.jsx)(e.p,{children:"\u9664\u4e86\u7528\u65bc\u8f38\u51fa\u63a7\u5236\u4fe1\u865f,PWM \u9084\u53ef\u4ee5\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u7684\u793a\u4f8b:"}),"\n",(0,c.jsx)(e.pre,{children:(0,c.jsx)(e.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n#include "hardware/pwm.h"\n#include "hardware/clocks.h"\n\nconst uint INPUT_PIN = 2;\n\nint main() {\n // \u5c07\u8f38\u5165\u5f15\u8173\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\n gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);\n\n // \u7372\u53d6 PWM \u5207\u7247\u7de8\u865f\n uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);\n\n // \u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f\n pwm_config config = pwm_get_default_config();\n pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);\n pwm_init(slice_num, &config, false);\n \n // \u4f7f\u80fd\u8f38\u5165\u6355\u7372\n pwm_set_enabled(slice_num, true);\n\n while (1) {\n // \u7b49\u5f85\u8f38\u5165\u4fe1\u865f\n while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));\n\n // \u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\n uint32_t period = pwm_get_counter(slice_num);\n uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);\n float frequency = clock_get_hz(clk_sys) / period;\n float duty_cycle = (float)pulse_width / period;\n\n printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\\n", \n frequency, pulse_width, duty_cycle * 100);\n\n // \u6e05\u9664\u8f38\u5165\u6355\u7372\u4e2d\u65b7\u6a19\u8a8c\n pwm_clear_irq(slice_num);\n }\n}\n'})}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u9019\u500b\u793a\u4f8b\u4e2d,\u6211\u5011\u5c07\u8f38\u5165\u4fe1\u865f\u9023\u63a5\u5230 GPIO2 \u5f15\u8173,\u4e26\u5c07\u5176\u8a2d\u7f6e\u70ba PWM \u529f\u80fd\u3002\u6211\u5011\u914d\u7f6e PWM \u5207\u7247\u4f5c\u70ba\u8f38\u5165\u6355\u7372\u6a21\u5f0f,\u4e26\u4f7f\u80fd\u8f38\u5165\u6355\u7372\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u7b49\u5f85\u8f38\u5165\u4fe1\u865f\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u7136\u5f8c\u8b80\u53d6\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002\u983b\u7387\u53ef\u4ee5\u901a\u904e\u6642\u9418\u983b\u7387\u9664\u4ee5\u9031\u671f\u8a08\u6578\u5668\u503c\u4f86\u8a08\u7b97,\u8108\u5bec\u53ef\u4ee5\u76f4\u63a5\u5f9e\u6355\u7372\u6bd4\u8f03\u8a08\u6578\u5668\u4e2d\u8b80\u53d6,\u4f54\u7a7a\u6bd4\u53ef\u4ee5\u901a\u904e\u8108\u5bec\u9664\u4ee5\u9031\u671f\u4f86\u8a08\u7b97\u3002"}),"\n",(0,c.jsx)(e.admonition,{type:"note",children:(0,c.jsx)(e.p,{children:"\u8f38\u5165\u6355\u7372\u6a21\u5f0f\u4e0b,PWM \u5207\u7247\u6703\u5728\u8f38\u5165\u4fe1\u865f\u7684\u4e0a\u5347\u6cbf\u6216\u4e0b\u964d\u6cbf\u89f8\u767c\u8f38\u5165\u6355\u7372\u4e2d\u65b7,\u4e26\u8a18\u9304\u7576\u524d\u7684\u8a08\u6578\u5668\u503c\u3002\u901a\u904e\u6bd4\u8f03\u9023\u7e8c\u5169\u6b21\u6355\u7372\u7684\u8a08\u6578\u5668\u503c,\u53ef\u4ee5\u8a08\u7b97\u51fa\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"})}),"\n",(0,c.jsx)(e.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,c.jsx)(e.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u8a73\u7d30\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM \u529f\u80fd\u3002\u9664\u4e86\u4e4b\u524d\u4ecb\u7d39\u7684\u57fa\u672c\u7528\u6cd5,\u6211\u5011\u9084\u6df1\u5165\u8b1b\u89e3\u4e86\u5982\u4f55\u4f7f\u7528 PWM \u63a7\u5236\u76f4\u6d41\u96fb\u6a5f\u3001\u6b65\u9032\u96fb\u6a5f\u548c\u4f3a\u670d\u6a5f,\u4ee5\u53ca\u5982\u4f55\u4f7f\u7528 PWM \u4f5c\u70ba\u8f38\u5165\u6355\u7372\u4f86\u6aa2\u6e2c\u8f38\u5165\u4fe1\u865f\u7684\u983b\u7387\u3001\u8108\u5bec\u548c\u4f54\u7a7a\u6bd4\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u901a\u904e\u5b78\u7fd2\u672c\u6587\u63d0\u4f9b\u7684\u8a73\u7d30\u89e3\u91cb\u548c\u793a\u4f8b\u4ee3\u78bc,\u4f60\u61c9\u8a72\u80fd\u5920\u638c\u63e1 RP2040 \u4e2d PWM \u7684\u5404\u7a2e\u7528\u6cd5,\u4e26\u5c07\u5176\u61c9\u7528\u5230\u81ea\u5df1\u7684\u5d4c\u5165\u5f0f\u9805\u76ee\u4e2d\u3002\u7121\u8ad6\u662f\u96fb\u6a5f\u63a7\u5236\u3001\u4f3a\u670d\u6a5f\u63a7\u5236\u9084\u662f\u4fe1\u865f\u6aa2\u6e2c,PWM \u90fd\u662f\u4e00\u500b\u5f37\u5927\u800c\u9748\u6d3b\u7684\u5de5\u5177\u3002"}),"\n",(0,c.jsx)(e.p,{children:"\u5e0c\u671b\u672c\u6587\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684 PWM \u529f\u80fd\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function p(n={}){const{wrapper:e}={...(0,l.R)(),...n.components};return e?(0,c.jsx)(e,{...n,children:(0,c.jsx)(o,{...n})}):o(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>_,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function _(n){const e=c.useContext(s);return c.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function d(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:_(n.components),c.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/6875c492.27fa3488.js b/zh-hk/assets/js/6875c492.27fa3488.js new file mode 100644 index 000000000..b45d42818 --- /dev/null +++ b/zh-hk/assets/js/6875c492.27fa3488.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4813],{7713:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(1312),a=n(9022),i=n(4848);function r(e){const{metadata:t}=e,{previousPage:n,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.A,{permalink:n,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,i.jsx)(a.A,{permalink:r,title:(0,i.jsx)(s.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,n)=>{n.d(t,{A:()=>r});n(6540);var s=n(7131),a=n(4651),i=n(4848);function r(e){let{items:t,component:n=a.A}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.i,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},3069:(e,t,n)=>{n.r(t),n.d(t,{default:()=>A});n(6540);var s=n(4164),a=n(1312),i=n(5846),r=n(1213),l=n(7559),o=n(8774),c=n(6535),d=n(7713),g=n(1463),u=n(3892),p=n(996),h=n(1107),m=n(4848);function x(e){const t=function(){const{selectMessage:e}=(0,i.W)();return t=>e(t,(0,a.T)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.T)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(r.be,{title:n,description:t.description}),(0,m.jsx)(g.A,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const r=x(t);return(0,m.jsxs)(c.A,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(p.A,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(h.A,{as:"h1",children:r}),t.description&&(0,m.jsx)("p",{children:t.description}),(0,m.jsx)(o.A,{href:t.allTagsPath,children:(0,m.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.A,{items:n}),(0,m.jsx)(d.A,{metadata:i})]})}function A(e){return(0,m.jsxs)(r.e3,{className:(0,s.A)(l.G.wrapper.blogPages,l.G.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},996:(e,t,n)=>{n.d(t,{A:()=>p});n(6540);var s=n(4164),a=n(1312),i=n(5260),r=n(4848);function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(i.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),g=n(7293);function u(e){let{className:t}=e;return(0,r.jsx)(g.A,{type:"caution",title:(0,r.jsx)(l,{}),className:(0,s.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(o,{})})}function p(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/7eddfcbf.723ecf16.js b/zh-hk/assets/js/7eddfcbf.723ecf16.js new file mode 100644 index 000000000..4b7008003 --- /dev/null +++ b/zh-hk/assets/js/7eddfcbf.723ecf16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2462],{2744:e=>{e.exports=JSON.parse('{"metadata":{"permalink":"/zh-hk/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/814f3328.b5765874.js b/zh-hk/assets/js/814f3328.b5765874.js new file mode 100644 index 000000000..11bea70b8 --- /dev/null +++ b/zh-hk/assets/js/814f3328.b5765874.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7472],{5513:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)","permalink":"/zh-hk/blog/Docker-Getting-Srart-01","unlisted":false},{"title":"First Blog Post","permalink":"/zh-hk/blog/first-blog-post","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/85e08f6c.8917029a.js b/zh-hk/assets/js/85e08f6c.8917029a.js new file mode 100644 index 000000000..2da82a06b --- /dev/null +++ b/zh-hk/assets/js/85e08f6c.8917029a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8210],{2392:(n,e,i)=>{i.r(e),i.d(e,{assets:()=>d,contentTitle:()=>a,default:()=>o,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var r=i(4848),t=i(8453);const l={slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},a=void 0,s={id:"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"UART",permalink:"/zh-hk/tags/uart"},{inline:!0,label:"interrupts",permalink:"/zh-hk/tags/interrupts"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/zh-hk/tags/embedded-systems"},{inline:!0,label:"serial communication",permalink:"/zh-hk/tags/serial-communication"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-uart-interrupt-handling-and-usage",title:"UART Interrupt Handling and Data Transmission in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","UART","interrupts","Raspberry Pi Pico","embedded systems","serial communication"]},sidebar:"tutorialSidebar",previous:{title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",permalink:"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"},next:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}},d={},c=[{value:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART",id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",level:2},{value:"1. \u521d\u59cb\u5316 UART",id:"1-\u521d\u59cb\u5316-uart",level:3},{value:"2. \u767c\u9001\u8cc7\u6599",id:"2-\u767c\u9001\u8cc7\u6599",level:3},{value:"3. \u63a5\u6536\u8cc7\u6599",id:"3-\u63a5\u6536\u8cc7\u6599",level:3},{value:"4. \u8a2d\u5b9a\u4e2d\u65b7",id:"4-\u8a2d\u5b9a\u4e2d\u65b7",level:3},{value:"FIFO \u7684\u4f7f\u7528",id:"fifo-\u7684\u4f7f\u7528",level:2},{value:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",level:2},{value:"\u767c\u9001\u55ae\u500b\u5b57\u5143",id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",level:3},{value:"\u767c\u9001\u5b57\u4e32",id:"\u767c\u9001\u5b57\u4e32",level:3},{value:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",level:3},{value:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",level:3},{value:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",level:2}];function _(n){const e={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...n.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"UART \u7c21\u4ecb",type:"note",children:(0,r.jsx)(e.p,{children:"UART\uff08Universal Asynchronous Receiver/Transmitter,\u901a\u7528\u7570\u6b65\u6536\u767c\u50b3\u8f38\u5668\uff09\u662f\u4e00\u7a2e\u5e38\u7528\u7684\u4e32\u53e3\u901a\u4fe1\u5354\u8b70,\u5ee3\u6cdb\u61c9\u7528\u65bc\u5d4c\u5165\u5f0f\u7cfb\u7d71\u4e2d\u3002\u5b83\u4ee5\u7570\u6b65\u7684\u65b9\u5f0f\u9032\u884c\u8cc7\u6599\u50b3\u8f38,\u900f\u904e TX\uff08\u767c\u9001\uff09\u548c RX\uff08\u63a5\u6536\uff09\u5169\u689d\u7dda\u4f86\u5be6\u73fe\u5168\u96d9\u5de5\u901a\u4fe1\u3002UART \u7684\u8cc7\u6599\u683c\u5f0f\u5305\u62ec\u8d77\u59cb\u4f4d\u3001\u8cc7\u6599\u4f4d\u3001\u6821\u9a57\u4f4d\uff08\u53ef\u9078\uff09\u548c\u505c\u6b62\u4f4d\u3002"})}),"\n",(0,r.jsx)(e.h2,{id:"\u5728-rp2040-\u4e2d\u4f7f\u7528-uart",children:"\u5728 RP2040 \u4e2d\u4f7f\u7528 UART"}),"\n",(0,r.jsx)(e.p,{children:"RP2040 \u662f Raspberry Pi Pico \u7684\u6838\u5fc3,\u5b83\u63d0\u4f9b\u4e86\u5169\u500b UART \u6a21\u7d44\uff08UART0 \u548c UART1\uff09,\u53ef\u4ee5\u7528\u65bc\u8207\u5176\u4ed6\u88dd\u7f6e\u9032\u884c\u4e32\u53e3\u901a\u4fe1\u3002\u8981\u5728 RP2040 \u4e2d\u4f7f\u7528 UART,\u6211\u5011\u9700\u8981\u57f7\u884c\u4ee5\u4e0b\u6b65\u9a5f:"}),"\n",(0,r.jsx)(e.h3,{id:"1-\u521d\u59cb\u5316-uart",children:"1. \u521d\u59cb\u5316 UART"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u53c3\u6578,\u5982\u6ce2\u7279\u7387\uff08baud rate\uff09\u3001\u8cc7\u6599\u4f4d\u5143\u6578\uff08data bits\uff09\u3001\u505c\u6b62\u4f4d\u5143\uff08stop bits\uff09\u548c\u540c\u4f4d\u6aa2\u67e5\u4f4d\u5143\uff08parity bit\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9078\u64c7\u8981\u4f7f\u7528\u7684 UART \u6a21\u7d44\uff08UART0 \u6216 UART1\uff09\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u914d\u7f6e UART \u4f7f\u7528\u7684 TX \u548c RX \u5f15\u8173\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"2-\u767c\u9001\u8cc7\u6599",children:"2. \u767c\u9001\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u51fd\u5f0f\u767c\u9001\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u51fd\u5f0f\u767c\u9001\u5b57\u4e32\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u5beb\u5165\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_writable()"}),"\uff09\u4f86\u907f\u514d\u8cc7\u6599\u8986\u5beb\u3002"]}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"3-\u63a5\u6536\u8cc7\u6599",children:"3. \u63a5\u6536\u8cc7\u6599"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u51fd\u5f0f\u63a5\u6536\u55ae\u500b\u5b57\u5143\u3002"]}),"\n",(0,r.jsxs)(e.li,{children:["\u900f\u904e\u6aa2\u67e5 UART \u7684\u53ef\u8b80\u53d6\u72c0\u614b\uff08",(0,r.jsx)(e.code,{children:"uart_is_readable()"}),"\uff09\u4f86\u5224\u65b7\u662f\u5426\u6709\u65b0\u8cc7\u6599\u5230\u9054\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.h3,{id:"4-\u8a2d\u5b9a\u4e2d\u65b7",children:"4. \u8a2d\u5b9a\u4e2d\u65b7"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a UART \u7684\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 UART \u7684 RX \u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u5728\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"}),"\n"]}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\nstatic int chars_rxed = 0;\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n // \u5728\u6b64\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\n // ...\n chars_rxed++;\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART\n uart_init(UART_ID, BAUD_RATE);\n \n // \u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n \n // \u8a2d\u5b9a UART \u8cc7\u6599\u683c\u5f0f\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n // \u767c\u9001\u521d\u59cb\u8a0a\u606f\n uart_puts(UART_ID, "Hello, UART!\\n");\n \n // \u4e3b\u8ff4\u5708\n while (1) {\n // \u5728\u6b64\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:"\u5728\u9019\u500b\u7a0b\u5f0f\u78bc\u7bc4\u4f8b\u4e2d,\u6211\u5011\u9996\u5148\u5f15\u5165\u4e86\u5fc5\u8981\u7684\u6a19\u982d\u6a94,\u4e26\u5b9a\u7fa9\u4e86 UART \u7684\u76f8\u95dc\u53c3\u6578,\u5982\u6ce2\u7279\u7387\u3001\u8cc7\u6599\u4f4d\u5143\u6578\u3001\u505c\u6b62\u4f4d\u5143\u548c\u6821\u9a57\u4f4d\u5143\u3002\u63a5\u8457,\u6211\u5011\u521d\u59cb\u5316 UART,\u8a2d\u5b9a TX \u548c RX \u5f15\u8173\u7684\u529f\u80fd,\u4e26\u914d\u7f6e UART \u7684\u8cc7\u6599\u683c\u5f0f\u3002"}),"\n",(0,r.jsxs)(e.p,{children:["\u70ba\u4e86\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599,\u6211\u5011\u8a2d\u5b9a\u4e86 RX \u4e2d\u65b7,\u4e26\u5b9a\u7fa9\u4e86\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f ",(0,r.jsx)(e.code,{children:"on_uart_rx()"}),"\u3002\u7576 UART \u63a5\u6536\u5230\u8cc7\u6599\u6642,\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u6703\u88ab\u89f8\u767c,\u6211\u5011\u53ef\u4ee5\u5728\u5176\u4e2d\u8b80\u53d6\u63a5\u6536\u5230\u7684\u8cc7\u6599\u4e26\u9032\u884c\u76f8\u61c9\u7684\u8655\u7406\u3002"]}),"\n",(0,r.jsx)(e.p,{children:"\u63a5\u4e0b\u4f86,\u6211\u5011\u767c\u9001\u4e00\u500b\u521d\u59cb\u8a0a\u606f,\u8868\u793a UART \u5df2\u7d93\u5c31\u7dd2\u3002\u5728\u4e3b\u8ff4\u5708\u4e2d,\u6211\u5011\u53ef\u4ee5\u57f7\u884c\u5176\u4ed6\u4efb\u52d9,\u800c\u63a5\u6536\u5230\u7684\u8cc7\u6599\u6703\u900f\u904e\u4e2d\u65b7\u8655\u7406\u51fd\u5f0f\u81ea\u52d5\u8655\u7406\u3002"}),"\n",(0,r.jsx)(e.h2,{id:"fifo-\u7684\u4f7f\u7528",children:"FIFO \u7684\u4f7f\u7528"}),"\n",(0,r.jsx)(e.p,{children:"FIFO\uff08First In First Out,\u5148\u9032\u5148\u51fa\uff09\u662f\u4e00\u7a2e\u8cc7\u6599\u7de9\u885d\u5340,\u53ef\u4ee5\u7528\u65bc\u66ab\u5b58 UART \u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u5728 RP2040 \u4e2d,\u6bcf\u500b UART \u6a21\u7d44\u90fd\u6709\u4e00\u500b\u5c0d\u61c9\u7684 FIFO\u3002"}),"\n",(0,r.jsx)(e.admonition,{title:"\u555f\u7528 FIFO",type:"tip",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsxs)(e.li,{children:["\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528 UART \u7684 FIFO \u529f\u80fd\u3002"]}),"\n",(0,r.jsx)(e.li,{children:"\u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6,\u5373\u53ef\u5b58\u5132\u7684\u8cc7\u6599\u91cf\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4e0d\u555f\u7528 FIFO",type:"warning",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u5982\u679c\u4e0d\u555f\u7528 FIFO,\u6bcf\u6b21\u63a5\u6536\u5230\u8cc7\u6599\u90fd\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u9069\u7528\u65bc\u5c0d\u5373\u6642\u6027\u8981\u6c42\u8f03\u9ad8\u7684\u5834\u666f,\u4f46\u53ef\u80fd\u6703\u589e\u52a0 CPU \u7684\u8ca0\u64d4\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.admonition,{title:"\u4f7f\u7528 FIFO \u7684\u597d\u8655",type:"info",children:(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"\u555f\u7528 FIFO \u5f8c,\u53ea\u6709\u7576 FIFO \u4e2d\u7d2f\u7a4d\u4e86\u4e00\u5b9a\u6578\u91cf\u7684\u8cc7\u6599\u6216\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"}),"\n",(0,r.jsx)(e.li,{children:"\u9019\u7a2e\u65b9\u5f0f\u53ef\u4ee5\u6e1b\u5c11\u4e2d\u65b7\u7684\u983b\u7387,\u964d\u4f4e CPU \u7684\u8ca0\u64d4\u3002"}),"\n",(0,r.jsx)(e.li,{children:"FIFO \u63d0\u4f9b\u4e86\u7de9\u885d\u5340,\u53ef\u4ee5\u66ab\u5b58\u4e00\u5b9a\u91cf\u7684\u8cc7\u6599,\u907f\u514d\u8cc7\u6599\u4e1f\u5931\u3002"}),"\n"]})}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u555f\u7528 FIFO \u7684\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"// \u555f\u7528 FIFO\nuart_set_fifo_enabled(UART_ID, true);\n\n// \u8a2d\u5b9a FIFO \u7684\u6df1\u5ea6\nuart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_enabled()"})," \u51fd\u5f0f\u555f\u7528\u4e86 UART \u7684 FIFO \u529f\u80fd,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_set_fifo_threshold()"})," \u51fd\u5f0f\u8a2d\u5b9a\u4e86 FIFO \u7684\u6df1\u5ea6\u3002\u555f\u7528 FIFO \u5f8c,\u7576 FIFO \u4e2d\u7d2f\u7a4d\u7684\u8cc7\u6599\u91cf\u9054\u5230\u8a2d\u5b9a\u7684\u95be\u503c\u6642,\u624d\u6703\u89f8\u767c\u4e2d\u65b7\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536",children:"\u8cc7\u6599\u767c\u9001\u548c\u63a5\u6536"}),"\n",(0,r.jsx)(e.p,{children:"\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u51fd\u5f0f\u4f86\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599:"}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u55ae\u500b\u5b57\u5143",children:"\u767c\u9001\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_putc(UART_ID, char_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u767c\u9001\u5b57\u4e32",children:"\u767c\u9001\u5b57\u4e32"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uart_puts(UART_ID, string_to_send);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u63a5\u6536\u55ae\u500b\u5b57\u5143",children:"\u63a5\u6536\u55ae\u500b\u5b57\u5143"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"uint8_t received_char = uart_getc(UART_ID);\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_readable(UART_ID)) {\n // \u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsx)(e.h3,{id:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599",children:"\u6aa2\u67e5\u662f\u5426\u53ef\u4ee5\u5beb\u5165\u8cc7\u6599"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:"if (uart_is_writable(UART_ID)) {\n // \u53ef\u4ee5\u5beb\u5165\u8cc7\u6599\n // ...\n}\n"})}),"\n",(0,r.jsxs)(e.p,{children:["\u900f\u904e\u9019\u4e9b\u51fd\u5f0f,\u6211\u5011\u53ef\u4ee5\u65b9\u4fbf\u5730\u767c\u9001\u548c\u63a5\u6536 UART \u8cc7\u6599\u3002\u5728\u767c\u9001\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_putc()"})," \u767c\u9001\u55ae\u500b\u5b57\u5143,\u6216\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_puts()"})," \u767c\u9001\u5b57\u4e32\u3002\u5728\u63a5\u6536\u8cc7\u6599\u6642,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_getc()"})," \u63a5\u6536\u55ae\u500b\u5b57\u5143,\u4e26\u4f7f\u7528 ",(0,r.jsx)(e.code,{children:"uart_is_readable()"})," \u6aa2\u67e5\u662f\u5426\u6709\u53ef\u8b80\u53d6\u7684\u8cc7\u6599\u3002"]}),"\n",(0,r.jsx)(e.h2,{id:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b",children:"\u5be6\u969b\u61c9\u7528\u7bc4\u4f8b"}),"\n",(0,r.jsx)(e.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u4f7f\u7528 UART \u63a7\u5236 LED \u7684\u7bc4\u4f8b:"}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-c",children:'#include "pico/stdlib.h"\n#include "hardware/uart.h"\n#include "hardware/irq.h"\n\n#define UART_ID uart0\n#define BAUD_RATE 115200\n#define DATA_BITS 8\n#define STOP_BITS 1\n#define PARITY UART_PARITY_NONE\n\n#define UART_TX_PIN 0\n#define UART_RX_PIN 1\n\n#define LED_PIN 25\n\nvoid on_uart_rx() {\n while (uart_is_readable(UART_ID)) {\n uint8_t ch = uart_getc(UART_ID);\n switch (ch) {\n case \'o\':\n gpio_put(LED_PIN, 1);\n uart_puts(UART_ID, "LED ON\\n");\n break;\n case \'f\':\n gpio_put(LED_PIN, 0);\n uart_puts(UART_ID, "LED OFF\\n");\n break;\n default:\n uart_puts(UART_ID, "Invalid command\\n");\n break;\n }\n }\n}\n\nint main() {\n // \u521d\u59cb\u5316 UART \u548c LED\n uart_init(UART_ID, BAUD_RATE);\n gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);\n gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);\n uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);\n \n gpio_init(LED_PIN);\n gpio_set_dir(LED_PIN, GPIO_OUT);\n \n // \u8a2d\u5b9a RX \u4e2d\u65b7\n int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;\n irq_set_exclusive_handler(UART_IRQ, on_uart_rx);\n irq_set_enabled(UART_IRQ, true);\n uart_set_irq_enables(UART_ID, true, false);\n \n uart_puts(UART_ID, "UART LED Control\\n");\n uart_puts(UART_ID, "Commands: \'o\' - LED ON, \'f\' - LED OFF\\n");\n \n while (1) {\n tight_loop_contents();\n }\n}\n'})}),"\n",(0,r.jsx)(e.p,{children:'\u5728\u9019\u500b\u7bc4\u4f8b\u4e2d,\u6211\u5011\u4f7f\u7528 UART \u63a5\u6536\u6307\u4ee4,\u4e26\u6839\u64da\u63a5\u6536\u5230\u7684\u6307\u4ee4\u63a7\u5236 LED \u7684\u4eae\u6ec5\u3002\u7576\u63a5\u6536\u5230\u5b57\u5143 \'o\' \u6642,LED \u6703\u4eae\u8d77,\u4e26\u56de\u50b3 "LED ON" \u7684\u8a0a\u606f;\u7576\u63a5\u6536\u5230\u5b57\u5143 \'f\' \u6642,LED \u6703\u7184\u6ec5,\u4e26\u56de\u50b3 "LED OFF" \u7684\u8a0a\u606f\u3002\u5982\u679c\u63a5\u6536\u5230\u5176\u4ed6\u5b57\u5143,\u5247\u56de\u50b3 "Invalid command" \u7684\u8a0a\u606f\u3002'}),"\n",(0,r.jsx)(e.p,{children:"\u900f\u904e\u9019\u7a2e\u65b9\u5f0f,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528 UART \u767c\u9001\u7c21\u55ae\u7684\u6307\u4ee4\u4f86\u63a7\u5236 RP2040 \u4e0a\u7684 LED,\u5be6\u73fe\u9060\u7aef\u63a7\u5236\u7684\u529f\u80fd\u3002"})]})}function o(n={}){const{wrapper:e}={...(0,t.R)(),...n.components};return e?(0,r.jsx)(e,{...n,children:(0,r.jsx)(_,{...n})}):_(n)}},8453:(n,e,i)=>{i.d(e,{R:()=>a,x:()=>s});var r=i(6540);const t={},l=r.createContext(t);function a(n){const e=r.useContext(l);return r.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:a(n.components),r.createElement(l.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/86154fac.bc6ad57a.js b/zh-hk/assets/js/86154fac.bc6ad57a.js new file mode 100644 index 000000000..db7fcf56d --- /dev/null +++ b/zh-hk/assets/js/86154fac.bc6ad57a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3085],{5683:e=>{e.exports=JSON.parse('{"tag":{"label":"embedded systems","permalink":"/zh-hk/tags/embedded-systems","allTagsPath":"/zh-hk/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/873234d7.574ddb85.js b/zh-hk/assets/js/873234d7.574ddb85.js new file mode 100644 index 000000000..c689dcf52 --- /dev/null +++ b/zh-hk/assets/js/873234d7.574ddb85.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[809],{7644:(n,i,e)=>{e.r(i),e.d(i,{assets:()=>c,contentTitle:()=>o,default:()=>a,frontMatter:()=>r,metadata:()=>t,toc:()=>d});var s=e(4848),l=e(8453);const r={slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},o="RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",t={id:"micro-controladores/RP2040/mastering-pio-programming",title:"Mastering PIO Programming on RP2040",description:"1. PIO \u7c21\u4ecb",source:"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/mastering-pio-programming-rp2040",permalink:"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/mastering-pio-programming.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"PIO",permalink:"/zh-hk/tags/pio"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/zh-hk/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720686461e3,frontMatter:{slug:"mastering-pio-programming-rp2040",title:"Mastering PIO Programming on RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","PIO","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Timer and Alarm Usage in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},next:{title:"Implementing UART (TX )with PIO on RP2040",permalink:"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"}},c={},d=[{value:"1. PIO \u7c21\u4ecb",id:"1-pio-\u7c21\u4ecb",level:2},{value:"2. LED \u9583\u720d\u793a\u4f8b",id:"2-led-\u9583\u720d\u793a\u4f8b",level:2},{value:"2.1 PIO \u7a0b\u5e8f (blink.pio)",id:"21-pio-\u7a0b\u5e8f-blinkpio",level:3},{value:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)",id:"22-\u4e3b\u7a0b\u5e8f-maincpp",level:3},{value:"\u4ee3\u78bc\u89e3\u91cb\uff1a",id:"\u4ee3\u78bc\u89e3\u91cb",level:3},{value:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790",id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",level:2},{value:"4. \u983b\u7387\u8a08\u7b97",id:"4-\u983b\u7387\u8a08\u7b97",level:2},{value:"5. PIO \u7de8\u7a0b\u9650\u5236",id:"5-pio-\u7de8\u7a0b\u9650\u5236",level:2},{value:"6. \u512a\u5316\u6280\u5de7",id:"6-\u512a\u5316\u6280\u5de7",level:2},{value:"7. \u6ce8\u610f\u4e8b\u9805",id:"7-\u6ce8\u610f\u4e8b\u9805",level:2},{value:"\u5b8c\u6574\u4ee3\u7801",id:"\u5b8c\u6574\u4ee3\u7801",level:2}];function p(n){const i={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"rp2040-pio-\u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\u5f9e-led-\u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236",children:"RP2040 PIO \u7de8\u7a0b\u6df1\u5165\u63a2\u7d22\uff1a\u5f9e LED \u9583\u720d\u5230\u7cbe\u78ba\u6642\u5e8f\u63a7\u5236"}),"\n",(0,s.jsx)(i.h2,{id:"1-pio-\u7c21\u4ecb",children:"1. PIO \u7c21\u4ecb"}),"\n",(0,s.jsx)(i.p,{children:"\u53ef\u7de8\u7a0b\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u662f RP2040 \u6676\u7247\u7684\u4e00\u500b\u5f37\u5927\u7279\u6027\u3002\u5b83\u5141\u8a31\u958b\u767c\u8005\u5275\u5efa\u81ea\u5b9a\u7fa9\u7684\u6578\u5b57\u63a5\u53e3\uff0c\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u5e8f\u63a7\u5236\u3002\u6bcf\u500b RP2040 \u6709\u5169\u500b PIO \u584a\uff0c\u6bcf\u500b\u584a\u6709\u56db\u500b\u72c0\u614b\u6a5f\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"2-led-\u9583\u720d\u793a\u4f8b",children:"2. LED \u9583\u720d\u793a\u4f8b"}),"\n",(0,s.jsx)(i.h3,{id:"21-pio-\u7a0b\u5e8f-blinkpio",children:"2.1 PIO \u7a0b\u5e8f (blink.pio)"}),"\n",(0,s.jsx)(i.p,{children:"\u8b93\u6211\u5011\u5f9e\u4e00\u500b\u7cbe\u78ba\u63a7\u5236\u7684 LED \u9583\u720d\u7a0b\u5e8f\u958b\u59cb\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{children:".program blink\n.wrap_target\n set pins, 1 [31] ; \u6253\u958b LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n set pins, 0 [31] ; \u95dc\u9589 LED \u4e26\u7b49\u5f85 31 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [31] ; \u7b49\u5f85 32 \u500b\u9031\u671f\n nop [19] ; \u7b49\u5f85 20 \u500b\u9031\u671f\n.wrap\n\n% c-sdk {\n// Helper function to initialize PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {\n pio_sm_config c = blink_program_get_default_config(offset);\n pio_gpio_init(pio, pin);\n sm_config_set_set_pins(&c, pin, 1);\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n float div = clock_get_hz(clk_sys) / freq;\n sm_config_set_clkdiv(&c, div);\n pio_sm_init(pio, sm, offset, &c);\n}\n%}\n"})}),"\n",(0,s.jsx)(i.h3,{id:"22-\u4e3b\u7a0b\u5e8f-maincpp",children:"2.2 \u4e3b\u7a0b\u5e8f (main.cpp)"}),"\n",(0,s.jsx)(i.p,{children:"\u73fe\u5728\u8b93\u6211\u5011\u770b\u770b\u5982\u4f55\u5728\u4e3b\u7a0b\u5e8f\u4e2d\u8a2d\u7f6e\u548c\u904b\u884c\u9019\u500b PIO \u7a0b\u5e8f\uff1a"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-cpp",children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "blink.pio.h"\n\nint main() {\n static const uint LED_PIN = 25;\n static const float PIO_FREQ = 2000; // \u8a2d\u7f6e PIO \u983b\u7387\u70ba 2000 Hz\n\n // \u9078\u64c7 PIO \u5be6\u4f8b\uff080 \u6216 1\uff09\n PIO pio = pio0;\n\n // \u7372\u53d6 PIO \u7a0b\u5e8f\u4e2d\u7684\u7b2c\u4e00\u500b\u7a7a\u9592\u72c0\u614b\u6a5f\n uint sm = pio_claim_unused_sm(pio, true);\n\n // \u5c07 PIO \u7a0b\u5e8f\u6dfb\u52a0\u5230 PIO \u6307\u4ee4\u5167\u5b58\u4e2d\n uint offset = pio_add_program(pio, &blink_program);\n\n // \u8a08\u7b97 PIO \u6642\u9418\u5206\u983b\u5668\n float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;\n\n // \u4f7f\u7528\u6211\u5011\u7684 .pio \u6587\u4ef6\u4e2d\u7684\u8f14\u52a9\u51fd\u6578\u521d\u59cb\u5316\u7a0b\u5e8f\n blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);\n\n // \u555f\u52d5 PIO \u7a0b\u5e8f\n pio_sm_set_enabled(pio, sm, true);\n\n // \u4e3b\u5faa\u74b0\u4fdd\u6301\u7a0b\u5e8f\u904b\u884c\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.h3,{id:"\u4ee3\u78bc\u89e3\u91cb",children:"\u4ee3\u78bc\u89e3\u91cb\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"PIO_FREQ"})," \u8a2d\u7f6e\u70ba 2000 Hz\uff0c\u9019\u6c7a\u5b9a\u4e86 PIO \u72c0\u614b\u6a5f\u7684\u904b\u884c\u901f\u5ea6\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"blink_program_init"})," \u51fd\u6578\u7528\u65bc\u8a2d\u7f6e PIO \u72c0\u614b\u6a5f\uff0c\u5305\u62ec\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u5668\u3002"]}),"\n",(0,s.jsxs)(i.li,{children:["\u6642\u9418\u5206\u983b\u5668\u7684\u8a08\u7b97\uff1a",(0,s.jsx)(i.code,{children:"div = clock_get_hz(clk_sys) / PIO_FREQ"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"clock_get_hz(clk_sys)"})," \u7372\u53d6\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff08\u901a\u5e38\u70ba 125 MHz\uff09"]}),"\n",(0,s.jsx)(i.li,{children:"\u5206\u983b\u5f8c\uff0cPIO \u5c07\u4ee5 2000 Hz \u7684\u983b\u7387\u904b\u884c"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"3-pio-\u6307\u4ee4\u9031\u671f\u5206\u6790",children:"3. PIO \u6307\u4ee4\u9031\u671f\u5206\u6790"}),"\n",(0,s.jsx)(i.p,{children:"\u6bcf\u689d PIO \u6307\u4ee4\u7684\u57f7\u884c\u9031\u671f\u7531\u5169\u90e8\u5206\u7d44\u6210\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u672c\u8eab\u7684\u57f7\u884c\uff081 \u500b\u9031\u671f\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6307\u4ee4\u5f8c\u7684\u984d\u5916\u5ef6\u9072\uff080 \u5230 31 \u500b\u9031\u671f\uff09"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u4f8b\u5982\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"set pins, 1 [31]"})," \u7e3d\u5171\u57f7\u884c 32 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c31 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [31]"})," \u4e5f\u57f7\u884c 32 \u500b\u9031\u671f"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"nop [19]"})," \u57f7\u884c 20 \u500b\u9031\u671f\uff1a1 \u500b\u7528\u65bc\u6307\u4ee4\u57f7\u884c\uff0c19 \u500b\u7528\u65bc\u5ef6\u9072"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"4-\u983b\u7387\u8a08\u7b97",children:"4. \u983b\u7387\u8a08\u7b97"}),"\n",(0,s.jsx)(i.p,{children:"\u6839\u64da\u6211\u5011\u7684\u8a2d\u7f6e\uff0cPIO \u6642\u9418\u983b\u7387\u70ba 2000 Hz\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"LED \u958b\u555f\u72c0\u614b\uff1a(1 + 14) * 32 + 20 = 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"LED \u95dc\u9589\u72c0\u614b\uff1a\u540c\u6a23\u662f 500 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u5b8c\u6574\u5faa\u74b0\uff1a500 + 500 = 1000 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:"\u9583\u720d\u983b\u7387\uff1a2000 Hz / 1000 = 2 Hz"}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"\u9019\u89e3\u91cb\u4e86\u70ba\u4ec0\u9ebc LED \u4ee5 2 Hz \u7684\u983b\u7387\u9583\u720d\uff08\u6bcf\u79d2\u9583\u720d\u5169\u6b21\uff09\u3002"}),"\n",(0,s.jsx)(i.h2,{id:"5-pio-\u7de8\u7a0b\u9650\u5236",children:"5. PIO \u7de8\u7a0b\u9650\u5236"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808 \u2264 31"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u4f54\u7528 5 \u4f4d"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236\uff1a"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0\uff1a\u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"6-\u512a\u5316\u6280\u5de7",children:"6. \u512a\u5316\u6280\u5de7"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"\u5229\u7528\u5faa\u74b0\u6e1b\u5c11\u6307\u4ee4\u6578\u91cf"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\uff08side-set\uff09\u529f\u80fd\u540c\u6642\u57f7\u884c GPIO \u64cd\u4f5c\u548c\u5176\u4ed6\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:"\u9069\u7576\u8a2d\u7f6e\u6642\u9418\u5206\u983b\u4ee5\u9054\u5230\u6240\u9700\u7684\u6642\u5e8f"}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"7-\u6ce8\u610f\u4e8b\u9805",children:"7. \u6ce8\u610f\u4e8b\u9805"}),"\n",(0,s.jsx)(i.p,{children:"\u5728\u4f7f\u7528 RP2040 \u7684 PIO \u9032\u884c\u7de8\u7a0b\u6642\uff0c\u9700\u8981\u6ce8\u610f\u4ee5\u4e0b\u5e7e\u500b\u91cd\u8981\u7684\u9650\u5236\u548c\u8003\u616e\u56e0\u7d20\uff1a"}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6307\u4ee4\u5ef6\u9072\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u689d\u6307\u4ee4\u7684\u5ef6\u9072\u5fc5\u9808\u5c0f\u65bc\u6216\u7b49\u65bc 31 \u500b\u9031\u671f"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "instruction delay must be < = 31"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u5ef6\u9072\u503c\u5728\u6307\u4ee4\u7de8\u78bc\u4e2d\u50c5\u4f54\u7528 5 \u4f4d\u4e8c\u9032\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u7a0b\u5e8f\u5927\u5c0f\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u7a0b\u5e8f\u6700\u591a\u53ea\u80fd\u5305\u542b 32 \u689d\u6307\u4ee4"}),"\n",(0,s.jsx)(i.li,{children:'\u932f\u8aa4\u4fe1\u606f: "program instruction limit of 32 instruction(s) exceeded"'}),"\n",(0,s.jsx)(i.li,{children:"\u539f\u56e0: \u786c\u4ef6\u8a2d\u8a08\u9650\u5236\uff0c\u6bcf\u500b PIO \u584a\u6709 32 \u500b\u6307\u4ee4\u69fd"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u6642\u9418\u5206\u983b\u5668 (div) \u7bc4\u570d"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6709\u6548\u7bc4\u570d: 1.0 \u5230 65536.0"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5c0f\u503c 1.0 \u5c0d\u61c9\u6700\u5feb\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6700\u5927\u503c 65536.0 \u5c0d\u61c9\u6700\u6162\u901f\u5ea6\uff08\u7cfb\u7d71\u6642\u9418\u983b\u7387\u9664\u4ee5 65536\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u6ce8\u610f: \u7576\u8a08\u7b97\u51fa\u7684 div \u503c\u8d85\u51fa\u6b64\u7bc4\u570d\u6642\uff0c\u5be6\u969b\u904b\u884c\u983b\u7387\u53ef\u80fd\u8207\u9810\u671f\u4e0d\u7b26"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"GPIO \u5f15\u8173\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u53ef\u4ee5\u8a2a\u554f\u7684 GPIO \u5f15\u8173\u7bc4\u570d: 0-29"}),"\n",(0,s.jsx)(i.li,{children:"\u67d0\u4e9b\u7279\u6b8a\u529f\u80fd\u5f15\u8173\u53ef\u80fd\u6709\u984d\u5916\u9650\u5236"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u72c0\u614b\u6a5f\u6578\u91cf"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b PIO \u584a\u6709 4 \u500b\u7368\u7acb\u7684\u72c0\u614b\u6a5f"}),"\n",(0,s.jsx)(i.li,{children:"\u7e3d\u5171\u6709 8 \u500b\u72c0\u614b\u6a5f\uff082 \u500b PIO \u584a * 4 \u500b\u72c0\u614b\u6a5f\uff09"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"FIFO \u6df1\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6bcf\u500b\u72c0\u614b\u6a5f\u6709 4 \u500b\u5b57\uff0832 \u4f4d\uff09\u7684 TX FIFO \u548c 4 \u500b\u5b57\u7684 RX FIFO"}),"\n",(0,s.jsx)(i.li,{children:"\u5728\u6578\u64da\u5bc6\u96c6\u578b\u61c9\u7528\u4e2d\u9700\u8981\u8b39\u614e\u7ba1\u7406 FIFO"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u57f7\u884c\u901f\u5ea6\u8003\u616e"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u6307\u4ee4\u57f7\u884c\u901f\u5ea6\u53ef\u4ee5\u975e\u5e38\u5feb\uff08\u6700\u9ad8\u53ef\u9054\u7cfb\u7d71\u6642\u9418\u983b\u7387\uff09"}),"\n",(0,s.jsx)(i.li,{children:"\u9700\u8981\u4ed4\u7d30\u8a08\u7b97\u6642\u5e8f\u4ee5\u78ba\u4fdd\u9810\u671f\u7684\u64cd\u4f5c\u983b\u7387"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8207 CPU \u4ea4\u4e92"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u64cd\u4f5c\u662f\u7368\u7acb\u65bc CPU \u7684\uff0c\u9700\u8981\u6b63\u78ba\u914d\u7f6e\u4e2d\u65b7\u548c DMA \u4ee5\u5be6\u73fe\u9ad8\u6548\u7684\u6578\u64da\u4ea4\u63db"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u5074\u8a2d\uff08Side-set\uff09\u9650\u5236"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"\u6700\u591a\u53ef\u4ee5\u4f7f\u7528 5 \u500b\u5074\u8a2d\u4f4d"}),"\n",(0,s.jsx)(i.li,{children:"\u4f7f\u7528\u5074\u8a2d\u6703\u6e1b\u5c11\u53ef\u7528\u65bc\u5ef6\u9072\u7684\u4f4d\u6578"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"\u8abf\u8a66\u96e3\u5ea6"}),":"]}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"PIO \u7a0b\u5e8f\u96e3\u4ee5\u76f4\u63a5\u8abf\u8a66"}),"\n",(0,s.jsx)(i.li,{children:"\u5efa\u8b70\u4f7f\u7528\u6a21\u64ec\u5668\u6216\u793a\u6ce2\u5668\u7b49\u5de5\u5177\u8f14\u52a9\u958b\u767c\u548c\u6e2c\u8a66"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"\u5b8c\u6574\u4ee3\u7801",children:"\u5b8c\u6574\u4ee3\u7801"}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="main.cpp"',children:'#include "pico/stdlib.h"\n#include "hardware/pio.h"\n#include "hardware/clocks.h"\n#include "hello.pio.h"\n\nint main() {\n\n static const uint led_pin = 25;\n static const float pio_freq = 2000;\n\n // Choose PIO instance (0 or 1)\n PIO pio = pio0;\n\n // Get first free state machine in PIO 0\n uint sm = pio_claim_unused_sm(pio, true);\n\n // Add PIO program to PIO instruction memory. SDK will find location and\n // return with the memory offset of the program.\n uint offset = pio_add_program(pio, &blink_program);\n\n // Calculate the PIO clock divider\n float div = (float)clock_get_hz(clk_sys) / pio_freq;\n\n // Initialize the program using the helper function in our .pio file\n blink_program_init(pio, sm, offset, led_pin, div); //div\u6700\u5927\u5141\u8bb8\u6570\u503c65535\n\n // Start running our PIO program in the state machine\n pio_sm_set_enabled(pio, sm, true);\n\n // Do nothing\n while (true) {\n sleep_ms(1000);\n }\n}\n'})}),"\n",(0,s.jsx)(i.pre,{children:(0,s.jsx)(i.code,{className:"language-c++",metastring:'title="hello.pio"',children:".program blink\n\n; Turn on LED for 100 cycles and off for 100 cycles.\n; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)\n\n; instruction delay must be <= 31\n; program instruction limit of 32 instruction(s) exceeded\n.wrap_target\n set pins, 1 [31] ; Turn LED on and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n set pins, 0 [31] ; Turn LED off and wait another 19 cycles\n nop [31]\n nop [31]\n\n nop [31]\n nop [31]\n nop [31]\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n \n nop [31] ; Wait 20 cycles\n nop [31] ; Wait 20 cycles\n nop [31] \n \n nop [19] \n\n.wrap\n\n% c-sdk {\n\n// Helper function (for use in C program) to initialize this PIO program\nvoid blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {\n\n // Sets up state machine and wrap target. This function is automatically\n // generated in blink.pio.h.\n pio_sm_config c = blink_program_get_default_config(offset);\n\n // Allow PIO to control GPIO pin (as output)\n pio_gpio_init(pio, pin);\n\n // Connect pin to SET pin (control with 'set' instruction)\n sm_config_set_set_pins(&c, pin, 1);\n\n // Set the pin direction to output (in PIO)\n pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);\n \n // Set the clock divider for the state machine\n sm_config_set_clkdiv(&c, div);\n\n // Load configuration and jump to start of the program\n pio_sm_init(pio, sm, offset, &c);\n}\n\n%}\n"})})]})}function a(n={}){const{wrapper:i}={...(0,l.R)(),...n.components};return i?(0,s.jsx)(i,{...n,children:(0,s.jsx)(p,{...n})}):p(n)}},8453:(n,i,e)=>{e.d(i,{R:()=>o,x:()=>t});var s=e(6540);const l={},r=s.createContext(l);function o(n){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof n?n(i):{...i,...n}}),[i,n])}function t(n){let i;return i=n.disableParentContext?"function"==typeof n.components?n.components(l):n.components||l:o(n.components),s.createElement(r.Provider,{value:i},n.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/87ac765c.7896e8da.js b/zh-hk/assets/js/87ac765c.7896e8da.js new file mode 100644 index 000000000..8baccde5f --- /dev/null +++ b/zh-hk/assets/js/87ac765c.7896e8da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4143],{9704:e=>{e.exports=JSON.parse('{"tags":[{"label":"RP2040","permalink":"/zh-hk/tags/rp-2040","count":6},{"label":"PIO","permalink":"/zh-hk/tags/pio","count":3},{"label":"LED Control","permalink":"/zh-hk/tags/led-control","count":1},{"label":"Resource Management","permalink":"/zh-hk/tags/resource-management","count":1},{"label":"Raspberry Pi Pico","permalink":"/zh-hk/tags/raspberry-pi-pico","count":6},{"label":"embedded systems","permalink":"/zh-hk/tags/embedded-systems","count":6},{"label":"state machine optimization","permalink":"/zh-hk/tags/state-machine-optimization","count":1},{"label":"UART","permalink":"/zh-hk/tags/uart","count":2},{"label":"serial communication","permalink":"/zh-hk/tags/serial-communication","count":2},{"label":"PWM","permalink":"/zh-hk/tags/pwm","count":1},{"label":"timer","permalink":"/zh-hk/tags/timer","count":1},{"label":"alarm","permalink":"/zh-hk/tags/alarm","count":1},{"label":"interrupts","permalink":"/zh-hk/tags/interrupts","count":1},{"label":"stm32","permalink":"/zh-hk/tags/stm-32","count":1},{"label":"usb","permalink":"/zh-hk/tags/usb","count":1},{"label":"cdc","permalink":"/zh-hk/tags/cdc","count":1}]}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/8d9dbdbb.5e072c3f.js b/zh-hk/assets/js/8d9dbdbb.5e072c3f.js new file mode 100644 index 000000000..bd23fc9a4 --- /dev/null +++ b/zh-hk/assets/js/8d9dbdbb.5e072c3f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9690],{4035:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>x,frontMatter:()=>o,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const o={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},l="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/zh-hk/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!0,label:"misc",permalink:"/zh-hk/blog/tags/misc"},{inline:!0,label:"Linux",permalink:"/zh-hk/blog/tags/linux"},{inline:!0,label:"Linux",permalink:"/zh-hk/blog/tags/linux"},{inline:!0,label:"Docker",permalink:"/zh-hk/blog/tags/docker"},{inline:!0,label:"\u8edf\u4ef6",permalink:"/zh-hk/blog/tags/\u8edf\u4ef6"},{inline:!0,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/zh-hk/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>t});var c=r(6540);const i={},o=c.createContext(i);function l(e){const n=c.useContext(o);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),c.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/91cd996f.f4ac944c.js b/zh-hk/assets/js/91cd996f.f4ac944c.js new file mode 100644 index 000000000..26ea61ad1 --- /dev/null +++ b/zh-hk/assets/js/91cd996f.f4ac944c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6470],{2631:e=>{e.exports=JSON.parse('{"tag":{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/9e4087bc.1e2fe8e5.js b/zh-hk/assets/js/9e4087bc.1e2fe8e5.js new file mode 100644 index 000000000..410752cdc --- /dev/null +++ b/zh-hk/assets/js/9e4087bc.1e2fe8e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2711],{9331:(e,r,t)=>{t.r(r),t.d(r,{default:()=>m});t(6540);var a=t(8774),n=t(1312),s=t(1213),i=t(6266),c=t(5733),l=t(1107),o=t(4848);function d(e){let{year:r,posts:t}=e;const n=(0,i.i)({day:"numeric",month:"long",timeZone:"UTC"});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(l.A,{as:"h3",id:r,children:r}),(0,o.jsx)("ul",{children:t.map((e=>{return(0,o.jsx)("li",{children:(0,o.jsxs)(a.A,{to:e.metadata.permalink,children:[(r=e.metadata.date,n.format(new Date(r)))," - ",e.metadata.title]})},e.metadata.date);var r}))})]})}function h(e){let{years:r}=e;return(0,o.jsx)("section",{className:"margin-vert--lg",children:(0,o.jsx)("div",{className:"container",children:(0,o.jsx)("div",{className:"row",children:r.map(((e,r)=>(0,o.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,o.jsx)(d,{...e})},r)))})})})}function m(e){let{archive:r}=e;const t=(0,n.T)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),a=(0,n.T)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const r=e.reduce(((e,r)=>{const t=r.metadata.date.split("-")[0],a=e.get(t)??[];return e.set(t,[r,...a])}),new Map);return Array.from(r,(e=>{let[r,t]=e;return{year:r,posts:t}}))}(r.blogPosts);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.be,{title:t,description:a}),(0,o.jsxs)(c.A,{children:[(0,o.jsx)("header",{className:"hero hero--primary",children:(0,o.jsxs)("div",{className:"container",children:[(0,o.jsx)(l.A,{as:"h1",className:"hero__title",children:t}),(0,o.jsx)("p",{className:"hero__subtitle",children:a})]})}),(0,o.jsx)("main",{children:i.length>0&&(0,o.jsx)(h,{years:i})})]})]})}},6266:(e,r,t)=>{t.d(r,{i:()=>n});var a=t(4586);function n(e){void 0===e&&(e={});const{i18n:{currentLocale:r}}=(0,a.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:r}}=(0,a.A)();return r[e].calendar}();return new Intl.DateTimeFormat(r,{calendar:t,...e})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/9fab635f.2440005c.js b/zh-hk/assets/js/9fab635f.2440005c.js new file mode 100644 index 000000000..35f27fa49 --- /dev/null +++ b/zh-hk/assets/js/9fab635f.2440005c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9071],{6377:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>t,default:()=>o,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=i(4848),l=i(8453);const a={slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},t=void 0,s={id:"micro-controladores/RP2040/rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",description:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002",source:"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",sourceDirName:"micro-controladores/RP2040",slug:"/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",tags:[{inline:!0,label:"RP2040",permalink:"/zh-hk/tags/rp-2040"},{inline:!0,label:"timer",permalink:"/zh-hk/tags/timer"},{inline:!0,label:"alarm",permalink:"/zh-hk/tags/alarm"},{inline:!0,label:"Raspberry Pi Pico",permalink:"/zh-hk/tags/raspberry-pi-pico"},{inline:!0,label:"embedded systems",permalink:"/zh-hk/tags/embedded-systems"}],version:"current",lastUpdatedAt:1720785172e3,frontMatter:{slug:"rp2040-timer-and-alarm-usage",title:"Timer and Alarm Usage in RP2040",authors:[{name:"w0x7ce",title:"Embedded Systems Engineer",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["RP2040","timer","alarm","Raspberry Pi Pico","embedded systems"]},sidebar:"tutorialSidebar",previous:{title:"Detailed Explanation of PWM Usage and Examples in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},next:{title:"Mastering PIO Programming on RP2040",permalink:"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"}},c={},d=[{value:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",level:2},{value:"\u4ee3\u78bc\u793a\u4f8b",id:"\u4ee3\u78bc\u793a\u4f8b",level:2},{value:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",level:3},{value:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",level:3},{value:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09",id:"\u4f7f\u7528\u9b27\u9418alarm",level:3},{value:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09",id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",level:3},{value:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",level:2},{value:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",level:2},{value:"\u7e3d\u7d50",id:"\u7e3d\u7d50",level:2}];function m(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5",children:"\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5"}),"\n",(0,r.jsx)(n.p,{children:"\u5728 RP2040 \u4e2d,\u8a08\u6642\u5668\u548c\u9b27\u9418\u662f\u5169\u500b\u76f8\u95dc\u4f46\u53c8\u6709\u6240\u5340\u5225\u7684\u6982\u5ff5\u3002"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u8a08\u6642\u5668\uff08Timer\uff09: \u8a08\u6642\u5668\u662f\u4e00\u7a2e\u7528\u65bc\u6e2c\u91cf\u6642\u9593\u9593\u9694\u7684\u786c\u9ad4\u8a2d\u5099\u3002\u5728 RP2040 \u4e2d,\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u8a08\u6642\u5668\u4f86\u5be6\u73fe\u7cbe\u78ba\u7684\u6642\u9593\u63a7\u5236\u548c\u5b9a\u6642\u64cd\u4f5c\u3002\u8a08\u6642\u5668\u53ef\u4ee5\u88ab\u914d\u7f6e\u70ba\u5728\u7279\u5b9a\u6642\u9593\u9593\u9694\u5f8c\u89f8\u767c\u4e2d\u65b7,\u4ee5\u57f7\u884c\u76f8\u61c9\u7684\u64cd\u4f5c\u3002"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"\u9b27\u9418\uff08Alarm\uff09: \u9b27\u9418\u662f\u57fa\u65bc\u8a08\u6642\u5668\u7684\u4e00\u7a2e\u529f\u80fd\u64f4\u5c55\u3002\u5b83\u5141\u8a31\u6211\u5011\u5728\u6307\u5b9a\u7684\u6642\u9593\u9ede\u89f8\u767c\u4e00\u6b21\u6027\u7684\u64cd\u4f5c\u3002\u9b27\u9418\u901a\u5e38\u7528\u65bc\u5728\u672a\u4f86\u7684\u67d0\u500b\u6642\u9593\u9ede\u57f7\u884c\u7279\u5b9a\u7684\u4efb\u52d9,\u4f8b\u5982\u5728\u5ef6\u9072\u4e00\u6bb5\u6642\u9593\u5f8c\u57f7\u884c\u67d0\u500b\u51fd\u6578\u3002"}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u4ee3\u78bc\u793a\u4f8b",children:"\u4ee3\u78bc\u793a\u4f8b"}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b\u4f86\u8aaa\u660e\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvolatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n\nbool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n\nint main() {\n stdio_init_all();\n printf("Hello Timer!\\n");\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n printf("Done\\n");\n return 0;\n}\n'})}),"\n",(0,r.jsx)(n.p,{children:"\u8b93\u6211\u5011\u9010\u6b65\u5206\u6790\u4ee3\u78bc\u7684\u5404\u500b\u90e8\u5206:"}),"\n",(0,r.jsx)(n.h3,{id:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578",children:"\u521d\u59cb\u5316\u548c\u9b27\u9418\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'volatile bool timer_fired = false;\n\nint64_t alarm_callback(alarm_id_t id, void *user_data) {\n printf("Timer %d fired!\\n", (int) id);\n timer_fired = true;\n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b\u5168\u5c40\u8b8a\u91cf ",(0,r.jsx)(n.code,{children:"timer_fired"}),",\u7528\u65bc\u6a19\u8a18\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"alarm_callback"})," \u662f\u9b27\u9418\u7684\u56de\u8abf\u51fd\u6578,\u7576\u9b27\u9418\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u4e00\u689d\u6d88\u606f,\u8868\u793a\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c,\u4e26\u5c07 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"0"}),",\u8868\u793a\u4e0d\u9700\u8981\u91cd\u8907\u89f8\u767c\u6b64\u9b27\u9418\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578",children:"\u91cd\u8907\u8a08\u6642\u5668\u56de\u8abf\u51fd\u6578"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'bool repeating_timer_callback(struct repeating_timer *t) {\n printf("Repeat at %lld\\n", time_us_64());\n return true;\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u662f\u91cd\u8907\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578,\u7576\u91cd\u8907\u8a08\u6642\u5668\u89f8\u767c\u6642\u6703\u8abf\u7528\u6b64\u51fd\u6578\u3002"]}),"\n",(0,r.jsx)(n.li,{children:"\u5728\u56de\u8abf\u51fd\u6578\u4e2d,\u6211\u5011\u8f38\u51fa\u7576\u524d\u7684\u6642\u9593\u6233,\u8868\u793a\u91cd\u8907\u8a08\u6642\u5668\u5df2\u7d93\u89f8\u767c\u3002"}),"\n",(0,r.jsxs)(n.li,{children:["\u56de\u8abf\u51fd\u6578\u8fd4\u56de ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9700\u8981\u7e7c\u7e8c\u89f8\u767c\u6b64\u91cd\u8907\u8a08\u6642\u5668\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u9b27\u9418alarm",children:"\u4f7f\u7528\u9b27\u9418\uff08Alarm\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:"int main() {\n // ...\n\n // \u5728 2 \u79d2\u5f8c\u8abf\u7528 alarm_callback\n add_alarm_in_ms(2000, alarm_callback, NULL, false);\n\n // \u7b49\u5f85 alarm_callback \u8a2d\u7f6e timer_fired\n while (!timer_fired) {\n tight_loop_contents();\n }\n\n // ...\n}\n"})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u9b27\u9418,\u8a2d\u7f6e\u5728 2 \u79d2\u5f8c\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"alarm_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_alarm_in_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u662f\u5426\u91cd\u8907\u89f8\u767c\u7684\u6a19\u8a8c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u9b27\u9418\u5f8c,\u6211\u5011\u4f7f\u7528\u4e00\u500b while \u5faa\u74b0\u7b49\u5f85 ",(0,r.jsx)(n.code,{children:"timer_fired"})," \u8b8a\u91cf\u8b8a\u70ba ",(0,r.jsx)(n.code,{children:"true"}),",\u8868\u793a\u9b27\u9418\u5df2\u7d93\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"tight_loop_contents()"})," \u51fd\u6578\u7528\u65bc\u5728\u7b49\u5f85\u671f\u9593\u907f\u514d\u7de8\u8b6f\u5668\u512a\u5316\u6389\u7a7a\u5faa\u74b0\u3002"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668repeating-timer",children:"\u4f7f\u7528\u91cd\u8907\u8a08\u6642\u5668\uff08Repeating Timer\uff09"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'int main() {\n // ...\n\n // \u5275\u5efa\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8abf\u7528 repeating_timer_callback\n struct repeating_timer timer;\n add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n bool cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // \u4f7f\u7528\u8ca0\u5ef6\u9072,\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500ms \u8abf\u7528 repeating_timer_callback\n add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);\n sleep_ms(3000);\n\n cancelled = cancel_repeating_timer(&timer);\n printf("cancelled... %d\\n", cancelled);\n sleep_ms(2000);\n\n // ...\n}\n'})}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u8a2d\u7f6e\u6bcf\u9694 500 \u6beb\u79d2\u8abf\u7528\u4e00\u6b21 ",(0,r.jsx)(n.code,{children:"repeating_timer_callback"})," \u51fd\u6578\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"add_repeating_timer_ms"})," \u51fd\u6578\u7684\u53c3\u6578\u5305\u62ec\u5ef6\u9072\u6642\u9593\uff08\u4ee5\u6beb\u79d2\u70ba\u55ae\u4f4d\uff09\u3001\u56de\u8abf\u51fd\u6578\u3001\u7528\u6236\u6578\u64da\uff08\u9019\u88e1\u8a2d\u70ba NULL\uff09\u4ee5\u53ca\u4e00\u500b\u6307\u5411 ",(0,r.jsx)(n.code,{children:"repeating_timer"})," \u7d50\u69cb\u9ad4\u7684\u6307\u91dd\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u5275\u5efa\u91cd\u8907\u8a08\u6642\u5668\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"sleep_ms"})," \u51fd\u6578\u7b49\u5f85 3 \u79d2\u9418,\u671f\u9593\u91cd\u8907\u8a08\u6642\u5668\u6703\u6301\u7e8c\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u7136\u5f8c,\u6211\u5011\u4f7f\u7528 ",(0,r.jsx)(n.code,{children:"cancel_repeating_timer"})," \u51fd\u6578\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u4e26\u8f38\u51fa\u53d6\u6d88\u7684\u7d50\u679c\u3002\u6211\u5011\u518d\u6b21\u7b49\u5f85 2 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u662f\u5426\u5df2\u7d93\u505c\u6b62\u89f8\u767c\u3002"]}),"\n",(0,r.jsxs)(n.li,{children:["\u63a5\u4e0b\u4f86,\u6211\u5011\u518d\u6b21\u5275\u5efa\u4e86\u4e00\u500b\u91cd\u8907\u8a08\u6642\u5668,\u4f46\u9019\u6b21\u4f7f\u7528\u4e86\u8ca0\u7684\u5ef6\u9072\u6642\u9593 ",(0,r.jsx)(n.code,{children:"-500"}),"\u3002\u9019\u610f\u5473\u8457\u91cd\u8907\u8a08\u6642\u5668\u6703\u5728\u4e0a\u4e00\u6b21\u8abf\u7528\u7d50\u675f\u5f8c 500 \u6beb\u79d2\u518d\u6b21\u89f8\u767c,\u800c\u4e0d\u7ba1\u56de\u8abf\u51fd\u6578\u7684\u57f7\u884c\u6642\u9593\u3002\u6211\u5011\u7b49\u5f85 3 \u79d2\u9418,\u89c0\u5bdf\u91cd\u8907\u8a08\u6642\u5668\u7684\u884c\u70ba\u3002"]}),"\n",(0,r.jsx)(n.li,{children:'\u6700\u5f8c,\u6211\u5011\u518d\u6b21\u53d6\u6d88\u91cd\u8907\u8a08\u6642\u5668,\u7b49\u5f85 2 \u79d2\u9418,\u4e26\u8f38\u51fa "Done" \u8868\u793a\u7a0b\u5e8f\u57f7\u884c\u5b8c\u7562\u3002'}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668",children:"\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668"}),"\n",(0,r.jsx)(n.p,{children:"\u5982\u679c\u4f60\u60f3\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u7684\u5275\u5efa\u548c\u7ba1\u7406\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d\u3002\u9019\u6a23,\u4f60\u5c31\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u7a0b\u5e8f\u4e2d\u65b9\u4fbf\u5730\u8abf\u7528\u9019\u4e9b\u51fd\u6578,\u5be6\u73fe\u8a08\u6642\u5668\u7684\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u4ee5\u4e0b\u662f\u4e00\u500b\u7c21\u55ae\u7684\u793a\u4f8b,\u5c55\u793a\u4e86\u5982\u4f55\u5c07\u8a08\u6642\u5668\u529f\u80fd\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u4e2d:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-c",children:'#include <stdio.h>\n#include "pico/stdlib.h"\n\nvoid timer_callback(void) {\n printf("Timer triggered!\\n");\n // \u57f7\u884c\u5b9a\u6642\u4efb\u52d9\n // ...\n}\n\nvoid start_timer(uint32_t delay_ms) {\n struct repeating_timer timer;\n add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);\n}\n\nint main() {\n stdio_init_all();\n \n // \u555f\u52d5\u5b9a\u6642\u5668,\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21\n start_timer(1000);\n \n // \u57f7\u884c\u5176\u4ed6\u4efb\u52d9\n // ...\n \n return 0;\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["\u5728\u4e0a\u9762\u7684\u793a\u4f8b\u4e2d,\u6211\u5011\u5b9a\u7fa9\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"timer_callback"})," \u51fd\u6578,\u4f5c\u70ba\u8a08\u6642\u5668\u7684\u56de\u8abf\u51fd\u6578\u3002\u7136\u5f8c,\u6211\u5011\u5275\u5efa\u4e86\u4e00\u500b ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u7528\u65bc\u555f\u52d5\u8a08\u6642\u5668\u3002\u5728 ",(0,r.jsx)(n.code,{children:"main"})," \u51fd\u6578\u4e2d,\u6211\u5011\u8abf\u7528 ",(0,r.jsx)(n.code,{children:"start_timer"})," \u51fd\u6578,\u8a2d\u7f6e\u8a08\u6642\u5668\u6bcf\u79d2\u89f8\u767c\u4e00\u6b21,\u7136\u5f8c\u57f7\u884c\u5176\u4ed6\u4efb\u52d9\u3002"]}),"\n",(0,r.jsx)(n.p,{children:"\u901a\u904e\u9019\u7a2e\u65b9\u5f0f,\u4f60\u53ef\u4ee5\u5c07\u8a08\u6642\u5668\u529f\u80fd\u8207\u5176\u4ed6\u7a0b\u5e8f\u89e3\u8026,\u4f7f\u5f97\u7a0b\u5e8f\u7684\u7d50\u69cb\u66f4\u52a0\u6e05\u6670,\u4e14\u4fbf\u65bc\u7dad\u8b77\u548c\u64f4\u5c55\u3002"}),"\n",(0,r.jsx)(n.h2,{id:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e",children:"\u8a08\u6642\u5668\u7684\u53c3\u6578\u548c\u914d\u7f6e"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u6642\uff0c\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u914d\u7f6e\u5404\u7a2e\u53c3\u6578\uff0c\u4ee5\u6eff\u8db3\u4e0d\u540c\u7684\u9700\u6c42\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5e38\u7528\u7684\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805\uff1a"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u5ef6\u9072\u6642\u9593\uff08Delay\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u7684\u5ef6\u9072\u6642\u9593\uff0c\u53ef\u4ee5\u662f\u6beb\u79d2\uff08ms\uff09\u6216\u5fae\u79d2\uff08us\uff09\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u9700\u8981\u9078\u64c7\u5408\u9069\u7684\u6642\u9593\u55ae\u4f4d\u548c\u503c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u56de\u8abf\u51fd\u6578\uff08Callback\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u89f8\u767c\u6642\u8981\u57f7\u884c\u7684\u51fd\u6578\u3002\u4f60\u53ef\u4ee5\u6839\u64da\u5be6\u969b\u9700\u6c42\u7de8\u5beb\u81ea\u5b9a\u7fa9\u7684\u56de\u8abf\u51fd\u6578\uff0c\u57f7\u884c\u6240\u9700\u7684\u64cd\u4f5c\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7528\u6236\u6578\u64da\uff08User Data\uff09"}),"\uff1a\n\u53ef\u4ee5\u5c07\u81ea\u5b9a\u7fa9\u7684\u6578\u64da\u50b3\u905e\u7d66\u56de\u8abf\u51fd\u6578\uff0c\u4ee5\u4fbf\u5728\u56de\u8abf\u51fd\u6578\u4e2d\u4f7f\u7528\u3002\u9019\u53ef\u4ee5\u662f\u6307\u91dd\u3001\u7d50\u69cb\u9ad4\u6216\u5176\u4ed6\u985e\u578b\u7684\u6578\u64da\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u91cd\u8907\u89f8\u767c\uff08Repeat\uff09"}),"\uff1a\n\u6307\u5b9a\u8a08\u6642\u5668\u662f\u5426\u9700\u8981\u91cd\u8907\u89f8\u767c\u3002\u5c0d\u65bc\u4e00\u6b21\u6027\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u91cd\u8907\u89f8\u767c\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"false"}),"\uff1b\u5c0d\u65bc\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u5c07\u5176\u8a2d\u7f6e\u70ba ",(0,r.jsx)(n.code,{children:"true"}),"\u3002"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"\u7cbe\u5ea6\uff08Precision\uff09"}),"\uff1a\n\u8a08\u6642\u5668\u7684\u7cbe\u5ea6\u53d6\u6c7a\u65bc\u786c\u9ad4\u548c\u8edf\u9ad4\u7684\u5be6\u73fe\u3002RP2040 \u63d0\u4f9b\u4e86\u9ad8\u7cbe\u5ea6\u7684\u8a08\u6642\u5668\uff0c\u53ef\u4ee5\u9054\u5230\u5fae\u79d2\u7d1a\u5225\u7684\u7cbe\u5ea6\u3002\u4f46\u662f\uff0c\u5be6\u969b\u7684\u7cbe\u5ea6\u9084\u53d6\u6c7a\u65bc\u7cfb\u7d71\u7684\u6642\u9418\u983b\u7387\u548c\u4e2d\u65b7\u8655\u7406\u7684\u5ef6\u9072\u3002"]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"\u7e3d\u7d50",children:"\u7e3d\u7d50"}),"\n",(0,r.jsx)(n.p,{children:"\u5728\u672c\u6587\u4e2d,\u6211\u5011\u6df1\u5165\u63a2\u8a0e\u4e86\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd\u3002\u901a\u904e\u8a73\u7d30\u7684\u4ee3\u78bc\u793a\u4f8b\u548c\u89e3\u91cb,\u4f60\u61c9\u8a72\u5c0d\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406\u6709\u4e86\u66f4\u5168\u9762\u7684\u7406\u89e3\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6211\u5011\u8a0e\u8ad6\u4e86\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u57fa\u672c\u6982\u5ff5,\u4e26\u5c55\u793a\u4e86\u5982\u4f55\u5275\u5efa\u548c\u4f7f\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u4e00\u6b21\u6027\u7684\u9b27\u9418\u9084\u662f\u91cd\u8907\u89f8\u767c\u7684\u8a08\u6642\u5668,\u4f60\u90fd\u53ef\u4ee5\u6839\u64da\u9700\u6c42\u9748\u6d3b\u5730\u914d\u7f6e\u548c\u4f7f\u7528\u5b83\u5011\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6b64\u5916,\u6211\u5011\u9084\u63a2\u8a0e\u4e86\u5982\u4f55\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u901a\u904e\u5c07\u8a08\u6642\u5668\u5c01\u88dd\u5230\u55ae\u7368\u7684\u51fd\u6578\u6216\u6a21\u584a\u4e2d,\u4f7f\u5176\u66f4\u52a0\u901a\u7528\u548c\u53ef\u91cd\u7528\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u6700\u5f8c,\u6211\u5011\u4ecb\u7d39\u4e86\u8a08\u6642\u5668\u7684\u4e00\u4e9b\u5e38\u7528\u53c3\u6578\u548c\u914d\u7f6e\u9078\u9805,\u5e6b\u52a9\u4f60\u6839\u64da\u5be6\u969b\u9700\u6c42\u9032\u884c\u9748\u6d3b\u7684\u8a2d\u7f6e\u3002"}),"\n",(0,r.jsx)(n.p,{children:"\u5e0c\u671b\u9019\u7bc7\u6587\u7ae0\u80fd\u5920\u5e6b\u52a9\u4f60\u66f4\u597d\u5730\u7406\u89e3\u548c\u61c9\u7528 RP2040 \u4e2d\u7684\u8a08\u6642\u5668\u548c\u9b27\u9418\u529f\u80fd,\u70ba\u4f60\u7684\u5d4c\u5165\u5f0f\u958b\u767c\u9805\u76ee\u63d0\u4f9b\u6709\u529b\u7684\u652f\u6301\u3002\u5982\u679c\u4f60\u6709\u4efb\u4f55\u554f\u984c\u6216\u5efa\u8b70,\u6b61\u8fce\u5728\u8a55\u8ad6\u5340\u7559\u8a00\u8a0e\u8ad6\u3002"})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(m,{...e})}):m(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>t,x:()=>s});var r=i(6540);const l={},a=r.createContext(l);function t(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:t(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a1c46f64.7c8cacac.js b/zh-hk/assets/js/a1c46f64.7c8cacac.js new file mode 100644 index 000000000..4472a7672 --- /dev/null +++ b/zh-hk/assets/js/a1c46f64.7c8cacac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9186],{7260:a=>{a.exports=JSON.parse('{"tag":{"label":"Docusaurus","permalink":"/zh-hk/blog/tags/docusaurus","description":"Docusaurus tag description","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/docusaurus","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a5933a40.25042153.js b/zh-hk/assets/js/a5933a40.25042153.js new file mode 100644 index 000000000..db818524f --- /dev/null +++ b/zh-hk/assets/js/a5933a40.25042153.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1113],{2012:e=>{e.exports=JSON.parse('{"tag":{"label":"PWM","permalink":"/zh-hk/tags/pwm","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a6aa9e1f.63bb8777.js b/zh-hk/assets/js/a6aa9e1f.63bb8777.js new file mode 100644 index 000000000..9465080d9 --- /dev/null +++ b/zh-hk/assets/js/a6aa9e1f.63bb8777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7643],{5124:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});a(6540);var n=a(4164),i=a(4586),r=a(1213),o=a(7559),s=a(6535),l=a(7713),d=a(1463),c=a(3892),g=a(5260),p=a(6676),u=a(4848);function m(e){const t=(0,p.k)(e);return(0,u.jsx)(g.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(t)})})}function h(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,i.A)(),{blogDescription:n,blogTitle:o,permalink:s}=t,l="/"===s?a:o;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(r.be,{title:l,description:n}),(0,u.jsx)(d.A,{tag:"blog_posts_list"})]})}function b(e){const{metadata:t,items:a,sidebar:n}=e;return(0,u.jsxs)(s.A,{sidebar:n,children:[(0,u.jsx)(c.A,{items:a}),(0,u.jsx)(l.A,{metadata:t})]})}function f(e){return(0,u.jsxs)(r.e3,{className:(0,n.A)(o.G.wrapper.blogPages,o.G.page.blogListPage),children:[(0,u.jsx)(h,{...e}),(0,u.jsx)(m,{...e}),(0,u.jsx)(b,{...e})]})}},7713:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(1312),i=a(9022),r=a(4848);function o(e){const{metadata:t}=e,{previousPage:a,nextPage:o}=t;return(0,r.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.T)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,r.jsx)(i.A,{permalink:a,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),o&&(0,r.jsx)(i.A,{permalink:o,title:(0,r.jsx)(n.A,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},3892:(e,t,a)=>{a.d(t,{A:()=>o});a(6540);var n=a(7131),i=a(4651),r=a(4848);function o(e){let{items:t,component:a=i.A}=e;return(0,r.jsx)(r.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,r.jsx)(n.i,{content:t,children:(0,r.jsx)(a,{children:(0,r.jsx)(t,{})})},t.metadata.permalink)}))})}},6676:(e,t,a)=>{a.d(t,{k:()=>c,J:()=>g});var n=a(6025),i=a(4586),r=a(6803);var o=a(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(p);return{author:1===t.length?t[0]:t}}function d(e,t,a){return e?{image:u({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${a}`})}:{}}function c(e){const{siteConfig:t}=(0,i.A)(),{withBaseUrl:a}=(0,n.hH)(),{metadata:{blogDescription:r,blogTitle:o,permalink:c}}=e,g=`${t.url}${c}`;return{"@context":"https://schema.org","@type":"Blog","@id":g,mainEntityOfPage:g,headline:o,description:r,blogPost:e.items.map((e=>function(e,t,a){const{assets:n,frontMatter:i,metadata:r}=e,{date:o,title:c,description:g,lastUpdatedAt:p}=r,u=n.image??i.image,m=i.keywords??[],h=`${t.url}${r.permalink}`,b=p?s(p):void 0;return{"@type":"BlogPosting","@id":h,mainEntityOfPage:h,url:h,headline:c,name:c,description:g,datePublished:o,...b?{dateModified:b}:{},...l(r.authors),...d(u,a,c),...m?{keywords:m}:{}}}(e.content,t,a)))}}function g(){const e=function(){const e=(0,r.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:a}=(0,o.e)(),{siteConfig:c}=(0,i.A)(),{withBaseUrl:g}=(0,n.hH)(),{date:p,title:u,description:m,frontMatter:h,lastUpdatedAt:b}=a,f=t.image??h.image,x=h.keywords??[],j=b?s(b):void 0,A=`${c.url}${a.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":A,mainEntityOfPage:A,url:A,headline:u,name:u,description:m,datePublished:p,...j?{dateModified:j}:{},...l(a.authors),...d(f,g,u),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${c.url}${e.blogBasePath}`,name:e.blogTitle}}}function p(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function u(e){let{imageUrl:t,caption:a}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:a}}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a7456010.fc7a5d1f.js b/zh-hk/assets/js/a7456010.fc7a5d1f.js new file mode 100644 index 000000000..e988a1f5c --- /dev/null +++ b/zh-hk/assets/js/a7456010.fc7a5d1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a7bd4aaa.eec9f40b.js b/zh-hk/assets/js/a7bd4aaa.eec9f40b.js new file mode 100644 index 000000000..78b39696c --- /dev/null +++ b/zh-hk/assets/js/a7bd4aaa.eec9f40b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7098],{4532:(e,n,s)=>{s.r(n),s.d(n,{default:()=>u});s(6540);var r=s(1213),o=s(2967),t=s(2252),c=s(2831),i=s(1463),a=s(4848);function l(e){const{version:n}=e;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:n.version,tag:(0,o.tU)(n.pluginId,n.version)}),(0,a.jsx)(r.be,{children:n.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function d(e){const{version:n,route:s}=e;return(0,a.jsx)(r.e3,{className:n.className,children:(0,a.jsx)(t.n,{version:n,children:(0,c.v)(s.routes)})})}function u(e){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l,{...e}),(0,a.jsx)(d,{...e})]})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/a94703ab.c0f75d91.js b/zh-hk/assets/js/a94703ab.c0f75d91.js new file mode 100644 index 000000000..9bddeb02e --- /dev/null +++ b/zh-hk/assets/js/a94703ab.c0f75d91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9048],{2559:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(6540),o=n(4164),i=n(1213),s=n(7559),l=n(1754),r=n(6588),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.$)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),_=n(3465);function v(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,b.jsx)(v,{className:A.collapseSidebarButtonIcon})})}var k=n(5041),C=n(9532);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var I=n(1422),B=n(9169),y=n(8774),w=n(2303);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),_=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),v=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:k}=(0,I.u)({initialState:()=>!!h&&(!v&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new C.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,C.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:v,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=N&&N!==c&&f&&k(!0)}),[h,N,c,k,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":v}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":A?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?_??"#":_,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(U,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(6654),H=n(3186);const G={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_M9Kj"};function R(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(R,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function F(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(N,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const U=(0,a.memo)(F),V={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",V.menu,l&&V.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:n,activePath:t,level:1})})})}const K="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",q="sidebarHidden_VK0M",J="sidebarLogo_isFc";function O(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(K,s&&z,i&&q),children:[s&&(0,b.jsx)(_.A,{tabIndex:-1,className:J}),(0,b.jsx)(Y,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const Q=a.memo(O);var X=n(5600),Z=n(9876);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Z.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(X.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Q,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(v,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(3363);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/aba21aa0.1562c573.js b/zh-hk/assets/js/aba21aa0.1562c573.js new file mode 100644 index 000000000..e47365ca9 --- /dev/null +++ b/zh-hk/assets/js/aba21aa0.1562c573.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/acecf23e.a054a625.js b/zh-hk/assets/js/acecf23e.a054a625.js new file mode 100644 index 000000000..55ff4cad3 --- /dev/null +++ b/zh-hk/assets/js/acecf23e.a054a625.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1903],{1912:e=>{e.exports=JSON.parse('{"blogBasePath":"/zh-hk/blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/ae1c2fdf.52fe4724.js b/zh-hk/assets/js/ae1c2fdf.52fe4724.js new file mode 100644 index 000000000..8c78209e7 --- /dev/null +++ b/zh-hk/assets/js/ae1c2fdf.52fe4724.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[6707],{5329:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var r=t(4848),n=t(8453);const s={sidebar_position:1},o="Create a Page",c={id:"tutorial-basics/create-a-page",title:"Create a Page",description:"Add Markdown or React files to src/pages to create a standalone page:",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-page.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-page",permalink:"/zh-hk/tutorial-basics/create-a-page",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-page.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:1,frontMatter:{sidebar_position:1}},i={},l=[{value:"Create your first React Page",id:"create-your-first-react-page",level:2},{value:"Create your first Markdown Page",id:"create-your-first-markdown-page",level:2}];function d(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h1,{id:"create-a-page",children:"Create a Page"}),"\n",(0,r.jsxs)(a.p,{children:["Add ",(0,r.jsx)(a.strong,{children:"Markdown or React"})," files to ",(0,r.jsx)(a.code,{children:"src/pages"})," to create a ",(0,r.jsx)(a.strong,{children:"standalone page"}),":"]}),"\n",(0,r.jsxs)(a.ul,{children:["\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/index.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo.md"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo"})]}),"\n",(0,r.jsxs)(a.li,{children:[(0,r.jsx)(a.code,{children:"src/pages/foo/bar.js"})," \u2192 ",(0,r.jsx)(a.code,{children:"localhost:3000/foo/bar"})]}),"\n"]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-react-page",children:"Create your first React Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-react-page.js"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-jsx",metastring:'title="src/pages/my-react-page.js"',children:"import React from 'react';\nimport Layout from '@theme/Layout';\n\nexport default function MyReactPage() {\n return (\n <Layout>\n <h1>My React page</h1>\n <p>This is a React page</p>\n </Layout>\n );\n}\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-react-page",children:"http://localhost:3000/my-react-page"}),"."]}),"\n",(0,r.jsx)(a.h2,{id:"create-your-first-markdown-page",children:"Create your first Markdown Page"}),"\n",(0,r.jsxs)(a.p,{children:["Create a file at ",(0,r.jsx)(a.code,{children:"src/pages/my-markdown-page.md"}),":"]}),"\n",(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-mdx",metastring:'title="src/pages/my-markdown-page.md"',children:"# My Markdown page\n\nThis is a Markdown page\n"})}),"\n",(0,r.jsxs)(a.p,{children:["A new page is now available at ",(0,r.jsx)(a.a,{href:"http://localhost:3000/my-markdown-page",children:"http://localhost:3000/my-markdown-page"}),"."]})]})}function p(e={}){const{wrapper:a}={...(0,n.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>c});var r=t(6540);const n={},s=r.createContext(n);function o(e){const a=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function c(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),r.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/b6ef77d3.4170944d.js b/zh-hk/assets/js/b6ef77d3.4170944d.js new file mode 100644 index 000000000..04175caff --- /dev/null +++ b/zh-hk/assets/js/b6ef77d3.4170944d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5811],{5345:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>x,frontMatter:()=>o,metadata:()=>t,toc:()=>s});var c=r(4848),i=r(8453);const o={slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},l="Docker\u7684\u61c9\u7528\u5834\u666f",t={permalink:"/zh-hk/blog/Docker-Getting-Srart-01",editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/blog/2021-09-14-Docker-Getting-Srart-01.md",source:"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2021-09-14-Docker-Getting-Srart-01.md",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",description:"- Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002",date:"2021-09-14T00:00:00.000Z",tags:[{inline:!0,label:"misc",permalink:"/zh-hk/blog/tags/misc"},{inline:!0,label:"Linux",permalink:"/zh-hk/blog/tags/linux"},{inline:!0,label:"Linux",permalink:"/zh-hk/blog/tags/linux"},{inline:!0,label:"Docker",permalink:"/zh-hk/blog/tags/docker"},{inline:!0,label:"\u8edf\u4ef6",permalink:"/zh-hk/blog/tags/\u8edf\u4ef6"},{inline:!0,label:"\u6a5f\u5668\u5b78\u7fd2",permalink:"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2"}],readingTime:7.345,hasTruncateMarker:!1,authors:[{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"}],frontMatter:{slug:"Docker-Getting-Srart-01",title:"Docker\u4f7f\u7528\u65b9\u6cd5(\u4e00)",authors:{name:"w0x7ce",title:"MySelf",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png",imageURL:"https://github.com/tianrking.png"},tags:["misc","Linux","Linux","Docker","\u8edf\u4ef6","\u6a5f\u5668\u5b78\u7fd2"]},unlisted:!1,nextItem:{title:"First Blog Post",permalink:"/zh-hk/blog/first-blog-post"}},d={authorsImageUrls:[void 0]},s=[{value:"Docker Hello World",id:"docker-hello-world",level:2},{value:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",level:2},{value:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09",id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",level:2},{value:"\u505c\u6b62\u5bb9\u5668",id:"\u505c\u6b62\u5bb9\u5668",level:2}];function h(e){const n={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:"Web \u61c9\u7528\u7684\u81ea\u52d5\u5316\u6253\u5305\u548c\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u81ea\u52d5\u5316\u6e2c\u8a66\u548c\u6301\u7e8c\u96c6\u6210\u3001\u767c\u5e03\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728\u670d\u52d9\u578b\u74b0\u5883\u4e2d\u90e8\u7f72\u548c\u8abf\u6574\u6578\u64da\u5eab\u6216\u5176\u4ed6\u7684\u5f8c\u53f0\u61c9\u7528\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5f9e\u982d\u7de8\u8b6f\u6216\u8005\u64f4\u5c55\u73fe\u6709\u7684 OpenShift \u6216 Cloud Foundry \u5e73\u53f0\u4f86\u642d\u5efa\u81ea\u5df1\u7684 PaaS \u74b0\u5883\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker-\u7684\u512a\u9ede",children:"Docker \u7684\u512a\u9ede"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u662f\u4e00\u500b\u7528\u65bc\u958b\u767c\uff0c\u4ea4\u4ed8\u548c\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\u7684\u958b\u653e\u5e73\u53f0\u3002 Docker \u4f7f\u60a8\u80fd\u5920\u5c07\u61c9\u7528\u7a0b\u5e8f\u8207\u57fa\u790e\u67b6\u69cb\u5206\u958b\uff0c\u5f9e\u800c\u53ef\u4ee5\u5feb\u901f\u4ea4\u4ed8\u8edf\u4ef6\u3002\u501f\u52a9 Docker\uff0c\u60a8\u53ef\u4ee5\u8207\u7ba1\u7406\u61c9\u7528\u7a0b\u5e8f\u76f8\u540c\u7684\u65b9\u5f0f\u4f86\u7ba1\u7406\u57fa\u790e\u67b6\u69cb\u3002\u901a\u904e\u5229\u7528 Docker \u7684\u65b9\u6cd5\u4f86\u5feb\u901f\u4ea4\u4ed8\uff0c\u6e2c\u8a66\u548c\u90e8\u7f72\u4ee3\u78bc\uff0c\u60a8\u53ef\u4ee5\u5927\u5927\u6e1b\u5c11\u7de8\u5beb\u4ee3\u78bc\u548c\u5728\u751f\u7522\u74b0\u5883\u4e2d\u904b\u884c\u4ee3\u78bc\u4e4b\u9593\u7684\u5ef6\u9072\u3002"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5feb\u901f\uff0c\u4e00\u81f4\u5730\u4ea4\u4ed8\u60a8\u7684\u61c9\u7528\u7a0b\u5e8f\nDocker \u5141\u8a31\u958b\u767c\u4eba\u54e1\u4f7f\u7528\u60a8\u63d0\u4f9b\u7684\u61c9\u7528\u7a0b\u5e8f\u6216\u670d\u52d9\u7684\u672c\u5730\u5bb9\u5668\u5728\u6a19\u6e96\u5316\u74b0\u5883\u4e2d\u5de5\u4f5c\uff0c\u5f9e\u800c\u7c21\u5316\u4e86\u958b\u767c\u7684\u751f\u547d\u9031\u671f\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"\u5bb9\u5668\u975e\u5e38\u9069\u5408\u6301\u7e8c\u96c6\u6210\u548c\u6301\u7e8c\u4ea4\u4ed8\uff08CI / CD\uff09\u5de5\u4f5c\u6d41\u7a0b\uff0c\u8acb\u8003\u616e\u4ee5\u4e0b\u793a\u4f8b\u65b9\u6848\uff1a"}),"\n",(0,c.jsx)(n.p,{children:"\u60a8\u7684\u958b\u767c\u4eba\u54e1\u5728\u672c\u5730\u7de8\u5beb\u4ee3\u78bc\uff0c\u4e26\u4f7f\u7528 Docker \u5bb9\u5668\u8207\u540c\u4e8b\u5171\u4eab\u4ed6\u5011\u7684\u5de5\u4f5c\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4ed6\u5011\u4f7f\u7528 Docker \u5c07\u5176\u61c9\u7528\u7a0b\u5e8f\u63a8\u9001\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4e26\u57f7\u884c\u81ea\u52d5\u6216\u624b\u52d5\u6e2c\u8a66\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u7576\u958b\u767c\u4eba\u54e1\u767c\u73fe\u932f\u8aa4\u6642\uff0c\u4ed6\u5011\u53ef\u4ee5\u5728\u958b\u767c\u74b0\u5883\u4e2d\u5c0d\u5176\u9032\u884c\u4fee\u5fa9\uff0c\u7136\u5f8c\u5c07\u5176\u91cd\u65b0\u90e8\u7f72\u5230\u6e2c\u8a66\u74b0\u5883\u4e2d\uff0c\u4ee5\u9032\u884c\u6e2c\u8a66\u548c\u9a57\u8b49\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u6e2c\u8a66\u5b8c\u6210\u5f8c\uff0c\u5c07\u4fee\u88dc\u7a0b\u5e8f\u63a8\u9001\u7d66\u751f\u7522\u74b0\u5883\uff0c\u5c31\u50cf\u5c07\u66f4\u65b0\u7684\u93e1\u50cf\u63a8\u9001\u5230\u751f\u7522\u74b0\u5883\u4e00\u6a23\u7c21\u55ae\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"2",children:["\n",(0,c.jsx)(n.li,{children:"\u97ff\u61c9\u5f0f\u90e8\u7f72\u548c\u64f4\u5c55\nDocker \u662f\u57fa\u65bc\u5bb9\u5668\u7684\u5e73\u53f0\uff0c\u5141\u8a31\u9ad8\u5ea6\u53ef\u79fb\u690d\u7684\u5de5\u4f5c\u8ca0\u8f09\u3002 Docker \u5bb9\u5668\u53ef\u4ee5\u5728\u958b\u767c\u4eba\u54e1\u7684\u672c\u6a5f\u4e0a\uff0c\u6578\u64da\u4e2d\u5fc3\u7684\u7269\u7406\u6216\u865b\u64ec\u6a5f\u4e0a\uff0c\u96f2\u670d\u52d9\u4e0a\u6216\u6df7\u5408\u74b0\u5883\u4e2d\u904b\u884c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.p,{children:"Docker \u7684\u53ef\u79fb\u690d\u6027\u548c\u8f15\u91cf\u7d1a\u7684\u7279\u6027\uff0c\u9084\u53ef\u4ee5\u4f7f\u60a8\u8f15\u9b06\u5730\u5b8c\u6210\u52d5\u614b\u7ba1\u7406\u7684\u5de5\u4f5c\u8ca0\u64d4\uff0c\u4e26\u6839\u64da\u696d\u52d9\u9700\u6c42\u6307\u793a\uff0c\u5be6\u6642\u64f4\u5c55\u6216\u62c6\u9664\u61c9\u7528\u7a0b\u5e8f\u548c\u670d\u52d9\u3002"}),"\n",(0,c.jsxs)(n.ol,{start:"3",children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u540c\u4e00\u786c\u4ef6\u4e0a\u904b\u884c\u66f4\u591a\u5de5\u4f5c\u8ca0\u8f09\nDocker \u8f15\u5de7\u5feb\u901f\u3002\u5b83\u70ba\u57fa\u65bc\u865b\u64ec\u6a5f\u7ba1\u7406\u7a0b\u5e8f\u7684\u865b\u64ec\u6a5f\u63d0\u4f9b\u4e86\u53ef\u884c\u3001\u7d93\u6fdf\u3001\u9ad8\u6548\u7684\u66ff\u4ee3\u65b9\u6848\uff0c\u56e0\u6b64\u60a8\u53ef\u4ee5\u5229\u7528\u66f4\u591a\u7684\u8a08\u7b97\u80fd\u529b\u4f86\u5be6\u73fe\u696d\u52d9\u76ee\u6a19\u3002 Docker \u975e\u5e38\u9069\u5408\u65bc\u9ad8\u5bc6\u5ea6\u74b0\u5883\u4ee5\u53ca\u4e2d\u5c0f\u578b\u90e8\u7f72\uff0c\u800c\u60a8\u53ef\u4ee5\u7528\u66f4\u5c11\u7684\u8cc7\u6e90\u505a\u66f4\u591a\u7684\u4e8b\u60c5"}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5b89\u88dd",children:"Docker\u5b89\u88dd"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"curl -sSL https://get.daocloud.io/docker | sh\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u5378\u8f09",children:"Docker\u5378\u8f09"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:" sudo apt-get remove docker docker-engine docker.io containerd runc\n"})}),"\n",(0,c.jsx)(n.h1,{id:"docker\u4f7f\u7528\u57fa\u790e",children:"Docker\u4f7f\u7528\u57fa\u790e"}),"\n",(0,c.jsx)(n.h2,{id:"docker-hello-world",children:"Docker Hello World"}),"\n",(0,c.jsx)(n.p,{children:"Docker \u5141\u8a31\u4f60\u5728\u5bb9\u5668\u5167\u904b\u884c\u61c9\u7528\u7a0b\u5e8f\uff0c \u4f7f\u7528 docker run \u547d\u4ee4\u4f86\u5728\u5bb9\u5668\u5167\u904b\u884c\u4e00\u500b\u61c9\u7528\u7a0b\u5e8f\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51faHello world"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"\nHello world\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'docker: Docker \u7684\u4e8c\u9032\u5236\u57f7\u884c\u6587\u4ef6\u3002\n\nrun: \u8207\u524d\u9762\u7684 docker \u7d44\u5408\u4f86\u904b\u884c\u4e00\u500b\u5bb9\u5668\u3002\n\nubuntu:15.10 \u6307\u5b9a\u8981\u904b\u884c\u7684\u93e1\u50cf\uff0cDocker \u9996\u5148\u5f9e\u672c\u5730\u4e3b\u6a5f\u4e0a\u67e5\u627e\u93e1\u50cf\u662f\u5426\u5b58\u5728\uff0c\u5982\u679c\u4e0d\u5b58\u5728\uff0cDocker \u5c31\u6703\u5f9e\u93e1\u50cf\u5009\u5eab Docker Hub \u4e0b\u8f09\u516c\u5171\u93e1\u50cf\u3002\n\n/bin/echo "Hello world": \u5728\u555f\u52d5\u7684\u5bb9\u5668\u88e1\u57f7\u884c\u7684\u547d\u4ee4\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u4ee5\u4e0a\u547d\u4ee4\u5b8c\u6574\u7684\u610f\u601d\u53ef\u4ee5\u89e3\u91cb\u70ba\uff1aDocker \u4ee5 ubuntu15.10 \u93e1\u50cf\u5275\u5efa\u4e00\u500b\u65b0\u5bb9\u5668\uff0c\u7136\u5f8c\u5728\u5bb9\u5668\u88e1\u57f7\u884c bin/echo "Hello world"\uff0c\u7136\u5f8c\u8f38\u51fa\u7d50\u679c\u3002'}),"\n",(0,c.jsx)(n.h2,{id:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668",children:"\u904b\u884c\u4ea4\u4e92\u5f0f\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:'\u6211\u5011\u901a\u904e docker \u7684\u5169\u500b\u53c3\u6578 -i -t\uff0c\u8b93 docker \u904b\u884c\u7684\u5bb9\u5668\u5be6\u73fe"\u5c0d\u8a71"\u7684\u80fd\u529b\uff1a'}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash\nroot@0123ce188bd8:/#\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5404\u500b\u53c3\u6578\u89e3\u6790\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"-t: \u5728\u65b0\u5bb9\u5668\u5167\u6307\u5b9a\u4e00\u500b\u507d\u7d42\u7aef\u6216\u7d42\u7aef\u3002\n\n-i: \u5141\u8a31\u4f60\u5c0d\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u5165 (STDIN) \u9032\u884c\u4ea4\u4e92\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e8c\u884c root@0123ce188bd8:/#\uff0c\u6b64\u6642\u6211\u5011\u5df2\u9032\u5165\u4e00\u500b ubuntu15.10 \u7cfb\u7d71\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u5617\u8a66\u5728\u5bb9\u5668\u4e2d\u904b\u884c\u547d\u4ee4 cat /proc/version\u548cls\u5206\u5225\u67e5\u770b\u7576\u524d\u7cfb\u7d71\u7684\u7248\u672c\u4fe1\u606f\u548c\u7576\u524d\u76ee\u9304\u4e0b\u7684\u6587\u4ef6\u5217\u8868"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# cat /proc/version\nLinux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019\nroot@0123ce188bd8:/# ls\nbin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var\nroot@0123ce188bd8:/# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u53ef\u4ee5\u901a\u904e\u904b\u884c exit \u547d\u4ee4\u6216\u8005\u4f7f\u7528 CTRL+D \u4f86\u9000\u51fa\u5bb9\u5668\u3002"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"root@0123ce188bd8:/# exit\nexit\nroot@w0x7ce:~# \n"})}),"\n",(0,c.jsx)(n.p,{children:"\u6ce8\u610f\u7b2c\u4e09\u884c\u4e2d root@w0x7ce:~# \u8868\u660e\u6211\u5011\u5df2\u7d93\u9000\u51fa\u4e86\u7576\u524d\u7684\u5bb9\u5668\uff0c\u8fd4\u56de\u5230\u7576\u524d\u7684\u4e3b\u6a5f\u4e2d\u3002"}),"\n",(0,c.jsx)(n.h2,{id:"\u555f\u52d5\u5bb9\u5668\u5f8c\u53f0\u6a21\u5f0f",children:"\u555f\u52d5\u5bb9\u5668\uff08\u5f8c\u53f0\u6a21\u5f0f\uff09"}),"\n",(0,c.jsx)(n.p,{children:"\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5275\u5efa\u4e00\u500b\u4ee5\u9032\u7a0b\u65b9\u5f0f\u904b\u884c\u7684\u5bb9\u5668"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"\n2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63\n'})}),"\n",(0,c.jsx)(n.p,{children:'\u5728\u8f38\u51fa\u4e2d\uff0c\u6211\u5011\u6c92\u6709\u770b\u5230\u671f\u671b\u7684 "hello world"\uff0c\u800c\u662f\u4e00\u4e32\u9577\u5b57\u7b26'}),"\n",(0,c.jsx)(n.p,{children:"2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63"}),"\n",(0,c.jsx)(n.p,{children:"\u9019\u500b\u9577\u5b57\u7b26\u4e32\u53eb\u505a\u5bb9\u5668 ID\uff0c\u5c0d\u6bcf\u500b\u5bb9\u5668\u4f86\u8aaa\u90fd\u662f\u552f\u4e00\u7684\uff0c\u6211\u5011\u53ef\u4ee5\u901a\u904e\u5bb9\u5668 ID \u4f86\u67e5\u770b\u5c0d\u61c9\u7684\u5bb9\u5668\u767c\u751f\u4e86\u4ec0\u9ebc\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u9996\u5148\uff0c\u6211\u5011\u9700\u8981\u78ba\u8a8d\u5bb9\u5668\u6709\u5728\u904b\u884c\uff0c\u53ef\u4ee5\u901a\u904e docker ps \u4f86\u67e5\u770b\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:'w0x7ce@w0x7ce:~$ docker ps\nCONTAINER ID IMAGE COMMAND ... \n5917eac21c36 ubuntu:15.10 "/bin/sh -c \'while t\u2026" ...\n'})}),"\n",(0,c.jsx)(n.p,{children:"\u8f38\u51fa\u8a73\u60c5\u4ecb\u7d39\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"CONTAINER ID: \u5bb9\u5668 ID\u3002\n\nIMAGE: \u4f7f\u7528\u7684\u93e1\u50cf\u3002\n\nCOMMAND: \u555f\u52d5\u5bb9\u5668\u6642\u904b\u884c\u7684\u547d\u4ee4\u3002\n\nCREATED: \u5bb9\u5668\u7684\u5275\u5efa\u6642\u9593\u3002\n\nSTATUS: \u5bb9\u5668\u72c0\u614b\u3002\n\n\u72c0\u614b\u67097\u7a2e\uff1a\n\ncreated\uff08\u5df2\u5275\u5efa\uff09\nrestarting\uff08\u91cd\u555f\u4e2d\uff09\nrunning \u6216 Up\uff08\u904b\u884c\u4e2d\uff09\nremoving\uff08\u9077\u79fb\u4e2d\uff09\npaused\uff08\u66ab\u505c\uff09\nexited\uff08\u505c\u6b62\uff09\ndead\uff08\u6b7b\u4ea1\uff09\nPORTS: \u5bb9\u5668\u7684\u7aef\u53e3\u4fe1\u606f\u548c\u4f7f\u7528\u7684\u9023\u63a5\u985e\u578b\uff08tcp\\udp\uff09\u3002\n\nNAMES: \u81ea\u52d5\u5206\u914d\u7684\u5bb9\u5668\u540d\u7a31\u3002\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u5728\u5bbf\u4e3b\u4e3b\u6a5f\u5167\u4f7f\u7528 docker logs \u547d\u4ee4\uff0c\u67e5\u770b\u5bb9\u5668\u5167\u7684\u6a19\u6e96\u8f38\u51fa\uff1a"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627\n"})}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker logs amazing_cori\n"})}),"\n",(0,c.jsx)(n.h2,{id:"\u505c\u6b62\u5bb9\u5668",children:"\u505c\u6b62\u5bb9\u5668"}),"\n",(0,c.jsx)(n.p,{children:"\u6211\u5011\u4f7f\u7528 docker stop \u547d\u4ee4\u4f86\u505c\u6b62\u5bb9\u5668:"}),"\n",(0,c.jsx)(n.p,{children:"\u901a\u904e docker ps \u67e5\u770b\uff0c\u5bb9\u5668\u5df2\u7d93\u505c\u6b62\u5de5\u4f5c:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker ps\n"})}),"\n",(0,c.jsx)(n.p,{children:"\u53ef\u4ee5\u770b\u5230\u5bb9\u5668\u5df2\u7d93\u4e0d\u5728\u4e86\u3002"}),"\n",(0,c.jsx)(n.p,{children:"\u4e5f\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u4f86\u505c\u6b62:"}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{children:"w0x7ce@w0x7ce:~$ docker stop amazing_cori\n"})})]})}function x(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>l,x:()=>t});var c=r(6540);const i={},o=c.createContext(i);function l(e){const n=c.useContext(o);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function t(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),c.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/b6fdbe90.1959bca5.js b/zh-hk/assets/js/b6fdbe90.1959bca5.js new file mode 100644 index 000000000..9a11d39b7 --- /dev/null +++ b/zh-hk/assets/js/b6fdbe90.1959bca5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9841],{7153:e=>{e.exports=JSON.parse('{"tag":{"label":"UART","permalink":"/zh-hk/tags/uart","allTagsPath":"/zh-hk/tags","count":2,"items":[{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/ba673586.59eab77a.js b/zh-hk/assets/js/ba673586.59eab77a.js new file mode 100644 index 000000000..b0564e3a6 --- /dev/null +++ b/zh-hk/assets/js/ba673586.59eab77a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1091],{5964:a=>{a.exports=JSON.parse('{"tag":{"label":"alarm","permalink":"/zh-hk/tags/alarm","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/bd2c820f.0776980d.js b/zh-hk/assets/js/bd2c820f.0776980d.js new file mode 100644 index 000000000..5617693fa --- /dev/null +++ b/zh-hk/assets/js/bd2c820f.0776980d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8652],{5712:r=>{r.exports=JSON.parse('{"tag":{"label":"Raspberry Pi Pico","permalink":"/zh-hk/tags/raspberry-pi-pico","allTagsPath":"/zh-hk/tags","count":6,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","title":"Detailed Explanation of PWM Usage and Examples in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 PWM\uff08Pulse Width Modulation,\u8108\u885d\u5bec\u5ea6\u8abf\u88fd\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e09\u500b\u5177\u9ad4\u7684\u7a0b\u5e8f\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3 PWM \u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728 RP2040 \u4e2d\u914d\u7f6e\u548c\u4f7f\u7528 PWM\u3002\u7121\u8ad6\u4f60\u662f\u60f3\u8981\u8f38\u51fa PWM \u4fe1\u865f\u3001\u63a7\u5236 LED \u4eae\u5ea6,\u9084\u662f\u6e2c\u91cf PWM \u4fe1\u865f\u7684\u4f54\u7a7a\u6bd4,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u8a73\u76e1\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples"},{"id":"micro-controladores/RP2040/pio-uart-implementation","title":"Implementing UART (TX )with PIO on RP2040","description":"1. UART \u57fa\u672c\u539f\u7406","permalink":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040"},{"id":"micro-controladores/RP2040/mastering-pio-programming","title":"Mastering PIO Programming on RP2040","description":"1. PIO \u7c21\u4ecb","permalink":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","title":"Timer and Alarm Usage in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u70ba\u5927\u5bb6\u8a73\u7d30\u8b1b\u89e3\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528\u8a08\u6642\u5668\uff08Timer\uff09\u548c\u9b27\u9418\uff08Alarm\uff09\u529f\u80fd\u3002\u6211\u5011\u5c07\u901a\u904e\u4e00\u500b\u5177\u9ad4\u7684\u4ee3\u78bc\u793a\u4f8b,\u6df1\u5165\u4e86\u89e3\u8a08\u6642\u5668\u548c\u9b27\u9418\u7684\u5de5\u4f5c\u539f\u7406,\u4ee5\u53ca\u5982\u4f55\u5728\u7a0b\u5e8f\u4e2d\u9748\u6d3b\u904b\u7528\u5b83\u5011\u3002\u7121\u8ad6\u662f\u9700\u8981\u57f7\u884c\u5b9a\u6642\u4efb\u52d9,\u9084\u662f\u5e0c\u671b\u5728\u5176\u4ed6\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u8a08\u6642\u5668\u529f\u80fd,\u9019\u7bc7\u6587\u7ae0\u90fd\u5c07\u70ba\u4f60\u63d0\u4f9b\u5be6\u7528\u7684\u6307\u5c0e\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/c2aca3b0.cdd805fa.js b/zh-hk/assets/js/c2aca3b0.cdd805fa.js new file mode 100644 index 000000000..97d017e71 --- /dev/null +++ b/zh-hk/assets/js/c2aca3b0.cdd805fa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[1718],{5120:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>t,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var c=i(4848),l=i(8453);const s={slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},r="Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",d={id:"micro-controladores/STM32/stm32_cdc_develop",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",description:"Configuraci\xf3n de STM32CubeMX",source:"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",sourceDirName:"micro-controladores/STM32",slug:"/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",permalink:"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/micro-controladores/STM32/stm32_cdc_develop.md",tags:[{inline:!0,label:"stm32",permalink:"/zh-hk/tags/stm-32"},{inline:!0,label:"usb",permalink:"/zh-hk/tags/usb"},{inline:!0,label:"cdc",permalink:"/zh-hk/tags/cdc"}],version:"current",lastUpdatedAt:1720597722e3,frontMatter:{slug:"desarrollo-cdc-stm32cubemx",title:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX",authors:[{name:"w0x7ce",title:"Ingeniero de Sistemas Embebidos",url:"https://github.com/tianrking",image_url:"https://github.com/tianrking.png"}],tags:["stm32","usb","cdc"]},sidebar:"tutorialSidebar",previous:{title:"Tutorial",permalink:"/zh-hk/tutorial"},next:{title:"UART Interrupt Handling and Data Transmission in RP2040",permalink:"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}},t={},a=[{value:"Configuraci\xf3n de STM32CubeMX",id:"configuraci\xf3n-de-stm32cubemx",level:2},{value:"Implementaci\xf3n del c\xf3digo",id:"implementaci\xf3n-del-c\xf3digo",level:2},{value:"En la funci\xf3n <code>CDC_Receive_FS()</code>:",id:"en-la-funci\xf3n-cdc_receive_fs",level:3},{value:"En la funci\xf3n <code>CDC_Transmit_FS()</code>:",id:"en-la-funci\xf3n-cdc_transmit_fs",level:3},{value:"Habilitaci\xf3n de interrupciones",id:"habilitaci\xf3n-de-interrupciones",level:2},{value:"Procesamiento de datos",id:"procesamiento-de-datos",level:2},{value:"STM32CubeMX Configuration",id:"stm32cubemx-configuration",level:2},{value:"Code Implementation",id:"code-implementation",level:2},{value:"In the <code>CDC_Receive_FS()</code> function:",id:"in-the-cdc_receive_fs-function",level:3},{value:"In the <code>CDC_Transmit_FS()</code> function:",id:"in-the-cdc_transmit_fs-function",level:3},{value:"Interrupt Enablement",id:"interrupt-enablement",level:2},{value:"Data Processing",id:"data-processing",level:2},{value:"STM32CubeMX \u8a2d\u5b9a",id:"stm32cubemx-\u8a2d\u5b9a",level:2},{value:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",level:2},{value:"\u5728 <code>CDC_Receive_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u5728 <code>CDC_Transmit_FS()</code> \u51fd\u6578\u4e2d:",id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",level:3},{value:"\u4e2d\u65b7\u555f\u7528",id:"\u4e2d\u65b7\u555f\u7528",level:2},{value:"\u8cc7\u6599\u8655\u7406",id:"\u8cc7\u6599\u8655\u7406",level:2}];function o(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",...(0,l.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.h1,{id:"desarrollo-de-comunicaci\xf3n-cdc-con-stm32cubemx",children:"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"configuraci\xf3n-de-stm32cubemx",children:"Configuraci\xf3n de STM32CubeMX"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar el modo USB Device FS (Full Speed) en la pesta\xf1a de Pinout & Configuration."}),"\n",(0,c.jsx)(n.li,{children:"Seleccionar el modo CDC (Communication Device Class) en la pesta\xf1a de USB Device."}),"\n",(0,c.jsx)(n.li,{children:"Generar el c\xf3digo del proyecto."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"implementaci\xf3n-del-c\xf3digo",children:"Implementaci\xf3n del c\xf3digo"}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_receive_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de recepci\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," para indicar que el dispositivo est\xe1 listo para recibir m\xe1s datos."]}),"\n",(0,c.jsxs)(n.li,{children:["Si se desea enviar los datos recibidos de vuelta al host, llamar a ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Retornar ",(0,c.jsx)(n.code,{children:"USBD_OK"})," para indicar que los datos han sido procesados."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"en-la-funci\xf3n-cdc_transmit_fs",children:["En la funci\xf3n ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),":"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verificar el estado del b\xfafer de transmisi\xf3n USB (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Establecer el b\xfafer de transmisi\xf3n USB utilizando ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Llamar a ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," para enviar los datos."]}),"\n",(0,c.jsx)(n.li,{children:"Retornar el resultado de la transmisi\xf3n."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"habilitaci\xf3n-de-interrupciones",children:"Habilitaci\xf3n de interrupciones"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implementar las funciones de callback de recepci\xf3n y transmisi\xf3n USB, como ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," y ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"procesamiento-de-datos",children:"Procesamiento de datos"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar."}),"\n",(0,c.jsxs)(n.li,{children:["Utilizar las funciones ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," y ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," para gestionar la recepci\xf3n y transmisi\xf3n de datos."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"cdc-development-with-stm32cubemx",children:"CDC Development with STM32CubeMX"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-configuration",children:"STM32CubeMX Configuration"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab."}),"\n",(0,c.jsx)(n.li,{children:"Select CDC (Communication Device Class) mode in the USB Device tab."}),"\n",(0,c.jsx)(n.li,{children:"Generate the project code."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"code-implementation",children:"Code Implementation"}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_receive_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Set the USB receive buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," to indicate the device is ready to receive more data."]}),"\n",(0,c.jsxs)(n.li,{children:["If you want to send the received data back to the host, call ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Return ",(0,c.jsx)(n.code,{children:"USBD_OK"})," to indicate the data has been processed."]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"in-the-cdc_transmit_fs-function",children:["In the ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," function:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["Verify the state of the USB transmit buffer (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")."]}),"\n",(0,c.jsxs)(n.li,{children:["Set the USB transmit buffer using ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"}),"."]}),"\n",(0,c.jsxs)(n.li,{children:["Call ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," to send the data."]}),"\n",(0,c.jsx)(n.li,{children:"Return the result of the transmission."}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"interrupt-enablement",children:"Interrupt Enablement"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"Enable the USB interrupts in the project generated by STM32CubeMX."}),"\n",(0,c.jsxs)(n.li,{children:["Implement the USB receive and transmit callback functions, such as ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," and ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"."]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"data-processing",children:"Data Processing"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"In the callback functions, process the received data and prepare the data to be sent."}),"\n",(0,c.jsxs)(n.li,{children:["Use the ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," and ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," functions to manage the data reception and transmission."]}),"\n"]}),"\n",(0,c.jsx)(n.h1,{id:"\u4f7f\u7528-stm32cubemx-\u958b\u767c-cdc-\u901a\u8a0a",children:"\u4f7f\u7528 STM32CubeMX \u958b\u767c CDC \u901a\u8a0a"}),"\n",(0,c.jsx)(n.h2,{id:"stm32cubemx-\u8a2d\u5b9a",children:"STM32CubeMX \u8a2d\u5b9a"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 Pinout & Configuration \u6a19\u7c64\u4e2d\u555f\u7528 USB Device FS (Full Speed) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u5728 USB Device \u6a19\u7c64\u4e2d\u9078\u64c7 CDC (Communication Device Class) \u6a21\u5f0f\u3002"}),"\n",(0,c.jsx)(n.li,{children:"\u7522\u751f\u5c08\u6848\u7a0b\u5f0f\u78bc\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c",children:"\u7a0b\u5f0f\u78bc\u5be6\u4f5c"}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_receive_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetRxBuffer()"})," \u8a2d\u5b9a\u63a5\u6536\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_ReceivePacket()"})," \u8868\u793a\u8a2d\u5099\u5df2\u6e96\u5099\u597d\u63a5\u6536\u66f4\u591a\u8cc7\u6599\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u5982\u679c\u9700\u8981\u5c07\u6536\u5230\u7684\u8cc7\u6599\u56de\u50b3\u81f3\u4e3b\u6a5f, \u547c\u53eb ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"}),"\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u8fd4\u56de ",(0,c.jsx)(n.code,{children:"USBD_OK"})," \u8868\u793a\u8cc7\u6599\u5df2\u8655\u7406\u5b8c\u6210\u3002"]}),"\n"]}),"\n",(0,c.jsxs)(n.h3,{id:"\u5728-cdc_transmit_fs-\u51fd\u6578\u4e2d",children:["\u5728 ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u4e2d:"]}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsxs)(n.li,{children:["\u6aa2\u67e5\u50b3\u8f38\u7de9\u885d\u5340\u7684\u72c0\u614b (",(0,c.jsx)(n.code,{children:"hcdc->TxState"}),")\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"USBD_CDC_SetTxBuffer()"})," \u8a2d\u5b9a\u50b3\u8f38\u7de9\u885d\u5340\u3002"]}),"\n",(0,c.jsxs)(n.li,{children:["\u547c\u53eb ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitPacket()"})," \u50b3\u9001\u8cc7\u6599\u3002"]}),"\n",(0,c.jsx)(n.li,{children:"\u8fd4\u56de\u50b3\u8f38\u7d50\u679c\u3002"}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u4e2d\u65b7\u555f\u7528",children:"\u4e2d\u65b7\u555f\u7528"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728 STM32CubeMX \u7522\u751f\u7684\u5c08\u6848\u4e2d\u555f\u7528 USB \u4e2d\u65b7\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u5be6\u4f5c\u63a5\u6536\u548c\u50b3\u8f38\u7684\u56de\u547c\u51fd\u6578, \u5982 ",(0,c.jsx)(n.code,{children:"USBD_CDC_DataReceived_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"USBD_CDC_TransmitCplt_FS()"}),"\u3002"]}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"\u8cc7\u6599\u8655\u7406",children:"\u8cc7\u6599\u8655\u7406"}),"\n",(0,c.jsxs)(n.ol,{children:["\n",(0,c.jsx)(n.li,{children:"\u5728\u56de\u547c\u51fd\u6578\u4e2d\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599, \u4e26\u6e96\u5099\u8981\u50b3\u9001\u7684\u8cc7\u6599\u3002"}),"\n",(0,c.jsxs)(n.li,{children:["\u4f7f\u7528 ",(0,c.jsx)(n.code,{children:"CDC_Receive_FS()"})," \u548c ",(0,c.jsx)(n.code,{children:"CDC_Transmit_FS()"})," \u51fd\u6578\u7ba1\u7406\u8cc7\u6599\u7684\u63a5\u6536\u548c\u50b3\u8f38\u3002"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>d});var c=i(6540);const l={},s=c.createContext(l);function r(e){const n=c.useContext(s);return c.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),c.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/c4f5d8e4.336a6011.js b/zh-hk/assets/js/c4f5d8e4.336a6011.js new file mode 100644 index 000000000..06e66e4f1 --- /dev/null +++ b/zh-hk/assets/js/c4f5d8e4.336a6011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[2634],{870:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{fill:"#3f3d56",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74","data-name":"Path 83"}),r.createElement("path",{fill:"#f2f2f2",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193 193 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657 657 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z","data-name":"Path 84"}),r.createElement("path",{d:"m302 282.962 26-57 36 83-31-60Z","data-name":"Path 85",opacity:.1}),r.createElement("path",{d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z","data-name":"Path 86",opacity:.1}),r.createElement("path",{d:"M464.411 315.191 493 292.962l130 150-132-128Z","data-name":"Path 87",opacity:.1}),r.createElement("path",{d:"M852.79 645.032a193 193 0 0 1-27.46 11.94L623.2 425.232Z","data-name":"Path 88",opacity:.1}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 11",transform:"translate(479 98.962)"}),r.createElement("circle",{cx:3,cy:3,r:3,fill:"#f2f2f2","data-name":"Ellipse 12",transform:"translate(396 201.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 13",transform:"translate(600 220.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 14",transform:"translate(180 265.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 15",transform:"translate(612 96.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 16",transform:"translate(736 192.962)"}),r.createElement("circle",{cx:2,cy:2,r:2,fill:"#f2f2f2","data-name":"Ellipse 17",transform:"translate(858 344.962)"}),r.createElement("path",{fill:"#f2f2f2",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z","data-name":"Path 89"}),r.createElement("path",{fill:"#f2f2f2",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z","data-name":"Path 90"}),r.createElement("path",{fill:"#3f3d56",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 91"}),r.createElement("path",{d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14","data-name":"Path 92",opacity:.1}),r.createElement("ellipse",{cx:544,cy:30,fill:"#3f3d56","data-name":"Ellipse 18",rx:544,ry:30,transform:"translate(0 583.962)"}),r.createElement("path",{fill:"#ff6584",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96","data-name":"Path 93"}),r.createElement("path",{d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636","data-name":"Path 94",opacity:.1}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 97",rx:9,transform:"translate(489 604.962)"}),r.createElement("rect",{width:92,height:18,fill:"#2f2e41","data-name":"Rectangle 98",rx:9,transform:"translate(489 586.962)"}),r.createElement("path",{fill:"#3f3d56",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126","data-name":"Path 95"}),r.createElement("path",{fill:"#6c63ff",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251","data-name":"Path 96"}),r.createElement("path",{fill:"#6c63ff",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109","data-name":"Path 97"}),r.createElement("path",{fill:"#3f3d56",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377","data-name":"Path 98"}),r.createElement("path",{fill:"#a8a8a8",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897","data-name":"Path 99"}),r.createElement("path",{d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877","data-name":"Path 100",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8","data-name":"Path 101"}),r.createElement("path",{fill:"#6c63ff",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575","data-name":"Path 102"}),r.createElement("path",{fill:"#6c63ff",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354","data-name":"Path 103"}),r.createElement("path",{fill:"#3f3d56",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9","data-name":"Path 104"}),r.createElement("path",{fill:"#a8a8a8",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488","data-name":"Path 105"}),r.createElement("path",{d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293","data-name":"Path 106",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784","data-name":"Path 107"}),r.createElement("path",{d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512","data-name":"Path 108",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1","data-name":"Path 109"}),r.createElement("path",{d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125","data-name":"Path 110",opacity:.2}),r.createElement("path",{fill:"#a8a8a8",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085","data-name":"Path 111"}),r.createElement("path",{d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65","data-name":"Path 112",opacity:.2}),r.createElement("path",{d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793","data-name":"Path 113",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8","data-name":"Path 114"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M360.175 475.732h91.791v37.153h-91.791Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M277.126 597.026a21.83 21.83 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M408.255 618.882h32.782v-43.71h-32.782Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 591.563a5 5 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M419.183 553.317h32.782v-21.855h-32.782Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M320.836 479.556a2.73 2.73 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.73 2.73 0 0 1-2.732 2.732","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 618.882h43.71v-43.71h-43.71Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{width:92.361,height:36.462,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(1.531 23.03)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 4",rx:1,transform:"translate(16.797)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 5",rx:1,transform:"translate(23.12)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 6",rx:1,transform:"translate(29.444)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 7",rx:1,transform:"translate(35.768)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 8",rx:1,transform:"translate(42.091)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 9",rx:1,transform:"translate(48.415)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 10",rx:1,transform:"translate(54.739)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 11",rx:1,transform:"translate(61.063)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 12",rx:1,transform:"translate(67.386)"}),r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0M75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(1.531 10.261)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0","data-name":"Path 52"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 13",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 14",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 15",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 16",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 17",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 18",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 19",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 20",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 21",rx:1,transform:"translate(58.888)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 22",rx:1,transform:"translate(65.212)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 23",rx:1,transform:"translate(71.536)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 24",rx:1,transform:"translate(77.859)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 25",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 45.525 4.773)"},r.createElement("path",{fillRule:"evenodd",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0","data-name":"Path 53"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 26",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 27",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 28",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 29",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 30",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 31",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 32",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 33",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 34",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 35",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 36",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 37",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 38",rx:1,transform:"translate(84.183)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 39",rx:1,transform:"translate(8.299)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 40",rx:1,transform:"translate(14.623)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 41",rx:1,transform:"translate(20.947)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 42",rx:1,transform:"translate(27.271)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 43",rx:1,transform:"translate(33.594)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 44",rx:1,transform:"translate(39.918)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 45",rx:1,transform:"translate(46.242)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 46",rx:1,transform:"translate(52.565)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 47",rx:1,transform:"translate(58.889)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 48",rx:1,transform:"translate(65.213)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 49",rx:1,transform:"translate(71.537)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 50",rx:1,transform:"translate(77.86)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 51",rx:1,transform:"translate(84.183)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 53",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 54",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 55",rx:1,transform:"translate(18.971)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 56",rx:1,transform:"translate(25.295)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 57",rx:1,transform:"translate(31.619)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 58",rx:1,transform:"translate(37.942)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 59",rx:1,transform:"translate(44.265)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 60",rx:1,transform:"translate(50.589)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 61",rx:1,transform:"translate(56.912)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 62",rx:1,transform:"translate(63.236)"})),r.createElement("path",{fillRule:"evenodd",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(1.531 29.627)"},r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 64",rx:1,transform:"translate(6.324)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 65",rx:1,transform:"translate(12.647)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 66",rx:1,transform:"translate(18.971)"}),r.createElement("path",{fillRule:"evenodd",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0m33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0","data-name":"Path 56"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 67",rx:1,transform:"translate(66.003)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 68",rx:1,transform:"translate(72.327)"}),r.createElement("rect",{width:5.336,height:5.336,"data-name":"Rectangle 69",rx:1,transform:"translate(84.183)"}),r.createElement("path",{d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z","data-name":"Path 57"}),r.createElement("path",{d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z","data-name":"Path 58"})),r.createElement("rect",{width:88.927,height:2.371,fill:"#4a4a4a","data-name":"Rectangle 70",rx:1.085,transform:"translate(1.925 1.17)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.723,transform:"translate(4.1 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.723,transform:"translate(10.923 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.723,transform:"translate(16.173 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.723,transform:"translate(21.421 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.723,transform:"translate(26.671 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.723,transform:"translate(33.232 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.723,transform:"translate(38.48 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.723,transform:"translate(43.73 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.723,transform:"translate(48.978 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.723,transform:"translate(55.54 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.723,transform:"translate(60.788 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.723,transform:"translate(66.038 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.723,transform:"translate(72.599 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.723,transform:"translate(77.847 1.566)"}),r.createElement("rect",{width:4.986,height:1.581,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.723,transform:"translate(83.097 1.566)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M408.256 591.563a5.4 5.4 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M342.691 553.317h43.71v-21.855h-43.71Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 3 3 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253q.033-.122.063-.246a3 3 0 0 0 .349.035","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M408.256 464.531a3 3 0 0 1-.535-.055 2.8 2.8 0 0 1-.514-.153 3 3 0 0 1-.471-.251 4 4 0 0 1-.415-.339 3 3 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 3 3 0 0 1 .055-.535 3 3 0 0 1 .152-.514 3 3 0 0 1 .252-.47 2.6 2.6 0 0 1 .753-.754 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 4 4 0 0 1 .339.415 3 3 0 0 1 .251.47 2.9 2.9 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459m21.855-1.366a2.8 2.8 0 0 1-1.935-.8 4 4 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.8 2.8 0 0 1 .8-1.934 4 4 0 0 1 .415-.339 3 3 0 0 1 .471-.251 2.8 2.8 0 0 1 .514-.153 2.5 2.5 0 0 1 1.071 0 2.7 2.7 0 0 1 .983.4 4 4 0 0 1 .415.339 2.8 2.8 0 0 1 .8 1.934 3 3 0 0 1-.055.535 3 3 0 0 1-.153.514 4 4 0 0 1-.251.47 4 4 0 0 1-.339.415 4 4 0 0 1-.415.339 2.72 2.72 0 0 1-1.519.459","data-name":"Path 62"}))))}},6740:(e,a,t)=>{t.d(a,{A:()=>c});var l,r=t(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},n.apply(null,arguments)}const c=e=>{let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{fill:"#f2f2f2",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a88 88 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189 189 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05","data-name":"Path 299"}),r.createElement("path",{d:"M497.02 445.61a95 95 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a88 88 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12M162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z","data-name":"Path 300",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 301"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z","data-name":"Path 302",opacity:.2}),r.createElement("path",{fill:"#3f3d56",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 303"}),r.createElement("path",{d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 304",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z","data-name":"Path 305"}),r.createElement("path",{fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 137"}),r.createElement("path",{d:"M680.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 138",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z","data-name":"Rectangle 139"}),r.createElement("path",{d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z","data-name":"Path 306",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 307"}),r.createElement("path",{d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z","data-name":"Path 308",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M194.59 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 309"}),r.createElement("path",{d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z","data-name":"Path 310",opacity:.1}),r.createElement("path",{fill:"#65617d",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95","data-name":"Path 311"}),r.createElement("path",{d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95","data-name":"Path 312",opacity:.1}),r.createElement("path",{fill:"#39374d",d:"M775.59 319.15h-177.5V467.4l177.5 4Z","data-name":"Path 313"}),r.createElement("path",{fill:"#65617d",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95","data-name":"Path 314"}),r.createElement("path",{fill:"#4267b2",d:"M397.09 319.15h177.5V467.4l-177.5 4Z","data-name":"Path 315"}),r.createElement("path",{d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z","data-name":"Path 316",opacity:.1}),r.createElement("circle",{cx:51.33,cy:51.33,r:51.33,fill:"#fbbebe","data-name":"Ellipse 111",transform:"translate(435.93 246.82)"}),r.createElement("path",{fill:"#fbbebe",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a345 345 0 0 0 9.65 33.92","data-name":"Path 317"}),r.createElement("path",{fill:"#ff6584",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2438 2438 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88","data-name":"Path 318"}),r.createElement("path",{d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z","data-name":"Path 319",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.6 10.6 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.4 10.4 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937 937 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z","data-name":"Path 320"}),r.createElement("path",{d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5 5 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.6 3.6 0 0 1 .25.61 6.3 6.3 0 0 1 .36 2.59","data-name":"Path 321",opacity:.1}),r.createElement("path",{d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z","data-name":"Path 322",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 323"}),r.createElement("path",{d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 324",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z","data-name":"Path 325"}),r.createElement("path",{d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z","data-name":"Path 326",opacity:.1}),r.createElement("path",{d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 327",opacity:.1}),r.createElement("path",{fill:"#3f3d56",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z","data-name":"Path 328"}),r.createElement("path",{fill:"#3f3d56",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.5 163.5 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266 266 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16","data-name":"Path 329"})),r.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M280.139 370.832h43.635v17.662h-43.635Z","data-name":"Path 40"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M240.66 428.493a10.38 10.38 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z","data-name":"Path 41"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m287.402 373.625 36.373-2.273v-5.195a10.39 10.39 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.39 10.39 0 0 0 10.389 10.34h62.335a10.39 10.39 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038","data-name":"Path 42"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M302.996 438.882h15.584v-20.779h-15.584Z","data-name":"Path 43"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.97 425.895a3 3 0 0 0-.332.033q-.028-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.115-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.116.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 44"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.191 407.713h15.584v-10.389h-15.584Z","data-name":"Path 45"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 46"}),r.createElement("path",{fillRule:"evenodd",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3","data-name":"Path 47"}),r.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M282.217 438.882h31.168a10.39 10.39 0 0 0 10.389-10.389V392.13h-31.168a10.39 10.39 0 0 0-10.389 10.389Z","data-name":"Path 48"}),r.createElement("path",{fillRule:"evenodd",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.82 3.82 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.59 3.59 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z","data-name":"Path 49"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 438.882h20.779v-20.779h-20.779Z","data-name":"Path 50"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{width:43.906,height:17.333,fill:"#d8d8d8","data-name":"Rectangle 3",rx:2}),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 2",transform:"translate(.728 10.948)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 4",rx:1,transform:"translate(7.985)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 5",rx:1,transform:"translate(10.991)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 6",rx:1,transform:"translate(13.997)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 7",rx:1,transform:"translate(17.003)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 8",rx:1,transform:"translate(20.009)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 9",rx:1,transform:"translate(23.015)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 10",rx:1,transform:"translate(26.021)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 11",rx:1,transform:"translate(29.028)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 12",rx:1,transform:"translate(32.034)"}),r.createElement("path",{fillRule:"evenodd",d:"M.519 0H6.9a.52.52 0 0 1 .521.52v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0m35.134 0h6.383a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-6.384a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 35.652 0Z","data-name":"Path 51"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 3",transform:"translate(.728 4.878)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 52"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 13",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 14",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 15",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 16",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 17",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 18",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 19",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 20",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 21",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 22",rx:1,transform:"translate(31)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 23",rx:1,transform:"translate(34.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 24",rx:1,transform:"translate(37.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 25",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 4",transform:"rotate(180 21.642 2.269)"},r.createElement("path",{fillRule:"evenodd",d:"M.519 0h2.437a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H.519A.52.52 0 0 1 0 2.017V.519A.52.52 0 0 1 .519 0","data-name":"Path 53"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 26",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 27",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 28",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 29",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 30",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 31",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 32",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 33",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 34",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 35",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 36",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 37",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 38",rx:1,transform:"translate(40.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 39",rx:1,transform:"translate(3.945)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 40",rx:1,transform:"translate(6.951)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 41",rx:1,transform:"translate(9.958)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 42",rx:1,transform:"translate(12.964)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 43",rx:1,transform:"translate(15.97)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 44",rx:1,transform:"translate(18.976)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 45",rx:1,transform:"translate(21.982)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 46",rx:1,transform:"translate(24.988)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 47",rx:1,transform:"translate(27.994)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 48",rx:1,transform:"translate(31.001)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 49",rx:1,transform:"translate(34.007)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 50",rx:1,transform:"translate(37.013)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 51",rx:1,transform:"translate(40.018)"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 6"},r.createElement("path",{fillRule:"evenodd",d:"M1.247 7.883h3.47a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.47A.52.52 0 0 1 .728 9.9V8.403a.52.52 0 0 1 .519-.52","data-name":"Path 54"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 52",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 53",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 54",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 55",rx:1,transform:"translate(9.018)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 56",rx:1,transform:"translate(12.025)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 57",rx:1,transform:"translate(15.031)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 58",rx:1,transform:"translate(18.037)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 59",rx:1,transform:"translate(21.042)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 60",rx:1,transform:"translate(24.049)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 61",rx:1,transform:"translate(27.055)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 62",rx:1,transform:"translate(30.061)"})),r.createElement("path",{fillRule:"evenodd",d:"M39.482 7.883h3.28a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-3.281a.52.52 0 0 1-.519-.521V8.403a.52.52 0 0 1 .519-.52Z","data-name":"Path 55"})),r.createElement("g",{fill:"#4a4a4a","data-name":"Group 7",transform:"translate(.728 14.084)"},r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 63",rx:1}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 64",rx:1,transform:"translate(3.006)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 65",rx:1,transform:"translate(6.012)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 66",rx:1,transform:"translate(9.018)"}),r.createElement("path",{fillRule:"evenodd",d:"M12.543 0h14.462a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519H12.543a.52.52 0 0 1-.519-.52V.519A.52.52 0 0 1 12.543 0m15.97 0h1.874a.52.52 0 0 1 .519.519v1.5a.52.52 0 0 1-.519.519h-1.874a.52.52 0 0 1-.519-.519v-1.5A.52.52 0 0 1 28.513 0","data-name":"Path 56"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 67",rx:1,transform:"translate(31.376)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 68",rx:1,transform:"translate(34.382)"}),r.createElement("rect",{width:2.537,height:2.537,"data-name":"Rectangle 69",rx:1,transform:"translate(40.018)"}),r.createElement("path",{d:"M37.199 1.08V.519A.52.52 0 0 1 37.718 0h1.499a.52.52 0 0 1 .519.519v.561Z","data-name":"Path 57"}),r.createElement("path",{d:"M39.737 1.456v.561a.52.52 0 0 1-.519.519h-1.499a.52.52 0 0 1-.519-.519v-.561Z","data-name":"Path 58"})),r.createElement("rect",{width:42.273,height:1.127,fill:"#4a4a4a","data-name":"Rectangle 70",rx:.564,transform:"translate(.915 .556)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 71",opacity:.136,rx:.376,transform:"translate(1.949 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 72",opacity:.136,rx:.376,transform:"translate(5.193 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 73",opacity:.136,rx:.376,transform:"translate(7.688 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 74",opacity:.136,rx:.376,transform:"translate(10.183 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 75",opacity:.136,rx:.376,transform:"translate(12.679 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 76",opacity:.136,rx:.376,transform:"translate(15.797 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 77",opacity:.136,rx:.376,transform:"translate(18.292 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 78",opacity:.136,rx:.376,transform:"translate(20.788 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 79",opacity:.136,rx:.376,transform:"translate(23.283 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 80",opacity:.136,rx:.376,transform:"translate(26.402 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 81",opacity:.136,rx:.376,transform:"translate(28.897 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 82",opacity:.136,rx:.376,transform:"translate(31.393 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 83",opacity:.136,rx:.376,transform:"translate(34.512 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 84",opacity:.136,rx:.376,transform:"translate(37.007 .744)"}),r.createElement("rect",{width:2.37,height:.752,fill:"#d8d8d8","data-name":"Rectangle 85",opacity:.136,rx:.376,transform:"translate(39.502 .744)"})),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M302.996 425.895a3 3 0 0 0-.332.033q-.029-.117-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569q-.116-.031-.231-.06a2.6 2.6 0 1 0-5.128 0q-.115.029-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161","data-name":"Path 59"}),r.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M271.828 407.713h20.779v-10.389h-20.779Z","data-name":"Path 60"}),r.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1 1 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.3 1.3 0 0 0-.783.269l-.087-.087a1.3 1.3 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.3 1.3 0 0 0-.263-.776l.087-.087a1.3 1.3 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5q.016-.058.03-.117a1 1 0 0 0 .166.017","data-name":"Path 61"}),r.createElement("path",{fillRule:"evenodd",d:"M302.997 365.507a1.4 1.4 0 0 1-.255-.026 1.3 1.3 0 0 1-.244-.073 1.4 1.4 0 0 1-.224-.119 2 2 0 0 1-.2-.161 1.5 1.5 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.4 1.4 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.4 1.4 0 0 1 .12-.223 1.3 1.3 0 0 1 .358-.358 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 2 2 0 0 1 .161.2 1.3 1.3 0 0 1 .12.223 1.4 1.4 0 0 1 .1.5 1.32 1.32 0 0 1-.379.919 2 2 0 0 1-.2.161 1.4 1.4 0 0 1-.223.119 1.3 1.3 0 0 1-.5.1m10.389-.649a1.33 1.33 0 0 1-.92-.379 2 2 0 0 1-.161-.2 1.3 1.3 0 0 1-.218-.722 1.33 1.33 0 0 1 .379-.919 2 2 0 0 1 .2-.161 1.4 1.4 0 0 1 .224-.119 1.3 1.3 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.3 1.3 0 0 1 .468.192 2 2 0 0 1 .2.161 1.33 1.33 0 0 1 .379.919 1.5 1.5 0 0 1-.026.255 1.3 1.3 0 0 1-.073.244 2 2 0 0 1-.119.223 2 2 0 0 1-.161.2 2 2 0 0 1-.2.161 1.3 1.3 0 0 1-.722.218","data-name":"Path 62"}),r.createElement("g",{fill:"#61dafb",transform:"translate(466.3 278.56)"},r.createElement("path",{d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.86 7.86 0 0 0-4.016-1v4a4.15 4.15 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a87 87 0 0 0-11.386-1.954 87.5 87.5 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a85 85 0 0 0-7.405 8.947 84 84 0 0 0-11.4 1.972 54 54 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a4 4 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.9 7.9 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752m-23.346-11.96a80 80 0 0 1-2.421 7.083 83 83 0 0 0-2.349-4.3 97 97 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93 93 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94 94 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93 93 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101 101 0 0 1-3.712 7.15Zm5.792-2.331a77 77 0 0 1 2.474 7.136 80 80 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96 96 0 0 0 2.329-4.324Zm-18.182 19.128a74 74 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a70 70 0 0 1-4.931 5.738m-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80 80 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2m13.25-37.314a74 74 0 0 1 4.985 5.738 111 111 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a70 70 0 0 1 4.931-5.738M206.362 103.8a101 101 0 0 0-4.913 8.55 77 77 0 0 1-2.474-7.136 90 90 0 0 1 7.387-1.414m-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86 86 0 0 0 4.034 10.92 85 85 0 0 0-3.981 10.866 54 54 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a87 87 0 0 0 11.386 1.954 87.5 87.5 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.3 4.3 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a4 4 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a85 85 0 0 0 7.405-8.947 84 84 0 0 0 11.4-1.972 50 50 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86 86 0 0 0-4.034-10.92 85 85 0 0 0 3.981-10.866 57 57 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z","data-name":"Path 330"}),r.createElement("path",{d:"M201.718 78.072","data-name":"Path 331"}),r.createElement("circle",{cx:8.194,cy:8.194,r:8.194,"data-name":"Ellipse 112",transform:"translate(211.472 108.984)"}),r.createElement("path",{d:"M237.525 78.018","data-name":"Path 332"})))))}},3844:(e,a,t)=>{t.d(a,{A:()=>k});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,x,v,R,w,M,u,P,y,Z,A,q,b,j,V,H,G,_,N,S,O,C,B,z=t(6540);function F(){return F=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var l in t)({}).hasOwnProperty.call(t,l)&&(e[l]=t[l])}return e},F.apply(null,arguments)}const k=e=>{let{title:a,titleId:t,...k}=e;return z.createElement("svg",F({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},k),void 0===a?z.createElement("title",{id:t},"Focus on What Matters"):a?z.createElement("title",{id:t},a):null,l||(l=z.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=z.createElement("ellipse",{cx:559,cy:635.5,fill:"#3f3d56",rx:514,ry:27.5})),n||(n=z.createElement("ellipse",{cx:558,cy:627,opacity:.2,rx:460,ry:22})),c||(c=z.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=z.createElement("path",{fill:"#3f3d56",d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67"})),d||(d=z.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67",opacity:.2})),m||(m=z.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=z.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=z.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=z.createElement("rect",{width:337,height:386,x:168,y:213.5,fill:"#606060",rx:5.335})),o||(o=z.createElement("rect",{width:284,height:22,x:603,y:272.5,fill:"#2e8555",rx:5.476})),g||(g=z.createElement("rect",{width:416,height:15,x:537,y:352.5,fill:"#2e8555",rx:5.476})),E||(E=z.createElement("rect",{width:416,height:15,x:537,y:396.5,fill:"#2e8555",rx:5.476})),p||(p=z.createElement("rect",{width:416,height:15,x:537,y:440.5,fill:"#2e8555",rx:5.476})),x||(x=z.createElement("rect",{width:416,height:15,x:537,y:484.5,fill:"#2e8555",rx:5.476})),v||(v=z.createElement("rect",{width:88,height:26,x:865,y:552.5,fill:"#3ecc5f",rx:7.028})),R||(R=z.createElement("path",{fill:"#3f3d56",d:"M1053.103 506.116a30.1 30.1 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.1 30.1 0 0 0 3.983 15.266 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 31.25 31.25 0 0 0 0 30.532 30.1 30.1 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.1 30.1 0 0 0-3.983-15.267 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532 31.25 31.25 0 0 0 0-30.532"})),w||(w=z.createElement("ellipse",{cx:1038.003,cy:460.318,fill:"#3f3d56",rx:19.083,ry:24.981})),M||(M=z.createElement("ellipse",{cx:1038.003,cy:429.786,fill:"#3f3d56",rx:19.083,ry:24.981})),u||(u=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M1109.439 220.845a92 92 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.57 91.57 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.5 91.5 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.42 91.42 0 0 0 0-113.03"})),P||(P=z.createElement("path",{d:"M946.189 277.36a91 91 0 0 0 19.56 56.514 91.406 91.406 0 1 0 143.69 0c12.25-15.553-163.25-66.774-163.25-56.515",opacity:.1})),y||(y=z.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M330.12 342.936h111.474v45.12H330.12Z"})),Z||(Z=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z"})),A||(A=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497q-.002.041-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197"})),q||(q=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M388.511 516.783h39.812V463.7h-39.812Z"})),b||(b=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 483.606a7 7 0 0 0-.848.085q-.073-.3-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186"})),j||(j=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M401.782 437.158h39.812v-26.541h-39.812Z"})),V||(V=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3 3 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2 .688q-.11-.113-.224-.223a3.3 3.3 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.672-1.982q.114-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .424.042"})),H||(H=z.createElement("path",{fillRule:"evenodd",d:"M282.345 347.581a3.32 3.32 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.32 3.32 0 0 1-3.318 3.318"})),G||(G=z.createElement("path",{fill:"#ffff50",fillRule:"evenodd",d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z"})),_||(_=z.createElement("path",{fillRule:"evenodd",d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z"})),N||(N=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 516.783h53.083V463.7h-53.083Z"})),S||(S=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M388.511 483.606a7 7 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186"})),O||(O=z.createElement("path",{fill:"#3ecc5f",fillRule:"evenodd",d:"M308.887 437.158h53.083v-26.541h-53.083Z"})),C||(C=z.createElement("path",{fill:"#44d860",fillRule:"evenodd",d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3 3 0 0 0-.423.042q-.038-.15-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.28 3.28 0 0 0-2.001.688q-.11-.113-.223-.223a3.3 3.3 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.3 3.3 0 0 0-.671-1.982q.113-.11.223-.223a3.28 3.28 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3 3 0 0 0 .423.042"})),B||(B=z.createElement("path",{fillRule:"evenodd",d:"M388.511 329.334a3.6 3.6 0 0 1-.65-.067 3.3 3.3 0 0 1-.624-.185 3.5 3.5 0 0 1-.572-.306 5 5 0 0 1-.504-.411 4 4 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.6 3.6 0 0 1 .067-.65 4 4 0 0 1 .184-.624 3.5 3.5 0 0 1 .307-.57 3.2 3.2 0 0 1 .914-.916 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .624-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 5 5 0 0 1 .411.504 3.4 3.4 0 0 1 .306.571 3.5 3.5 0 0 1 .252 1.274 3.36 3.36 0 0 1-.969 2.349 5 5 0 0 1-.504.411 3.3 3.3 0 0 1-1.845.558m26.542-1.66a3.4 3.4 0 0 1-2.35-.968 5 5 0 0 1-.41-.504 3.28 3.28 0 0 1-.558-1.845 3.39 3.39 0 0 1 .967-2.349 5 5 0 0 1 .505-.411 3.5 3.5 0 0 1 .572-.305 3.3 3.3 0 0 1 .623-.186 3.1 3.1 0 0 1 1.3 0 3.2 3.2 0 0 1 1.195.49 5 5 0 0 1 .504.412 3.4 3.4 0 0 1 .97 2.35 4 4 0 0 1-.067.65 3.4 3.4 0 0 1-.186.623 5 5 0 0 1-.305.57 5 5 0 0 1-.412.505 5 5 0 0 1-.504.412 3.3 3.3 0 0 1-1.844.557"})))}},9527:(e,a,t)=>{t.d(a,{A:()=>m});var l=t(4164),r=t(1107);const n={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var c=t(4848);const h=[{title:"UNO",Svg:t(870).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir conocimientos y habilidades"})},{title:"DOS",Svg:t(3844).A,description:(0,c.jsx)(c.Fragment,{children:"Registrar los detalles de la vida cotidiana"})},{title:"TRES",Svg:t(6740).A,description:(0,c.jsx)(c.Fragment,{children:"Compartir las observaciones y reflexiones de los viajes"})}];function d(e){let{Svg:a,title:t,description:h}=e;return(0,c.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,c.jsx)("div",{className:"text--center",children:(0,c.jsx)(a,{className:n.featureSvg,role:"img"})}),(0,c.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,c.jsx)(r.A,{as:"h3",children:t}),(0,c.jsx)("p",{children:h})]})]})}function m(){return(0,c.jsx)("section",{className:n.features,children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:h.map(((e,a)=>(0,c.jsx)(d,{...e},a)))})})})}},192:(e,a,t)=>{t.r(a),t.d(a,{default:()=>s});var l=t(4164),r=t(8774),n=t(4586),c=t(5733),h=t(9527),d=t(1107),m=t(5648),i=t(4848);function f(){const{siteConfig:e}=(0,n.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero",m.A.heroBanner,m.A.heroSecretGarden),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsx)(d.A,{as:"h1",className:"hero__title",children:e.title}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.A.buttons,children:(0,i.jsx)(r.A,{className:"button button--secondary button--lg",to:"/tutorial",children:"\ud83d\udc49 \xa1Descubre El Jard\xedn Secreto de w0x7ce! \ud83d\udc48"})})]})})}function s(){const{siteConfig:e}=(0,n.A)();return(0,i.jsxs)(c.A,{title:`Hello from ${e.title}`,description:"El_Jardin_Secreto_de_w0x7ce<head />",children:[(0,i.jsx)(f,{}),(0,i.jsx)("main",{className:m.A.mainContent,children:(0,i.jsx)(h.A,{})})]})}},5648:(e,a,t)=>{t.d(a,{A:()=>l});const l={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN",heroSecretGarden:"heroSecretGarden_pfpy",mainContent:"mainContent_EI1P"}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/cb8761ac.537514af.js b/zh-hk/assets/js/cb8761ac.537514af.js new file mode 100644 index 000000000..fc9a7e75a --- /dev/null +++ b/zh-hk/assets/js/cb8761ac.537514af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8736],{4734:l=>{l.exports=JSON.parse('{"tags":[{"label":"misc","permalink":"/zh-hk/blog/tags/misc","count":1},{"label":"Linux","permalink":"/zh-hk/blog/tags/linux","count":1},{"label":"Docker","permalink":"/zh-hk/blog/tags/docker","count":1},{"label":"\u8edf\u4ef6","permalink":"/zh-hk/blog/tags/\u8edf\u4ef6","count":1},{"label":"\u6a5f\u5668\u5b78\u7fd2","permalink":"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2","count":1},{"label":"Hola","permalink":"/zh-hk/blog/tags/hola","description":"Hola tag description","count":1},{"label":"Docusaurus","permalink":"/zh-hk/blog/tags/docusaurus","description":"Docusaurus tag description","count":1}]}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/ccc49370.350eb003.js b/zh-hk/assets/js/ccc49370.350eb003.js new file mode 100644 index 000000000..04de2f119 --- /dev/null +++ b/zh-hk/assets/js/ccc49370.350eb003.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3249],{1477:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j});n(6540);var i=n(4164),a=n(1213),o=n(7559),r=n(7131),s=n(6535),l=n(4651),c=n(1312),d=n(9022),u=n(4848);function m(e){const{nextItem:t,prevItem:n}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.T)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[n&&(0,u.jsx)(d.A,{...n,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),t&&(0,u.jsx)(d.A,{...t,subLabel:(0,u.jsx)(c.A,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:t}=(0,r.e)(),{title:n,description:i,date:o,tags:s,authors:l,frontMatter:c}=t,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(a.be,{title:n,description:i,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:o}),l.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:l.map((e=>e.url)).filter(Boolean).join(",")}),s.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:s.map((e=>e.label)).join(",")})]})}var h=n(5260),f=n(6676);function p(){const e=(0,f.J)();return(0,u.jsx)(h.A,{children:(0,u.jsx)("script",{type:"application/ld+json",children:JSON.stringify(e)})})}var v=n(7763),x=n(996);function b(e){let{sidebar:t,children:n}=e;const{metadata:i,toc:a}=(0,r.e)(),{nextItem:o,prevItem:c,frontMatter:d,unlisted:g}=i,{hide_table_of_contents:h,toc_min_heading_level:f,toc_max_heading_level:p}=d;return(0,u.jsxs)(s.A,{sidebar:t,toc:!h&&a.length>0?(0,u.jsx)(v.A,{toc:a,minHeadingLevel:f,maxHeadingLevel:p}):void 0,children:[g&&(0,u.jsx)(x.A,{}),(0,u.jsx)(l.A,{children:n}),(o||c)&&(0,u.jsx)(m,{nextItem:o,prevItem:c})]})}function j(e){const t=e.content;return(0,u.jsx)(r.i,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(a.e3,{className:(0,i.A)(o.G.wrapper.blogPages,o.G.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(p,{}),(0,u.jsx)(b,{sidebar:e.sidebar,children:(0,u.jsx)(t,{})})]})})}},7763:(e,t,n)=>{n.d(t,{A:()=>c});n(6540);var i=n(4164),a=n(5195);const o={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var r=n(4848);const s="table-of-contents__link toc-highlight",l="table-of-contents__link--active";function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{className:(0,i.A)(o.tableOfContents,"thin-scrollbar",t),children:(0,r.jsx)(a.A,{...n,linkClassName:s,linkActiveClassName:l})})}},5195:(e,t,n)=>{n.d(t,{A:()=>f});var i=n(6540),a=n(6342);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function l(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(s(i))?i:e[e.indexOf(i)-1]??null}return e[e.length-1]??null}function c(){const e=(0,i.useRef)(0),{navbar:{hideOnScroll:t}}=(0,a.p)();return(0,i.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,i.useRef)(void 0),n=c();(0,i.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:r}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:r}),c=l(s,{anchorTopOffset:n.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===d)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}var u=n(8774),m=n(4848);function g(e){let{toc:t,className:n,linkClassName:i,isChild:a}=e;return t.length?(0,m.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.A,{to:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:n,linkClassName:i})]},e.id)))}):null}const h=i.memo(g);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const f=(0,a.p)(),p=c??f.tableOfContents.minHeadingLevel,v=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,i.useMemo)((()=>r({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:v});return d((0,i.useMemo)((()=>{if(s&&l)return{linkClassName:s,linkActiveClassName:l,minHeadingLevel:p,maxHeadingLevel:v}}),[s,l,p,v])),(0,m.jsx)(h,{toc:x,className:n,linkClassName:s,...g})}},996:(e,t,n)=>{n.d(t,{A:()=>g});n(6540);var i=n(4164),a=n(1312),o=n(5260),r=n(4848);function s(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function l(){return(0,r.jsx)(a.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,r.jsx)(o.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(7559),u=n(7293);function m(e){let{className:t}=e;return(0,r.jsx)(u.A,{type:"caution",title:(0,r.jsx)(s,{}),className:(0,i.A)(t,d.G.common.unlistedBanner),children:(0,r.jsx)(l,{})})}function g(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c,{}),(0,r.jsx)(m,{...e})]})}},6676:(e,t,n)=>{n.d(t,{k:()=>d,J:()=>u});var i=n(6025),a=n(4586),o=n(6803);var r=n(7131);const s=e=>new Date(e).toISOString();function l(e){const t=e.map(m);return{author:1===t.length?t[0]:t}}function c(e,t,n){return e?{image:g({imageUrl:t(e,{absolute:!0}),caption:`title image for the blog post: ${n}`})}:{}}function d(e){const{siteConfig:t}=(0,a.A)(),{withBaseUrl:n}=(0,i.hH)(),{metadata:{blogDescription:o,blogTitle:r,permalink:d}}=e,u=`${t.url}${d}`;return{"@context":"https://schema.org","@type":"Blog","@id":u,mainEntityOfPage:u,headline:r,description:o,blogPost:e.items.map((e=>function(e,t,n){const{assets:i,frontMatter:a,metadata:o}=e,{date:r,title:d,description:u,lastUpdatedAt:m}=o,g=i.image??a.image,h=a.keywords??[],f=`${t.url}${o.permalink}`,p=m?s(m):void 0;return{"@type":"BlogPosting","@id":f,mainEntityOfPage:f,url:f,headline:d,name:d,description:u,datePublished:r,...p?{dateModified:p}:{},...l(o.authors),...c(g,n,d),...h?{keywords:h}:{}}}(e.content,t,n)))}}function u(){const e=function(){const e=(0,o.A)(),t=e?.data?.blogMetadata;if(!t)throw new Error("useBlogMetadata() can't be called on the current route because the blog metadata could not be found in route context");return t}(),{assets:t,metadata:n}=(0,r.e)(),{siteConfig:d}=(0,a.A)(),{withBaseUrl:u}=(0,i.hH)(),{date:m,title:g,description:h,frontMatter:f,lastUpdatedAt:p}=n,v=t.image??f.image,x=f.keywords??[],b=p?s(p):void 0,j=`${d.url}${n.permalink}`;return{"@context":"https://schema.org","@type":"BlogPosting","@id":j,mainEntityOfPage:j,url:j,headline:g,name:g,description:h,datePublished:m,...b?{dateModified:b}:{},...l(n.authors),...c(v,u,g),...x?{keywords:x}:{},isPartOf:{"@type":"Blog","@id":`${d.url}${e.blogBasePath}`,name:e.blogTitle}}}function m(e){return{"@type":"Person",...e.name?{name:e.name}:{},...e.title?{description:e.title}:{},...e.url?{url:e.url}:{},...e.email?{email:e.email}:{},...e.imageURL?{image:e.imageURL}:{}}}function g(e){let{imageUrl:t,caption:n}=e;return{"@type":"ImageObject","@id":t,url:t,contentUrl:t,caption:n}}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/d7b1a84c.88391a26.js b/zh-hk/assets/js/d7b1a84c.88391a26.js new file mode 100644 index 000000000..7bcd9c0ec --- /dev/null +++ b/zh-hk/assets/js/d7b1a84c.88391a26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8687],{4333:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>g,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var o=s(4848),r=s(8453);const n={sidebar_position:3},a="Create a Blog Post",i={id:"tutorial-basics/create-a-blog-post",title:"Create a Blog Post",description:"Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-blog-post.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-blog-post",permalink:"/zh-hk/tutorial-basics/create-a-blog-post",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-blog-post.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:3,frontMatter:{sidebar_position:3}},c={},l=[{value:"Create your first Post",id:"create-your-first-post",level:2}];function u(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"create-a-blog-post",children:"Create a Blog Post"}),"\n",(0,o.jsxs)(t.p,{children:["Docusaurus creates a ",(0,o.jsx)(t.strong,{children:"page for each blog post"}),", but also a ",(0,o.jsx)(t.strong,{children:"blog index page"}),", a ",(0,o.jsx)(t.strong,{children:"tag system"}),", an ",(0,o.jsx)(t.strong,{children:"RSS"})," feed..."]}),"\n",(0,o.jsx)(t.h2,{id:"create-your-first-post",children:"Create your first Post"}),"\n",(0,o.jsxs)(t.p,{children:["Create a file at ",(0,o.jsx)(t.code,{children:"blog/2021-02-28-greetings.md"}),":"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-md",metastring:'title="blog/2021-02-28-greetings.md"',children:"---\nslug: greetings\ntitle: Greetings!\nauthors:\n - name: Joel Marcey\n title: Co-creator of Docusaurus 1\n url: https://github.com/JoelMarcey\n image_url: https://github.com/JoelMarcey.png\n - name: S\xe9bastien Lorber\n title: Docusaurus maintainer\n url: https://sebastienlorber.com\n image_url: https://github.com/slorber.png\ntags: [greetings]\n---\n\nCongratulations, you have made your first post!\n\nFeel free to play around and edit this post as much as you like.\n"})}),"\n",(0,o.jsxs)(t.p,{children:["A new blog post is now available at ",(0,o.jsx)(t.a,{href:"http://localhost:3000/blog/greetings",children:"http://localhost:3000/blog/greetings"}),"."]})]})}function g(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},8453:(e,t,s)=>{s.d(t,{R:()=>a,x:()=>i});var o=s(6540);const r={},n=o.createContext(r);function a(e){const t=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),o.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/dee0d148.1022f562.js b/zh-hk/assets/js/dee0d148.1022f562.js new file mode 100644 index 000000000..7d3d3bb2f --- /dev/null +++ b/zh-hk/assets/js/dee0d148.1022f562.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[5732],{6713:e=>{e.exports=JSON.parse('{"tag":{"label":"LED Control","permalink":"/zh-hk/tags/led-control","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","title":"Advanced PIO LED Control and Resource Management on RP2040","description":"\u5728\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u4e2d\uff0c\u6709\u6548\u5229\u7528\u5fae\u63a7\u5236\u5668\u7684\u8cc7\u6e90\u81f3\u95dc\u91cd\u8981\u3002\u672c\u6587\u5c07\u6df1\u5165\u63a2\u8a0e\u5982\u4f55\u5728 Raspberry Pi Pico \u7684 RP2040 \u6676\u7247\u4e0a\u4f7f\u7528\u53ef\u7a0b\u5f0f\u5316\u8f38\u5165/\u8f38\u51fa\uff08PIO\uff09\u4f86\u5be6\u73fe\u8907\u96dc\u7684 LED \u63a7\u5236\u908f\u8f2f\uff0c\u540c\u6642\u6709\u6548\u7ba1\u7406 PIO \u8cc7\u6e90\u3002","permalink":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/df203c0f.07cad923.js b/zh-hk/assets/js/df203c0f.07cad923.js new file mode 100644 index 000000000..fce697c24 --- /dev/null +++ b/zh-hk/assets/js/df203c0f.07cad923.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4279],{7293:(e,n,t)=>{t.d(n,{A:()=>M});var i=t(6540),s=t(4848);function o(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=i.Children.toArray(e),t=n.find((e=>i.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),o=n.filter((e=>e!==t)),l=t?.props.children;return{mdxAdmonitionTitle:l,rest:o.length>0?(0,s.jsx)(s.Fragment,{children:o}):null}}(e.children),o=e.title??n;return{...e,...o&&{title:o},children:t}}var l=t(4164),r=t(1312),a=t(7559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:i}=e;return(0,s.jsx)("div",{className:(0,l.A)(a.G.common.admonition,a.G.common.admonitionType(n),c.admonition,t),children:i})}function u(e){let{icon:n,title:t}=e;return(0,s.jsxs)("div",{className:c.admonitionHeading,children:[(0,s.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function h(e){let{children:n}=e;return n?(0,s.jsx)("div",{className:c.admonitionContent,children:n}):null}function m(e){const{type:n,icon:t,title:i,children:o,className:l}=e;return(0,s.jsxs)(d,{type:n,className:l,children:[i||t?(0,s.jsx)(u,{title:i,icon:t}):null,(0,s.jsx)(h,{children:o})]})}function g(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const x={icon:(0,s.jsx)(g,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function f(e){return(0,s.jsx)(m,{...x,...e,className:(0,l.A)("alert alert--secondary",e.className),children:e.children})}function j(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const p={icon:(0,s.jsx)(j,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,s.jsx)(m,{...p,...e,className:(0,l.A)("alert alert--success",e.className),children:e.children})}function A(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,s.jsx)(A,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,s.jsx)(m,{...N,...e,className:(0,l.A)("alert alert--info",e.className),children:e.children})}function T(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const b={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function y(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const z={icon:(0,s.jsx)(y,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const _={icon:(0,s.jsx)(T,{}),title:(0,s.jsx)(r.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const C={...{note:f,tip:v,info:w,warning:function(e){return(0,s.jsx)(m,{...b,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,s.jsx)(m,{...z,...e,className:(0,l.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,s.jsx)(f,{title:"secondary",...e}),important:e=>(0,s.jsx)(w,{title:"important",...e}),success:e=>(0,s.jsx)(v,{title:"success",...e}),caution:function(e){return(0,s.jsx)(m,{..._,...e,className:(0,l.A)("alert alert--warning",e.className),children:e.children})}}};function M(e){const n=o(e),t=(i=n.type,C[i]||(console.warn(`No admonition component found for admonition type "${i}". Using Info as fallback.`),C.info));var i;return(0,s.jsx)(t,{...n})}},5921:(e,n,t)=>{t.r(n),t.d(n,{default:()=>j});t(6540);var i=t(4164),s=t(8774),o=t(5846),l=t(1213),r=t(7559),a=t(1312),c=t(1463),d=t(996),u=t(1107),h=t(4848);function m(e){const n=function(){const{selectMessage:e}=(0,o.W)();return n=>e(n,(0,a.T)({id:"theme.docs.tagDocListPageTitle.nDocsTagged",description:'Pluralized label for "{count} docs tagged". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One doc tagged|{count} docs tagged"},{count:n}))}();return(0,a.T)({id:"theme.docs.tagDocListPageTitle",description:"The title of the page for a docs tag",message:'{nDocsTagged} with "{tagName}"'},{nDocsTagged:n(e.tag.count),tagName:e.tag.label})}function g(e){let{doc:n}=e;return(0,h.jsxs)("article",{className:"margin-vert--lg",children:[(0,h.jsx)(s.A,{to:n.permalink,children:(0,h.jsx)(u.A,{as:"h2",children:n.title})}),n.description&&(0,h.jsx)("p",{children:n.description})]})}function x(e){let{title:n,tag:t}=e;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l.be,{title:n,description:t.description}),(0,h.jsx)(c.A,{tag:"doc_tag_doc_list"})]})}function f(e){let{tag:n,title:t}=e;return(0,h.jsx)(l.e3,{className:(0,i.A)(r.G.page.docsTagDocListPage),children:(0,h.jsx)("div",{className:"container margin-vert--lg",children:(0,h.jsx)("div",{className:"row",children:(0,h.jsxs)("main",{className:"col col--8 col--offset-2",children:[n.unlisted&&(0,h.jsx)(d.A,{}),(0,h.jsxs)("header",{className:"margin-bottom--xl",children:[(0,h.jsx)(u.A,{as:"h1",children:t}),n.description&&(0,h.jsx)("p",{children:n.description}),(0,h.jsx)(s.A,{href:n.allTagsPath,children:(0,h.jsx)(a.A,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,h.jsx)("section",{className:"margin-vert--lg",children:n.items.map((e=>(0,h.jsx)(g,{doc:e},e.id)))})]})})})})}function j(e){const n=m(e);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(x,{...e,title:n}),(0,h.jsx)(f,{...e,title:n})]})}},996:(e,n,t)=>{t.d(n,{A:()=>m});t(6540);var i=t(4164),s=t(1312),o=t(5260),l=t(4848);function r(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function a(){return(0,l.jsx)(s.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(o.A,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(7559),u=t(7293);function h(e){let{className:n}=e;return(0,l.jsx)(u.A,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,i.A)(n,d.G.common.unlistedBanner),children:(0,l.jsx)(a,{})})}function m(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(h,{...e})]})}},5846:(e,n,t)=>{t.d(n,{W:()=>c});var i=t(6540),s=t(4586);const o=["zero","one","two","few","many","other"];function l(e){return o.filter((n=>e.includes(n)))}const r={locale:"en",pluralForms:l(["one","other"]),select:e=>1===e?"one":"other"};function a(){const{i18n:{currentLocale:e}}=(0,s.A)();return(0,i.useMemo)((()=>{try{return function(e){const n=new Intl.PluralRules(e);return{locale:e,pluralForms:l(n.resolvedOptions().pluralCategories),select:e=>n.select(e)}}(e)}catch(n){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${n.message}\n`),r}}),[e])}function c(){const e=a();return{selectMessage:(n,t)=>function(e,n,t){const i=e.split("|");if(1===i.length)return i[0];i.length>t.pluralForms.length&&console.error(`For locale=${t.locale}, a maximum of ${t.pluralForms.length} plural forms are expected (${t.pluralForms.join(",")}), but the message contains ${i.length}: ${e}`);const s=t.select(n),o=t.pluralForms.indexOf(s);return i[Math.min(o,i.length-1)]}(t,n,e)}}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/dff84d1a.6a5fe37b.js b/zh-hk/assets/js/dff84d1a.6a5fe37b.js new file mode 100644 index 000000000..53b8075b3 --- /dev/null +++ b/zh-hk/assets/js/dff84d1a.6a5fe37b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9649],{88:e=>{e.exports=JSON.parse('{"tag":{"label":"interrupts","permalink":"/zh-hk/tags/interrupts","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","title":"UART Interrupt Handling and Data Transmission in RP2040","description":"\u5728\u9019\u7bc7\u6587\u7ae0\u4e2d,\u6211\u5c07\u8207\u5927\u5bb6\u5206\u4eab\u5982\u4f55\u5728 RP2040 \u4e2d\u4f7f\u7528 UART \u9032\u884c\u8cc7\u6599\u6536\u767c,\u4e26\u900f\u904e\u4e2d\u65b7\u65b9\u5f0f\u6709\u6548\u5730\u8655\u7406\u63a5\u6536\u5230\u7684\u8cc7\u6599\u3002\u6211\u6703\u8a73\u7d30\u89e3\u6790\u7a0b\u5f0f\u78bc,\u8a0e\u8ad6 FIFO \u7684\u4f7f\u7528,\u4e26\u63d0\u4f9b\u5be6\u969b\u61c9\u7528\u7684\u7bc4\u4f8b,\u5e36\u9818\u5927\u5bb6\u6df1\u5165\u7406\u89e3 UART \u5728 RP2040 \u4e2d\u7684\u5de5\u4f5c\u539f\u7406\u548c\u4f7f\u7528\u65b9\u6cd5\u3002","permalink":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/e0982a0c.7da09f08.js b/zh-hk/assets/js/e0982a0c.7da09f08.js new file mode 100644 index 000000000..1ef2c0cdb --- /dev/null +++ b/zh-hk/assets/js/e0982a0c.7da09f08.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[9643],{741:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=t(4848),s=t(8453);const o={sidebar_position:2},a="Translate your site",i={id:"tutorial-extras/translate-your-site",title:"Translate your site",description:"Let's translate docs/intro.md to French.",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-extras/translate-your-site.md",sourceDirName:"tutorial-extras",slug:"/tutorial-extras/translate-your-site",permalink:"/zh-hk/tutorial-extras/translate-your-site",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-extras/translate-your-site.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},l={},c=[{value:"Configure i18n",id:"configure-i18n",level:2},{value:"Translate a doc",id:"translate-a-doc",level:2},{value:"Start your localized site",id:"start-your-localized-site",level:2},{value:"Add a Locale Dropdown",id:"add-a-locale-dropdown",level:2},{value:"Build your localized site",id:"build-your-localized-site",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",img:"img",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"translate-your-site",children:"Translate your site"}),"\n",(0,r.jsxs)(n.p,{children:["Let's translate ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," to French."]}),"\n",(0,r.jsx)(n.h2,{id:"configure-i18n",children:"Configure i18n"}),"\n",(0,r.jsxs)(n.p,{children:["Modify ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," to add support for the ",(0,r.jsx)(n.code,{children:"fr"})," locale:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n i18n: {\n defaultLocale: 'en',\n locales: ['en', 'fr'],\n },\n};\n"})}),"\n",(0,r.jsx)(n.h2,{id:"translate-a-doc",children:"Translate a doc"}),"\n",(0,r.jsxs)(n.p,{children:["Copy the ",(0,r.jsx)(n.code,{children:"docs/intro.md"})," file to the ",(0,r.jsx)(n.code,{children:"i18n/fr"})," folder:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/\n\ncp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Translate ",(0,r.jsx)(n.code,{children:"i18n/fr/docusaurus-plugin-content-docs/current/intro.md"})," in French."]}),"\n",(0,r.jsx)(n.h2,{id:"start-your-localized-site",children:"Start your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Start your site on the French locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run start -- --locale fr\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Your localized site is accessible at ",(0,r.jsx)(n.a,{href:"http://localhost:3000/fr/",children:"http://localhost:3000/fr/"})," and the ",(0,r.jsx)(n.code,{children:"Getting Started"})," page is translated."]}),"\n",(0,r.jsx)(n.admonition,{type:"caution",children:(0,r.jsx)(n.p,{children:"In development, you can only use one locale at a time."})}),"\n",(0,r.jsx)(n.h2,{id:"add-a-locale-dropdown",children:"Add a Locale Dropdown"}),"\n",(0,r.jsx)(n.p,{children:"To navigate seamlessly across languages, add a locale dropdown."}),"\n",(0,r.jsxs)(n.p,{children:["Modify the ",(0,r.jsx)(n.code,{children:"docusaurus.config.js"})," file:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-js",metastring:'title="docusaurus.config.js"',children:"export default {\n themeConfig: {\n navbar: {\n items: [\n // highlight-start\n {\n type: 'localeDropdown',\n },\n // highlight-end\n ],\n },\n },\n};\n"})}),"\n",(0,r.jsx)(n.p,{children:"The locale dropdown now appears in your navbar:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Locale Dropdown",src:t(3249).A+"",width:"370",height:"302"})}),"\n",(0,r.jsx)(n.h2,{id:"build-your-localized-site",children:"Build your localized site"}),"\n",(0,r.jsx)(n.p,{children:"Build your site for a specific locale:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build -- --locale fr\n"})}),"\n",(0,r.jsx)(n.p,{children:"Or build your site to include all the locales at once:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},3249:(e,n,t)=>{t.d(n,{A:()=>r});const r=t.p+"assets/images/localeDropdown-f0d995e751e7656a1b0dbbc1134e49c2.png"},8453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>i});var r=t(6540);const s={},o=r.createContext(s);function a(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/e4cceaf6.94f202e7.js b/zh-hk/assets/js/e4cceaf6.94f202e7.js new file mode 100644 index 000000000..a11391d43 --- /dev/null +++ b/zh-hk/assets/js/e4cceaf6.94f202e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[7936],{6393:e=>{e.exports=JSON.parse('{"tag":{"label":"cdc","permalink":"/zh-hk/tags/cdc","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/e9034d23.f876d841.js b/zh-hk/assets/js/e9034d23.f876d841.js new file mode 100644 index 000000000..56125cc67 --- /dev/null +++ b/zh-hk/assets/js/e9034d23.f876d841.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[4519],{1523:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=n(4848),r=n(8453);const i={sidebar_position:2},o="Create a Document",a={id:"tutorial-basics/create-a-document",title:"Create a Document",description:"Documents are groups of pages connected through:",source:"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-document.md",sourceDirName:"tutorial-basics",slug:"/tutorial-basics/create-a-document",permalink:"/zh-hk/tutorial-basics/create-a-document",draft:!1,unlisted:!1,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/docs/tutorial-basics/create-a-document.md",tags:[],version:"current",lastUpdatedAt:1720523801e3,sidebarPosition:2,frontMatter:{sidebar_position:2}},c={},l=[{value:"Create your first Doc",id:"create-your-first-doc",level:2},{value:"Configure the Sidebar",id:"configure-the-sidebar",level:2}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"create-a-document",children:"Create a Document"}),"\n",(0,s.jsxs)(t.p,{children:["Documents are ",(0,s.jsx)(t.strong,{children:"groups of pages"})," connected through:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["a ",(0,s.jsx)(t.strong,{children:"sidebar"})]}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"previous/next navigation"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.strong,{children:"versioning"})}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"create-your-first-doc",children:"Create your first Doc"}),"\n",(0,s.jsxs)(t.p,{children:["Create a Markdown file at ",(0,s.jsx)(t.code,{children:"docs/hello.md"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md"',children:"# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["A new document is now available at ",(0,s.jsx)(t.a,{href:"http://localhost:3000/docs/hello",children:"http://localhost:3000/docs/hello"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"configure-the-sidebar",children:"Configure the Sidebar"}),"\n",(0,s.jsxs)(t.p,{children:["Docusaurus automatically ",(0,s.jsx)(t.strong,{children:"creates a sidebar"})," from the ",(0,s.jsx)(t.code,{children:"docs"})," folder."]}),"\n",(0,s.jsx)(t.p,{children:"Add metadata to customize the sidebar label and position:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-md",metastring:'title="docs/hello.md" {1-4}',children:"---\nsidebar_label: 'Hi!'\nsidebar_position: 3\n---\n\n# Hello\n\nThis is my **first Docusaurus document**!\n"})}),"\n",(0,s.jsxs)(t.p,{children:["It is also possible to create your sidebar explicitly in ",(0,s.jsx)(t.code,{children:"sidebars.js"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",metastring:'title="sidebars.js"',children:"export default {\n tutorialSidebar: [\n 'intro',\n // highlight-next-line\n 'hello',\n {\n type: 'category',\n label: 'Tutorial',\n items: ['tutorial-basics/create-a-document'],\n },\n ],\n};\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>a});var s=n(6540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/eb9ee350.409071f0.js b/zh-hk/assets/js/eb9ee350.409071f0.js new file mode 100644 index 000000000..76eacc93b --- /dev/null +++ b/zh-hk/assets/js/eb9ee350.409071f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[3987],{3135:e=>{e.exports=JSON.parse('{"tag":{"label":"misc","permalink":"/zh-hk/blog/tags/misc","allTagsPath":"/zh-hk/blog/tags","count":1,"unlisted":false},"listMetadata":{"permalink":"/zh-hk/blog/tags/misc","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/fd0da4a9.e6913218.js b/zh-hk/assets/js/fd0da4a9.e6913218.js new file mode 100644 index 000000000..8d5f232e8 --- /dev/null +++ b/zh-hk/assets/js/fd0da4a9.e6913218.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8044],{6311:e=>{e.exports=JSON.parse('{"tag":{"label":"usb","permalink":"/zh-hk/tags/usb","allTagsPath":"/zh-hk/tags","count":1,"items":[{"id":"micro-controladores/STM32/stm32_cdc_develop","title":"Desarrollo de comunicaci\xf3n CDC con STM32CubeMX","description":"Configuraci\xf3n de STM32CubeMX","permalink":"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx"}],"unlisted":false}}')}}]); \ No newline at end of file diff --git a/zh-hk/assets/js/main.2784d067.js b/zh-hk/assets/js/main.2784d067.js new file mode 100644 index 000000000..6f6e3e86c --- /dev/null +++ b/zh-hk/assets/js/main.2784d067.js @@ -0,0 +1,2 @@ +/*! For license information please see main.2784d067.js.LICENSE.txt */ +(self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),a=n.n(r),o=n(4054);const i={"008d63a2":[()=>n.e(7699).then(n.t.bind(n,3216,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-712.json",3216],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,9140)),"@theme/BlogTagsListPage",9140],"062f99bb":[()=>n.e(5323).then(n.t.bind(n,7264,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-timer-b93.json",7264],"1284e0b0":[()=>n.e(2387).then(n.t.bind(n,863,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-serial-communication-a64.json",863],"14d3eb87":[()=>n.e(6725).then(n.bind(n,5427)),"@site/docs/micro-controladores/RP2040/pio-uart-implementation.md",5427],17896441:[()=>Promise.all([n.e(1869),n.e(1538),n.e(8401)]).then(n.bind(n,2447)),"@theme/DocItem",2447],"1a0e45eb":[()=>n.e(6248).then(n.bind(n,7800)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/markdown-features.mdx",7800],"1ce4999c":[()=>n.e(5290).then(n.bind(n,5396)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/intro.md",5396],"1e71edf6":[()=>n.e(8094).then(n.t.bind(n,9393,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-state-machine-optimization-e1c.json",9393],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(1538),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"2b354d69":[()=>n.e(4544).then(n.t.bind(n,8676,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-docker-cbd.json",8676],"2b6ce744":[()=>n.e(8758).then(n.t.bind(n,4640,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-archive-605.json",4640],"2d233033":[()=>n.e(6563).then(n.t.bind(n,3644,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-resource-management-092.json",3644],"336ea2cf":[()=>n.e(8348).then(n.bind(n,3858)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-extras/manage-docs-versions.md",3858],"33fe0373":[()=>n.e(2351).then(n.t.bind(n,4589,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-\u8edf\u4ef6-5ff.json",4589],"36994c47":[()=>n.e(9858).then(n.t.bind(n,5516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",5516],"3720c009":[()=>Promise.all([n.e(1869),n.e(4787)]).then(n.bind(n,2194)),"@theme/DocTagsListPage",2194],"37c603c4":[()=>n.e(7268).then(n.t.bind(n,6783,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-stm-32-e96.json",6783],"3848d9e1":[()=>n.e(8917).then(n.bind(n,5039)),"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2019-05-28-first-blog-post.md?truncated=true",5039],"393be207":[()=>n.e(4134).then(n.bind(n,633)),"@site/src/pages/markdown-page.md",633],"3bd8aa35":[()=>n.e(9462).then(n.t.bind(n,7698,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-linux-474.json",7698],"3ea259e6":[()=>Promise.all([n.e(1869),n.e(7733)]).then(n.bind(n,8154)),"@site/src/pages/index.zh-hk.js",8154],"45170d14":[()=>n.e(1649).then(n.bind(n,3133)),"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2019-05-28-first-blog-post.md",3133],"4cb30fd1":[()=>n.e(8462).then(n.t.bind(n,5938,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-hola-07d.json",5938],"4f84c381":[()=>n.e(8706).then(n.bind(n,1132)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/congratulations.md",1132],53188526:[()=>n.e(9873).then(n.t.bind(n,1155,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-rp-2040-40a.json",1155],"54ebc4ab":[()=>n.e(1845).then(n.t.bind(n,4089,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-pio-451.json",4089],"5da95eec":[()=>n.e(6884).then(n.bind(n,228)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/deploy-your-site.md",228],"5e28b2f4":[()=>n.e(6221).then(n.bind(n,105)),"@site/docs/micro-controladores/RP2040/advanced-pio-led-control-and-resource-management.md",105],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"60875e34":[()=>n.e(9661).then(n.bind(n,7315)),"@site/docs/tutorial.md",7315],"60f48b9d":[()=>n.e(1850).then(n.bind(n,6658)),"@site/docs/micro-controladores/RP2040/rp2040-pwm-usage-and-examples.md",6658],"6875c492":[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(4813)]).then(n.bind(n,3069)),"@theme/BlogTagsPostsPage",3069],"7eddfcbf":[()=>n.e(2462).then(n.t.bind(n,2744,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-aa4.json",2744],"814f3328":[()=>n.e(7472).then(n.t.bind(n,5513,19)),"~blog/default/blog-post-list-prop-default.json",5513],"85e08f6c":[()=>n.e(8210).then(n.bind(n,2392)),"@site/docs/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage.md",2392],"86154fac":[()=>n.e(3085).then(n.t.bind(n,5683,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-embedded-systems-99e.json",5683],"873234d7":[()=>n.e(809).then(n.bind(n,7644)),"@site/docs/micro-controladores/RP2040/mastering-pio-programming.md",7644],"87ac765c":[()=>n.e(4143).then(n.t.bind(n,9704,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-9c6.json",9704],"8d9dbdbb":[()=>n.e(9690).then(n.bind(n,4035)),"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2021-09-14-Docker-Getting-Srart-01.md?truncated=true",4035],"91cd996f":[()=>n.e(6470).then(n.t.bind(n,2631,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-\u6a5f\u5668\u5b78\u7fd2-177.json",2631],"9e4087bc":[()=>n.e(2711).then(n.bind(n,9331)),"@theme/BlogArchivePage",9331],"9fab635f":[()=>n.e(9071).then(n.bind(n,6377)),"@site/docs/micro-controladores/RP2040/rp2040-timer-and-alarm-usage.md",6377],a1c46f64:[()=>n.e(9186).then(n.t.bind(n,7260,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-docusaurus-af0.json",7260],a5933a40:[()=>n.e(1113).then(n.t.bind(n,2012,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-pwm-f4c.json",2012],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(7643)]).then(n.bind(n,5124)),"@theme/BlogListPage",5124],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],ae1c2fdf:[()=>n.e(6707).then(n.bind(n,5329)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-page.md",5329],b6ef77d3:[()=>n.e(5811).then(n.bind(n,5345)),"@site/i18n/zh-hk/docusaurus-plugin-content-blog/2021-09-14-Docker-Getting-Srart-01.md",5345],b6fdbe90:[()=>n.e(9841).then(n.t.bind(n,7153,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-uart-80b.json",7153],ba673586:[()=>n.e(1091).then(n.t.bind(n,5964,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-alarm-5e0.json",5964],bd2c820f:[()=>n.e(8652).then(n.t.bind(n,5712,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-raspberry-pi-pico-328.json",5712],c2aca3b0:[()=>n.e(1718).then(n.bind(n,5120)),"@site/docs/micro-controladores/STM32/stm32_cdc_develop.md",5120],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,192)),"@site/src/pages/index.js",192],cb8761ac:[()=>n.e(8736).then(n.t.bind(n,4734,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-044.json",4734],ccc49370:[()=>Promise.all([n.e(1869),n.e(1538),n.e(3242),n.e(3249)]).then(n.bind(n,1477)),"@theme/BlogPostPage",1477],d7b1a84c:[()=>n.e(8687).then(n.bind(n,4333)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-blog-post.md",4333],dee0d148:[()=>n.e(5732).then(n.t.bind(n,6713,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-led-control-ab2.json",6713],df203c0f:[()=>Promise.all([n.e(1869),n.e(4279)]).then(n.bind(n,5921)),"@theme/DocTagDocListPage",5921],dff84d1a:[()=>n.e(9649).then(n.t.bind(n,88,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-interrupts-b50.json",88],e0982a0c:[()=>n.e(9643).then(n.bind(n,741)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-extras/translate-your-site.md",741],e4cceaf6:[()=>n.e(7936).then(n.t.bind(n,6393,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-cdc-cb6.json",6393],e9034d23:[()=>n.e(4519).then(n.bind(n,1523)),"@site/i18n/zh-hk/docusaurus-plugin-content-docs/current/tutorial-basics/create-a-document.md",1523],eb9ee350:[()=>n.e(3987).then(n.t.bind(n,3135,19)),"@generated/docusaurus-plugin-content-blog/default/p/zh-hk-blog-tags-misc-391.json",3135],fd0da4a9:[()=>n.e(8044).then(n.t.bind(n,6311,19)),"@generated/docusaurus-plugin-content-docs/default/p/zh-hk-tags-usb-db4.json",6311]};var l=n(4848);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(6921),c=n(3102);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,l.jsx)(c.W,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],h=(0,u.A)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;delete a.__context;const s=a.__props;return delete a.__props,(0,l.jsx)(c.W,{value:i,children:(0,l.jsx)(o,{...a,...s,...n})})}})}const p=[{path:"/zh-hk/blog",component:d("/zh-hk/blog","adf"),exact:!0},{path:"/zh-hk/blog/archive",component:d("/zh-hk/blog/archive","96e"),exact:!0},{path:"/zh-hk/blog/Docker-Getting-Srart-01",component:d("/zh-hk/blog/Docker-Getting-Srart-01","04b"),exact:!0},{path:"/zh-hk/blog/first-blog-post",component:d("/zh-hk/blog/first-blog-post","6db"),exact:!0},{path:"/zh-hk/blog/tags",component:d("/zh-hk/blog/tags","b9b"),exact:!0},{path:"/zh-hk/blog/tags/docker",component:d("/zh-hk/blog/tags/docker","217"),exact:!0},{path:"/zh-hk/blog/tags/docusaurus",component:d("/zh-hk/blog/tags/docusaurus","34d"),exact:!0},{path:"/zh-hk/blog/tags/hola",component:d("/zh-hk/blog/tags/hola","78b"),exact:!0},{path:"/zh-hk/blog/tags/linux",component:d("/zh-hk/blog/tags/linux","8a2"),exact:!0},{path:"/zh-hk/blog/tags/misc",component:d("/zh-hk/blog/tags/misc","b26"),exact:!0},{path:"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2",component:d("/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2","78b"),exact:!0},{path:"/zh-hk/blog/tags/\u8edf\u4ef6",component:d("/zh-hk/blog/tags/\u8edf\u4ef6","76a"),exact:!0},{path:"/zh-hk/index.zh-hk",component:d("/zh-hk/index.zh-hk","af2"),exact:!0},{path:"/zh-hk/markdown-page",component:d("/zh-hk/markdown-page","d97"),exact:!0},{path:"/zh-hk/",component:d("/zh-hk/","0ee"),exact:!0},{path:"/zh-hk/",component:d("/zh-hk/","abc"),routes:[{path:"/zh-hk/",component:d("/zh-hk/","182"),routes:[{path:"/zh-hk/tags",component:d("/zh-hk/tags","2c6"),exact:!0},{path:"/zh-hk/tags/alarm",component:d("/zh-hk/tags/alarm","326"),exact:!0},{path:"/zh-hk/tags/cdc",component:d("/zh-hk/tags/cdc","a09"),exact:!0},{path:"/zh-hk/tags/embedded-systems",component:d("/zh-hk/tags/embedded-systems","569"),exact:!0},{path:"/zh-hk/tags/interrupts",component:d("/zh-hk/tags/interrupts","693"),exact:!0},{path:"/zh-hk/tags/led-control",component:d("/zh-hk/tags/led-control","1a8"),exact:!0},{path:"/zh-hk/tags/pio",component:d("/zh-hk/tags/pio","504"),exact:!0},{path:"/zh-hk/tags/pwm",component:d("/zh-hk/tags/pwm","e84"),exact:!0},{path:"/zh-hk/tags/raspberry-pi-pico",component:d("/zh-hk/tags/raspberry-pi-pico","35f"),exact:!0},{path:"/zh-hk/tags/resource-management",component:d("/zh-hk/tags/resource-management","727"),exact:!0},{path:"/zh-hk/tags/rp-2040",component:d("/zh-hk/tags/rp-2040","8b6"),exact:!0},{path:"/zh-hk/tags/serial-communication",component:d("/zh-hk/tags/serial-communication","0d1"),exact:!0},{path:"/zh-hk/tags/state-machine-optimization",component:d("/zh-hk/tags/state-machine-optimization","288"),exact:!0},{path:"/zh-hk/tags/stm-32",component:d("/zh-hk/tags/stm-32","4c9"),exact:!0},{path:"/zh-hk/tags/timer",component:d("/zh-hk/tags/timer","5d2"),exact:!0},{path:"/zh-hk/tags/uart",component:d("/zh-hk/tags/uart","ce1"),exact:!0},{path:"/zh-hk/tags/usb",component:d("/zh-hk/tags/usb","061"),exact:!0},{path:"/zh-hk/",component:d("/zh-hk/","6f6"),routes:[{path:"/zh-hk/intro",component:d("/zh-hk/intro","2bc"),exact:!0},{path:"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040",component:d("/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","51c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040",component:d("/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040","0bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040",component:d("/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040","ff1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples",component:d("/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","8b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage",component:d("/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","0d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage",component:d("/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","ee3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx",component:d("/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","a6f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/tutorial",component:d("/zh-hk/tutorial","5c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/zh-hk/tutorial-basics/congratulations",component:d("/zh-hk/tutorial-basics/congratulations","f4c"),exact:!0},{path:"/zh-hk/tutorial-basics/create-a-blog-post",component:d("/zh-hk/tutorial-basics/create-a-blog-post","82a"),exact:!0},{path:"/zh-hk/tutorial-basics/create-a-document",component:d("/zh-hk/tutorial-basics/create-a-document","6bd"),exact:!0},{path:"/zh-hk/tutorial-basics/create-a-page",component:d("/zh-hk/tutorial-basics/create-a-page","634"),exact:!0},{path:"/zh-hk/tutorial-basics/deploy-your-site",component:d("/zh-hk/tutorial-basics/deploy-your-site","5b7"),exact:!0},{path:"/zh-hk/tutorial-basics/markdown-features",component:d("/zh-hk/tutorial-basics/markdown-features","5c0"),exact:!0},{path:"/zh-hk/tutorial-extras/manage-docs-versions",component:d("/zh-hk/tutorial-extras/manage-docs-versions","51f"),exact:!0},{path:"/zh-hk/tutorial-extras/translate-your-site",component:d("/zh-hk/tutorial-extras/translate-your-site","634"),exact:!0}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(6540),a=n(4848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),a=n(5338),o=n(545),i=n(4625),l=n(4784),s=n(8193);const u=[n(119),n(6134),n(6294),n(1043)];var c=n(8328),d=n(6347),p=n(2831),f=n(4848);function h(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(5260),g=n(4586),b=n(6025),y=n(6342),v=n(1213),w=n(2131),k=n(4090),x=n(2967),S=n(440),E=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,w.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,d.zy)();return e+(0,S.applyTrailingSlash)((0,b.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function A(){const{i18n:{currentLocale:e}}=(0,g.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(_,{}),(0,f.jsx)(E.A,{tag:x.Cy,locale:e}),(0,f.jsx)(m.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;var j=n(6125),L=n(6988),P=n(205);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=u.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function z(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),z(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const D=O,I="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${I}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,g.A)();return(0,f.jsx)(f.Fragment,{children:!s.A.canUseDOM&&(0,f.jsx)(m.A,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,g.A)(),{pathname:n}=(0,d.zy)();return t&&n===e?(0,f.jsx)($,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,g.A)(),o=(0,b.Ay)(e),{htmlLang:i,direction:l}=a[r];return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:o})]})}var H=n(7489),G=n(2303);function V(){const e=(0,G.A)();return(0,f.jsx)(m.A,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}const W=(0,p.v)(c.A);function Q(){const e=function(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,p.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(D,{location:e,children:W})}function K(){return(0,f.jsx)(H.A,{children:(0,f.jsx)(L.l,{children:(0,f.jsxs)(j.x,{children:[(0,f.jsxs)(h,{children:[(0,f.jsx)(q,{}),(0,f.jsx)(A,{}),(0,f.jsx)(U,{}),(0,f.jsx)(Q,{})]}),(0,f.jsx)(V,{})]})})})}var Y=n(4054);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var X=n(6921);const J=new Set,ee=new Set,te=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ne={prefetch:e=>{if(!(e=>!te()&&!ee.has(e)&&!J.has(e))(e))return!1;J.add(e);const t=(0,p.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,X.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!te()&&!ee.has(e))(e)&&(ee.add(e),z(e))},re=Object.freeze(ne);function ae(e){let{children:t}=e;return"hash"===l.default.future.experimental_router?(0,f.jsx)(i.I9,{children:t}):(0,f.jsx)(i.Kd,{children:t})}const oe=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=re;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(o.vd,{children:(0,f.jsx)(ae,{children:(0,f.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(oe)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};z(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),a=n(4784);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/zh-hk/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/zh-hk/","mainDocId":"tutorial","docs":[{"id":"intro","path":"/zh-hk/intro"},{"id":"micro-controladores/RP2040/advanced-pio-led-control-and-resource-management","path":"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/mastering-pio-programming","path":"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/pio-uart-implementation","path":"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-pwm-usage-and-examples","path":"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-timer-and-alarm-usage","path":"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","path":"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage","sidebar":"tutorialSidebar"},{"id":"micro-controladores/STM32/stm32_cdc_develop","path":"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx","sidebar":"tutorialSidebar"},{"id":"tutorial","path":"/zh-hk/tutorial","sidebar":"tutorialSidebar"},{"id":"tutorial-basics/congratulations","path":"/zh-hk/tutorial-basics/congratulations"},{"id":"tutorial-basics/create-a-blog-post","path":"/zh-hk/tutorial-basics/create-a-blog-post"},{"id":"tutorial-basics/create-a-document","path":"/zh-hk/tutorial-basics/create-a-document"},{"id":"tutorial-basics/create-a-page","path":"/zh-hk/tutorial-basics/create-a-page"},{"id":"tutorial-basics/deploy-your-site","path":"/zh-hk/tutorial-basics/deploy-your-site"},{"id":"tutorial-basics/markdown-features","path":"/zh-hk/tutorial-basics/markdown-features"},{"id":"tutorial-extras/manage-docs-versions","path":"/zh-hk/tutorial-extras/manage-docs-versions"},{"id":"tutorial-extras/translate-your-site","path":"/zh-hk/tutorial-extras/translate-your-site"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/zh-hk/tutorial","label":"Tutorial"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"es","locales":["es","zh-hk","en"],"path":"i18n","currentLocale":"zh-hk","localeConfigs":{"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es-ES","calendar":"gregory","path":"es"},"zh-hk":{"label":"\u7e41\u9ad4\u4e2d\u6587","direction":"ltr","htmlLang":"zh-HK","calendar":"gregory","path":"zh-hk"},"en":{"label":"English","direction":"ltr","htmlLang":"en-US","calendar":"gregory","path":"en"}}}');var l=n(2654);const s=JSON.parse('{"docusaurusVersion":"3.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.4.0"}}}');var u=n(4848);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(6540),a=n(8193),o=n(5260),i=n(440),l=n(5733),s=n(3102),u=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,u.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,u.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,u.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,u.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,u.jsx)(s.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)(p,{children:(0,u.jsxs)(m,{fallback:()=>(0,u.jsx)(c,{error:t,tryAgain:n}),children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("title",{children:"Page Error"})}),(0,u.jsx)(l.A,{children:(0,u.jsx)(c,{error:t,tryAgain:n})})]})})}const h=e=>(0,u.jsx)(f,{...e});class m extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??h)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(545),a=n(4848);function o(e){return(0,a.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),a=n(4625),o=n(440),i=n(4586),l=n(6654),s=n(8193),u=n(3427),c=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:v}=(0,i.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:S}=(0,c.hH)(),E=(0,u.A)(),_=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>_.current));const C=p||f;const A=(0,l.A)(C),T=C?.replace("pathname://","");let j=void 0!==T?(L=T,b&&(e=>e.startsWith("/"))(L)?S(L):L):void 0;var L;"hash"===x&&j?.startsWith("./")&&(j=j?.slice(1)),j&&A&&(j=(0,o.applyTrailingSlash)(j,{trailingSlash:w,baseUrl:k}));const P=(0,r.useRef)(!1),R=n?a.k2:a.N_,N=s.A.canUseIntersectionObserver,z=(0,r.useRef)(),O=()=>{P.current||null==j||(window.docusaurus.preload(j),P.current=!0)};(0,r.useEffect)((()=>(!N&&A&&null!=j&&window.docusaurus.prefetch(j),()=>{N&&z.current&&z.current.disconnect()})),[z,j,N,A]);const D=j?.startsWith("#")??!1,I=!y.target||"_self"===y.target,M=!j||!A||!I;return g||!D&&M||E.collectLink(j),y.id&&E.collectAnchor(y.id),M?(0,d.jsx)("a",{ref:_,href:j,...C&&!A&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(R,{...y,onMouseEnter:O,onTouchStart:O,innerRef:e=>{_.current=e,N&&e&&A&&(z.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(z.current.unobserve(e),z.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),z.current.observe(e))},to:j,...n&&{isActive:m,activeClassName:h}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,T:()=>s});var r=n(6540),a=n(4848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(2654);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>l,hH:()=>i});var r=n(6540),a=n(4586),o=n(6654);function i(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,i=e.future.experimental_router,l=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:a=!1,absolute:i=!1}={},router:l}=e;if(!r||r.startsWith("#")||(0,o.z)(r))return r;if("hash"===l)return r.startsWith("/")?`.${r}`:`./${r}`;if(a)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const s=r.startsWith(n)?r:n+r.replace(/^\//,"");return i?t+s:s}({siteUrl:n,baseUrl:t,url:e,options:r,router:i})),[n,t,i]);return{withBaseUrl:l}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6988);function o(){return(0,r.useContext)(a.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540);const a=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6803:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540),a=n(3102);function o(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(6540),a=n(4848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>m,vT:()=>p,Gy:()=>c,HW:()=>g,ht:()=>d,r7:()=>h,jh:()=>f});var r=n(6347),a=n(4586),o=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>{try{return function(e,t,n){void 0===t&&(t=o.W),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){return d(e).versions}function h(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(4164),a=n(1312),o=n(6342),i=n(8774),l=n(3427);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var u=n(4848);function c(e){let{as:t,id:n,...c}=e;const d=(0,l.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,u.jsx)(t,{...c,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,u.jsxs)(t,{...c,className:(0,r.A)("anchor",p?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,u.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(4848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},5733:(e,t,n)=>{"use strict";n.d(t,{A:()=>ht});var r=n(6540),a=n(4164),o=n(7489),i=n(1213),l=n(6347),s=n(1312),u=n(5062),c=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,s.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7559),b=n(4090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:y.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:A.announcementBarPlaceholder}),(0,c.jsx)(C,{className:A.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),L=n(3104);var P=n(9532),R=n(5600);const N=r.createContext(null);function z(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(N.Provider,{value:n,children:t})}function O(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(N);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:O(o)})),[a,o,t])}function I(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(5293),F=n(2303);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,F.A)(),l=(0,s.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,M.G)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(3465);function Q(){return(0,c.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(a,{forcePrependBaseUrl:!0}),h=o&&a&&!(0,J.A)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,h&&(0,c.jsx)(te.A,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(Z.A,{href:s?f:a,...u,...m}):(0,c.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),le=n(9169),se=n(4586);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.A)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(_e,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,l.zy)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.A)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(_e,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var he=n(2131);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var be=n(418);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.A)(n,ye.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.A)(),p=(0,he.o)(),{search:f,hash:h}=(0,l.zy)(),m=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(ve,{className:n,children:(0,c.jsx)(be.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.QB)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,ke.Vd)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:h}=(0,xe.g1)(n),m=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...o],g=(0,ke.Vd)(n)[0],b=t&&m.length>1?(0,s.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&m.length>1?void 0:Se(g).path;return m.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:b,to:y,items:m,isActive:r?()=>!1:void 0})}};function _e(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ee[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function Ce(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(_e,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(I,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(Ce,{}),secondaryMenu:(0,c.jsx)(Te,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Pe,{onClick:i.toggle}),(0,c.jsx)(je,{})]})}var Ne=n(440);const ze={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Oe(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function De(e){let{error:t}=e;const n=(0,Ne.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:ze.errorBoundaryError,children:n})}class Ie extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function Fe(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(Fe,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Ie,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(_e,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function He(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(qe,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(Be,{}),(0,c.jsx)(Q,{}),(0,c.jsx)(Ue,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Ue,{items:r}),(0,c.jsx)(V,{className:$e.colorModeToggle}),!a&&(0,c.jsx)(ve,{children:(0,c.jsx)(be.A,{})})]})})}function Ge(){return(0,c.jsx)(Re,{children:(0,c.jsx)(He,{})})}function Ve(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.Ay)(n),s=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Z.A,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.A)(r)&&(0,c.jsx)(te.A,{})]})}function We(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(Ve,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(We,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(Ve,{item:t})}function Xe(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Ze,{item:e}),t.length!==n+1&&(0,c.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ke,{columns:t}):(0,c.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(et.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,c.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,c.jsx)(nt,{logo:t})}):(0,c.jsx)(nt,{logo:t})}function at(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(ot,{style:a,links:n&&n.length>0&&(0,c.jsx)(Je,{links:n}),logo:r&&(0,c.jsx)(rt,{logo:r}),copyright:t&&(0,c.jsx)(at,{copyright:t})})}const lt=r.memo(it);function st(e){return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)(lt,{...e})})}const ut=(0,P.fM)([M.a,k.o,L.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,c.jsx)(R.y_,{children:(0,c.jsx)(j.e,{children:(0,c.jsx)(z,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,c.jsx)(ut,{children:t})}var dt=n(1107);function pt(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(dt.A,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Oe,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(De,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function ht(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.J)(),(0,c.jsxs)(ct,{children:[(0,c.jsx)(i.be,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(T,{}),(0,c.jsx)(Ge,{}),(0,c.jsx)("div",{id:d,className:(0,a.A)(g.G.wrapper.main,ft.mainWrapper,r),children:(0,c.jsx)(o.A,{fallback:e=>(0,c.jsx)(pt,{...e}),children:t})}),!n&&(0,c.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var r=n(8774),a=n(6025),o=n(4586),i=n(6342),l=n(1122),s=n(4848);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},i=(0,s.jsx)(l.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:l}}=(0,i.p)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,a.Ay)(l?.href||"/"),h=n?"":t,m=l?.alt??h;return(0,s.jsxs)(r.A,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:m,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(6540);var r=n(5260),a=n(4848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(6540),a=n(4164),o=n(2303),i=n(5293);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(4848);function u(e){let{className:t,children:n}=e;const u=(0,o.A)(),{colorMode:c}=(0,i.G)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>u});var r=n(6540),a=n(8193),o=n(205),i=n(3109),l=n(4848);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.A.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(m,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,l.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{M:()=>m,o:()=>h});var r=n(6540),a=n(2303),o=n(679),i=n(9532),l=n(6342),s=n(4848);const u=(0,o.Wf)("docusaurus.announcement.dismiss"),c=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(6540),a=n(8193),o=n(9532),i=n(679),l=n(6342),s=n(4848);const u=r.createContext(void 0),c="theme",d=(0,i.Wf)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,h=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.p)(),[a,o]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(u);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,g1:()=>v});var r=n(6540),a=n(4070),o=n(7065),i=n(6342),l=n(1754),s=n(9532),u=n(679),c=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.C5?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function y(){const e=(0,r.useContext)(h);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>u});var r=n(6540),a=n(9532),o=n(4848);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>l,r:()=>s});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>h});var r=n(6540),a=n(5600),o=n(4581),i=n(6347),l=n(9532);function s(e){!function(e){const t=(0,i.W6)(),n=(0,l._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6342),c=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,u.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function h(){const e=r.useContext(d);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>u,YL:()=>s,y_:()=>l});var r=n(6540),a=n(9532),o=n(4848);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Be)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(6540);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(6540),a=n(8193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,l]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){l(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>g,C5:()=>p,B5:()=>E,Vd:()=>k,QB:()=>S,fW:()=>x,OF:()=>w,Y:()=>y});var r=n(6540),a=n(6347),o=n(2831),i=n(4070),l=n(5597),s=n(2252),u=n(6588);function c(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const h=(e,t)=>void 0!==e&&(0,d.ys)(e,t),m=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||m(e.items,t))}function b(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,u.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,l.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,s.r)(),i=t.routes,l=i.find((e=>(0,a.B6)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.v)(i),sidebarName:u,sidebarItems:c}}},1213:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>c,Jx:()=>f});var r=n(6540),a=n(4164),o=n(5260),i=n(6803),l=n(6025),s=n(4586);var u=n(4848);function c(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const c=function(e){const{siteConfig:t}=(0,s.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.hH)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:c}),t&&(0,u.jsx)("meta",{property:"og:title",content:c}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.A)(i,t);return(0,u.jsxs)(d.Provider,{value:l,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:l})}),n]})}function f(e){let{children:t}=e;const n=(0,i.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(p,{className:(0,a.A)(r,o),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>u,ZC:()=>l,_q:()=>i,dV:()=>s,fM:()=>c});var r=n(6540),a=n(205),o=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>l,ys:()=>i});var r=n(6540),a=n(8328),o=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>u,gk:()=>f});var r=n(6540),a=n(8193),o=n(2303),i=(n(205),n(9532)),l=n(4848);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>a});n(4586);const r="default";function a(e,t){return`docs-${e}-${t}`}},679:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>u});n(6540);const r=JSON.parse('{"N":"localStorage","M":""}'),a=r.N;function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const a=i(t?.persistence);return null===a?s:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),o({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),o({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),a=n(6347),o=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.A)(),{pathname:s}=(0,a.zy)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),a=n(6347),o=n(9532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(4586);function a(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(2566);function a(e){return e.endsWith("/")?e:`${e}/`}function o(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[i]=e.split(/[#?]/),l="/"===i||i===r?i:(s=i,n?a(s):o(s));var s;return e.replace(i,l)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=o},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return a.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return a.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return a.removeTrailingSlash}});var o=n(2566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return o.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return o.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return o.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return o.removePrefix}});var i=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},2566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var l=n(1561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var m=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",y="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,k=i.getUserConfirmation,x=void 0===k?g:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),f(o,r,n)}function A(){return Math.random().toString(36).substr(2,E)}var T=h();function j(e){(0,r.A)($,e),$.length=n.length,T.notifyListeners($.location,$.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function P(){N(C(v()))}var R=!1;function N(e){if(R)R=!1,j();else{T.confirmTransitionTo(e,"POP",x,(function(t){t?j({action:"POP",location:e}):function(e){var t=$.location,n=O.indexOf(t.key);-1===n&&(n=0);var r=O.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(R=!0,I(a))}(e)}))}}var z=C(v()),O=[z.key];function D(e){return _+p(e)}function I(e){n.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(y,P)):0===M&&(window.removeEventListener(b,L),o&&window.removeEventListener(y,P))}var B=!1;var $={length:n.length,action:"POP",location:z,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,A(),$.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=O.indexOf($.location.key),u=O.slice(0,s+1);u.push(o.key),O=u,j({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,A(),$.location);T.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=O.indexOf($.location.key);-1!==s&&(O[s]=o.key),j({action:r,location:o})}else window.location.replace(t)}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return $}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,l.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",y=x[u],v=y.encodePath,w=y.decodePath;function C(){var e=w(E());return b&&(e=c(e,b)),f(e)}var A=h();function T(e){(0,r.A)(B,e),B.length=t.length,A.notifyListeners(B.location,B.action)}var j=!1,L=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!j&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(j)j=!1,T();else{var t="POP";A.confirmTransitionTo(e,t,o,(function(n){n?T({action:t,location:e}):function(e){var t=B.location,n=O.lastIndexOf(p(t));-1===n&&(n=0);var r=O.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(j=!0,D(a))}(e)}))}}(a)}}var R=E(),N=v(R);R!==N&&_(N);var z=C(),O=[p(z)];function D(e){t.go(e)}var I=0;function M(e){1===(I+=e)&&1===e?window.addEventListener(k,P):0===I&&window.removeEventListener(k,P)}var F=!1;var B={length:t.length,action:"POP",location:z,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);if(E()!==a){L=t,function(e){window.location.hash=e}(a);var o=O.lastIndexOf(p(B.location)),i=O.slice(0,o+1);i.push(t),O=i,T({action:n,location:r})}else T()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);A.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=v(b+t);E()!==a&&(L=t,_(a));var o=O.indexOf(p(B.location));-1!==o&&(O[o]=t),T({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return F||(M(1),F=!0),function(){return F&&(F=!1,M(-1)),t()}},listen:function(e){var t=A.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function A(e,t,n){return Math.min(Math.max(e,t),n)}function T(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=h();function d(e){(0,r.A)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function m(){return Math.random().toString(36).substr(2,u)}var g=A(l,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?m():e.key||m())})),y=p;function v(e){var t=A(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:y,push:function(e,t){var r="PUSH",a=f(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(4363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=f(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||m&&m[b]||l&&l[b])){var y=p(n,b);try{u(t,b,y)}catch(v){}}}}return t}},311:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(8380),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),o.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),h=p.indexOf(f);if(h>-1){++a;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(h+f.length),y=[];m&&y.push.apply(y,i([m])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=8692},3157:(e,t,n)=>{var r={"./":8722};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),h=c;a(h);){for(var m in p={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var y in f(b))if(y in c){p[b]=!0;break}for(var v in h=p)c[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),a=n(194);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},h={};function m(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(h,e)||!d.call(f,e)&&(p.test(e)?h[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),A=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),R=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var N=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var z=Symbol.iterator;function O(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}var D,I=Object.assign;function M(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var F=!1;function B(e,t){if(!e||F)return"";F=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{F=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case j:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case R:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return I({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Z(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){Z(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return I({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},he=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){he.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=I({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Ae(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Te(e,t){return e(t)}function je(){}var Le=!1;function Pe(e,t,n){if(Le)return e(t,n);Le=!0;try{return Te(e,t,n)}finally{Le=!1,(null!==Se||null!==Ee)&&(je(),Ae())}}function Re(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Ne=!1;if(c)try{var ze={};Object.defineProperty(ze,"passive",{get:function(){Ne=!0}}),window.addEventListener("test",ze,ze),window.removeEventListener("test",ze,ze)}catch(ce){Ne=!1}function Oe(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var De=!1,Ie=null,Me=!1,Fe=null,Be={onError:function(e){De=!0,Ie=e}};function $e(e,t,n,r,a,o,i,l,s){De=!1,Ie=null,Oe.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ue(e)!==e)throw Error(o(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,Qe=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ze=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&!(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&4194240&o))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ht(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ut;return!(4194240&(ut<<=1))&&(ut=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,At=[],Tt=null,jt=null,Lt=null,Pt=new Map,Rt=new Map,Nt=[],zt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ot(e,t){switch(e){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":jt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Rt.delete(t.pointerId)}}function Dt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function It(e){var t=ya(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Ft(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Tt&&Mt(Tt)&&(Tt=null),null!==jt&&Mt(jt)&&(jt=null),null!==Lt&&Mt(Lt)&&(Lt=null),Pt.forEach(Ft),Rt.forEach(Ft)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<At.length){$t(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Tt&&$t(Tt,e),null!==jt&&$t(jt,e),null!==Lt&&$t(Lt,e),Pt.forEach(t),Rt.forEach(t),n=0;n<Nt.length;n++)(r=Nt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Nt.length&&null===(n=Nt[0]).blockedOn;)It(n),null===n.blockedOn&&Nt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Vt(e,t,n,r){var a=vt,o=qt.transition;qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,qt.transition=o}}function Wt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,Qt,n),Ot(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Tt=Dt(Tt,e,t,n,r,a),!0;case"dragenter":return jt=Dt(jt,e,t,n,r,a),!0;case"mouseover":return Lt=Dt(Lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pt.set(o,Dt(Pt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Rt.set(o,Dt(Rt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Ot(e,r),4&t&&-1<zt.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,Qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Qt=null;function Kt(e,t,n,r){if(Qt=null,null!==(e=ya(e=ke(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Zt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Zt?Zt.value:Zt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return I(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=I({},un,{view:0,detail:0}),pn=an(dn),fn=I({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),hn=an(fn),mn=an(I({},fn,{dataTransfer:0})),gn=an(I({},dn,{relatedTarget:0})),bn=an(I({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=I({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(yn),wn=an(I({},un,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=I({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=an(Cn),Tn=an(I({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=an(I({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=an(I({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=I({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Rn=an(Pn),Nn=[9,13,27,32],zn=c&&"CompositionEvent"in window,On=null;c&&"documentMode"in document&&(On=document.documentMode);var Dn=c&&"TextEvent"in window&&!On,In=c&&(!zn||On&&8<On&&11>=On),Mn=String.fromCharCode(32),Fn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Nn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Ce(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function Qn(e){Mr(e,0)}function Kn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Zn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Zn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Kn(Wn)){var t=[];Gn(t,Wn,e,ke(e)),Pe(Qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Wn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=Q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Q((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function hr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==Q(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&sr(yr,r)||(yr=r,0<(r=Vr(br,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Ar=_r("animationiteration"),Tr=_r("animationstart"),jr=_r("transitionend"),Lr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rr(e,t){Lr.set(e,t),s(t,[e])}for(var Nr=0;Nr<Pr.length;Nr++){var zr=Pr[Nr];Rr(zr.toLowerCase(),"on"+(zr[0].toUpperCase()+zr.slice(1)))}Rr(Cr,"onAnimationEnd"),Rr(Ar,"onAnimationIteration"),Rr(Tr,"onAnimationStart"),Rr("dblclick","onDoubleClick"),Rr("focusin","onFocus"),Rr("focusout","onBlur"),Rr(jr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Or="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Or));function Ir(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if($e.apply(this,arguments),De){if(!De)throw Error(o(198));var c=Ie;De=!1,Ie=null,Me||(Me=!0,Fe=c)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Ir(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Ir(a,l,u),o=s}}}if(Me)throw e=Fe,Me=!1,Fe=null,e}function Fr(e,t){var n=t[ma];void 0===n&&(n=t[ma]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Gt;break;case 4:a=Vt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Ne||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ya(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Pe((function(){var r=o,a=ke(n),i=[];e:{var l=Lr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=An;break;case"focusin":u="focus",s=gn;break;case"focusout":u="blur",s=gn;break;case"beforeblur":case"afterblur":s=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=hn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=jn;break;case Cr:case Ar:case Tr:s=bn;break;case jr:s=Ln;break;case"scroll":s=pn;break;case"wheel":s=Rn;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Tn}var c=!!(4&t),d=!c&&"scroll"===e,p=c?null!==l?l+"Capture":null:l;c=[];for(var f,h=r;null!==h;){var m=(f=h).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==p&&(null!=(m=Re(h,p))&&c.push(Gr(h,m,f)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(!(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ya(u)&&!u[ha])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ya(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=hn,m="onMouseLeave",p="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Tn,m="onPointerLeave",p="onPointerEnter",h="pointer"),d=null==s?l:wa(s),f=null==u?l:wa(u),(l=new c(m,h+"leave",s,n,a)).target=d,l.relatedTarget=f,m=null,ya(a)===r&&((c=new c(p,h+"enter",u,n,a)).target=f,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(p=u,h=0,f=c=s;f;f=Wr(f))h++;for(f=0,m=p;m;m=Wr(m))f++;for(;0<h-f;)c=Wr(c),h--;for(;0<f-h;)p=Wr(p),f--;for(;h--;){if(c===p||null!==p&&c===p.alternate)break e;c=Wr(c),p=Wr(p)}c=null}else c=null;null!==s&&Qr(i,l,s,c,!1),null!==u&&null!==d&&Qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Yn;else if(Hn(l))if(Zn)g=ir;else{g=ar;var b=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=or);switch(g&&(g=g(e,r))?Gn(i,g,n,a):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ee(l,"number",l.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,yr=null);break;case"focusout":yr=br=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(i,n,a)}var y;if(zn)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(In&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(y=en()):(Xt="value"in(Zt=a)?Zt.value:Zt.textContent,Un=!0)),0<(b=Vr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=$n(n))&&(v.data=y))),(y=Dn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(Fn=!0,Mn);case"textInput":return(e=t.data)===Mn&&Fn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!zn&&Bn(e,t)?(e=en(),Jt=Xt=Zt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return In&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=y))}Mr(i,t)}))}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Re(e,n))&&r.unshift(Gr(e,o,a)),null!=(o=Re(e,t))&&r.push(Gr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Re(n,o))&&i.unshift(Gr(n,s,l)):a||null!=(s=Re(n,o))&&i.push(Gr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Zr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Zr(t),Zr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ha="__reactContainer$"+da,ma="__reactEvents$"+da,ga="__reactListeners$"+da,ba="__reactHandles$"+da;function ya(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ha]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[pa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[pa]||e[ha])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Aa={},Ta=Ea(Aa),ja=Ea(!1),La=Aa;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Aa;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ra(e){return null!=(e=e.childContextTypes)}function Na(){_a(ja),_a(Ta)}function za(e,t,n){if(Ta.current!==Aa)throw Error(o(168));Ca(Ta,t),Ca(ja,n)}function Oa(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return I({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Aa,La=Ta.current,Ca(Ta,e),Ca(ja,ja.current),!0}function Ia(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Oa(e,t,La),r.__reactInternalMemoizedMergedChildContext=e,_a(ja),_a(Ta),Ca(Ta,e)):_a(ja),Ca(ja,n)}var Ma=null,Fa=!1,Ba=!1;function $a(e){null===Ma?Ma=[e]:Ma.push(e)}function Ua(){if(!Ba&&null!==Ma){Ba=!0;var e=0,t=vt;try{var n=Ma;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ma=null,Fa=!1}catch(a){throw null!==Ma&&(Ma=Ma.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var qa=[],Ha=0,Ga=null,Va=0,Wa=[],Qa=0,Ka=null,Ya=1,Za="";function Xa(e,t){qa[Ha++]=Va,qa[Ha++]=Ga,Ga=e,Va=t}function Ja(e,t,n){Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ka=e;var r=Ya;e=Za;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Za=o+e}else Ya=1<<o|n<<a|r,Za=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ga;)Ga=qa[--Ha],qa[Ha]=null,Va=qa[--Ha],qa[Ha]=null;for(;e===Ka;)Ka=Wa[--Qa],Wa[Qa]=null,Za=Wa[--Qa],Wa[Qa]=null,Ya=Wa[--Qa],Wa[Qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Pu(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Za}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pu(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return!(!(1&e.mode)||128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ua(e.nextSibling)}function ho(){ro=no=null,ao=!1}function mo(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function bo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function yo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function vo(e){return(0,e._init)(e._payload)}function wo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Nu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Iu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===R&&vo(o)===t.type)?((r=a(t,n.props)).ref=bo(e,t,n),r.return=e,r):((r=zu(n.type,n.key,n.props,null,e.mode,r)).ref=bo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Ou(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Iu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=zu(t.type,t.key,t.props,null,e.mode,n)).ref=bo(e,null,t),n.return=e,n;case x:return(t=Mu(t,e.mode,n)).return=e,t;case R:return p(e,(0,t._init)(t._payload),n)}if(te(t)||O(t))return(t=Ou(t,e.mode,n,null)).return=e,t;yo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?u(e,t,n,r):null;case x:return n.key===a?c(e,t,n,r):null;case R:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||O(n))return null!==a?null:d(e,t,n,r,null);yo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case R:return h(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||O(r))return d(t,e=e.get(n)||null,r,a,null);yo(t,r)}return null}function m(a,o,l,s){for(var u=null,c=null,d=o,m=o=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var b=f(a,d,l[m],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,m),null===c?u=b:c.sibling=b,c=b,d=g}if(m===l.length)return n(a,d),ao&&Xa(a,m),u;if(null===d){for(;m<l.length;m++)null!==(d=p(a,l[m],s))&&(o=i(d,o,m),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,m),u}for(d=r(a,d);m<l.length;m++)null!==(g=h(d,a,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),o=i(g,o,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,m),u}function g(a,l,s,u){var c=O(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,m=l,g=l=0,b=null,y=s.next();null!==m&&!y.done;g++,y=s.next()){m.index>g?(b=m,m=null):b=m.sibling;var v=f(a,m,y.value,u);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(a,m),l=i(v,l,g),null===d?c=v:d.sibling=v,d=v,m=b}if(y.done)return n(a,m),ao&&Xa(a,g),c;if(null===m){for(;!y.done;g++,y=s.next())null!==(y=p(a,y.value,u))&&(l=i(y,l,g),null===d?c=y:d.sibling=y,d=y);return ao&&Xa(a,g),c}for(m=r(a,m);!y.done;g++,y=s.next())null!==(y=h(m,a,g,y.value,u))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),l=i(y,l,g),null===d?c=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===R&&vo(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=bo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Ou(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=zu(i.type,i.key,i.props,null,r.mode,s)).ref=bo(r,o,i),s.return=r,r=s)}return l(r);case x:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Mu(i,r.mode,s)).return=r,r=o}return l(r);case R:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return m(r,o,i,s);if(O(i))return g(r,o,i,s);yo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Iu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var ko=wo(!0),xo=wo(!1),So=Ea(null),Eo=null,_o=null,Co=null;function Ao(){Co=_o=Eo=null}function To(e){var t=So.current;_a(So),e._currentValue=t}function jo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Lo(e,t){Eo=e,Co=_o=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(vl=!0),e.firstContext=null)}function Po(e){var t=e._currentValue;if(Co!==e)if(e={context:e,memoizedValue:t,next:null},null===_o){if(null===Eo)throw Error(o(308));_o=e,Eo.dependencies={lanes:0,firstContext:e}}else _o=_o.next=e;return t}var Ro=null;function No(e){null===Ro?Ro=[e]:Ro.push(e)}function zo(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,No(t)):(n.next=a.next,a.next=n),t.interleaved=n,Oo(e,r)}function Oo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Do=!1;function Io(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Mo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Bo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Ts){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Oo(e,n)}return null===(a=r.interleaved)?(t.next=t,No(r)):(t.next=a.next,a.next=t),r.interleaved=t,Oo(e,n)}function $o(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}function Uo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function qo(e,t,n,r){var a=e.updateQueue;Do=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==c&&(c=c.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var h=e,m=l;switch(p=t,f=n,m.tag){case 1:if("function"==typeof(h=m.payload)){d=h.call(f,d,p);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(p="function"==typeof(h=m.payload)?h.call(f,d,p):h))break e;d=I({},d,p);break e;case 2:Do=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=f,s=d):c=c.next=f,i|=p;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(p=l).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ds|=i,e.lanes=i,e.memoizedState=d}}function Ho(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Go={},Vo=Ea(Go),Wo=Ea(Go),Qo=Ea(Go);function Ko(e){if(e===Go)throw Error(o(174));return e}function Yo(e,t){switch(Ca(Qo,t),Ca(Wo,e),Ca(Vo,Go),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(Vo),Ca(Vo,t)}function Zo(){_a(Vo),_a(Wo),_a(Qo)}function Xo(e){Ko(Qo.current);var t=Ko(Vo.current),n=se(t,e.type);t!==n&&(Ca(Wo,e),Ca(Vo,n))}function Jo(e){Wo.current===e&&(_a(Vo),_a(Wo))}var ei=Ea(0);function ti(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var ai=w.ReactCurrentDispatcher,oi=w.ReactCurrentBatchConfig,ii=0,li=null,si=null,ui=null,ci=!1,di=!1,pi=0,fi=0;function hi(){throw Error(o(321))}function mi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function gi(e,t,n,r,a,i){if(ii=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ai.current=null===e||null===e.memoizedState?Ji:el,e=n(r,a),di){i=0;do{if(di=!1,pi=0,25<=i)throw Error(o(301));i+=1,ui=si=null,t.updateQueue=null,ai.current=tl,e=n(r,a)}while(di)}if(ai.current=Xi,t=null!==si&&null!==si.next,ii=0,ui=si=li=null,ci=!1,t)throw Error(o(300));return e}function bi(){var e=0!==pi;return pi=0,e}function yi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ui?li.memoizedState=ui=e:ui=ui.next=e,ui}function vi(){if(null===si){var e=li.alternate;e=null!==e?e.memoizedState:null}else e=si.next;var t=null===ui?li.memoizedState:ui.next;if(null!==t)ui=t,si=e;else{if(null===e)throw Error(o(310));e={memoizedState:(si=e).memoizedState,baseState:si.baseState,baseQueue:si.baseQueue,queue:si.queue,next:null},null===ui?li.memoizedState=ui=e:ui=ui.next=e}return ui}function wi(e,t){return"function"==typeof t?t(e):t}function ki(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=si,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((ii&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var p={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=p,l=r):u=u.next=p,li.lanes|=d,Ds|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(vl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,li.lanes|=i,Ds|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function xi(e){var t=vi(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(vl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Si(){}function Ei(e,t){var n=li,r=vi(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,vl=!0),r=r.queue,Di(Ai.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ui&&1&ui.memoizedState.tag){if(n.flags|=2048,Pi(9,Ci.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));30&ii||_i(n,t,a)}return a}function _i(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ci(e,t,n,r){t.value=n,t.getSnapshot=r,Ti(t)&&ji(e)}function Ai(e,t,n){return n((function(){Ti(t)&&ji(e)}))}function Ti(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function ji(e){var t=Oo(e,1);null!==t&&nu(t,e,1,-1)}function Li(e){var t=yi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:wi,lastRenderedState:e},t.queue=e,e=e.dispatch=Qi.bind(null,li,e),[t.memoizedState,e]}function Pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Ri(){return vi().memoizedState}function Ni(e,t,n,r){var a=yi();li.flags|=e,a.memoizedState=Pi(1|t,n,void 0,void 0===r?null:r)}function zi(e,t,n,r){var a=vi();r=void 0===r?null:r;var o=void 0;if(null!==si){var i=si.memoizedState;if(o=i.destroy,null!==r&&mi(r,i.deps))return void(a.memoizedState=Pi(t,n,o,r))}li.flags|=e,a.memoizedState=Pi(1|t,n,o,r)}function Oi(e,t){return Ni(8390656,8,e,t)}function Di(e,t){return zi(2048,8,e,t)}function Ii(e,t){return zi(4,2,e,t)}function Mi(e,t){return zi(4,4,e,t)}function Fi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Bi(e,t,n){return n=null!=n?n.concat([e]):null,zi(4,4,Fi.bind(null,t,e),n)}function $i(){}function Ui(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&mi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function qi(e,t){var n=vi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&mi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Hi(e,t,n){return 21&ii?(lr(n,t)||(n=mt(),li.lanes|=n,Ds|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,vl=!0),e.memoizedState=n)}function Gi(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=oi.transition;oi.transition={};try{e(!1),t()}finally{vt=n,oi.transition=r}}function Vi(){return vi().memoizedState}function Wi(e,t,n){var r=tu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ki(e))Yi(t,n);else if(null!==(n=zo(e,t,n,r))){nu(n,e,r,eu()),Zi(n,t,r)}}function Qi(e,t,n){var r=tu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ki(e))Yi(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,No(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=zo(e,t,a,r))&&(nu(n,e,r,a=eu()),Zi(n,t,r))}}function Ki(e){var t=e.alternate;return e===li||null!==t&&t===li}function Yi(e,t){di=ci=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var Xi={readContext:Po,useCallback:hi,useContext:hi,useEffect:hi,useImperativeHandle:hi,useInsertionEffect:hi,useLayoutEffect:hi,useMemo:hi,useReducer:hi,useRef:hi,useState:hi,useDebugValue:hi,useDeferredValue:hi,useTransition:hi,useMutableSource:hi,useSyncExternalStore:hi,useId:hi,unstable_isNewReconciler:!1},Ji={readContext:Po,useCallback:function(e,t){return yi().memoizedState=[e,void 0===t?null:t],e},useContext:Po,useEffect:Oi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ni(4194308,4,Fi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ni(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ni(4,2,e,t)},useMemo:function(e,t){var n=yi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=yi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},yi().memoizedState=e},useState:Li,useDebugValue:$i,useDeferredValue:function(e){return yi().memoizedState=e},useTransition:function(){var e=Li(!1),t=e[0];return e=Gi.bind(null,e[1]),yi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=li,a=yi();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));30&ii||_i(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Oi(Ai.bind(null,r,i,e),[e]),r.flags|=2048,Pi(9,Ci.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=yi(),t=js.identifierPrefix;if(ao){var n=Za;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=pi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Ii,useLayoutEffect:Mi,useMemo:qi,useReducer:ki,useRef:Ri,useState:function(){return ki(wi)},useDebugValue:$i,useDeferredValue:function(e){return Hi(vi(),si.memoizedState,e)},useTransition:function(){return[ki(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1},tl={readContext:Po,useCallback:Ui,useContext:Po,useEffect:Di,useImperativeHandle:Bi,useInsertionEffect:Ii,useLayoutEffect:Mi,useMemo:qi,useReducer:xi,useRef:Ri,useState:function(){return xi(wi)},useDebugValue:$i,useDeferredValue:function(e){var t=vi();return null===si?t.memoizedState=e:Hi(t,si.memoizedState,e)},useTransition:function(){return[xi(wi)[0],vi().memoizedState]},useMutableSource:Si,useSyncExternalStore:Ei,useId:Vi,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=I({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:I({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var al={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=Fo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=eu(),a=tu(e),o=Fo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Bo(e,o,a))&&(nu(t,e,a,r),$o(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=eu(),r=tu(e),a=Fo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Bo(e,a,r))&&(nu(t,e,r,n),$o(t,e,r))}};function ol(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function il(e,t,n){var r=!1,a=Aa,o=t.contextType;return"object"==typeof o&&null!==o?o=Po(o):(a=Ra(t)?La:Ta.current,o=(r=null!=(r=t.contextTypes))?Pa(e,a):Aa),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=al,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function ll(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&al.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs={},Io(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Po(o):(o=Ra(t)?La:Ta.current,a.context=Pa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(rl(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&al.enqueueReplaceState(a,a.state,null),qo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function ul(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function cl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=Fo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Gs=r),dl(0,t)},n}function hl(e,t,n){(n=Fo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){dl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!=typeof r&&(null===Vs?Vs=new Set([this]):Vs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function ml(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=_u.bind(null,e,t,n),t.then(e,e))}function gl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,a){return 1&e.mode?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Fo(-1,1)).tag=2,Bo(n,t,1))),n.lanes|=1),e)}var yl=w.ReactCurrentOwner,vl=!1;function wl(e,t,n,r){t.child=null===e?xo(t,null,n,r):ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return Lo(t,a),r=gi(e,t,n,r,o,a),n=bi(),null===e||vl?(ao&&n&&eo(t),t.flags|=1,wl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function xl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Ru(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=zu(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Sl(e,t,o,r,a))}if(o=e.child,!(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,a)}return t.flags|=1,(e=Nu(o,r)).ref=t.ref,e.return=t,t.child=e}function Sl(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(vl=!1,t.pendingProps=r=o,!(e.lanes&a))return t.lanes=e.lanes,Hl(e,t,a);131072&e.flags&&(vl=!0)}}return Cl(e,t,n,r,a)}function El(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ns,Rs),Rs|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ns,Rs),Rs|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ns,Rs),Rs|=n;else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ns,Rs),Rs|=r;return wl(e,t,a,n),t.child}function _l(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Cl(e,t,n,r,a){var o=Ra(n)?La:Ta.current;return o=Pa(t,o),Lo(t,a),n=gi(e,t,n,r,o,a),r=bi(),null===e||vl?(ao&&r&&eo(t),t.flags|=1,wl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Al(e,t,n,r,a){if(Ra(n)){var o=!0;Da(t)}else o=!1;if(Lo(t,a),null===t.stateNode)ql(e,t),il(t,n,r),sl(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Po(u):u=Pa(t,u=Ra(n)?La:Ta.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&ll(t,i,r,u),Do=!1;var p=t.memoizedState;i.state=p,qo(t,r,i,a),s=t.memoizedState,l!==r||p!==s||ja.current||Do?("function"==typeof c&&(rl(t,n,c,r),s=t.memoizedState),(l=Do||ol(t,n,l,r,p,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Mo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:nl(t.type,l),i.props=u,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Po(s):s=Pa(t,s=Ra(n)?La:Ta.current);var f=n.getDerivedStateFromProps;(c="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,i,r,s),Do=!1,p=t.memoizedState,i.state=p,qo(t,r,i,a);var h=t.memoizedState;l!==d||p!==h||ja.current||Do?("function"==typeof f&&(rl(t,n,f,r),h=t.memoizedState),(u=Do||ol(t,n,u,r,p,h,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Tl(e,t,n,r,o,a)}function Tl(e,t,n,r,a,o){_l(e,t);var i=!!(128&t.flags);if(!r&&!i)return a&&Ia(t,n,!1),Hl(e,t,o);r=t.stateNode,yl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=ko(t,e.child,null,o),t.child=ko(t,null,l,o)):wl(e,t,l,o),t.memoizedState=r.state,a&&Ia(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?za(0,t.pendingContext,t.pendingContext!==t.context):t.context&&za(0,t.context,!1),Yo(e,t.containerInfo)}function Ll(e,t,n,r,a){return ho(),mo(a),t.flags|=256,wl(e,t,n,r),t.child}var Pl,Rl,Nl,zl,Ol={dehydrated:null,treeContext:null,retryLane:0};function Dl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Il(e,t,n){var r,a=t.pendingProps,i=ei.current,l=!1,s=!!(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(ei,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},1&a||null===l?l=Du(s,a,0,null):(l.childLanes=0,l.pendingProps=s),e=Ou(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Dl(n),t.memoizedState=Ol,e):Ml(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,Fl(e,t,l,r=cl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Du({mode:"visible",children:r.children},a,0,null),(i=Ou(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&ko(t,e.child,null,l),t.child.memoizedState=Dl(l),t.memoizedState=Ol,i);if(!(1&t.mode))return Fl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,Fl(e,t,l,r=cl(i=Error(o(419)),r,void 0))}if(s=!!(l&e.childLanes),vl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=a&(r.suspendedLanes|l)?0:a)&&a!==i.retryLane&&(i.retryLane=a,Oo(e,a),nu(r,e,a,-1))}return mu(),Fl(e,t,l,r=cl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Au.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[Qa++]=Ya,Wa[Qa++]=Za,Wa[Qa++]=Ka,Ya=e.id,Za=e.overflow,Ka=t),t=Ml(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 1&s||t.child===i?(a=Nu(i,u)).subtreeFlags=14680064&i.subtreeFlags:((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null),null!==r?l=Nu(r,l):(l=Ou(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Dl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Ol,a}return e=(l=e.child).sibling,a=Nu(l,{mode:"visible",children:a.children}),!(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Ml(e,t){return(t=Du({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Fl(e,t,n,r){return null!==r&&mo(r),ko(t,e.child,null,n),(e=Ml(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Bl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),jo(e.return,t,n)}function $l(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ul(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(wl(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Bl(e,n,t);else if(19===e.tag)Bl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(ei,r),1&t.mode)switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),$l(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ti(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}$l(t,!0,n,null,o);break;case"together":$l(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function ql(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ds|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Nu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Nu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vl(t),null;case 1:case 17:return Ra(t.type)&&Na(),Vl(t),null;case 3:return r=t.stateNode,Zo(),_a(ja),_a(Ta),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==oo&&(iu(oo),oo=null))),Rl(e,t),Vl(t),null;case 5:Jo(t);var a=Ko(Qo.current);if(n=t.type,null!==e&&null!=t.stateNode)Nl(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Vl(t),null}if(e=Ko(Vo.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=!!(1&t.mode),n){case"dialog":Fr("cancel",r),Fr("close",r);break;case"iframe":case"object":case"embed":Fr("load",r);break;case"video":case"audio":for(a=0;a<Or.length;a++)Fr(Or[a],r);break;case"source":Fr("error",r);break;case"img":case"image":case"link":Fr("error",r),Fr("load",r);break;case"details":Fr("toggle",r);break;case"input":Y(r,i),Fr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Fr("invalid",r);break;case"textarea":ae(r,i),Fr("invalid",r)}for(var s in ye(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&Fr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[pa]=t,e[fa]=r,Pl(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":Fr("cancel",e),Fr("close",e),a=r;break;case"iframe":case"object":case"embed":Fr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Or.length;a++)Fr(Or[a],e);a=r;break;case"source":Fr("error",e),a=r;break;case"img":case"image":case"link":Fr("error",e),Fr("load",e),a=r;break;case"details":Fr("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),Fr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=I({},r,{value:void 0}),Fr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Fr("invalid",e)}for(i in ye(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?ge(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&pe(e,c):"number"==typeof c&&pe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&Fr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vl(t),null;case 6:if(e&&null!=t.stateNode)zl(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=Ko(Qo.current),Ko(Vo.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,!!(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Vl(t),null;case 13:if(_a(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&1&t.mode&&!(128&t.flags))fo(),ho(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else ho(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vl(t),i=!1}else null!==oo&&(iu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===zs&&(zs=3):mu())),null!==t.updateQueue&&(t.flags|=4),Vl(t),null);case 4:return Zo(),Rl(e,t),null===e&&Ur(t.stateNode.containerInfo),Vl(t),null;case 10:return To(t.type._context),Vl(t),null;case 19:if(_a(ei),null===(i=t.memoizedState))return Vl(t),null;if(r=!!(128&t.flags),null===(s=i.rendering))if(r)Gl(i,!1);else{if(0!==zs||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(s=ti(e))){for(t.flags|=128,Gl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Ze()>Us&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Vl(t),null}else 2*Ze()-i.renderingStartTime>Us&&1073741824!==n&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ze(),t.sibling=null,n=ei.current,Ca(ei,r?1&n|2:1&n),t):(Vl(t),null);case 22:case 23:return du(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Rs)&&(Vl(t),6&t.subtreeFlags&&(t.flags|=8192)):Vl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ql(e,t){switch(to(t),t.tag){case 1:return Ra(t.type)&&Na(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Zo(),_a(ja),_a(Ta),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Jo(t),null;case 13:if(_a(ei),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ho()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(ei),null;case 4:return Zo(),null;case 10:return To(t.type._context),null;case 22:case 23:return du(),null;default:return null}}Pl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Rl=function(){},Nl=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ko(Vo.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=I({},a,{value:void 0}),r=I({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in ye(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&Fr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},zl=function(e,t,n,r){n!==r&&(t.flags|=4)};var Kl=!1,Yl=!1,Zl="function"==typeof WeakSet?WeakSet:Set,Xl=null;function Jl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Eu(e,t,r)}else n.current=null}function es(e,t,n){try{n()}catch(r){Eu(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&es(t,n,o)}a=a.next}while(a!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function as(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function os(e){var t=e.alternate;null!==t&&(e.alternate=null,os(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ma],delete t[ga],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function is(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||is(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var cs=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Yl||Jl(n,t);case 6:var r=cs,a=ds;cs=null,ps(e,t,n),ds=a,null!==(cs=r)&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):cs.removeChild(n.stateNode));break;case 18:null!==cs&&(ds?(e=cs,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),Ut(e)):sa(cs,n.stateNode));break;case 4:r=cs,a=ds,cs=n.stateNode.containerInfo,ds=!0,ps(e,t,n),cs=r,ds=a;break;case 0:case 11:case 14:case 15:if(!Yl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(2&o||4&o)&&es(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Yl&&(Jl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Eu(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Yl=(r=Yl)||null!==n.memoizedState,ps(e,t,n),Yl=r):ps(e,t,n);break;default:ps(e,t,n)}}function hs(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zl),t.forEach((function(t){var r=Tu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ms(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:cs=s.stateNode,ds=!1;break e;case 3:case 4:cs=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===cs)throw Error(o(160));fs(i,l,a),cs=null,ds=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){Eu(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gs(t,e),t=t.sibling}function gs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ms(t,e),bs(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(g){Eu(e,e.return,g)}try{ns(5,e,e.return)}catch(g){Eu(e,e.return,g)}}break;case 1:ms(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return);break;case 5:if(ms(t,e),bs(e),512&r&&null!==n&&Jl(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(g){Eu(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&Z(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],p=u[l+1];"style"===d?ge(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):v(a,d,p,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var h=i.value;null!=h?ne(a,!!i.multiple,h,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(g){Eu(e,e.return,g)}}break;case 6:if(ms(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){Eu(e,e.return,g)}}break;case 3:if(ms(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(g){Eu(e,e.return,g)}break;case 4:default:ms(t,e),bs(e);break;case 13:ms(t,e),bs(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||($s=Ze())),4&r&&hs(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Yl=(c=Yl)||d,ms(t,e),Yl=c):ms(t,e),bs(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&1&e.mode)for(Xl=e,d=e.child;null!==d;){for(p=Xl=d;null!==Xl;){switch(h=(f=Xl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Jl(f,f.return);var m=f.stateNode;if("function"==typeof m.componentWillUnmount){r=f,n=f.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){Eu(r,n,g)}}break;case 5:Jl(f,f.return);break;case 22:if(null!==f.memoizedState){ks(p);continue}}null!==h?(h.return=f,Xl=h):ks(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=p.stateNode,l=null!=(u=p.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=me("display",l))}catch(g){Eu(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=c?"":p.memoizedProps}catch(g){Eu(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:ms(t,e),bs(e),4&r&&hs(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(is(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),us(e,ls(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;ss(e,ls(e),i);break;default:throw Error(o(161))}}catch(l){Eu(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function ys(e,t,n){Xl=e,vs(e,t,n)}function vs(e,t,n){for(var r=!!(1&e.mode);null!==Xl;){var a=Xl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Kl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Yl;l=Kl;var u=Yl;if(Kl=i,(Yl=s)&&!u)for(Xl=a;null!==Xl;)s=(i=Xl).child,22===i.tag&&null!==i.memoizedState?xs(a):null!==s?(s.return=i,Xl=s):xs(a);for(;null!==o;)Xl=o,vs(o,t,n),o=o.sibling;Xl=a,Kl=l,Yl=u}ws(e)}else 8772&a.subtreeFlags&&null!==o?(o.return=a,Xl=o):ws(e)}}function ws(e){for(;null!==Xl;){var t=Xl;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Yl||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Yl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ho(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ho(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Ut(p)}}}break;default:throw Error(o(163))}Yl||512&t.flags&&as(t)}catch(f){Eu(t,t.return,f)}}if(t===e){Xl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Xl=n;break}Xl=t.return}}function ks(e){for(;null!==Xl;){var t=Xl;if(t===e){Xl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Xl=n;break}Xl=t.return}}function xs(e){for(;null!==Xl;){var t=Xl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){Eu(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){Eu(t,a,s)}}var o=t.return;try{as(t)}catch(s){Eu(t,o,s)}break;case 5:var i=t.return;try{as(t)}catch(s){Eu(t,i,s)}}}catch(s){Eu(t,t.return,s)}if(t===e){Xl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Xl=l;break}Xl=t.return}}var Ss,Es=Math.ceil,_s=w.ReactCurrentDispatcher,Cs=w.ReactCurrentOwner,As=w.ReactCurrentBatchConfig,Ts=0,js=null,Ls=null,Ps=0,Rs=0,Ns=Ea(0),zs=0,Os=null,Ds=0,Is=0,Ms=0,Fs=null,Bs=null,$s=0,Us=1/0,qs=null,Hs=!1,Gs=null,Vs=null,Ws=!1,Qs=null,Ks=0,Ys=0,Zs=null,Xs=-1,Js=0;function eu(){return 6&Ts?Ze():-1!==Xs?Xs:Xs=Ze()}function tu(e){return 1&e.mode?2&Ts&&0!==Ps?Ps&-Ps:null!==go.transition?(0===Js&&(Js=mt()),Js):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type):1}function nu(e,t,n,r){if(50<Ys)throw Ys=0,Zs=null,Error(o(185));bt(e,n,r),2&Ts&&e===js||(e===js&&(!(2&Ts)&&(Is|=n),4===zs&&lu(e,Ps)),ru(e,r),1===n&&0===Ts&&!(1&t.mode)&&(Us=Ze()+500,Fa&&Ua()))}function ru(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?l&n&&!(l&r)||(a[i]=ft(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=pt(e,e===js?Ps:0);if(0===r)null!==n&&Qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Qe(n),1===t)0===e.tag?function(e){Fa=!0,$a(e)}(su.bind(null,e)):$a(su.bind(null,e)),ia((function(){!(6&Ts)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,au.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function au(e,t){if(Xs=-1,Js=0,6&Ts)throw Error(o(327));var n=e.callbackNode;if(xu()&&e.callbackNode!==n)return null;var r=pt(e,e===js?Ps:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gu(e,r);else{t=r;var a=Ts;Ts|=2;var i=hu();for(js===e&&Ps===t||(qs=null,Us=Ze()+500,pu(e,t));;)try{yu();break}catch(s){fu(e,s)}Ao(),_s.current=i,Ts=a,null!==Ls?t=0:(js=null,Ps=0,t=zs)}if(0!==t){if(2===t&&(0!==(a=ht(e))&&(r=a,t=ou(e,a))),1===t)throw n=Os,pu(e,0),lu(e,r),ru(e,Ze()),n;if(6===t)lu(e,r);else{if(a=e.current.alternate,!(30&r||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)||(t=gu(e,r),2===t&&(i=ht(e),0!==i&&(r=i,t=ou(e,i))),1!==t)))throw n=Os,pu(e,0),lu(e,r),ru(e,Ze()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,Bs,qs);break;case 3:if(lu(e,r),(130023424&r)===r&&10<(t=$s+500-Ze())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){eu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),t);break}ku(e,Bs,qs);break;case 4:if(lu(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ze()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,Bs,qs),r);break}ku(e,Bs,qs);break;default:throw Error(o(329))}}}return ru(e,Ze()),e.callbackNode===n?au.bind(null,e):null}function ou(e,t){var n=Fs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=gu(e,t))&&(t=Bs,Bs=n,null!==t&&iu(t)),e}function iu(e){null===Bs?Bs=e:Bs.push.apply(Bs,e)}function lu(e,t){for(t&=~Ms,t&=~Is,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function su(e){if(6&Ts)throw Error(o(327));xu();var t=pt(e,0);if(!(1&t))return ru(e,Ze()),null;var n=gu(e,t);if(0!==e.tag&&2===n){var r=ht(e);0!==r&&(t=r,n=ou(e,r))}if(1===n)throw n=Os,pu(e,0),lu(e,t),ru(e,Ze()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,Bs,qs),ru(e,Ze()),null}function uu(e,t){var n=Ts;Ts|=1;try{return e(t)}finally{0===(Ts=n)&&(Us=Ze()+500,Fa&&Ua())}}function cu(e){null!==Qs&&0===Qs.tag&&!(6&Ts)&&xu();var t=Ts;Ts|=1;var n=As.transition,r=vt;try{if(As.transition=null,vt=1,e)return e()}finally{vt=r,As.transition=n,!(6&(Ts=t))&&Ua()}}function du(){Rs=Ns.current,_a(Ns)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ls)for(n=Ls.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Na();break;case 3:Zo(),_a(ja),_a(Ta),ri();break;case 5:Jo(r);break;case 4:Zo();break;case 13:case 19:_a(ei);break;case 10:To(r.type._context);break;case 22:case 23:du()}n=n.return}if(js=e,Ls=e=Nu(e.current,null),Ps=Rs=t,zs=0,Os=null,Ms=Is=Ds=0,Bs=Fs=null,null!==Ro){for(t=0;t<Ro.length;t++)if(null!==(r=(n=Ro[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}Ro=null}return e}function fu(e,t){for(;;){var n=Ls;try{if(Ao(),ai.current=Xi,ci){for(var r=li.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}ci=!1}if(ii=0,ui=si=li=null,di=!1,pi=0,Cs.current=null,null===n||null===n.return){zs=1,Os=t,Ls=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=Ps,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,p=d.tag;if(!(1&d.mode||0!==p&&11!==p&&15!==p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var h=gl(l);if(null!==h){h.flags&=-257,bl(h,l,s,0,t),1&h.mode&&ml(i,c,t),u=c;var m=(t=h).updateQueue;if(null===m){var g=new Set;g.add(u),t.updateQueue=g}else m.add(u);break e}if(!(1&t)){ml(i,c,t),mu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var b=gl(l);if(null!==b){!(65536&b.flags)&&(b.flags|=256),bl(b,l,s,0,t),mo(ul(u,s));break e}}i=u=ul(u,s),4!==zs&&(zs=2),null===Fs?Fs=[i]:Fs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,fl(0,u,t));break e;case 1:s=u;var y=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof y.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Vs&&Vs.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Uo(i,hl(i,s,t));break e}}i=i.return}while(null!==i)}wu(n)}catch(w){t=w,Ls===n&&null!==n&&(Ls=n=n.return);continue}break}}function hu(){var e=_s.current;return _s.current=Xi,null===e?Xi:e}function mu(){0!==zs&&3!==zs&&2!==zs||(zs=4),null===js||!(268435455&Ds)&&!(268435455&Is)||lu(js,Ps)}function gu(e,t){var n=Ts;Ts|=2;var r=hu();for(js===e&&Ps===t||(qs=null,pu(e,t));;)try{bu();break}catch(a){fu(e,a)}if(Ao(),Ts=n,_s.current=r,null!==Ls)throw Error(o(261));return js=null,Ps=0,zs}function bu(){for(;null!==Ls;)vu(Ls)}function yu(){for(;null!==Ls&&!Ke();)vu(Ls)}function vu(e){var t=Ss(e.alternate,e,Rs);e.memoizedProps=e.pendingProps,null===t?wu(e):Ls=t,Cs.current=null}function wu(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ql(n,t)))return n.flags&=32767,void(Ls=n);if(null===e)return zs=6,void(Ls=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Wl(n,t,Rs)))return void(Ls=n);if(null!==(t=t.sibling))return void(Ls=t);Ls=t=e}while(null!==t);0===zs&&(zs=5)}function ku(e,t,n){var r=vt,a=As.transition;try{As.transition=null,vt=1,function(e,t,n,r){do{xu()}while(null!==Qs);if(6&Ts)throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ls=js=null,Ps=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Ws||(Ws=!0,ju(tt,(function(){return xu(),null}))),i=!!(15990&n.flags),!!(15990&n.subtreeFlags)||i){i=As.transition,As.transition=null;var l=vt;vt=1;var s=Ts;Ts|=4,Cs.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,p=e,f=null;t:for(;;){for(var h;p!==n||0!==a&&3!==p.nodeType||(s=l+a),p!==i||0!==r&&3!==p.nodeType||(u=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(h=p.firstChild);)f=p,p=h;for(;;){if(p===e)break t;if(f===n&&++c===a&&(s=l),f===i&&++d===r&&(u=l),null!==(h=p.nextSibling))break;f=(p=f).parentNode}p=h}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Xl=t;null!==Xl;)if(e=(t=Xl).child,1028&t.subtreeFlags&&null!==e)e.return=t,Xl=e;else for(;null!==Xl;){t=Xl;try{var m=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,b=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:nl(t.type,g),b);y.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){Eu(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Xl=e;break}Xl=t.return}m=ts,ts=!1}(e,n),gs(n,e),hr(ta),Ht=!!ea,ta=ea=null,e.current=n,ys(n,e,a),Ye(),Ts=s,vt=l,As.transition=i}else e.current=n;if(Ws&&(Ws=!1,Qs=e,Ks=a),i=e.pendingLanes,0===i&&(Vs=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,!(128&~e.current.flags))}catch(t){}}(n.stateNode),ru(e,Ze()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hs)throw Hs=!1,e=Gs,Gs=null,e;!!(1&Ks)&&0!==e.tag&&xu(),i=e.pendingLanes,1&i?e===Zs?Ys++:(Ys=0,Zs=e):Ys=0,Ua()}(e,t,n,r)}finally{As.transition=a,vt=r}return null}function xu(){if(null!==Qs){var e=wt(Ks),t=As.transition,n=vt;try{if(As.transition=null,vt=16>e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ks=0,6&Ts)throw Error(o(331));var a=Ts;for(Ts|=4,Xl=e.current;null!==Xl;){var i=Xl,l=i.child;if(16&Xl.flags){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Xl=c;null!==Xl;){var d=Xl;switch(d.tag){case 0:case 11:case 15:ns(8,d,i)}var p=d.child;if(null!==p)p.return=d,Xl=p;else for(;null!==Xl;){var f=(d=Xl).sibling,h=d.return;if(os(d),d===c){Xl=null;break}if(null!==f){f.return=h,Xl=f;break}Xl=h}}}var m=i.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Xl=i}}if(2064&i.subtreeFlags&&null!==l)l.return=i,Xl=l;else e:for(;null!==Xl;){if(2048&(i=Xl).flags)switch(i.tag){case 0:case 11:case 15:ns(9,i,i.return)}var y=i.sibling;if(null!==y){y.return=i.return,Xl=y;break e}Xl=i.return}}var v=e.current;for(Xl=v;null!==Xl;){var w=(l=Xl).child;if(2064&l.subtreeFlags&&null!==w)w.return=l,Xl=w;else e:for(l=v;null!==Xl;){if(2048&(s=Xl).flags)try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(x){Eu(s,s.return,x)}if(s===l){Xl=null;break e}var k=s.sibling;if(null!==k){k.return=s.return,Xl=k;break e}Xl=s.return}}if(Ts=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{vt=n,As.transition=t}}return!1}function Su(e,t,n){e=Bo(e,t=fl(0,t=ul(n,t),1),1),t=eu(),null!==e&&(bt(e,1,t),ru(e,t))}function Eu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vs||!Vs.has(r))){t=Bo(t,e=hl(t,e=ul(n,e),1),1),e=eu(),null!==t&&(bt(t,1,e),ru(t,e));break}}t=t.return}}function _u(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=eu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(Ps&n)===n&&(4===zs||3===zs&&(130023424&Ps)===Ps&&500>Ze()-$s?pu(e,0):Ms|=n),ru(e,t)}function Cu(e,t){0===t&&(1&e.mode?(t=ct,!(130023424&(ct<<=1))&&(ct=4194304)):t=1);var n=eu();null!==(e=Oo(e,t))&&(bt(e,t,n),ru(e,n))}function Au(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cu(e,n)}function Tu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Cu(e,n)}function ju(e,t){return We(e,t)}function Lu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pu(e,t,n,r){return new Lu(e,t,n,r)}function Ru(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Nu(e,t){var n=e.alternate;return null===n?((n=Pu(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zu(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Ru(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Ou(n.children,a,i,t);case E:l=8,a|=8;break;case _:return(e=Pu(12,n,t,2|a)).elementType=_,e.lanes=i,e;case j:return(e=Pu(13,n,t,a)).elementType=j,e.lanes=i,e;case L:return(e=Pu(19,n,t,a)).elementType=L,e.lanes=i,e;case N:return Du(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case A:l=9;break e;case T:l=11;break e;case P:l=14;break e;case R:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Pu(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Ou(e,t,n,r){return(e=Pu(7,e,r,t)).lanes=n,e}function Du(e,t,n,r){return(e=Pu(22,e,r,t)).elementType=N,e.lanes=n,e.stateNode={isHidden:!1},e}function Iu(e,t,n){return(e=Pu(6,e,null,t)).lanes=n,e}function Mu(e,t,n){return(t=Pu(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Fu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Bu(e,t,n,r,a,o,i,l,s){return e=new Fu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pu(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Io(o),e}function $u(e){if(!e)return Aa;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ra(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Ra(n))return Oa(e,n,t)}return t}function Uu(e,t,n,r,a,o,i,l,s){return(e=Bu(n,r,!0,e,0,o,0,l,s)).context=$u(null),n=e.current,(o=Fo(r=eu(),a=tu(n))).callback=null!=t?t:null,Bo(n,o,a),e.current.lanes=a,bt(e,a,r),ru(e,r),e}function qu(e,t,n,r){var a=t.current,o=eu(),i=tu(a);return n=$u(n),null===t.context?t.context=n:t.pendingContext=n,(t=Fo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Bo(a,t,i))&&(nu(e,a,i,o),$o(e,a,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vu(e,t){Gu(e,t),(e=e.alternate)&&Gu(e,t)}Ss=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||ja.current)vl=!0;else{if(!(e.lanes&n||128&t.flags))return vl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),ho();break;case 5:Xo(t);break;case 1:Ra(t.type)&&Da(t);break;case 4:Yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(So,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Il(e,t,n):(Ca(ei,1&ei.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ca(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ul(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,El(e,t,n)}return Hl(e,t,n)}(e,t,n);vl=!!(131072&e.flags)}else vl=!1,ao&&1048576&t.flags&&Ja(t,Va,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ql(e,t),e=t.pendingProps;var a=Pa(t,Ta.current);Lo(t,n),a=gi(null,t,r,e,a,n);var i=bi();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ra(r)?(i=!0,Da(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Io(t),a.updater=al,t.stateNode=a,a._reactInternals=t,sl(t,r,e,n),t=Tl(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),wl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ql(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Ru(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===P)return 14}return 2}(r),e=nl(r,e),a){case 0:t=Cl(null,t,r,e,n);break e;case 1:t=Al(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=xl(null,t,r,nl(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Cl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 1:return r=t.type,a=t.pendingProps,Al(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Mo(e,t),qo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ll(e,t,r,n,a=ul(Error(o(423)),t));break e}if(r!==a){t=Ll(e,t,r,n,a=ul(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ho(),r===a){t=Hl(e,t,n);break e}wl(e,t,r,n)}t=t.child}return t;case 5:return Xo(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),_l(e,t),wl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Il(e,t,n);case 4:return Yo(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ko(t,null,r,n):wl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:nl(r,a),n);case 7:return wl(e,t,t.pendingProps,n),t.child;case 8:case 12:return wl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ca(So,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!ja.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=Fo(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),jo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),jo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}wl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,Lo(t,n),r=r(a=Po(a)),t.flags|=1,wl(e,t,r,n),t.child;case 14:return a=nl(r=t.type,t.pendingProps),xl(e,t,r,a=nl(r.type,a),n);case 15:return Sl(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:nl(r,a),ql(e,t),t.tag=1,Ra(r)?(e=!0,Da(t)):e=!1,Lo(t,n),il(t,r,a),sl(t,r,a,n),Tl(null,t,r,!0,e,n);case 19:return Ul(e,t,n);case 22:return El(e,t,n)}throw Error(o(156,t.tag))};var Wu="function"==typeof reportError?reportError:function(e){console.error(e)};function Qu(e){this._internalRoot=e}function Ku(e){this._internalRoot=e}function Yu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Xu(){}function Ju(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Hu(i);l.call(e)}}qu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Hu(i);o.call(e)}}var i=Uu(t,r,e,0,null,!1,0,"",Xu);return e._reactRootContainer=i,e[ha]=i.current,Ur(8===e.nodeType?e.parentNode:e),cu(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=Bu(e,0,!1,null,0,!1,0,"",Xu);return e._reactRootContainer=s,e[ha]=s.current,Ur(8===e.nodeType?e.parentNode:e),cu((function(){qu(t,s,n,r)})),s}(n,t,e,a,r);return Hu(i)}Ku.prototype.render=Qu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));qu(e,t,null,null)},Ku.prototype.unmount=Qu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;cu((function(){qu(null,e,null,null)})),t[ha]=null}},Ku.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nt.length&&0!==t&&t<Nt[n].priority;n++);Nt.splice(n,0,e),0===n&&It(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ru(t,Ze()),!(6&Ts)&&(Us=Ze()+500,Ua()))}break;case 13:cu((function(){var t=Oo(e,1);if(null!==t){var n=eu();nu(t,e,1,n)}})),Vu(e,1)}},xt=function(e){if(13===e.tag){var t=Oo(e,134217728);if(null!==t)nu(t,e,134217728,eu());Vu(e,134217728)}},St=function(e){if(13===e.tag){var t=tu(e),n=Oo(e,t);if(null!==n)nu(n,e,t,eu());Vu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Te=uu,je=cu;var ec={usingClientEntryPoint:!1,Events:[va,wa,ka,Ce,Ae,uu]},tc={findFiberByHostInstance:ya,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nc={bundleType:tc.bundleType,version:tc.version,rendererPackageName:tc.rendererPackageName,rendererConfig:tc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:tc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rc.isDisabled&&rc.supportsFiber)try{at=rc.inject(nc),ot=rc}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ec,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yu(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yu(e))throw Error(o(299));var n=!1,r="",a=Wu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Bu(e,1,!1,null,0,n,0,r,a),e[ha]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Qu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return cu(e)},t.hydrate=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yu(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=Wu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Uu(t,null,e,1,null!=n?n:null,a,0,i,l),e[ha]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Ku(t)},t.render=function(e,t,n){if(!Zu(t))throw Error(o(200));return Ju(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zu(e))throw Error(o(40));return!!e._reactRootContainer&&(cu((function(){Ju(null,null,e,!1,(function(){e._reactRootContainer=null,e[ha]=null}))})),!0)},t.unstable_batchedUpdates=uu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Zu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return Ju(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5338:(e,t,n)=>{"use strict";var r=n(961);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},961:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(2551)},8731:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,p=null,f=3,h=!1,m=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function k(e){if(g=!1,w(e),!m)if(null!==r(u))m=!0,N(x);else{var t=r(c);null!==t&&z(k,t.startTime-e)}}function x(e,n){m=!1,g&&(g=!1,y(C),C=-1),h=!0;var o=f;try{for(w(n),p=r(u);null!==p&&(!(p.expirationTime>n)||e&&!j());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(u)&&a(u),w(n)}else a(u);p=r(u)}if(null!==p)var s=!0;else{var d=r(c);null!==d&&z(k,d.startTime-n),s=!1}return s}finally{p=null,f=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,A=5,T=-1;function j(){return!(t.unstable_now()-T<A)}function L(){if(null!==_){var e=t.unstable_now();T=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(L)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,R=P.port2;P.port1.onmessage=L,S=function(){R.postMessage(null)}}else S=function(){b(L,0)};function N(e){_=e,E||(E=!0,S())}function z(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||h||(m=!0,N(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(g?(y(C),C=-1):g=!0,z(k,o-i))):(e.sortIndex=l,n(u,e),m||h||(m=!0,N(x))),e},t.unstable_shouldYield=j,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},194:(e,t,n)=>{"use strict";e.exports=n(8731)},115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>J,vd:()=>G});var r=n(6540),a=n(5556),o=n.n(a),i=n(115),l=n.n(i),s=n(311),u=n.n(s),c=n(2833),d=n.n(c);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},A=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},T=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=p({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},j=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},R=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],z=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},O=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},I=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},M=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=O(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+z(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+z(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return O(t)}};default:return{toComponent:function(){return I(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+z(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},F=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,b),i=P(n,y);return{priorityMethods:{toComponent:function(){return[].concat(I(g.META,a.priority),I(g.LINK,o.priority),I(g.SCRIPT,i.priority))},toString:function(){return M(g.META,a.priority,r)+" "+M(g.LINK,o.priority,r)+" "+M(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=h.priorityMethods,c=h.linkTags,d=h.metaTags,p=h.scriptTags}return{priority:f,base:M(g.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",a,r),link:M(g.LINK,c,r),meta:M(g.META,d,r),noscript:M(g.NOSCRIPT,o,r),script:M(g.SCRIPT,p,r),style:M(g.STYLE,i,r),title:M(g.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=F({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),W(g.TITLE,t)}(c,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},f={},h={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(h[e]=p[e].oldTags)})),t&&t(),l(e,f,h)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:A(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:T(g.LINK,["rel","href"],e),metaTags:T(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:T(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:T(g.SCRIPT,["src","innerHTML"],e),styleTags:T(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:j(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Q(t,(function(){K=null}))})):(Q(t),K=null)):F&&(a=F(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Z=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(R(this.props,"helmetData"),R(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=m(r,Z),l=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},2799:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case u:case p:case g:case m:case s:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===u},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===f||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},4363:(e,t,n)=>{"use strict";e.exports=n(2799)},3259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(6540),s=[],u=[];var c=l.createContext(null);function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return s.push(g),"function"==typeof h.webpack&&u.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextType",c),p}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}return r(t,e),t.prototype.render=function(){return l.createElement(c.Provider,{value:{report:this.props.report}},l.Children.only(this.props.children))},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){b(s).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=m},2831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>l});var r=n(6347),a=n(8168),o=n(6540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.dO,n,e.map((function(e,n){return o.createElement(r.qh,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.A)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.A)({},n,t,{route:e}))}})}))):null}},4625:(e,t,n)=>{"use strict";n.d(t,{I9:()=>d,Kd:()=>c,N_:()=>b,k2:()=>w});var r=n(6347),a=n(2892),o=n(6540),i=n(1513),l=n(8168),s=n(8587),u=n(1561),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var d=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.TM)(t.props),t}return(0,a.A)(t,e),t.prototype.render=function(){return o.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(o.Component);var p=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},h=function(e){return e},m=o.forwardRef;void 0===m&&(m=h);var g=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.A)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.A)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=h!==m&&t||n,o.createElement("a",c)}));var b=m((function(e,t){var n=e.component,a=void 0===n?g:n,c=e.replace,d=e.to,b=e.innerRef,y=(0,s.A)(e,["component","replace","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=e.history,r=f(p(d,e.location),e.location),s=r?n.createHref(r):"",g=(0,l.A)({},y,{href:s,navigate:function(){var t=p(d,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(f(t));(c||r?n.replace:n.push)(t)}});return h!==m?g.ref=t||b:g.innerRef=b,o.createElement(a,g)}))})),y=function(e){return e},v=o.forwardRef;void 0===v&&(v=y);var w=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,d=e.activeStyle,h=e.className,m=e.exact,g=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.XZ.Consumer,null,(function(e){e||(0,u.A)(!1);var n=w||e.location,i=f(p(E,n),n),s=i.pathname,A=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),T=A?(0,r.B6)(n.pathname,{path:A,exact:m,sensitive:k,strict:x}):null,j=!!(g?g(T,n):T),L="function"==typeof h?h(j):h,P="function"==typeof S?S(j):S;j&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,c),P=(0,l.A)({},P,d));var R=(0,l.A)({"aria-current":j&&a||null,className:L,style:P,to:i},C);return y!==v?R.ref=t||_:R.innerRef=_,o.createElement(b,R)}))}))},6347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>S,Ix:()=>v,W6:()=>R,XZ:()=>y,dO:()=>L,qh:()=>E,zy:()=>N});var r=n(2892),a=n(6540),o=n(5556),i=n.n(o),l=n(1513),s=n(1561),u=n(8168),c=n(8505),d=n.n(c),p=(n(4363),n(8587)),f=(n(4146),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.A)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){(0|e.observedBits)&n&&e.setState({value:e.getValue()})},e}(0,r.A)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},b=g("Router-History"),y=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.A)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],p=s.slice(1),f=e===c;return o&&!f?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.A)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(y.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.A)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.AO)(e)}function T(e){return function(){(0,s.A)(!1)}}function j(){}a.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return a.createElement(y.Consumer,null,(function(t){t||(0,s.A)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.A)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function R(){return P(b)}function N(){return P(y).location}},9375:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},8505:(e,t,n)=>{var r=n(9375);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var h=e[i],m=n[2],g=n[3],b=n[4],y=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=m&&null!=h&&h!==m,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=b||y;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,p=l[c.name];if(null==p){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(p)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var p=s(u.prefix),f="(?:"+u.pattern+")";t.push(u),u.repeat&&(f+="(?:"+p+f+")*"),i+=f=u.optional?u.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},1020:(e,t,n)=>{"use strict";var r=n(6540),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},5287:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,m(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function T(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function j(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+T(s,0):o,k(i)?(a="",null!=e&&(a=e.replace(A,"$&/")+"/"),j(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(A,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",k(e))for(var u=0;u<e.length;u++){var c=o+T(l=e[u],u);s+=j(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=j(l=l.value,t,a,c=o+T(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function L(e,t,n){if(null==e)return e;var r=[],a=0;return j(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var R={current:null},N={transition:null},z={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:N,ReactCurrentOwner:S};function O(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=z,t.act=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=m({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)x.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},t.unstable_act=O,t.useCallback=function(e,t){return R.current.useCallback(e,t)},t.useContext=function(e){return R.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return R.current.useDeferredValue(e)},t.useEffect=function(e,t){return R.current.useEffect(e,t)},t.useId=function(){return R.current.useId()},t.useImperativeHandle=function(e,t,n){return R.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return R.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return R.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return R.current.useMemo(e,t)},t.useReducer=function(e,t,n){return R.current.useReducer(e,t,n)},t.useRef=function(e){return R.current.useRef(e)},t.useState=function(e){return R.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return R.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return R.current.useTransition()},t.version="18.3.1"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},4848:(e,t,n)=>{"use strict";e.exports=n(1020)},2833:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"\ud83c\udf35 El Jard\xedn Secreto \ud83c\udf35 ",tagline:"\u270d\ufe0f Escribo, \ud83d\udcbb Comparto, \ud83c\udf34 Vivo, \ud83d\udd0d Exploro, \ud83c\udfa8 Creo, \ud83d\udcad Pienso \u2728 de w0x7ce",favicon:"img/favicon.ico",url:"https://me.w0x7ce.eu",baseUrl:"/zh-hk/",organizationName:"tianrking",projectName:"tianrking.github.io",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"es",locales:["es","zh-hk","en"],path:"i18n",localeConfigs:{es:{label:"Espa\xf1ol",direction:"ltr",htmlLang:"es-ES",calendar:"gregory",path:"es"},"zh-hk":{label:"\u7e41\u9ad4\u4e2d\u6587",direction:"ltr",htmlLang:"zh-HK",calendar:"gregory",path:"zh-hk"},en:{label:"English",direction:"ltr",htmlLang:"en-US",calendar:"gregory",path:"en"}}},presets:[["classic",{docs:{sidebarPath:"./sidebars.js",routeBasePath:"/",showLastUpdateTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},blog:{showReadingTime:!0,editUrl:"https://github.com/tianrking/tianrking.github.io/tree/V3.4/"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},image:"img/docusaurus-social-card.jpg",navbar:{hideOnScroll:!0,style:"dark",title:"\ud83c\udf35 \u79d8\u5bc6\u82b1\u5712 \ud83c\udf35",logo:{alt:"Logo de El Jard\xedn Secreto",src:"https://github.com/tianrking.png"},items:[{type:"docSidebar",sidebarId:"tutorialSidebar",position:"left",label:"Tutorial"},{to:"/blog",label:"Blog",position:"left"},{href:"https://github.com/tianrking",label:"GitHub",position:"right"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}]},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Tutorial",to:"/docs/intro"}]},{title:"Community",items:[{label:"Stack Overflow",href:"https://stackoverflow.com/questions/tagged/docusaurus"},{label:"Discord",href:"https://discordapp.com/invite/docusaurus"},{label:"Twitter",href:"https://twitter.com/docusaurus"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/tianrking/tianrking.github.io"}]}],copyright:"Copyright \xa9 2024 w0x7ce. Thanks @meta"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,future:{experimental_storage:{type:"localStorage",namespace:!1},experimental_router:"browser"},onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0},anchors:{maintainCase:!1}}}},8168:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(null,arguments)}n.d(t,{A:()=>r})},2892:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>a})},8587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}n.d(t,{A:()=>r})},4164:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{A:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},1765:(e,t,n)=>{"use strict";n.d(t,{My:()=>A,f4:()=>ee});var r,a,o,i,l,s,u,c=n(6540),d=n(4164),p=Object.create,f=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>h(e,g(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var h=0;h<f.length;++h){if(d&&d.cause==p+","+h)return;var m=f[h],g=m.inside,b=!!m.lookbehind,y=!!m.greedy,v=m.alias;if(y&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var k=m.pattern||m,x=l.next,S=c;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(y){if(!(_=o(k,S,e,b))||_.index>=e.length)break;var A=_.index,T=_.index+_[0].length,j=S;for(j+=x.value.length;A>=j;)j+=(x=x.next).value.length;if(S=j-=x.value.length,x.value instanceof a)continue;for(var L=x;L!==t.tail&&(j<T||"string"==typeof L.value);L=L.next)C++,j+=L.value.length;C--,E=e.slice(S,j),_.index-=S}else if(!(_=o(k,0,E,b)))continue;A=_.index;var P=_[0],R=E.slice(0,A),N=E.slice(A+P.length),z=S+E.length;d&&z>d.reach&&(d.reach=z);var O=x.prev;if(R&&(O=s(t,O,R),S+=R.length),u(t,O,C),x=s(t,O,new a(p,g?r.tokenize(P,g):P,v,P)),N&&s(t,x,N),C>1){var D={cause:p+","+h,reach:z};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),A=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=m(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());A.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},A.languages.markup.tag.inside["attr-value"].inside.entity=A.languages.markup.entity,A.languages.markup.doctype.inside["internal-subset"].inside=A.languages.markup,A.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(A.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:A.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:A.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},A.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(A.languages.markup.tag,"addAttribute",{value:function(e,t){A.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:A.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),A.languages.html=A.languages.markup,A.languages.mathml=A.languages.markup,A.languages.svg=A.languages.markup,A.languages.xml=A.languages.extend("markup",{}),A.languages.ssml=A.languages.xml,A.languages.atom=A.languages.xml,A.languages.rss=A.languages.xml,o=A,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},A.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},A.languages.javascript=A.languages.extend("clike",{"class-name":[A.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),A.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,A.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:A.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:A.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:A.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:A.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:A.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),A.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:A.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),A.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),A.languages.markup&&(A.languages.markup.tag.addInlined("script","javascript"),A.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),A.languages.js=A.languages.javascript,A.languages.actionscript=A.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),A.languages.actionscript["class-name"].alias="function",delete A.languages.actionscript.parameter,delete A.languages.actionscript["literal-property"],A.languages.markup&&A.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:A.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(A),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(A),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(A),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|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|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(A),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(A),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(A),A.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:A.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},A.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,f(c(0),"property-mutation"),0<a.length)){var l=p(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),A.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,p,f,h,m,g,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[u],-1!==(g=(m="string"==typeof b?b:b.content).indexOf(i))&&(++u,s=m.substring(0,g),h=c[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(h,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,h),f=m.substring(g+i.length),h=[],s&&h.push(s),h.push(p),f&&(t(m=[f]),h.push.apply(h,m)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(h)),o+=h.length-1):b.content=h)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(A),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(A),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(A),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(A),A.languages.n4js=A.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),A.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),A.languages.n4jsd=A.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(A),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(A),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(A),A.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},A.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=A.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(A),A.languages.c=A.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),A.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),A.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},A.languages.c.string],char:A.languages.c.char,comment:A.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:A.languages.c}}}}),A.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete A.languages.c.boolean,A.languages.objectivec=A.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete A.languages.objectivec["class-name"],A.languages.objc=A.languages.objectivec,A.languages.reason=A.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),A.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete A.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(A),A.languages.go=A.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),A.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete A.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(A),A.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},A.languages.python["string-interpolation"].inside.interpolation.inside.rest=A.languages.python,A.languages.py=A.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>T,duotoneDark:()=>j,duotoneLight:()=>L,github:()=>P,jettwaveDark:()=>H,jettwaveLight:()=>G,nightOwl:()=>R,nightOwlLight:()=>N,oceanicNext:()=>D,okaidia:()=>I,oneDark:()=>V,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>F,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>q});var T={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},j={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},L={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},R={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},N={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},z="#c5a5c5",O="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:z}},{types:["attr-value"],style:{color:O}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:O}},{types:["punctuation"],style:{color:O}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:z}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},I={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},M={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},F={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},Q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},K=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Z=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=Z(u,c.type),c.alias&&(u=Z(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(K),p=d.length;l.push({types:u,content:d[0]});for(let t=1;t<p;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(Q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(Q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.A)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.A)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||A,theme:e.theme||U,code:e.code,language:e.language}))},1561:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},2654:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"\u95dc\u9589","theme.BackToTopButton.buttonAriaLabel":"\u56de\u5230\u9802\u90e8","theme.CodeBlock.copied":"\u8907\u88fd\u6210\u529f","theme.CodeBlock.copy":"\u8907\u88fd","theme.CodeBlock.copyButtonAriaLabel":"\u8907\u88fd\u4ee3\u78bc\u81f3\u526a\u8cbc\u7c3f","theme.CodeBlock.wordWrapToggle":"\u5207\u63db\u81ea\u52d5\u63db\u884c","theme.DocSidebarItem.collapseCategoryAriaLabel":"Collapse sidebar category \'{label}\'","theme.DocSidebarItem.expandCategoryAriaLabel":"Expand sidebar category \'{label}\'","theme.ErrorPageContent.title":"\u6b64\u9801\u5df2\u7576\u6a5f\u3002","theme.ErrorPageContent.tryAgain":"\u91cd\u8a66","theme.NavBar.navAriaLabel":"\u4e3b\u5c0e\u822a","theme.NotFound.p1":"\u6211\u5011\u6c92\u6709\u60a8\u8981\u627e\u7684\u9801\u9762\u3002","theme.NotFound.p2":"\u8acb\u806f\u7d61\u539f\u59cb\u9023\u7d50\u4f86\u6e90\u7db2\u7ad9\u7684\u6240\u6709\u8005\uff0c\u4e26\u901a\u77e5\u4ed6\u5011\u9023\u7d50\u5df2\u6bc0\u640d\u3002","theme.NotFound.title":"\u627e\u4e0d\u5230\u9801\u9762","theme.TOCCollapsible.toggleButtonLabel":"\u672c\u9801\u5c0e\u89bd","theme.admonition.caution":"\u8b66\u544a","theme.admonition.danger":"\u5371\u96aa","theme.admonition.info":"\u4fe1\u606f","theme.admonition.note":"\u5099\u8a3b","theme.admonition.tip":"\u63d0\u793a","theme.admonition.warning":"warning","theme.blog.archive.description":"\u6b77\u53f2\u6587\u7ae0","theme.blog.archive.title":"\u6b77\u53f2\u6587\u7ae0","theme.blog.paginator.navAriaLabel":"\u90e8\u843d\u683c\u6587\u7ae0\u5217\u8868\u5206\u9801\u5c0e\u89bd","theme.blog.paginator.newerEntries":"\u8f03\u65b0\u7684\u6587\u7ae0","theme.blog.paginator.olderEntries":"\u8f03\u820a\u7684\u6587\u7ae0","theme.blog.post.paginator.navAriaLabel":"\u90e8\u843d\u683c\u6587\u7ae0\u5206\u9801\u5c0e\u89bd","theme.blog.post.paginator.newerPost":"\u8f03\u65b0\u4e00\u7bc7","theme.blog.post.paginator.olderPost":"\u8f03\u820a\u4e00\u7bc7","theme.blog.post.plurals":"{count} \u7bc7\u6587\u7ae0","theme.blog.post.readMore":"\u95b1\u8b80\u66f4\u591a","theme.blog.post.readMoreLabel":"\u95b1\u8b80 {title} \u5168\u6587","theme.blog.post.readingTime.plurals":"\u95b1\u8b80\u6642\u9593\u7d04 {readingTime} \u5206\u9418","theme.blog.sidebar.navAriaLabel":"\u6700\u8fd1\u90e8\u843d\u683c\u6587\u7ae0\u5c0e\u89bd","theme.blog.tagTitle":"{nPosts} \u542b\u6709\u6a19\u7c64\u300c{tagName}\u300d","theme.colorToggle.ariaLabel":"\u5207\u63db\u6dfa\u8272/\u6697\u9ed1\u6a21\u5f0f\uff08\u7576\u524d\u70ba{mode}\uff09","theme.colorToggle.ariaLabel.mode.dark":"\u6697\u9ed1\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.light":"\u6dfa\u8272\u6a21\u5f0f","theme.common.editThisPage":"\u7de8\u8f2f\u6b64\u9801","theme.common.headingLinkTitle":"{heading}\u7684\u76f4\u63a5\u9023\u7d50","theme.common.skipToMainContent":"\u8df3\u81f3\u4e3b\u8981\u5185\u5bb9","theme.docs.DocCard.categoryDescription.plurals":"{count} \u500b\u9805\u76ee","theme.docs.breadcrumbs.home":"\u4e3b\u9801\u9762","theme.docs.breadcrumbs.navAriaLabel":"\u9801\u9762\u8def\u5f91","theme.docs.paginator.navAriaLabel":"\u6587\u4ef6\u9078\u9805\u5361","theme.docs.paginator.next":"\u4e0b\u4e00\u9801","theme.docs.paginator.previous":"\u4e0a\u4e00\u9801","theme.docs.sidebar.closeSidebarButtonAriaLabel":"Close navigation bar","theme.docs.sidebar.collapseButtonAriaLabel":"\u6536\u8d77\u5074\u908a\u6b04","theme.docs.sidebar.collapseButtonTitle":"\u6536\u8d77\u5074\u908a\u6b04","theme.docs.sidebar.expandButtonAriaLabel":"\u5c55\u958b\u5074\u908a\u6b04","theme.docs.sidebar.expandButtonTitle":"\u5c55\u958b\u5074\u908a\u6b04","theme.docs.sidebar.navAriaLabel":"\u6587\u4ef6\u5074\u908a\u6b04","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"Toggle navigation bar","theme.docs.tagDocListPageTitle":"{nDocsTagged}\u300c{tagName}\u300d","theme.docs.tagDocListPageTitle.nDocsTagged":"{count} \u7bc7\u6587\u4ef6\u5e36\u6709\u6a19\u7c64","theme.docs.versionBadge.label":"\u7248\u672c\uff1a{versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\u6700\u65b0\u7248\u672c","theme.docs.versions.latestVersionSuggestionLabel":"\u6700\u65b0\u7684\u6587\u4ef6\u8acb\u53c3\u95b1 {latestVersionLink} ({versionLabel})\u3002","theme.docs.versions.unmaintainedVersionLabel":"\u6b64\u70ba {siteTitle} {versionLabel} \u7248\u7684\u6587\u4ef6\uff0c\u73fe\u5df2\u4e0d\u518d\u7a4d\u6975\u7dad\u8b77\u3002","theme.docs.versions.unreleasedVersionLabel":"\u6b64\u70ba {siteTitle} {versionLabel} \u7248\u5c1a\u672a\u767c\u884c\u7684\u6587\u4ef6\u3002","theme.lastUpdated.atDate":"\u65bc {date} ","theme.lastUpdated.byUser":"\u7531 {user} ","theme.lastUpdated.lastUpdatedAtBy":"\u6700\u5f8c{byUser}{atDate}\u66f4\u65b0","theme.navbar.mobileLanguageDropdown.label":"\u9078\u64c7\u8a9e\u8a00","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 \u56de\u5230\u4e3b\u9078\u55ae","theme.navbar.mobileVersionsDropdown.label":"\u9078\u64c7\u7248\u672c","theme.tags.tagsListLabel":"\u6a19\u7c64\uff1a","theme.tags.tagsPageLink":"\u6aa2\u8996\u6240\u6709\u6a19\u7c64","theme.tags.tagsPageTitle":"\u6a19\u7c64","theme.unlistedContent.message":"\u6b64\u9801\u9762\u672a\u5217\u51fa\u3002\u641c\u7d22\u5f15\u64ce\u4e0d\u6703\u5c0d\u5176\u7d22\u5f15\uff0c\u53ea\u6709\u64c1\u6709\u76f4\u63a5\u9023\u7d50\u7684\u7528\u6236\u624d\u80fd\u8a2a\u554f\u3002","theme.unlistedContent.title":"\u672a\u5217\u51fa\u9801"}')},4054:e=>{"use strict";e.exports=JSON.parse('{"/zh-hk/blog-adf":{"__comp":"a6aa9e1f","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"},{"content":"3848d9e1"}],"__props":"7eddfcbf"},"/zh-hk/blog/archive-96e":{"__comp":"9e4087bc","__context":{"plugin":"36994c47"},"__props":"2b6ce744"},"/zh-hk/blog/Docker-Getting-Srart-01-04b":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"b6ef77d3"},"/zh-hk/blog/first-blog-post-6db":{"__comp":"ccc49370","__context":{"data":{"blogMetadata":"acecf23e"},"plugin":"36994c47"},"sidebar":"814f3328","content":"45170d14"},"/zh-hk/blog/tags-b9b":{"__comp":"01a85c17","__context":{"plugin":"36994c47"},"sidebar":"814f3328","__props":"cb8761ac"},"/zh-hk/blog/tags/docker-217":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"}],"__props":"2b354d69"},"/zh-hk/blog/tags/docusaurus-34d":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3848d9e1"}],"__props":"a1c46f64"},"/zh-hk/blog/tags/hola-78b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"3848d9e1"}],"__props":"4cb30fd1"},"/zh-hk/blog/tags/linux-8a2":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"}],"__props":"3bd8aa35"},"/zh-hk/blog/tags/misc-b26":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"}],"__props":"eb9ee350"},"/zh-hk/blog/tags/\u6a5f\u5668\u5b78\u7fd2-78b":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"}],"__props":"91cd996f"},"/zh-hk/blog/tags/\u8edf\u4ef6-76a":{"__comp":"6875c492","__context":{"plugin":"36994c47"},"sidebar":"814f3328","items":[{"content":"8d9dbdbb"}],"__props":"33fe0373"},"/zh-hk/index.zh-hk-af2":{"__comp":"3ea259e6","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/zh-hk/markdown-page-d97":{"__comp":"1f391b9e","__context":{"plugin":"a7456010"},"content":"393be207"},"/zh-hk/-0ee":{"__comp":"c4f5d8e4","__context":{"plugin":"a7456010"},"config":"5e9f5e1a"},"/zh-hk/-abc":{"__comp":"5e95c892","__context":{"plugin":"aba21aa0"}},"/zh-hk/-182":{"__comp":"a7bd4aaa","__props":"008d63a2"},"/zh-hk/tags-2c6":{"__comp":"3720c009","__props":"87ac765c"},"/zh-hk/tags/alarm-326":{"__comp":"df203c0f","__props":"ba673586"},"/zh-hk/tags/cdc-a09":{"__comp":"df203c0f","__props":"e4cceaf6"},"/zh-hk/tags/embedded-systems-569":{"__comp":"df203c0f","__props":"86154fac"},"/zh-hk/tags/interrupts-693":{"__comp":"df203c0f","__props":"dff84d1a"},"/zh-hk/tags/led-control-1a8":{"__comp":"df203c0f","__props":"dee0d148"},"/zh-hk/tags/pio-504":{"__comp":"df203c0f","__props":"54ebc4ab"},"/zh-hk/tags/pwm-e84":{"__comp":"df203c0f","__props":"a5933a40"},"/zh-hk/tags/raspberry-pi-pico-35f":{"__comp":"df203c0f","__props":"bd2c820f"},"/zh-hk/tags/resource-management-727":{"__comp":"df203c0f","__props":"2d233033"},"/zh-hk/tags/rp-2040-8b6":{"__comp":"df203c0f","__props":"53188526"},"/zh-hk/tags/serial-communication-0d1":{"__comp":"df203c0f","__props":"1284e0b0"},"/zh-hk/tags/state-machine-optimization-288":{"__comp":"df203c0f","__props":"1e71edf6"},"/zh-hk/tags/stm-32-4c9":{"__comp":"df203c0f","__props":"37c603c4"},"/zh-hk/tags/timer-5d2":{"__comp":"df203c0f","__props":"062f99bb"},"/zh-hk/tags/uart-ce1":{"__comp":"df203c0f","__props":"b6fdbe90"},"/zh-hk/tags/usb-061":{"__comp":"df203c0f","__props":"fd0da4a9"},"/zh-hk/-6f6":{"__comp":"a94703ab"},"/zh-hk/intro-2bc":{"__comp":"17896441","content":"1ce4999c"},"/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040-51c":{"__comp":"17896441","content":"5e28b2f4"},"/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040-0bf":{"__comp":"17896441","content":"873234d7"},"/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040-ff1":{"__comp":"17896441","content":"14d3eb87"},"/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples-8b3":{"__comp":"17896441","content":"60f48b9d"},"/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage-0d1":{"__comp":"17896441","content":"9fab635f"},"/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage-ee3":{"__comp":"17896441","content":"85e08f6c"},"/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx-a6f":{"__comp":"17896441","content":"c2aca3b0"},"/zh-hk/tutorial-5c9":{"__comp":"17896441","content":"60875e34"},"/zh-hk/tutorial-basics/congratulations-f4c":{"__comp":"17896441","content":"4f84c381"},"/zh-hk/tutorial-basics/create-a-blog-post-82a":{"__comp":"17896441","content":"d7b1a84c"},"/zh-hk/tutorial-basics/create-a-document-6bd":{"__comp":"17896441","content":"e9034d23"},"/zh-hk/tutorial-basics/create-a-page-634":{"__comp":"17896441","content":"ae1c2fdf"},"/zh-hk/tutorial-basics/deploy-your-site-5b7":{"__comp":"17896441","content":"5da95eec"},"/zh-hk/tutorial-basics/markdown-features-5c0":{"__comp":"17896441","content":"1a0e45eb"},"/zh-hk/tutorial-extras/manage-docs-versions-51f":{"__comp":"17896441","content":"336ea2cf"},"/zh-hk/tutorial-extras/translate-your-site-634":{"__comp":"17896441","content":"e0982a0c"}}')}},e=>{e.O(0,[1869],(()=>{return t=8536,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/zh-hk/assets/js/main.2784d067.js.LICENSE.txt b/zh-hk/assets/js/main.2784d067.js.LICENSE.txt new file mode 100644 index 000000000..91dc89499 --- /dev/null +++ b/zh-hk/assets/js/main.2784d067.js.LICENSE.txt @@ -0,0 +1,64 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/zh-hk/assets/js/runtime~main.69e34346.js b/zh-hk/assets/js/runtime~main.69e34346.js new file mode 100644 index 000000000..12071e86d --- /dev/null +++ b/zh-hk/assets/js/runtime~main.69e34346.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,c,d,f,t={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return t[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=t,r.c=b,e=[],r.O=(a,c,d,f)=>{if(!c){var t=1/0;for(i=0;i<e.length;i++){c=e[i][0],d=e[i][1],f=e[i][2];for(var b=!0,o=0;o<c.length;o++)(!1&f||t>=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(b=!1,f<t&&(t=f));if(b){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,d,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var t={};a=a||[null,c({}),c([]),c(c)];for(var b=2&d&&e;"object"==typeof b&&!~a.indexOf(b);b=c(b))Object.getOwnPropertyNames(b).forEach((a=>t[a]=()=>e[a]));return t.default=()=>e,r.d(f,t),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({809:"873234d7",1091:"ba673586",1113:"a5933a40",1235:"a7456010",1649:"45170d14",1718:"c2aca3b0",1845:"54ebc4ab",1850:"60f48b9d",1903:"acecf23e",2351:"33fe0373",2387:"1284e0b0",2462:"7eddfcbf",2634:"c4f5d8e4",2711:"9e4087bc",3085:"86154fac",3249:"ccc49370",3987:"eb9ee350",4134:"393be207",4143:"87ac765c",4279:"df203c0f",4519:"e9034d23",4544:"2b354d69",4787:"3720c009",4813:"6875c492",5290:"1ce4999c",5323:"062f99bb",5732:"dee0d148",5742:"aba21aa0",5811:"b6ef77d3",6061:"1f391b9e",6221:"5e28b2f4",6248:"1a0e45eb",6470:"91cd996f",6563:"2d233033",6707:"ae1c2fdf",6725:"14d3eb87",6884:"5da95eec",7098:"a7bd4aaa",7268:"37c603c4",7472:"814f3328",7643:"a6aa9e1f",7699:"008d63a2",7733:"3ea259e6",7936:"e4cceaf6",8044:"fd0da4a9",8094:"1e71edf6",8209:"01a85c17",8210:"85e08f6c",8348:"336ea2cf",8401:"17896441",8462:"4cb30fd1",8652:"bd2c820f",8687:"d7b1a84c",8706:"4f84c381",8736:"cb8761ac",8758:"2b6ce744",8917:"3848d9e1",9048:"a94703ab",9071:"9fab635f",9186:"a1c46f64",9462:"3bd8aa35",9643:"e0982a0c",9647:"5e95c892",9649:"dff84d1a",9661:"60875e34",9690:"8d9dbdbb",9841:"b6fdbe90",9858:"36994c47",9873:"53188526"}[e]||e)+"."+{809:"574ddb85",1091:"59eab77a",1113:"25042153",1235:"fc7a5d1f",1538:"bcfcd850",1649:"183690c9",1718:"cdd805fa",1845:"2f1f95e2",1850:"a8270f71",1903:"a054a625",2237:"e0c95162",2351:"3dc10175",2387:"a35b12f2",2462:"723ecf16",2634:"336a6011",2711:"1e2fe8e5",3085:"bc6ad57a",3242:"35bb0ee0",3249:"350eb003",3987:"409071f0",4134:"e69ccf4c",4143:"7896e8da",4279:"07cad923",4519:"f876d841",4544:"02de5fcb",4787:"f8828a1d",4813:"27fa3488",5290:"a1d026ea",5323:"da8a4ffb",5732:"1022f562",5742:"1562c573",5811:"4170944d",6061:"1479ec8d",6221:"716c177d",6248:"445c0174",6470:"f4ac944c",6563:"5ec7e093",6707:"52fe4724",6725:"11ece549",6884:"90f8572a",7098:"eec9f40b",7268:"a87544cb",7472:"b5765874",7643:"63bb8777",7699:"57e7157c",7733:"ca948adc",7936:"94f202e7",8044:"e6913218",8094:"73c1e96f",8209:"1f01f224",8210:"8917029a",8348:"59438417",8401:"620a8489",8462:"fc582d4b",8652:"0776980d",8687:"88391a26",8706:"22cb1f4e",8736:"537514af",8758:"a7c03f5f",8917:"9537ac37",9048:"c0f75d91",9071:"2440005c",9186:"7c8cacac",9462:"31e8819f",9643:"7da09f08",9647:"794757cd",9649:"6a5fe37b",9661:"78eb2ee4",9690:"5e072c3f",9841:"1959bca5",9858:"77d49b04",9873:"0cd08ed3"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},f="El_Jardin_Secreto_de_w0x7ce:",r.l=(e,a,c,t)=>{if(d[e])d[e].push(a);else{var b,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==f+c){b=l;break}}b||(o=!0,(b=document.createElement("script")).charset="utf-8",b.timeout=120,r.nc&&b.setAttribute("nonce",r.nc),b.setAttribute("data-webpack",f+c),b.src=e),d[e]=[a];var u=(a,c)=>{b.onerror=b.onload=null,clearTimeout(s);var f=d[e];if(delete d[e],b.parentNode&&b.parentNode.removeChild(b),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=u.bind(null,b.onerror),b.onload=u.bind(null,b.onload),o&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/zh-hk/",r.gca=function(e){return e={17896441:"8401",53188526:"9873","873234d7":"809",ba673586:"1091",a5933a40:"1113",a7456010:"1235","45170d14":"1649",c2aca3b0:"1718","54ebc4ab":"1845","60f48b9d":"1850",acecf23e:"1903","33fe0373":"2351","1284e0b0":"2387","7eddfcbf":"2462",c4f5d8e4:"2634","9e4087bc":"2711","86154fac":"3085",ccc49370:"3249",eb9ee350:"3987","393be207":"4134","87ac765c":"4143",df203c0f:"4279",e9034d23:"4519","2b354d69":"4544","3720c009":"4787","6875c492":"4813","1ce4999c":"5290","062f99bb":"5323",dee0d148:"5732",aba21aa0:"5742",b6ef77d3:"5811","1f391b9e":"6061","5e28b2f4":"6221","1a0e45eb":"6248","91cd996f":"6470","2d233033":"6563",ae1c2fdf:"6707","14d3eb87":"6725","5da95eec":"6884",a7bd4aaa:"7098","37c603c4":"7268","814f3328":"7472",a6aa9e1f:"7643","008d63a2":"7699","3ea259e6":"7733",e4cceaf6:"7936",fd0da4a9:"8044","1e71edf6":"8094","01a85c17":"8209","85e08f6c":"8210","336ea2cf":"8348","4cb30fd1":"8462",bd2c820f:"8652",d7b1a84c:"8687","4f84c381":"8706",cb8761ac:"8736","2b6ce744":"8758","3848d9e1":"8917",a94703ab:"9048","9fab635f":"9071",a1c46f64:"9186","3bd8aa35":"9462",e0982a0c:"9643","5e95c892":"9647",dff84d1a:"9649","60875e34":"9661","8d9dbdbb":"9690",b6fdbe90:"9841","36994c47":"9858"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,c)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)c.push(d[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>d=e[a]=[c,f]));c.push(d[2]=f);var t=r.p+r.u(a),b=new Error;r.l(t,(c=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var f=c&&("load"===c.type?"missing":c.type),t=c&&c.target&&c.target.src;b.message="Loading chunk "+a+" failed.\n("+f+": "+t+")",b.name="ChunkLoadError",b.type=f,b.request=t,d[1](b)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var d,f,t=c[0],b=c[1],o=c[2],n=0;if(t.some((a=>0!==e[a]))){for(d in b)r.o(b,d)&&(r.m[d]=b[d]);if(o)var i=o(r)}for(a&&a(c);n<t.length;n++)f=t[n],r.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return r.O(i)},c=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce=self.webpackChunkEl_Jardin_Secreto_de_w0x7ce||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/zh-hk/blog/Docker-Getting-Srart-01/index.html b/zh-hk/blog/Docker-Getting-Srart-01/index.html new file mode 100644 index 000000000..7ee067a1d --- /dev/null +++ b/zh-hk/blog/Docker-Getting-Srart-01/index.html @@ -0,0 +1,82 @@ +<!doctype html> +<html lang="zh-HK" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.4.0"> +<title data-rh="true">Docker使用方法(一) | 🌵 El Jardín Secreto 🌵 + + + + + +

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/zh-hk/blog/archive/index.html b/zh-hk/blog/archive/index.html new file mode 100644 index 000000000..746034655 --- /dev/null +++ b/zh-hk/blog/archive/index.html @@ -0,0 +1,14 @@ + + + + + +歷史文章 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/blog/atom.xml b/zh-hk/blog/atom.xml new file mode 100644 index 000000000..62a5f3f70 --- /dev/null +++ b/zh-hk/blog/atom.xml @@ -0,0 +1,108 @@ + + + https://me.w0x7ce.eu/zh-hk/blog + 🌵 El Jardín Secreto 🌵 Blog + 2021-09-14T00:00:00.000Z + https://github.com/jpmonette/feed + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/zh-hk/img/favicon.ico + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/zh-hk/blog/Docker-Getting-Srart-01 + + 2021-09-14T00:00:00.000Z + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + + w0x7ce + https://github.com/tianrking + + + + + + + +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/zh-hk/blog/first-blog-post + + 2019-05-28T00:00:00.000Z + + w0x7ce + https://github.com/tianrking + + + + +
    \ No newline at end of file diff --git a/zh-hk/blog/first-blog-post/index.html b/zh-hk/blog/first-blog-post/index.html new file mode 100644 index 000000000..90ae08cf0 --- /dev/null +++ b/zh-hk/blog/first-blog-post/index.html @@ -0,0 +1,14 @@ + + + + + +First Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/blog/index.html b/zh-hk/blog/index.html new file mode 100644 index 000000000..8205d7802 --- /dev/null +++ b/zh-hk/blog/index.html @@ -0,0 +1,82 @@ + + + + + +Blog | 🌵 El Jardín Secreto 🌵 + + + + + +

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/zh-hk/blog/rss.xml b/zh-hk/blog/rss.xml new file mode 100644 index 000000000..3f5e21243 --- /dev/null +++ b/zh-hk/blog/rss.xml @@ -0,0 +1,102 @@ + + + + 🌵 El Jardín Secreto 🌵 Blog + https://me.w0x7ce.eu/zh-hk/blog + 🌵 El Jardín Secreto 🌵 Blog + Tue, 14 Sep 2021 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + zh-hk + + <![CDATA[Docker使用方法(一)]]> + https://me.w0x7ce.eu/zh-hk/blog/Docker-Getting-Srart-01 + https://me.w0x7ce.eu/zh-hk/blog/Docker-Getting-Srart-01 + Tue, 14 Sep 2021 00:00:00 GMT + + +
  • Web 應用的自動化打包和發布。
  • +
  • 自動化測試和持續集成、發布。
  • +
  • 在服務型環境中部署和調整數據庫或其他的後台應用。
  • +
  • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
  • + +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    ]]>
    + misc + Linux + Linux + Docker + 軟件 + 機器學習 +
    + + <![CDATA[First Blog Post]]> + https://me.w0x7ce.eu/zh-hk/blog/first-blog-post + https://me.w0x7ce.eu/zh-hk/blog/first-blog-post + Tue, 28 May 2019 00:00:00 GMT + Hola + Docusaurus + +
    +
    \ No newline at end of file diff --git a/zh-hk/blog/tags/docker/index.html b/zh-hk/blog/tags/docker/index.html new file mode 100644 index 000000000..a1e5e63ec --- /dev/null +++ b/zh-hk/blog/tags/docker/index.html @@ -0,0 +1,82 @@ + + + + + +1 篇文章 含有標籤「Docker」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「Docker」

    檢視所有標籤

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/zh-hk/blog/tags/docusaurus/index.html b/zh-hk/blog/tags/docusaurus/index.html new file mode 100644 index 000000000..8bf197c1b --- /dev/null +++ b/zh-hk/blog/tags/docusaurus/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文章 含有標籤「Docusaurus」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「Docusaurus」

    Docusaurus tag description

    檢視所有標籤
    + + \ No newline at end of file diff --git a/zh-hk/blog/tags/hola/index.html b/zh-hk/blog/tags/hola/index.html new file mode 100644 index 000000000..0f54111d3 --- /dev/null +++ b/zh-hk/blog/tags/hola/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文章 含有標籤「Hola」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「Hola」

    Hola tag description

    檢視所有標籤
    + + \ No newline at end of file diff --git a/zh-hk/blog/tags/index.html b/zh-hk/blog/tags/index.html new file mode 100644 index 000000000..53b1f0ab8 --- /dev/null +++ b/zh-hk/blog/tags/index.html @@ -0,0 +1,14 @@ + + + + + +標籤 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/blog/tags/linux/index.html b/zh-hk/blog/tags/linux/index.html new file mode 100644 index 000000000..0095b01dc --- /dev/null +++ b/zh-hk/blog/tags/linux/index.html @@ -0,0 +1,82 @@ + + + + + +1 篇文章 含有標籤「Linux」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「Linux」

    檢視所有標籤

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/zh-hk/blog/tags/misc/index.html b/zh-hk/blog/tags/misc/index.html new file mode 100644 index 000000000..e16070ec2 --- /dev/null +++ b/zh-hk/blog/tags/misc/index.html @@ -0,0 +1,82 @@ + + + + + +1 篇文章 含有標籤「misc」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「misc」

    檢視所有標籤

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/zh-hk/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" "b/zh-hk/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" new file mode 100644 index 000000000..6fd70994a --- /dev/null +++ "b/zh-hk/blog/tags/\346\251\237\345\231\250\345\255\270\347\277\222/index.html" @@ -0,0 +1,82 @@ + + + + + +1 篇文章 含有標籤「機器學習」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「機器學習」

    檢視所有標籤

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git "a/zh-hk/blog/tags/\350\273\237\344\273\266/index.html" "b/zh-hk/blog/tags/\350\273\237\344\273\266/index.html" new file mode 100644 index 000000000..d45a8f457 --- /dev/null +++ "b/zh-hk/blog/tags/\350\273\237\344\273\266/index.html" @@ -0,0 +1,82 @@ + + + + + +1 篇文章 含有標籤「軟件」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文章 含有標籤「軟件」

    檢視所有標籤

    Docker使用方法(一)

    · 閱讀時間約 8 分鐘
    w0x7ce
    MySelf
      +
    • Web 應用的自動化打包和發布。
    • +
    • 自動化測試和持續集成、發布。
    • +
    • 在服務型環境中部署和調整數據庫或其他的後台應用。
    • +
    • 從頭編譯或者擴展現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。
    • +
    +

    Docker 的優點

    +

    Docker 是一個用於開發,交付和運行應用程序的開放平台。 Docker 使您能夠將應用程序與基礎架構分開,從而可以快速交付軟件。借助 Docker,您可以與管理應用程序相同的方式來管理基礎架構。通過利用 Docker 的方法來快速交付,測試和部署代碼,您可以大大減少編寫代碼和在生產環境中運行代碼之間的延遲。

    +
      +
    1. 快速,一致地交付您的應用程序 +Docker 允許開發人員使用您提供的應用程序或服務的本地容器在標準化環境中工作,從而簡化了開發的生命週期。
    2. +
    +

    容器非常適合持續集成和持續交付(CI / CD)工作流程,請考慮以下示例方案:

    +

    您的開發人員在本地編寫代碼,並使用 Docker 容器與同事共享他們的工作。

    +

    他們使用 Docker 將其應用程序推送到測試環境中,並執行自動或手動測試。

    +

    當開發人員發現錯誤時,他們可以在開發環境中對其進行修復,然後將其重新部署到測試環境中,以進行測試和驗證。

    +

    測試完成後,將修補程序推送給生產環境,就像將更新的鏡像推送到生產環境一樣簡單。

    +
      +
    1. 響應式部署和擴展 +Docker 是基於容器的平台,允許高度可移植的工作負載。 Docker 容器可以在開發人員的本機上,數據中心的物理或虛擬機上,雲服務上或混合環境中運行。
    2. +
    +

    Docker 的可移植性和輕量級的特性,還可以使您輕鬆地完成動態管理的工作負擔,並根據業務需求指示,實時擴展或拆除應用程序和服務。

    +
      +
    1. 在同一硬件上運行更多工作負載 +Docker 輕巧快速。它為基於虛擬機管理程序的虛擬機提供了可行、經濟、高效的替代方案,因此您可以利用更多的計算能力來實現業務目標。 Docker 非常適合於高密度環境以及中小型部署,而您可以用更少的資源做更多的事情
    2. +
    +

    Docker安裝

    +
    curl -sSL https://get.daocloud.io/docker | sh
    +

    Docker卸載

    +
     sudo apt-get remove docker docker-engine docker.io containerd runc
    +

    Docker使用基礎

    +

    Docker Hello World

    +

    Docker 允許你在容器內運行應用程序, 使用 docker run 命令來在容器內運行一個應用程序。

    +

    輸出Hello world

    +
    w0x7ce@w0x7ce:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
    Hello world
    +

    各個參數解析:

    +
    docker: Docker 的二進制執行文件。

    run: 與前面的 docker 組合來運行一個容器。

    ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

    /bin/echo "Hello world": 在啟動的容器裡執行的命令
    +

    以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。

    +

    運行交互式的容器

    +

    我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

    +
    w0x7ce@w0x7ce:~$ docker run -i -t ubuntu:15.10 /bin/bash
    root@0123ce188bd8:/#
    +

    各個參數解析:

    +
    -t: 在新容器內指定一個偽終端或終端。

    -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。
    +

    注意第二行 root@0123ce188bd8:/#,此時我們已進入一個 ubuntu15.10 系統的容器

    +

    我們嘗試在容器中運行命令 cat /proc/version和ls分別查看當前系統的版本信息和當前目錄下的文件列表

    +
    root@0123ce188bd8:/#  cat /proc/version
    Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
    root@0123ce188bd8:/# ls
    bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
    root@0123ce188bd8:/#
    +

    我們可以通過運行 exit 命令或者使用 CTRL+D 來退出容器。

    +
    root@0123ce188bd8:/#  exit
    exit
    root@w0x7ce:~#
    +

    注意第三行中 root@w0x7ce:~# 表明我們已經退出了當前的容器,返回到當前的主機中。

    +

    啟動容器(後台模式)

    +

    使用以下命令創建一個以進程方式運行的容器

    +
    w0x7ce@w0x7ce:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
    +

    在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

    +

    2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

    +

    這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

    +

    首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

    +
    w0x7ce@w0x7ce:~$ docker ps
    CONTAINER ID IMAGE COMMAND ...
    5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    +

    輸出詳情介紹:

    +
    CONTAINER ID: 容器 ID。

    IMAGE: 使用的鏡像。

    COMMAND: 啟動容器時運行的命令。

    CREATED: 容器的創建時間。

    STATUS: 容器狀態。

    狀態有7種:

    created(已創建)
    restarting(重啟中)
    running 或 Up(運行中)
    removing(遷移中)
    paused(暫停)
    exited(停止)
    dead(死亡)
    PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

    NAMES: 自動分配的容器名稱。
    +

    在宿主主機內使用 docker logs 命令,查看容器內的標準輸出:

    +
    w0x7ce@w0x7ce:~$ docker logs 2b1b7a428627
    +
    w0x7ce@w0x7ce:~$ docker logs amazing_cori
    +

    停止容器

    +

    我們使用 docker stop 命令來停止容器:

    +

    通過 docker ps 查看,容器已經停止工作:

    +
    w0x7ce@w0x7ce:~$ docker ps
    +

    可以看到容器已經不在了。

    +

    也可以用下面的命令來停止:

    +
    w0x7ce@w0x7ce:~$ docker stop amazing_cori
    + + \ No newline at end of file diff --git a/zh-hk/img/docusaurus-social-card.jpg b/zh-hk/img/docusaurus-social-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffcb448210e1a456cb3588ae8b396a597501f187 GIT binary patch literal 55746 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 fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/zh-hk/img/docusaurus.png b/zh-hk/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/zh-hk/img/favicon.ico b/zh-hk/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/zh-hk/img/undraw_docusaurus_mountain.svg b/zh-hk/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..af961c49a --- /dev/null +++ b/zh-hk/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-hk/img/undraw_docusaurus_react.svg b/zh-hk/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..94b5cf08f --- /dev/null +++ b/zh-hk/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-hk/img/undraw_docusaurus_tree.svg b/zh-hk/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..d9161d339 --- /dev/null +++ b/zh-hk/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zh-hk/index.html b/zh-hk/index.html new file mode 100644 index 000000000..5b178747d --- /dev/null +++ b/zh-hk/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/zh-hk/index.zh-hk/index.html b/zh-hk/index.zh-hk/index.html new file mode 100644 index 000000000..bb74768f2 --- /dev/null +++ b/zh-hk/index.zh-hk/index.html @@ -0,0 +1,14 @@ + + + + + +Hello from 🌵 El Jardín Secreto 🌵 | 🌵 El Jardín Secreto 🌵 + + + + + +

    🌵 El Jardín Secreto 🌵

    ✍️ Escribo, 💻 Comparto, 🌴 Vivo, 🔍 Exploro, 🎨 Creo, 💭 Pienso ✨ de w0x7ce

    Easy to Use

    UNO

    Compartir conocimientos y habilidades

    Focus on What Matters

    DOS

    Registrar los detalles de la vida cotidiana

    Powered by React

    TRES

    Compartir las observaciones y reflexiones de los viajes

    + + \ No newline at end of file diff --git a/zh-hk/intro/index.html b/zh-hk/intro/index.html new file mode 100644 index 000000000..58829472f --- /dev/null +++ b/zh-hk/intro/index.html @@ -0,0 +1,14 @@ + + + + + +intro | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/markdown-page/index.html b/zh-hk/markdown-page/index.html new file mode 100644 index 000000000..18ca66875 --- /dev/null +++ b/zh-hk/markdown-page/index.html @@ -0,0 +1,15 @@ + + + + + +Markdown page example | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown page example

    +

    You don't need React to write simple standalone pages.

    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html b/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html new file mode 100644 index 000000000..8564cf9e8 --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040/index.html @@ -0,0 +1,97 @@ + + + + + +Advanced PIO LED Control and Resource Management on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 上的進階 PIO LED 控制與資源管理

    +

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    +

    PIO 程式設計:實現複雜的 LED 控制邏輯

    +

    首先,讓我們來看我們的 PIO 程式,它實現了一個特定的 LED 控制邏輯:

    +
    hello.pio
    .program led_controller
    .side_set 1 opt

    .wrap_target
    pull block ; 從 FIFO 提取數據到 OSR
    out x, 32 ; 將 32 位數據移至 x 寄存器

    ; 檢查 x 是否為 0
    jmp !x, off ; 如果 x 為 0,跳轉至 off

    ; 檢查 x 是否為 3、8、15 或 21
    mov y, x ; 將 x 複製到 y
    set x, 2 ; 設置 x 為 3(二進制 11)
    jmp x!=y, check_8 ; 如果不是 3,檢查是否為 8
    jmp off ; 如果是 3,關閉 LED

    check_8:
    set x, 8 ; 檢查是否為 8
    jmp x!=y, check_15 ; 如果不是 8,檢查是否為 15
    jmp off ; 如果是 8,關閉 LED

    check_15:
    set x, 15 ; 檢查是否為 15
    jmp x!=y, check_21 ; 如果不是 15,檢查是否為 21
    jmp off ; 如果是 15,關閉 LED

    check_21:
    set x, 21 ; 檢查是否為 21
    jmp x!=y, on ; 如果不是 21,開啟 LED
    jmp off ; 如果是 21,關閉 LED

    off:
    nop side 0 ; 關閉 LED
    jmp continue

    on:
    nop side 1 ; 開啟 LED

    continue:
    nop ; 確保最後標籤後有指令
    .wrap
    +

    程式解析

    +
      +
    1. .side_set 1 opt:設置一個可選的側設置引腳,用於控制 LED。
    2. +
    3. pull blockout x, 32:從 FIFO 讀取 32 位數據到 x 寄存器。
    4. +
    5. 接下來的邏輯檢查輸入值是否為 0、3、8、15 或 21,如果是則關閉 LED,否則開啟 LED。
    6. +
    7. side 0side 1 用於控制 LED 的開關。
    8. +
    +
    信息

    這個程式實現了一個特殊的 LED 控制邏輯:當輸入值為 0、3、8、15 或 21 時關閉 LED,其他值則開啟 LED。

    +

    PIO 初始化函數

    +

    在 PIO 程式之後,我們定義了一個 C 函數來初始化 PIO 狀態機:

    +
    hello.pio
    % c-sdk {
    #include "hardware/clocks.h"

    static inline void led_controller_program_init(PIO pio, uint sm, uint offset, uint pin) {
    pio_sm_config c = led_controller_program_get_default_config(offset);

    sm_config_set_set_pins(&c, pin, 1);
    sm_config_set_sideset_pins(&c, pin);
    pio_gpio_init(pio, pin);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    sm_config_set_clkdiv(&c, 1);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    %}
    +

    這個函數設置 PIO 狀態機的配置,包括設置引腳、時鐘分頻等。

    +

    主程式實現

    +

    現在讓我們看看如何在主程式中使用這個 PIO 程式:

    +
    main.c
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hello.pio.h"

    int main() {
    stdio_init_all();
    printf("LED Controller Test\n");

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &led_controller_program);
    led_controller_program_init(pio, sm, offset, 25); // 假設 LED 連接到 GPIO 25

    while (true) {
    for (int i = 1; i <= 25; i++) {
    if (i == 0 || i == 3 || i == 8 || i == 15 || i == 21) {
    printf("LED off (%d)\n", i);
    } else {
    printf("LED on (%d)\n", i);
    }
    pio_sm_put_blocking(pio, sm, i);
    sleep_ms(1000); // 等待 1 秒
    }
    printf("\nRestarting sequence...\n\n");
    sleep_ms(2000); // 重新開始前等待 2 秒
    }

    return 0;
    }
    +

    主程式解析

    +
      +
    1. 初始化標準輸入輸出和 PIO。
    2. +
    3. 將 PIO 程式加載到 pio0 的狀態機 0 中。
    4. +
    5. 在一個無限循環中,遍歷 1 到 25 的數字。
    6. +
    7. 對於每個數字,將其發送到 PIO 狀態機,並印出 LED 的預期狀態。
    8. +
    9. 每次操作後等待 1 秒,每輪循環後等待 2 秒。
    10. +
    +

    編譯和運行

    +

    要編譯這個程式,您需要確保您的 CMakeLists.txt 文件正確設置。以下是一個示例:

    +
    CMakeLists.txt
    cmake_minimum_required(VERSION 3.13)
    include(pico_sdk_import.cmake)
    project(led_controller C CXX ASM)
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STANDARD 17)
    pico_sdk_init()

    add_executable(led_controller
    main.c
    )

    pico_generate_pio_header(led_controller ${CMAKE_CURRENT_LIST_DIR}/hello.pio)

    target_link_libraries(led_controller
    pico_stdlib
    hardware_pio
    )

    pico_enable_stdio_usb(led_controller 1)
    pico_enable_stdio_uart(led_controller 0)

    pico_add_extra_outputs(led_controller)
    +

    編譯完成後,將程式上傳到您的 Raspberry Pi Pico。

    +

    測試結果

    +

    當您運行這個程式時,您應該會在串口終端看到類似以下的輸出:

    +
    LED Controller Test
    LED on (1)
    LED on (2)
    LED off (3)
    LED on (4)
    LED on (5)
    LED on (6)
    LED on (7)
    LED off (8)
    ...
    LED off (21)
    LED on (22)
    LED on (23)
    LED on (24)
    LED on (25)

    Restarting sequence...

    LED on (1)
    LED on (2)
    LED off (3)
    ...
    +

    同時,您應該能觀察到連接到 GPIO 25 的 LED 相應地開啟和關閉。

    +

    PIO 資源管理和優化

    +

    在這個例子中,我們的 PIO 程式使用了 12 個指令槽。RP2040 的每個 PIO 實例有 32 個指令槽,因此我們還有 20 個指令槽可用於其他目的。

    +
    優化考慮
      +
    1. 如果需要在同一個 PIO 中運行多個程式,可以考慮減少每個程式的指令數。
    2. +
    3. 使用 pio1 來運行額外的程式,它有完整的 32 個指令槽可用。
    4. +
    5. 考慮讓多個狀態機共享部分指令,以最大化指令使用效率。
    6. +
    +

    您提出了一個很好的觀點。我會為您添加這些重要的知識點,詳細解釋 PIO 的整體架構、多狀態機使用以及指令限制。以下是新增的段落,您可以將其插入到適當的位置:

    +
    +

    PIO 架構與資源管理

    +

    PIO 實例與狀態機

    +

    RP2040 擁有兩個 PIO 實例(PIO0 和 PIO1),每個 PIO 實例包含四個獨立的狀態機。這種設計提供了極大的靈活性:

    +
      +
    • 每個 PIO 實例可以同時運行最多四個獨立的程序。
    • +
    • 狀態機可以獨立運行,也可以協同工作,實現複雜的功能。
    • +
    +
    信息

    例如,在 VGA 信號生成中,一個狀態機可能負責水平同步,另一個負責垂直同步,而第三個處理像素數據輸出。

    +

    指令內存共享

    +

    每個 PIO 實例擁有 32 條指令的共享內存。這是一個關鍵的限制和設計考慮:

    +
      +
    • 所有四個狀態機共享這 32 條指令空間。
    • +
    • 每個程序可以使用任意數量的指令,只要總和不超過 32。
    • +
    • 一個狀態機可以使用全部 32 條指令,或者多個狀態機可以使用不同數量的指令。
    • +
    +
    警告

    當設計 PIO 程序時,必須考慮到 32 條指令的限制。這要求開發者在功能實現和資源使用之間取得平衡。

    +

    資源優化策略

    +

    考慮到 32 條指令的限制,以下是一些優化策略:

    +
      +
    1. 指令重用:設計可以被多個狀態機共享的指令序列。
    2. +
    3. 功能劃分:將複雜功能分解為多個簡單程序,分配給不同的狀態機。
    4. +
    5. 跨 PIO 實例設計:如果一個 PIO 實例的資源不足,考慮使用另一個 PIO 實例。
    6. +
    +

    實際應用示例

    +

    在我們的 LED 控制器示例中:

    +
      +
    • 我們使用了 12 條指令,佔用了 PIO 實例約 37.5% 的指令空間。
    • +
    • 這意味著我們還有足夠的空間在同一 PIO 實例中實現其他功能。
    • +
    • 例如,我們可以添加另一個程序來控制不同的 LED 模式,或實現其他 I/O 功能。
    • +
    +
    剩餘指令空間 = 32 - 當前程序使用的指令數
    剩餘指令空間 = 32 - 12 = 20 條指令
    +

    擴展性考慮

    +

    理解 PIO 架構和資源限制後,我們可以更好地規劃複雜項目:

    +
      +
    1. 並行任務:利用多個狀態機同時執行不同任務。
    2. +
    3. 資源分配:在設計初期就考慮指令使用,合理分配資源。
    4. +
    5. 跨 PIO 協作:對於更複雜的項目,考慮 PIO0 和 PIO1 的協同工作。
    6. +
    +
    提示

    在開發過程中,定期檢查指令使用情況,確保不會超出 32 條指令的限制。如果接近限制,考慮重構代碼或使用另一個 PIO 實例。

    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html b/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html new file mode 100644 index 000000000..93fab4259 --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040/index.html @@ -0,0 +1,158 @@ + + + + + +Mastering PIO Programming on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO 編程深入探索:從 LED 閃爍到精確時序控制

    +

    1. PIO 簡介

    +

    可編程輸入/輸出(PIO)是 RP2040 晶片的一個強大特性。它允許開發者創建自定義的數字接口,實現精確的時序控制。每個 RP2040 有兩個 PIO 塊,每個塊有四個狀態機。

    +

    2. LED 閃爍示例

    +

    2.1 PIO 程序 (blink.pio)

    +

    讓我們從一個精確控制的 LED 閃爍程序開始:

    +
    .program blink
    .wrap_target
    set pins, 1 [31] ; 打開 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    set pins, 0 [31] ; 關閉 LED 並等待 31 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [31] ; 等待 32 個週期
    nop [19] ; 等待 20 個週期
    .wrap

    % c-sdk {
    // Helper function to initialize PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float freq) {
    pio_sm_config c = blink_program_get_default_config(offset);
    pio_gpio_init(pio, pin);
    sm_config_set_set_pins(&c, pin, 1);
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);
    float div = clock_get_hz(clk_sys) / freq;
    sm_config_set_clkdiv(&c, div);
    pio_sm_init(pio, sm, offset, &c);
    }
    %}
    +

    2.2 主程序 (main.cpp)

    +

    現在讓我們看看如何在主程序中設置和運行這個 PIO 程序:

    +
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "blink.pio.h"

    int main() {
    static const uint LED_PIN = 25;
    static const float PIO_FREQ = 2000; // 設置 PIO 頻率為 2000 Hz

    // 選擇 PIO 實例(0 或 1)
    PIO pio = pio0;

    // 獲取 PIO 程序中的第一個空閒狀態機
    uint sm = pio_claim_unused_sm(pio, true);

    // 將 PIO 程序添加到 PIO 指令內存中
    uint offset = pio_add_program(pio, &blink_program);

    // 計算 PIO 時鐘分頻器
    float div = (float)clock_get_hz(clk_sys) / PIO_FREQ;

    // 使用我們的 .pio 文件中的輔助函數初始化程序
    blink_program_init(pio, sm, offset, LED_PIN, PIO_FREQ);

    // 啟動 PIO 程序
    pio_sm_set_enabled(pio, sm, true);

    // 主循環保持程序運行
    while (true) {
    sleep_ms(1000);
    }
    }
    +

    代碼解釋:

    +
      +
    • PIO_FREQ 設置為 2000 Hz,這決定了 PIO 狀態機的運行速度。
    • +
    • blink_program_init 函數用於設置 PIO 狀態機,包括設置時鐘分頻器。
    • +
    • 時鐘分頻器的計算:div = clock_get_hz(clk_sys) / PIO_FREQ +
        +
      • clock_get_hz(clk_sys) 獲取系統時鐘頻率(通常為 125 MHz)
      • +
      • 分頻後,PIO 將以 2000 Hz 的頻率運行
      • +
      +
    • +
    +

    3. PIO 指令週期分析

    +

    每條 PIO 指令的執行週期由兩部分組成:

    +
      +
    1. 指令本身的執行(1 個週期)
    2. +
    3. 指令後的額外延遲(0 到 31 個週期)
    4. +
    +

    例如:

    +
      +
    • set pins, 1 [31] 總共執行 32 個週期:1 個用於指令執行,31 個用於延遲
    • +
    • nop [31] 也執行 32 個週期
    • +
    • nop [19] 執行 20 個週期:1 個用於指令執行,19 個用於延遲
    • +
    +

    4. 頻率計算

    +

    根據我們的設置,PIO 時鐘頻率為 2000 Hz:

    +
      +
    • LED 開啟狀態:(1 + 14) * 32 + 20 = 500 個週期
    • +
    • LED 關閉狀態:同樣是 500 個週期
    • +
    • 完整循環:500 + 500 = 1000 個週期
    • +
    • 閃爍頻率:2000 Hz / 1000 = 2 Hz
    • +
    +

    這解釋了為什麼 LED 以 2 Hz 的頻率閃爍(每秒閃爍兩次)。

    +

    5. PIO 編程限制

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須 ≤ 31
      • +
      • 原因:延遲值在指令編碼中佔用 5 位
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 原因:硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    +

    6. 優化技巧

    +
      +
    1. 利用循環減少指令數量
    2. +
    3. 使用側設(side-set)功能同時執行 GPIO 操作和其他指令
    4. +
    5. 適當設置時鐘分頻以達到所需的時序
    6. +
    +

    7. 注意事項

    +

    在使用 RP2040 的 PIO 進行編程時,需要注意以下幾個重要的限制和考慮因素:

    +
      +
    1. +

      指令延遲限制:

      +
        +
      • 每條指令的延遲必須小於或等於 31 個週期
      • +
      • 錯誤信息: "instruction delay must be < = 31"
      • +
      • 原因: 延遲值在指令編碼中僅佔用 5 位二進制
      • +
      +
    2. +
    3. +

      程序大小限制:

      +
        +
      • 每個 PIO 程序最多只能包含 32 條指令
      • +
      • 錯誤信息: "program instruction limit of 32 instruction(s) exceeded"
      • +
      • 原因: 硬件設計限制,每個 PIO 塊有 32 個指令槽
      • +
      +
    4. +
    5. +

      時鐘分頻器 (div) 範圍:

      +
        +
      • 有效範圍: 1.0 到 65536.0
      • +
      • 最小值 1.0 對應最快速度(系統時鐘頻率)
      • +
      • 最大值 65536.0 對應最慢速度(系統時鐘頻率除以 65536)
      • +
      • 注意: 當計算出的 div 值超出此範圍時,實際運行頻率可能與預期不符
      • +
      +
    6. +
    7. +

      GPIO 引腳限制:

      +
        +
      • PIO 可以訪問的 GPIO 引腳範圍: 0-29
      • +
      • 某些特殊功能引腳可能有額外限制
      • +
      +
    8. +
    9. +

      狀態機數量:

      +
        +
      • 每個 PIO 塊有 4 個獨立的狀態機
      • +
      • 總共有 8 個狀態機(2 個 PIO 塊 * 4 個狀態機)
      • +
      +
    10. +
    11. +

      FIFO 深度:

      +
        +
      • 每個狀態機有 4 個字(32 位)的 TX FIFO 和 4 個字的 RX FIFO
      • +
      • 在數據密集型應用中需要謹慎管理 FIFO
      • +
      +
    12. +
    13. +

      執行速度考慮:

      +
        +
      • PIO 指令執行速度可以非常快(最高可達系統時鐘頻率)
      • +
      • 需要仔細計算時序以確保預期的操作頻率
      • +
      +
    14. +
    15. +

      與 CPU 交互:

      +
        +
      • PIO 操作是獨立於 CPU 的,需要正確配置中斷和 DMA 以實現高效的數據交換
      • +
      +
    16. +
    17. +

      側設(Side-set)限制:

      +
        +
      • 最多可以使用 5 個側設位
      • +
      • 使用側設會減少可用於延遲的位數
      • +
      +
    18. +
    19. +

      調試難度:

      +
        +
      • PIO 程序難以直接調試
      • +
      • 建議使用模擬器或示波器等工具輔助開發和測試
      • +
      +
    20. +
    +

    完整代码

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "hardware/clocks.h"
    #include "hello.pio.h"

    int main() {

    static const uint led_pin = 25;
    static const float pio_freq = 2000;

    // Choose PIO instance (0 or 1)
    PIO pio = pio0;

    // Get first free state machine in PIO 0
    uint sm = pio_claim_unused_sm(pio, true);

    // Add PIO program to PIO instruction memory. SDK will find location and
    // return with the memory offset of the program.
    uint offset = pio_add_program(pio, &blink_program);

    // Calculate the PIO clock divider
    float div = (float)clock_get_hz(clk_sys) / pio_freq;

    // Initialize the program using the helper function in our .pio file
    blink_program_init(pio, sm, offset, led_pin, div); //div最大允许数值65535

    // Start running our PIO program in the state machine
    pio_sm_set_enabled(pio, sm, true);

    // Do nothing
    while (true) {
    sleep_ms(1000);
    }
    }
    +
    hello.pio
    .program blink

    ; Turn on LED for 100 cycles and off for 100 cycles.
    ; At 2 kHz, this will toggle pin at 10 Hz (200 cycles / 2000 Hz = 0.1 sec)

    ; instruction delay must be <= 31
    ; program instruction limit of 32 instruction(s) exceeded
    .wrap_target
    set pins, 1 [31] ; Turn LED on and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    set pins, 0 [31] ; Turn LED off and wait another 19 cycles
    nop [31]
    nop [31]

    nop [31]
    nop [31]
    nop [31]

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles

    nop [31] ; Wait 20 cycles
    nop [31] ; Wait 20 cycles
    nop [31]

    nop [19]

    .wrap

    % c-sdk {

    // Helper function (for use in C program) to initialize this PIO program
    void blink_program_init(PIO pio, uint sm, uint offset, uint pin, float div) {

    // Sets up state machine and wrap target. This function is automatically
    // generated in blink.pio.h.
    pio_sm_config c = blink_program_get_default_config(offset);

    // Allow PIO to control GPIO pin (as output)
    pio_gpio_init(pio, pin);

    // Connect pin to SET pin (control with 'set' instruction)
    sm_config_set_set_pins(&c, pin, 1);

    // Set the pin direction to output (in PIO)
    pio_sm_set_consecutive_pindirs(pio, sm, pin, 1, true);

    // Set the clock divider for the state machine
    sm_config_set_clkdiv(&c, div);

    // Load configuration and jump to start of the program
    pio_sm_init(pio, sm, offset, &c);
    }

    %}
    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html b/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html new file mode 100644 index 000000000..f31369ca4 --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040/index.html @@ -0,0 +1,201 @@ + + + + + +Implementing UART (TX )with PIO on RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    RP2040 PIO UART(TX) 實現綜合總結

    +

    1. UART 基本原理

    +
    信息

    UART(通用非同步收發傳輸器)是一種常用的串行通信協議。在我們的實現中:

      +
    • 使用 8 數據位,1 起始位,1 停止位(8N1 格式)
    • +
    • 不使用流控制和奇偶校驗
    • +
    • 預設波特率設置為 9600 bps
    • +
    +

    2. PIO 程序結構

    +

    2.1 UART TX PIO 程序

    +
    uart_tx.pio
    .program uart_tx
    .side_set 1 opt

    pull side 1 [7] ; 從 FIFO 獲取數據,設置停止位(高電平)
    set x, 7 side 0 [7] ; 設置循環計數器,發送起始位(低電平)
    bitloop:
    out pins, 1 ; 發送一位數據
    jmp x-- bitloop [6] ; 循環直到發送完 8 位數據
    +
    關鍵點
      +
    • .side_set 1 opt: 定義一個可選的 1 位側設,用於控制 TX 引腳
    • +
    • pull: 從 TX FIFO 獲取 32 位數據
    • +
    • set x, 7: 設置循環計數器為 7(8位數據)
    • +
    • out pins, 1: 輸出一位數據
    • +
    • jmp x-- bitloop [6]: 循環發送 8 位數據,每次迭代 8 個週期
    • +
    +

    2.2 FIFO 使用和字符存儲

    +
    FIFO 基本容量和合併
      +
    • 每個方向(TX 或 RX)的 FIFO 可以存儲 4 個 32 位字。
    • +
    • 1 個 32 位字理論上可存儲 4 個 char(每個 char 8 位)。
    • +
    • TX 和 RX FIFO 合併後,深度增加到 8 個 32 位字。
    • +
    • 理論上合併後可存儲 32 個 char。
    • +
    +
    實際使用中的 char 存儲
      +
    • 典型 UART 實現中,通常每次只放入一個 char(8 位)到 FIFO。
    • +
    • PIO 程序每次從 FIFO 取出 32 位數據,但通常只使用其中的 8 位。
    • +
    +

    FIFO 填充示例("ABCD")

    +
    32位FIFO條目1: [A] [ ] [ ] [ ]  (只有 'A' 被存儲,其餘未使用)
    32位FIFO條目2: [B] [ ] [ ] [ ] (只有 'B' 被存儲)
    32位FIFO條目3: [C] [ ] [ ] [ ] (只有 'C' 被存儲)
    32位FIFO條目4: [D] [ ] [ ] [ ] (只有 'D' 被存儲)
    +
    FIFO 使用策略
      +
    • 通常逐個 char 填充 FIFO,簡化 PIO 程序邏輯。
    • +
    • PIO 程序設計為在 FIFO 有數據時立即處理,不等待 FIFO 填滿。
    • +
    +

    2.3 時序控制

    +
      +
    • 每個 UART 位使用 8 個 PIO 時鐘週期
    • +
    • 使用指令後的延遲(如 [7])來精確控制時序
    • +
    • 總幀長度:1(起始位)+ 8(數據位)+ 1(停止位)= 10 位 * 8 週期 = 80 PIO 時鐘週期/幀
    • +
    +

    3. PIO 初始化和配置

    +
    uart_tx_init.c
    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    pio_sm_config c = uart_tx_program_get_default_config(offset);

    sm_config_set_sideset_pins(&c, pin_tx);
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_gpio_init(pio, pin_tx);
    pio_sm_set_consecutive_pindirs(pio, sm, pin_tx, 1, true);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }
    +
    關鍵配置步驟
      +
    1. 設置側設(side-set)和輸出引腳
    2. +
    3. 配置 FIFO 為僅 TX 模式
    4. +
    5. 計算並設置時鐘分頻以匹配目標波特率
    6. +
    7. 初始化 GPIO 和設置引腳方向
    8. +
    9. 初始化和啟用狀態機
    10. +
    +

    4. FIFO 使用和管理

    +
    FIFO 操作示例
    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s) {
    uart_tx_program_putc(pio, sm, *s++);
    }
    }
    +

    5. 主程序實現

    +
    main.c
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    const uint PIN_TX = 0;
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    主程序步驟
      +
    1. 選擇 PIO 實例和狀態機
    2. +
    3. 將 PIO 程序加載到 PIO 指令內存
    4. +
    5. 初始化 UART TX 程序
    6. +
    7. 在主循環中發送數據
    8. +
    +

    6. 波特率計算和精度

    +
    實際波特率計算

    實際波特率 = (系統時鐘頻率) / (時鐘分頻 * 每幀週期數) += 125,000,000 / (div * 80)

    其中,div 是初始化時計算的分頻值。

    +

    注意:實際波特率可能與目標波特率略有偏差,這取決於系統時鐘頻率和可用的分頻值。

    +

    7. 8 位 UART 傳輸詳解:發送 "ABC"

    +

    7.1 UART 幀結構(8N1 格式)

    +

    每個 UART 字符幀包含 10 位:

    +
      +
    • 1 個起始位(始終為 0)
    • +
    • 8 個數據位(最低有效位 LSB 先發送)
    • +
    • 1 個停止位(始終為 1)
    • +
    +

    7.2 字符 "ABC" 的二進制表示

    +
      +
    • 'A': ASCII 65 = 0100 0001
    • +
    • 'B': ASCII 66 = 0100 0010
    • +
    • 'C': ASCII 67 = 0100 0011
    • +
    +

    7.3 發送過程詳解

    +
    字符 'A' 的發送過程

    完整幀:

    0 01000001 1
    ↑ ↑ ↑
    | | |
    | | 停止位
    | 數據位
    起始位

    PIO 程序執行過程:

      +
    1. +

      pull side 1 [7]:

      +
        +
      • 從 FIFO 獲取 'A'(0x41)
      • +
      • TX 引腳保持高電平(停止位狀態)
      • +
      +
    2. +
    3. +

      set x, 7 side 0 [7]:

      +
        +
      • 設置循環計數器 x = 7
      • +
      • 發送起始位(低電平)
      • +
      +
    4. +
    5. +

      bitloop: 循環 8 次:

      +
        +
      • out pins, 1: 發送一位數據
      • +
      • jmp x-- bitloop [6]: 減少計數器並跳轉
      • +
      • 發送順序:1, 0, 0, 0, 0, 0, 1, 0 (LSB first)
      • +
      +
    6. +
    7. +

      循環結束後,通過 side 1 設置停止位(高電平)

      +
    8. +
    +
    字符 'B' 和 'C' 的發送

    'B' 和 'C' 的發送過程與 'A' 相同,只是數據位不同:

      +
    • 'B': 0 01000010 1
    • +
    • 'C': 0 01000011 1
    • +
    +

    7.4 FIFO 操作

    +

    當調用 uart_tx_program_puts(pio, sm, "ABC") 時:

    +
      +
    1. 'A' 被放入 FIFO
    2. +
    3. PIO 程序從 FIFO 拉取 'A' 並開始發送
    4. +
    5. 同時,'B' 被放入 FIFO
    6. +
    7. 'A' 發送完成後,PIO 程序立即拉取並發送 'B'
    8. +
    9. 'C' 被放入 FIFO
    10. +
    11. 'B' 發送完成後,PIO 程序拉取並發送 'C'
    12. +
    +

    7.5 時序分析

    +

    假設 UART 波特率為 9600 bps:

    +
      +
    • 每個位持續時間:1/9600 秒 ≈ 104.17 微秒
    • +
    • 每個字符(10 位)傳輸時間:104.17 * 10 ≈ 1.0417 毫秒
    • +
    • "ABC" 總傳輸時間:3 * 1.0417 ≈ 3.125 毫秒
    • +
    +

    8. 高級考慮因素

    +
      +
    1. +

      錯誤處理:

      +
        +
      • PIO 不提供內置的幀錯誤檢測
      • +
      • 可以通過額外的 PIO 程序邏輯或軟件層面實現錯誤檢測
      • +
      +
    2. +
    3. +

      雙向通信:

      +
        +
      • 需要單獨的 RX PIO 程序
      • +
      • 可能需要使用額外的狀態機或 PIO 實例
      • +
      +
    4. +
    5. +

      DMA 使用:

      +
        +
      • 對於大量數據傳輸,可以配合 DMA 使用
      • +
      • DMA 可以自動填充 TX FIFO,減少 CPU 干預
      • +
      +
    6. +
    7. +

      資源利用:

      +
        +
      • 一個 UART 實例佔用一個 PIO 狀態機
      • +
      • 需要考慮 PIO 指令內存的使用
      • +
      +
    8. +
    9. +

      靈活性:

      +
        +
      • 可以輕鬆修改 PIO 程序以支持不同的數據格式(如 7 位數據、2 個停止位)
      • +
      • 可以實現自定義協議或非標準波特率
      • +
      +
    10. +
    +

    9. 調試技巧

    +
    調試方法
      +
    1. 使用邏輯分析儀或示波器驗證信號時序
    2. +
    3. 利用 printf 調試輸出來監控數據流
    4. +
    5. 使用 Pico 的 LED 進行簡單的可視化調試
    6. +
    7. 在關鍵點添加 GPIO 觸發,方便使用示波器捕獲特定事件
    8. +
    +

    10. 性能考慮

    +
      +
    • PIO UART 實現允許高速數據傳輸,僅受 PIO 時鐘頻率限制
    • +
    • 對於簡單的數據發送,PIO 方法可能比硬件 UART 更靈活
    • +
    • 對於複雜的協議或需要頻繁更改配置的場景,PIO 方法尤其有優勢
    • +
    +

    11. 未來擴展

    +
    可能的擴展方向
      +
    1. 實現 UART 接收功能
    2. +
    3. 添加流控制支持
    4. +
    5. 實現奇偶校驗
    6. +
    7. 支持可變數據位數(5-8 位)和停止位數
    8. +
    9. 實現自動波特率檢測
    10. +
    +

    完整代碼

    +
    main.cpp
    #include "pico/stdlib.h"
    #include "hardware/pio.h"
    #include "uart_tx.pio.h"

    int main() {
    // We're going to use PIO to print "Hello, world!" on the same GPIO which we
    // normally attach UART0 to.
    const uint PIN_TX = 7;
    // This is the same as the default UART baud rate on Pico
    const uint SERIAL_BAUD = 9600;

    PIO pio = pio0;
    uint sm = 0;
    uint offset = pio_add_program(pio, &uart_tx_program);
    uart_tx_program_init(pio, sm, offset, PIN_TX, SERIAL_BAUD);

    while (true) {
    uart_tx_program_puts(pio, sm, "Hello, world! (from PIO!)\n");
    sleep_ms(1000);
    }
    }
    +
    uart_tx.pio
    ;
    ; Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
    ;
    ; SPDX-License-Identifier: BSD-3-Clause
    ;

    .program uart_tx
    .side_set 1 opt

    ; An 8n1 UART transmit program.
    ; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin.

    pull side 1 [7] ; Assert stop bit, or stall with line in idle state
    set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks
    bitloop: ; This loop will run 8 times (8n1 UART)
    out pins, 1 ; Shift 1 bit from OSR to the first OUT pin
    jmp x-- bitloop [6] ; Each loop iteration is 8 cycles.


    % c-sdk {
    #include "hardware/clocks.h"

    static inline void uart_tx_program_init(PIO pio, uint sm, uint offset, uint pin_tx, uint baud) {
    // Tell PIO to initially drive output-high on the selected pin, then map PIO
    // onto that pin with the IO muxes.
    pio_sm_set_pins_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_sm_set_pindirs_with_mask(pio, sm, 1u << pin_tx, 1u << pin_tx);
    pio_gpio_init(pio, pin_tx);

    pio_sm_config c = uart_tx_program_get_default_config(offset);

    // OUT shifts to right, no autopull
    sm_config_set_out_shift(&c, true, false, 32);

    // We are mapping both OUT and side-set to the same pin, because sometimes
    // we need to assert user data onto the pin (with OUT) and sometimes
    // assert constant values (start/stop bit)
    sm_config_set_out_pins(&c, pin_tx, 1);
    sm_config_set_sideset_pins(&c, pin_tx);

    // We only need TX, so get an 8-deep FIFO!
    sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);

    // SM transmits 1 bit per 8 execution cycles.
    float div = (float)clock_get_hz(clk_sys) / (8 * baud);
    sm_config_set_clkdiv(&c, div);

    pio_sm_init(pio, sm, offset, &c);
    pio_sm_set_enabled(pio, sm, true);
    }

    static inline void uart_tx_program_putc(PIO pio, uint sm, char c) {
    pio_sm_put_blocking(pio, sm, (uint32_t)c);
    }

    static inline void uart_tx_program_puts(PIO pio, uint sm, const char *s) {
    while (*s)
    uart_tx_program_putc(pio, sm, *s++);
    }

    %}



    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html b/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html new file mode 100644 index 000000000..5872b6e4e --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examples/index.html @@ -0,0 +1,162 @@ + + + + + +Detailed Explanation of PWM Usage and Examples in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    +

    PWM 基礎知識

    +

    PWM 是一種常用的數位信號處理技術,通過改變脈衝的寬度來調製信號的平均值。在 RP2040 中,PWM 功能由專門的硬體模組提供,可以生成 PWM 信號並控制其參數,如頻率、佔空比等。

    +

    PWM 信號由一系列脈衝組成,每個脈衝的寬度決定了信號的佔空比。佔空比是指脈衝的高電平時間與整個週期的比值,通常以百分比表示。通過改變 PWM 信號的佔空比,我們可以調節輸出的平均電壓,從而實現對連接設備的控制。

    +

    RP2040 的 PWM 模組提供了多個 PWM 通道,每個通道都可以獨立配置和控制。這使得我們可以同時輸出多個 PWM 信號,並對它們進行精確的控制。

    +

    好的,以下是新增的開頭段落,詳細介紹了 PWM 的各種配置模式、作用以及如何設置:

    +

    PWM 的配置模式及設置

    +

    在 RP2040 中,PWM 模組提供了多種配置模式,可以根據不同的應用需求進行設置。每種模式都有其特定的作用和配置方法。下面我們來詳細介紹一下這些模式:

    +

    自由運行模式(Free-running mode)

    +

    自由運行模式是 PWM 的默認模式。在這種模式下,PWM 計數器會不斷地從 0 計數到設定的最大值(通過 pwm_config_set_wrap 函數設置),然後再從 0 開始重複計數。當計數器的值與比較器的值相等時,PWM 輸出會根據設置的電平(高電平或低電平)進行切換。

    +

    适用场景:用於普通的PWM輸出,例如LED亮度調節、電機速度控制等,需要定期的周期性PWM信号。

    +

    要將 PWM 配置為自由運行模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們首先使用 pwm_get_default_config 函數獲取 PWM 的默認配置,然後使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。最後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    計數模式(Counter mode)

    +

    在計數模式下,PWM 計數器會根據外部輸入的脈衝信號進行計數。這種模式通常用於測量外部信號的頻率或脈衝寬度。 +適用場景:用於測量外部脈衝信號的頻率或脈衝寬度,通常與外部輸入信號同步計數。 +要將 PWM 配置為計數模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);
    +

    在上面的代碼中,我們使用 pwm_config_set_clkdiv_mode 函數將 PWM 的時鐘分頻模式設置為 PWM_DIV_B_RISING,表示在輸入信號的上升沿進行計數。然後,使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    相位校正模式(Phase-correct mode)

    +

    相位校正模式是一種特殊的 PWM 模式,它可以產生對稱的 PWM 信號,並減少輸出信號的諧波失真。在這種模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。 +适用场景:產生對稱的PWM信号,減少輸出信號的諧波失真,適合對PWM信號質量要求較高的應用。 +要將 PWM 配置為相位校正模式,可以使用以下代碼:

    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_phase_correct(&config, true);
    pwm_init(slice_num, &config, true);
    +

    在上面的代碼中,我們使用 pwm_config_set_phase_correct 函數將 PWM 配置為相位校正模式,然後使用 pwm_init 函數初始化 PWM 切片,並將配置應用到切片上。

    +

    設置 PWM 頻率和佔空比

    +

    無論使用哪種 PWM 模式,我們都需要設置 PWM 信號的頻率和佔空比。PWM 頻率決定了 PWM 信號的週期,而佔空比決定了 PWM 信號在一個週期內高電平的時間比例。

    +

    要設置 PWM 頻率,我們需要配置 PWM 的時鐘分頻器和包裹值。時鐘分頻器決定了 PWM 計數器的計數速度,而包裹值決定了 PWM 計數器的最大值。PWM 頻率的計算公式如下:

    +
    PWM 頻率 = 系統時鐘頻率 / (時鐘分頻器 * (包裹值 + 1))
    +

    例如,如果系統時鐘頻率為 125 MHz,時鐘分頻器設置為 1.0(不分頻),包裹值設置為 1249,則 PWM 頻率為:

    +
    PWM 頻率 = 125 MHz / (1.0 * (1249 + 1)) = 100 kHz
    +

    要設置 PWM 佔空比,我們需要配置 PWM 的比較器值。比較器值決定了 PWM 信號在一個週期內高電平的時間。PWM 佔空比的計算公式如下:

    +
    PWM 佔空比 = 比較器值 / (包裹值 + 1)
    +

    例如,如果包裹值設置為 1249,比較器值設置為 624,則 PWM 佔空比為:

    +
    PWM 佔空比 = 624 / (1249 + 1) = 0.4992 ≈ 50%
    +

    綜上所述,通過合理配置 PWM 的模式、頻率和佔空比,我們可以產生各種不同特性的 PWM 信號,以滿足不同的應用需求。無論是電機控制、伺服機控制還是信號檢測,都可以通過靈活配置 PWM 來實現。

    +

    程序示例 1: 輸出 PWM 信號

    +

    首先,讓我們來看一個簡單的程序示例,演示如何在 RP2040 上輸出 PWM 信號:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    int main() {
    // 將 GPIO 0 和 GPIO 1 分配給 PWM
    gpio_set_function(0, GPIO_FUNC_PWM);
    gpio_set_function(1, GPIO_FUNC_PWM);

    // 找到連接到 GPIO 0 的 PWM 切片(slice)編號
    uint slice_num = pwm_gpio_to_slice_num(0);

    // 設置 PWM 週期為 4 個循環(0 到 3)
    pwm_set_wrap(slice_num, 3);

    // 設置通道 A 在下降沿之前輸出高電平一個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_A, 1);

    // 設置通道 B 在下降沿之前初始輸出高電平三個循環
    pwm_set_chan_level(slice_num, PWM_CHAN_B, 3);

    // 啟動 PWM
    pwm_set_enabled(slice_num, true);
    }
    +
    備註

    在這個示例中,我們將 GPIO 0 和 GPIO 1 分配給 PWM 功能,並找到連接到 GPIO 0 的 PWM 切片(slice)編號。然後,我們設置 PWM 週期為 4 個循環,並配置通道 A 和通道 B 的輸出電平。最後,我們啟動 PWM,開始輸出 PWM 信號。

    +

    值得注意的是,我們也可以使用 pwm_set_gpio_level(gpio, x) 函數,它會自動查找給定 GPIO 的正確切片和通道,並設置輸出電平。

    +

    程序示例 2: 使用 PWM 控制 LED 亮度

    +

    接下來,讓我們看一個更實用的例子,演示如何使用 PWM 控制 LED 的亮度:

    +
    #include "pico/stdlib.h"
    #include <stdio.h>
    #include "pico/time.h"
    #include "hardware/irq.h"
    #include "hardware/pwm.h"

    #ifdef PICO_DEFAULT_LED_PIN
    void on_pwm_wrap() {
    static int fade = 0;
    static bool going_up = true;

    // 清除中斷標誌
    pwm_clear_irq(pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN));

    if (going_up) {
    ++fade;
    if (fade > 255) {
    fade = 255;
    going_up = false;
    }
    } else {
    --fade;
    if (fade < 0) {
    fade = 0;
    going_up = true;
    }
    }

    // 將 fade 值平方,使 LED 的亮度看起來更加線性
    // 注意,這個範圍與 wrap 值匹配
    pwm_set_gpio_level(PICO_DEFAULT_LED_PIN, fade * fade);
    }
    #endif

    int main() {
    #ifndef PICO_DEFAULT_LED_PIN
    #warning pwm/led_fade example requires a board with a regular LED
    #else
    // 告訴 LED 引腳,PWM 負責控制其值
    gpio_set_function(PICO_DEFAULT_LED_PIN, GPIO_FUNC_PWM);

    // 找到連接到 LED 引腳的 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(PICO_DEFAULT_LED_PIN);

    // 將我們的切片的 IRQ 輸出遮罩到 PWM 塊的單個中斷線,
    // 並註冊我們的中斷處理程序
    pwm_clear_irq(slice_num);
    pwm_set_irq_enabled(slice_num, true);
    irq_set_exclusive_handler(PWM_IRQ_WRAP, on_pwm_wrap);
    irq_set_enabled(PWM_IRQ_WRAP, true);

    // 為切片配置獲取一些合理的預設值
    // 預設情況下,計數器可以在其最大範圍(0 到 2^16-1)內包裹
    pwm_config config = pwm_get_default_config();

    // 設置分頻器,將計數器時鐘減少到 sysclock/4
    pwm_config_set_clkdiv(&config, 4.f);

    // 將配置載入到我們的 PWM 切片中,並設置為運行狀態
    pwm_init(slice_num, &config, true);

    // 在這一點之後的所有操作都在 PWM 中斷處理程序中進行,
    // 所以我們可以在主迴圈中什麼也不做
    while (1)
    tight_loop_contents();
    #endif
    }
    +

    在這個示例中,我們使用 PWM 控制 LED 的亮度,實現漸變效果。程序的主要步驟如下:

    +
      +
    1. 將 LED 引腳設置為 PWM 功能。
    2. +
    3. 找到連接到 LED 引腳的 PWM 切片編號。
    4. +
    5. 設置 PWM 中斷,註冊中斷處理程序 on_pwm_wrap()
    6. +
    7. 配置 PWM 切片,設置分頻器和計數器範圍。
    8. +
    9. 啟動 PWM,並在主迴圈中等待中斷觸發。
    10. +
    +

    on_pwm_wrap() 中斷處理程序中,我們通過改變 fade 值來控制 LED 的亮度。每次中斷觸發時,我們根據 fade 值的變化方向(增加或減少)來更新 LED 的亮度。為了使亮度變化看起來更加線性,我們將 fade 值平方後再設置給 PWM 輸出。

    +
    提示

    使用中斷處理程序可以在不影響主程序執行的情況下實現 LED 亮度的平滑變化。這種方式非常適合需要持續更新輸出的場景。

    +

    程序示例 3: 測量 PWM 信號的佔空比

    +

    最後,讓我們看一個示例,演示如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint OUTPUT_PIN = 2;
    const uint MEASURE_PIN = 5;

    float measure_duty_cycle(uint gpio) {
    // 只有 PWM B 引腳可以用作輸入
    assert(pwm_gpio_to_channel(gpio) == PWM_CHAN_B);

    uint slice_num = pwm_gpio_to_slice_num(gpio);

    // 每 100 個循環,PWM B 輸入為高電平時計數一次
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&cfg, PWM_DIV_B_HIGH);
    pwm_config_set_clkdiv(&cfg, 100);
    pwm_init(slice_num, &cfg, false);

    gpio_set_function(gpio, GPIO_FUNC_PWM);
    pwm_set_enabled(slice_num, true);
    sleep_ms(10);
    pwm_set_enabled(slice_num, false);

    float counting_rate = clock_get_hz(clk_sys) / 100;
    float max_possible_count = counting_rate * 0.01;

    return pwm_get_counter(slice_num) / max_possible_count;
    }

    const float test_duty_cycles[] = {
    0.f,
    0.1f,
    0.5f,
    0.9f,
    1.f
    };

    int main() {
    stdio_init_all();
    printf("\nPWM duty cycle measurement example\n");

    // 配置 PWM 切片並設置為運行狀態
    const uint count_top = 1000;
    pwm_config cfg = pwm_get_default_config();
    pwm_config_set_wrap(&cfg, count_top);
    pwm_init(pwm_gpio_to_slice_num(OUTPUT_PIN), &cfg, true);

    // 注意,我們還沒有觸碰另一個引腳 -- PWM 引腳預設為輸出,
    // 但一旦分頻器模式從自由運行改變,就會變為輸入。
    // 將兩個輸出直接連接在一起是不明智的!
    gpio_set_function(OUTPUT_PIN, GPIO_FUNC_PWM);

    // 對於每個測試佔空比,在輸出引腳上驅動該電平,
    // 然後使用另一個引腳讀回實際的輸出佔空比。這兩個值應該非常接近!
    for (int i = 0; i < count_of(test_duty_cycles); ++i) {
    float output_duty_cycle = test_duty_cycles[i];
    pwm_set_gpio_level(OUTPUT_PIN, (uint16_t)(output_duty_cycle * (count_top + 1)));

    float measured_duty_cycle = measure_duty_cycle(MEASURE_PIN);
    printf("Output duty cycle = %.1f%%, measured input duty cycle = %.1f%%\n",
    output_duty_cycle * 100.f, measured_duty_cycle * 100.f);
    }
    }
    +

    在這個示例中,我們演示了如何使用 RP2040 的 PWM 功能來測量 PWM 信號的佔空比。程序的主要步驟如下:

    +
      +
    1. 定義輸出引腳 OUTPUT_PIN 和測量引腳 MEASURE_PIN
    2. +
    3. 實現 measure_duty_cycle() 函數,用於測量給定 GPIO 引腳上的 PWM 信號佔空比。 +
        +
      • 配置 PWM 切片,設置分頻器模式為 PWM_DIV_B_HIGH,即每 100 個循環計數一次。
      • +
      • 啟動 PWM,等待一段時間,然後停止 PWM。
      • +
      • 計算最大可能計數值,並根據實際計數值計算佔空比。
      • +
      +
    4. +
    5. main() 函數中,配置輸出引腳的 PWM 切片,設置包裹值為 count_top
    6. +
    7. 對於每個測試佔空比,在輸出引腳上設置相應的電平,然後使用測量引腳讀回實際的輸出佔空比。
    8. +
    9. 將輸出佔空比和測量佔空比打印出來,檢查它們是否接近。
    10. +
    +
    警告

    在將兩個引腳連接在一起之前,需要注意 PWM 引腳的默認狀態。PWM 引腳預設為輸出,但一旦分頻器模式從自由運行改變,就會變為輸入。將兩個輸出直接連接在一起是不明智的!

    +

    通過這個示例,我們可以看到如何使用 RP2040 的 PWM 功能來精確測量 PWM 信號的佔空比。這在需要對 PWM 信號進行分析和控制的場景中非常有用。

    +

    單獨使用 PWM

    +

    除了上述示例中的用法,我們還可以單獨使用 PWM 來控制各種設備,如直流電機、步進電機、伺服機等。下面我們將詳細介紹如何使用 PWM 來控制這些設備,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    控制直流電機

    +

    使用 PWM 可以方便地控制直流電機的轉速。通過改變 PWM 信號的佔空比,我們可以調節輸出到電機的平均電壓,從而控制電機的轉速。以下是一個使用 PWM 控制直流電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint MOTOR_PIN = 2;

    int main() {
    // 將電機引腳設置為 PWM 功能
    gpio_set_function(MOTOR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(MOTOR_PIN);
    uint channel = pwm_gpio_to_channel(MOTOR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置佔空比,控制電機轉速
    pwm_set_chan_level(slice_num, channel, 32768); // 50% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 16384); // 25% 佔空比
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 49152); // 75% 佔空比
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將電機連接到 GPIO2 引腳,並將其設置為 PWM 功能。然後,我們配置 PWM 切片,設置包裹值為 65535,以獲得更高的解析度。在主迴圈中,我們通過設置不同的佔空比來控制電機轉速。佔空比的取值範圍為 0 到 65535,分別對應 0% 到 100% 的佔空比。

    +
    提示

    根據電機的規格和電源電壓,你可能需要使用 H 橋或電機驅動器來安全地驅動電機。PWM 信號可以用來控制 H 橋或電機驅動器的輸入,從而調節電機轉速。

    +

    控制步進電機

    +

    步進電機是一種常用的精密定位設備,可以通過控制脈衝信號來實現精確的角度控制。使用 PWM,我們可以生成控制步進電機所需的脈衝信號。以下是一個使用 PWM 控制步進電機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;

    int main() {
    // 將步進引腳和方向引腳設置為 PWM 功能
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);

    // 設置方向為正向
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);

    while (1) {
    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);

    // 改變方向為反向
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);

    // 生成步進脈衝
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    sleep_ms(1000);
    }
    }
    +

    在這個示例中,我們使用兩個 PWM 通道來控制步進電機。一個通道用於生成步進脈衝,另一個通道用於控制步進電機的方向。我們通過設置脈衝的佔空比和頻率來生成所需的步進脈衝,並通過改變方向通道的電平來控制步進電機的旋轉方向。

    +
    備註

    步進電機通常需要較高的電流驅動,因此建議使用專用的步進電機驅動器來控制步進電機。PWM 信號可以作為步進電機驅動器的輸入,用於控制步進脈衝和方向。

    +

    好的,我會根據您的要求,進一步優化這部分內容,並善用 Markdown 和 Docusaurus 的特性,使目錄更加清晰。以下是優化後的內容:

    +

    詳解步進電機控制程式碼

    +

    讓我們來詳細講解上述控制步進電機的程式碼,並解釋其中涉及的參數和設置。

    +
    定義步進引腳和方向引腳
    +
    const uint STEP_PIN = 2;
    const uint DIR_PIN = 3;
    +

    首先,我們定義了兩個常量 STEP_PINDIR_PIN,分別表示連接步進電機的步進引腳和方向引腳。這裡我們將它們設置為 GPIO2 和 GPIO3。

    +
    設置引腳功能為 PWM
    +
    gpio_set_function(STEP_PIN, GPIO_FUNC_PWM);
    gpio_set_function(DIR_PIN, GPIO_FUNC_PWM);
    +

    main 函數中,我們首先使用 gpio_set_function 函數將步進引腳和方向引腳設置為 PWM 功能。這樣我們就可以通過 PWM 來控制這兩個引腳的輸出。

    +
    獲取 PWM 切片編號和通道
    +
    uint slice_num_step = pwm_gpio_to_slice_num(STEP_PIN);
    uint channel_step = pwm_gpio_to_channel(STEP_PIN);
    uint slice_num_dir = pwm_gpio_to_slice_num(DIR_PIN);
    uint channel_dir = pwm_gpio_to_channel(DIR_PIN);
    +

    接下來,我們使用 pwm_gpio_to_slice_numpwm_gpio_to_channel 函數獲取步進引腳和方向引腳所對應的 PWM 切片編號和通道。每個 PWM 切片可以控制兩個通道,通常標記為 A 和 B。

    +
    配置 PWM 切片
    +
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 65535);
    pwm_init(slice_num_step, &config, true);
    pwm_init(slice_num_dir, &config, true);
    +

    然後,我們使用 pwm_get_default_config 函數獲取 PWM 的默認配置,並使用 pwm_config_set_wrap 函數設置 PWM 計數器的最大值為 65535。這個值決定了 PWM 的解析度,設置為 65535 可以提供較高的解析度。

    +

    接著,我們使用 pwm_init 函數初始化步進引腳和方向引腳所在的 PWM 切片,並將 config 應用到這些切片上。最後一個參數設置為 true,表示立即啟用 PWM 輸出。

    +
    設置步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 0);
    +

    在設置方向為正向時,我們使用 pwm_set_chan_level 函數將方向引腳的 PWM 輸出電平設置為 0。這通常表示步進電機的正向旋轉。

    +
    生成步進脈衝
    +
    for (int i = 0; i < 200; i++) {
    pwm_set_chan_level(slice_num_step, channel_step, 32768);
    sleep_us(500);
    pwm_set_chan_level(slice_num_step, channel_step, 0);
    sleep_us(500);
    }
    +

    在主循環中,我們首先生成 200 個步進脈衝。每個脈衝由一個高電平和一個低電平組成,高電平持續 500 微秒,低電平持續 500 微秒。我們使用 pwm_set_chan_level 函數設置步進引腳的 PWM 輸出電平為 32768(50% 佔空比)來生成高電平,然後延遲 500 微秒。接著,我們將步進引腳的 PWM 輸出電平設置為 0 來生成低電平,再延遲 500 微秒。這樣就生成了一個完整的步進脈衝。

    +
    備註

    生成步進脈衝的過程可以分為以下幾個步驟:

      +
    1. 設置步進引腳的 PWM 輸出電平為高電平(50% 佔空比)。
    2. +
    3. 延遲一段時間(脈衝的高電平持續時間)。
    4. +
    5. 設置步進引腳的 PWM 輸出電平為低電平。
    6. +
    7. 延遲一段時間(脈衝的低電平持續時間)。
    8. +
    9. 重複步驟 1-4,直到生成足夠數量的步進脈衝。
    10. +
    +
    改變步進電機旋轉方向
    +
    pwm_set_chan_level(slice_num_dir, channel_dir, 65535);
    +

    生成完 200 個步進脈衝後,我們延遲 1 秒鐘,然後將方向引腳的 PWM 輸出電平設置為 65535,表示步進電機的反向旋轉。

    +

    接下來,我們再次生成 200 個步進脈衝,但這次步進電機將向相反方向旋轉。最後,我們再次延遲 1 秒鐘,然後重複整個過程。

    +
    程式碼中的數字參數
    +
    備註

    這段程式碼中的數字參數的含義如下:

      +
    • 32768: 表示 50% 的 PWM 佔空比。因為我們將 PWM 計數器的最大值設置為 65535,所以 32768 大約是最大值的一半,對應 50% 的佔空比。
    • +
    • 500: 表示步進脈衝的高電平和低電平持續時間,單位為微秒。這個值決定了步進電機的速度。增大這個值會降低步進電機的速度,減小這個值會提高步進電機的速度。
    • +
    • 200: 表示生成的步進脈衝數量。這個值決定了步進電機旋轉的角度。增大這個值會增加步進電機旋轉的角度,減小這個值會減小步進電機旋轉的角度。
    • +
    • 65535: 表示 PWM 計數器的最大值,也表示 100% 的 PWM 佔空比。當方向引腳的 PWM 輸出電平設置為 65535 時,表示步進電機的反向旋轉。
    • +
    +
    其他 PWM 配置
    +

    除了上述參數,我們還可以設置其他的 PWM 配置,例如:

    +
      +
    • pwm_config_set_clkdiv: 設置 PWM 時鐘分頻器,可以改變 PWM 的頻率。增大分頻值會降低 PWM 頻率,減小分頻值會提高 PWM 頻率。
    • +
    • pwm_config_set_phase_correct: 設置是否使用相位校正模式。在相位校正模式下,PWM 計數器在達到最大值後會向下計數,而不是直接重置為 0。這可以減少 PWM 輸出的尖峰噪聲。
    • +
    • pwm_config_set_output_polarity: 設置 PWM 輸出的極性。可以選擇在 PWM 計數器達到比較值時輸出高電平還是低電平。
    • +
    +

    調整這些 PWM 配置可以改變 PWM 輸出的特性,從而影響步進電機的運行方式,如速度、扭矩、噪聲等。

    +
    警告

    需要注意的是,這段程式碼只是一個基本的示例,用於演示如何使用 PWM 控制步進電機。在實際應用中,你可能需要根據具體的步進電機型號和驅動器來調整參數和設置,以獲得最佳的性能和可靠性。此外,步進電機通常需要較大的電流,因此建議使用專用的步進電機驅動器,而不是直接通過 PWM 引腳驅動。

    +

    控制伺服機

    +

    伺服機是一種常用的位置控制設備,通過改變 PWM 信號的脈寬來控制伺服機的角度。以下是一個使用 PWM 控制伺服機的示例:

    +
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"

    const uint SERVO_PIN = 2;

    int main() {
    // 將伺服機引腳設置為 PWM 功能
    gpio_set_function(SERVO_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號和通道
    uint slice_num = pwm_gpio_to_slice_num(SERVO_PIN);
    uint channel = pwm_gpio_to_channel(SERVO_PIN);

    // 配置 PWM 切片
    pwm_config config = pwm_get_default_config();
    pwm_config_set_wrap(&config, 19999);
    pwm_config_set_clkdiv(&config, 9.6f);
    pwm_init(slice_num, &config, true);

    while (1) {
    // 設置脈寬,控制伺服機角度
    pwm_set_chan_level(slice_num, channel, 1000); // 0 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 1500); // 90 度
    sleep_ms(2000);
    pwm_set_chan_level(slice_num, channel, 2000); // 180 度
    sleep_ms(2000);
    }
    }
    +

    在這個示例中,我們將伺服機連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片,設置包裹值為 19999,時鐘分頻器為 9.6,以獲得 50Hz 的 PWM 頻率。在主迴圈中,我們通過設置不同的脈寬來控制伺服機的角度。脈寬的典型值為 1000us(0 度)、1500us(90 度)和 2000us(180 度),但具體值可能因伺服機型號而有所不同。

    +
    警告

    伺服機的控制信號需要精確的脈寬和頻率,因此在配置 PWM 時需要仔細計算包裹值和時鐘分頻器,以獲得所需的脈寬和頻率。此外,伺服機通常需要單獨的電源供電,以提供足夠的電流。

    +

    使用 PWM 作為輸入捕獲

    +

    除了用於輸出控制信號,PWM 還可以作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。以下是一個使用 PWM 作為輸入捕獲的示例:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"
    #include "hardware/pwm.h"
    #include "hardware/clocks.h"

    const uint INPUT_PIN = 2;

    int main() {
    // 將輸入引腳設置為 PWM 功能
    gpio_set_function(INPUT_PIN, GPIO_FUNC_PWM);

    // 獲取 PWM 切片編號
    uint slice_num = pwm_gpio_to_slice_num(INPUT_PIN);

    // 配置 PWM 切片作為輸入捕獲模式
    pwm_config config = pwm_get_default_config();
    pwm_config_set_clkdiv_mode(&config, PWM_DIV_B_RISING);
    pwm_init(slice_num, &config, false);

    // 使能輸入捕獲
    pwm_set_enabled(slice_num, true);

    while (1) {
    // 等待輸入信號
    while (!(pwm_get_status(slice_num) & PWM_CH0_CSR_RCIF_BITS));

    // 讀取輸入信號的頻率、脈寬和佔空比
    uint32_t period = pwm_get_counter(slice_num);
    uint32_t pulse_width = pwm_get_compare_counter(slice_num, 0);
    float frequency = clock_get_hz(clk_sys) / period;
    float duty_cycle = (float)pulse_width / period;

    printf("Frequency: %.2f Hz, Pulse Width: %u us, Duty Cycle: %.2f%%\n",
    frequency, pulse_width, duty_cycle * 100);

    // 清除輸入捕獲中斷標誌
    pwm_clear_irq(slice_num);
    }
    }
    +

    在這個示例中,我們將輸入信號連接到 GPIO2 引腳,並將其設置為 PWM 功能。我們配置 PWM 切片作為輸入捕獲模式,並使能輸入捕獲。在主迴圈中,我們等待輸入信號觸發輸入捕獲中斷,然後讀取輸入信號的頻率、脈寬和佔空比。頻率可以通過時鐘頻率除以週期計數器值來計算,脈寬可以直接從捕獲比較計數器中讀取,佔空比可以通過脈寬除以週期來計算。

    +
    備註

    輸入捕獲模式下,PWM 切片會在輸入信號的上升沿或下降沿觸發輸入捕獲中斷,並記錄當前的計數器值。通過比較連續兩次捕獲的計數器值,可以計算出輸入信號的頻率、脈寬和佔空比。

    +

    總結

    +

    在本文中,我們詳細探討了如何在 RP2040 中使用 PWM 功能。除了之前介紹的基本用法,我們還深入講解了如何使用 PWM 控制直流電機、步進電機和伺服機,以及如何使用 PWM 作為輸入捕獲來檢測輸入信號的頻率、脈寬和佔空比。

    +

    通過學習本文提供的詳細解釋和示例代碼,你應該能夠掌握 RP2040 中 PWM 的各種用法,並將其應用到自己的嵌入式項目中。無論是電機控制、伺服機控制還是信號檢測,PWM 都是一個強大而靈活的工具。

    +

    希望本文能夠幫助你更好地理解和應用 RP2040 中的 PWM 功能。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html b/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html new file mode 100644 index 000000000..643aa0e28 --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usage/index.html @@ -0,0 +1,97 @@ + + + + + +Timer and Alarm Usage in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    +

    計時器和鬧鐘的基本概念

    +

    在 RP2040 中,計時器和鬧鐘是兩個相關但又有所區別的概念。

    +
      +
    • +

      計時器(Timer): 計時器是一種用於測量時間間隔的硬體設備。在 RP2040 中,我們可以使用計時器來實現精確的時間控制和定時操作。計時器可以被配置為在特定時間間隔後觸發中斷,以執行相應的操作。

      +
    • +
    • +

      鬧鐘(Alarm): 鬧鐘是基於計時器的一種功能擴展。它允許我們在指定的時間點觸發一次性的操作。鬧鐘通常用於在未來的某個時間點執行特定的任務,例如在延遲一段時間後執行某個函數。

      +
    • +
    +

    代碼示例

    +

    讓我們通過一個具體的代碼示例來說明如何在 RP2040 中使用計時器和鬧鐘功能:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }

    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }

    int main() {
    stdio_init_all();
    printf("Hello Timer!\n");

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    printf("Done\n");
    return 0;
    }
    +

    讓我們逐步分析代碼的各個部分:

    +

    初始化和鬧鐘回調函數

    +
    volatile bool timer_fired = false;

    int64_t alarm_callback(alarm_id_t id, void *user_data) {
    printf("Timer %d fired!\n", (int) id);
    timer_fired = true;
    return 0;
    }
    +
      +
    • 我們定義了一個全局變量 timer_fired,用於標記計時器是否已經觸發。
    • +
    • alarm_callback 是鬧鐘的回調函數,當鬧鐘觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出一條消息,表示計時器已經觸發,並將 timer_fired 設置為 true
    • +
    • 回調函數返回 0,表示不需要重複觸發此鬧鐘。
    • +
    +

    重複計時器回調函數

    +
    bool repeating_timer_callback(struct repeating_timer *t) {
    printf("Repeat at %lld\n", time_us_64());
    return true;
    }
    +
      +
    • repeating_timer_callback 是重複計時器的回調函數,當重複計時器觸發時會調用此函數。
    • +
    • 在回調函數中,我們輸出當前的時間戳,表示重複計時器已經觸發。
    • +
    • 回調函數返回 true,表示需要繼續觸發此重複計時器。
    • +
    +

    使用鬧鐘(Alarm)

    +
    int main() {
    // ...

    // 在 2 秒後調用 alarm_callback
    add_alarm_in_ms(2000, alarm_callback, NULL, false);

    // 等待 alarm_callback 設置 timer_fired
    while (!timer_fired) {
    tight_loop_contents();
    }

    // ...
    }
    +
      +
    • main 函數中,我們使用 add_alarm_in_ms 函數創建了一個鬧鐘,設置在 2 秒後調用 alarm_callback 函數。
    • +
    • add_alarm_in_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及是否重複觸發的標誌。
    • +
    • 創建鬧鐘後,我們使用一個 while 循環等待 timer_fired 變量變為 true,表示鬧鐘已經觸發。
    • +
    • tight_loop_contents() 函數用於在等待期間避免編譯器優化掉空循環。
    • +
    +

    使用重複計時器(Repeating Timer)

    +
    int main() {
    // ...

    // 創建一個重複計時器,調用 repeating_timer_callback
    struct repeating_timer timer;
    add_repeating_timer_ms(500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    bool cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // 使用負延遲,在上一次調用結束後 500ms 調用 repeating_timer_callback
    add_repeating_timer_ms(-500, repeating_timer_callback, NULL, &timer);
    sleep_ms(3000);

    cancelled = cancel_repeating_timer(&timer);
    printf("cancelled... %d\n", cancelled);
    sleep_ms(2000);

    // ...
    }
    +
      +
    • 接下來,我們使用 add_repeating_timer_ms 函數創建了一個重複計時器,設置每隔 500 毫秒調用一次 repeating_timer_callback 函數。
    • +
    • add_repeating_timer_ms 函數的參數包括延遲時間(以毫秒為單位)、回調函數、用戶數據(這裡設為 NULL)以及一個指向 repeating_timer 結構體的指針。
    • +
    • 創建重複計時器後,我們使用 sleep_ms 函數等待 3 秒鐘,期間重複計時器會持續觸發。
    • +
    • 然後,我們使用 cancel_repeating_timer 函數取消重複計時器,並輸出取消的結果。我們再次等待 2 秒鐘,觀察重複計時器是否已經停止觸發。
    • +
    • 接下來,我們再次創建了一個重複計時器,但這次使用了負的延遲時間 -500。這意味著重複計時器會在上一次調用結束後 500 毫秒再次觸發,而不管回調函數的執行時間。我們等待 3 秒鐘,觀察重複計時器的行為。
    • +
    • 最後,我們再次取消重複計時器,等待 2 秒鐘,並輸出 "Done" 表示程序執行完畢。
    • +
    +

    在其他程序中使用計時器

    +

    如果你想在其他程序中使用計時器功能,可以將計時器的創建和管理封裝到單獨的函數或模塊中。這樣,你就可以在不同的程序中方便地調用這些函數,實現計時器的重用。

    +

    以下是一個簡單的示例,展示了如何將計時器功能封裝到單獨的函數中:

    +
    #include <stdio.h>
    #include "pico/stdlib.h"

    void timer_callback(void) {
    printf("Timer triggered!\n");
    // 執行定時任務
    // ...
    }

    void start_timer(uint32_t delay_ms) {
    struct repeating_timer timer;
    add_repeating_timer_ms(delay_ms, timer_callback, NULL, &timer);
    }

    int main() {
    stdio_init_all();

    // 啟動定時器,每秒觸發一次
    start_timer(1000);

    // 執行其他任務
    // ...

    return 0;
    }
    +

    在上面的示例中,我們定義了一個 timer_callback 函數,作為計時器的回調函數。然後,我們創建了一個 start_timer 函數,用於啟動計時器。在 main 函數中,我們調用 start_timer 函數,設置計時器每秒觸發一次,然後執行其他任務。

    +

    通過這種方式,你可以將計時器功能與其他程序解耦,使得程序的結構更加清晰,且便於維護和擴展。

    +

    計時器的參數和配置

    +

    在使用計時器和鬧鐘時,你可以根據需要配置各種參數,以滿足不同的需求。以下是一些常用的參數和配置選項:

    +
      +
    • +

      延遲時間(Delay): +指定計時器觸發的延遲時間,可以是毫秒(ms)或微秒(us)。你可以根據需要選擇合適的時間單位和值。

      +
    • +
    • +

      回調函數(Callback): +指定計時器觸發時要執行的函數。你可以根據實際需求編寫自定義的回調函數,執行所需的操作。

      +
    • +
    • +

      用戶數據(User Data): +可以將自定義的數據傳遞給回調函數,以便在回調函數中使用。這可以是指針、結構體或其他類型的數據。

      +
    • +
    • +

      重複觸發(Repeat): +指定計時器是否需要重複觸發。對於一次性的計時器,可以將重複觸發設置為 false;對於重複觸發的計時器,可以將其設置為 true

      +
    • +
    • +

      精度(Precision): +計時器的精度取決於硬體和軟體的實現。RP2040 提供了高精度的計時器,可以達到微秒級別的精度。但是,實際的精度還取決於系統的時鐘頻率和中斷處理的延遲。

      +
    • +
    +

    總結

    +

    在本文中,我們深入探討了如何在 RP2040 中使用計時器和鬧鐘功能。通過詳細的代碼示例和解釋,你應該對計時器和鬧鐘的工作原理有了更全面的理解。

    +

    我們討論了計時器和鬧鐘的基本概念,並展示了如何創建和使用它們。無論是一次性的鬧鐘還是重複觸發的計時器,你都可以根據需求靈活地配置和使用它們。

    +

    此外,我們還探討了如何在其他程序中使用計時器功能,通過將計時器封裝到單獨的函數或模塊中,使其更加通用和可重用。

    +

    最後,我們介紹了計時器的一些常用參數和配置選項,幫助你根據實際需求進行靈活的設置。

    +

    希望這篇文章能夠幫助你更好地理解和應用 RP2040 中的計時器和鬧鐘功能,為你的嵌入式開發項目提供有力的支持。如果你有任何問題或建議,歡迎在評論區留言討論。

    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html b/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html new file mode 100644 index 000000000..02063755b --- /dev/null +++ b/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usage/index.html @@ -0,0 +1,82 @@ + + + + + +UART Interrupt Handling and Data Transmission in RP2040 | 🌵 El Jardín Secreto 🌵 + + + + + +

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    +
    UART 簡介

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一種常用的串口通信協議,廣泛應用於嵌入式系統中。它以異步的方式進行資料傳輸,透過 TX(發送)和 RX(接收)兩條線來實現全雙工通信。UART 的資料格式包括起始位、資料位、校驗位(可選)和停止位。

    +

    在 RP2040 中使用 UART

    +

    RP2040 是 Raspberry Pi Pico 的核心,它提供了兩個 UART 模組(UART0 和 UART1),可以用於與其他裝置進行串口通信。要在 RP2040 中使用 UART,我們需要執行以下步驟:

    +

    1. 初始化 UART

    +
      +
    • 設定 UART 的參數,如波特率(baud rate)、資料位元數(data bits)、停止位元(stop bits)和同位檢查位元(parity bit)。
    • +
    • 選擇要使用的 UART 模組(UART0 或 UART1)。
    • +
    • 配置 UART 使用的 TX 和 RX 引腳。
    • +
    +

    2. 發送資料

    +
      +
    • 使用 uart_putc() 函式發送單個字元。
    • +
    • 使用 uart_puts() 函式發送字串。
    • +
    • 透過檢查 UART 的可寫入狀態(uart_is_writable())來避免資料覆寫。
    • +
    +

    3. 接收資料

    +
      +
    • 使用 uart_getc() 函式接收單個字元。
    • +
    • 透過檢查 UART 的可讀取狀態(uart_is_readable())來判斷是否有新資料到達。
    • +
    • 在中斷處理函式中處理接收到的資料。
    • +
    +

    4. 設定中斷

    +
      +
    • 設定 UART 的中斷處理函式。
    • +
    • 啟用 UART 的 RX 中斷。
    • +
    • 在中斷處理函式中讀取接收到的資料,並進行相應的處理。
    • +
    +

    以下是一個使用 UART 的程式碼範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    static int chars_rxed = 0;

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    // 在此處理接收到的資料
    // ...
    chars_rxed++;
    }
    }

    int main() {
    // 初始化 UART
    uart_init(UART_ID, BAUD_RATE);

    // 設定 TX 和 RX 引腳的功能
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);

    // 設定 UART 資料格式
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    // 發送初始訊息
    uart_puts(UART_ID, "Hello, UART!\n");

    // 主迴圈
    while (1) {
    // 在此執行其他任務
    // ...
    }
    }
    +

    在這個程式碼範例中,我們首先引入了必要的標頭檔,並定義了 UART 的相關參數,如波特率、資料位元數、停止位元和校驗位元。接著,我們初始化 UART,設定 TX 和 RX 引腳的功能,並配置 UART 的資料格式。

    +

    為了處理接收到的資料,我們設定了 RX 中斷,並定義了中斷處理函式 on_uart_rx()。當 UART 接收到資料時,中斷處理函式會被觸發,我們可以在其中讀取接收到的資料並進行相應的處理。

    +

    接下來,我們發送一個初始訊息,表示 UART 已經就緒。在主迴圈中,我們可以執行其他任務,而接收到的資料會透過中斷處理函式自動處理。

    +

    FIFO 的使用

    +

    FIFO(First In First Out,先進先出)是一種資料緩衝區,可以用於暫存 UART 接收到的資料。在 RP2040 中,每個 UART 模組都有一個對應的 FIFO。

    +
    啟用 FIFO
      +
    • 使用 uart_set_fifo_enabled() 函式啟用 UART 的 FIFO 功能。
    • +
    • 設定 FIFO 的深度,即可存儲的資料量。
    • +
    +
    不啟用 FIFO
      +
    • 如果不啟用 FIFO,每次接收到資料都會觸發中斷。
    • +
    • 這種方式適用於對即時性要求較高的場景,但可能會增加 CPU 的負擔。
    • +
    +
    使用 FIFO 的好處
      +
    • 啟用 FIFO 後,只有當 FIFO 中累積了一定數量的資料或達到設定的閾值時,才會觸發中斷。
    • +
    • 這種方式可以減少中斷的頻率,降低 CPU 的負擔。
    • +
    • FIFO 提供了緩衝區,可以暫存一定量的資料,避免資料丟失。
    • +
    +

    以下是啟用 FIFO 的程式碼範例:

    +
    // 啟用 FIFO
    uart_set_fifo_enabled(UART_ID, true);

    // 設定 FIFO 的深度
    uart_set_fifo_threshold(UART_ID, UART_FIFO_DEPTH);
    +

    在這個範例中,我們使用 uart_set_fifo_enabled() 函式啟用了 UART 的 FIFO 功能,並使用 uart_set_fifo_threshold() 函式設定了 FIFO 的深度。啟用 FIFO 後,當 FIFO 中累積的資料量達到設定的閾值時,才會觸發中斷。

    +

    資料發送和接收

    +

    在 RP2040 中,我們可以使用以下函式來發送和接收 UART 資料:

    +

    發送單個字元

    +
    uart_putc(UART_ID, char_to_send);
    +

    發送字串

    +
    uart_puts(UART_ID, string_to_send);
    +

    接收單個字元

    +
    uint8_t received_char = uart_getc(UART_ID);
    +

    檢查是否有可讀取的資料

    +
    if (uart_is_readable(UART_ID)) {
    // 有可讀取的資料
    // ...
    }
    +

    檢查是否可以寫入資料

    +
    if (uart_is_writable(UART_ID)) {
    // 可以寫入資料
    // ...
    }
    +

    透過這些函式,我們可以方便地發送和接收 UART 資料。在發送資料時,我們可以使用 uart_putc() 發送單個字元,或使用 uart_puts() 發送字串。在接收資料時,我們可以使用 uart_getc() 接收單個字元,並使用 uart_is_readable() 檢查是否有可讀取的資料。

    +

    實際應用範例

    +

    以下是一個使用 UART 控制 LED 的範例:

    +
    #include "pico/stdlib.h"
    #include "hardware/uart.h"
    #include "hardware/irq.h"

    #define UART_ID uart0
    #define BAUD_RATE 115200
    #define DATA_BITS 8
    #define STOP_BITS 1
    #define PARITY UART_PARITY_NONE

    #define UART_TX_PIN 0
    #define UART_RX_PIN 1

    #define LED_PIN 25

    void on_uart_rx() {
    while (uart_is_readable(UART_ID)) {
    uint8_t ch = uart_getc(UART_ID);
    switch (ch) {
    case 'o':
    gpio_put(LED_PIN, 1);
    uart_puts(UART_ID, "LED ON\n");
    break;
    case 'f':
    gpio_put(LED_PIN, 0);
    uart_puts(UART_ID, "LED OFF\n");
    break;
    default:
    uart_puts(UART_ID, "Invalid command\n");
    break;
    }
    }
    }

    int main() {
    // 初始化 UART 和 LED
    uart_init(UART_ID, BAUD_RATE);
    gpio_set_function(UART_TX_PIN, GPIO_FUNC_UART);
    gpio_set_function(UART_RX_PIN, GPIO_FUNC_UART);
    uart_set_format(UART_ID, DATA_BITS, STOP_BITS, PARITY);

    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);

    // 設定 RX 中斷
    int UART_IRQ = UART_ID == uart0 ? UART0_IRQ : UART1_IRQ;
    irq_set_exclusive_handler(UART_IRQ, on_uart_rx);
    irq_set_enabled(UART_IRQ, true);
    uart_set_irq_enables(UART_ID, true, false);

    uart_puts(UART_ID, "UART LED Control\n");
    uart_puts(UART_ID, "Commands: 'o' - LED ON, 'f' - LED OFF\n");

    while (1) {
    tight_loop_contents();
    }
    }
    +

    在這個範例中,我們使用 UART 接收指令,並根據接收到的指令控制 LED 的亮滅。當接收到字元 'o' 時,LED 會亮起,並回傳 "LED ON" 的訊息;當接收到字元 'f' 時,LED 會熄滅,並回傳 "LED OFF" 的訊息。如果接收到其他字元,則回傳 "Invalid command" 的訊息。

    +

    透過這種方式,我們可以使用 UART 發送簡單的指令來控制 RP2040 上的 LED,實現遠端控制的功能。

    + + \ No newline at end of file diff --git a/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html b/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html new file mode 100644 index 000000000..00a95bec4 --- /dev/null +++ b/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemx/index.html @@ -0,0 +1,109 @@ + + + + + +Desarrollo de comunicación CDC con STM32CubeMX | 🌵 El Jardín Secreto 🌵 + + + + + +

    Desarrollo de comunicación CDC con STM32CubeMX

    +

    Configuración de STM32CubeMX

    +
      +
    1. Habilitar el modo USB Device FS (Full Speed) en la pestaña de Pinout & Configuration.
    2. +
    3. Seleccionar el modo CDC (Communication Device Class) en la pestaña de USB Device.
    4. +
    5. Generar el código del proyecto.
    6. +
    +

    Implementación del código

    +

    En la función CDC_Receive_FS():

    +
      +
    1. Establecer el búfer de recepción USB utilizando USBD_CDC_SetRxBuffer().
    2. +
    3. Llamar a USBD_CDC_ReceivePacket() para indicar que el dispositivo está listo para recibir más datos.
    4. +
    5. Si se desea enviar los datos recibidos de vuelta al host, llamar a CDC_Transmit_FS().
    6. +
    7. Retornar USBD_OK para indicar que los datos han sido procesados.
    8. +
    +

    En la función CDC_Transmit_FS():

    +
      +
    1. Verificar el estado del búfer de transmisión USB (hcdc->TxState).
    2. +
    3. Establecer el búfer de transmisión USB utilizando USBD_CDC_SetTxBuffer().
    4. +
    5. Llamar a USBD_CDC_TransmitPacket() para enviar los datos.
    6. +
    7. Retornar el resultado de la transmisión.
    8. +
    +

    Habilitación de interrupciones

    +
      +
    1. Habilitar las interrupciones USB en el proyecto generado por STM32CubeMX.
    2. +
    3. Implementar las funciones de callback de recepción y transmisión USB, como USBD_CDC_DataReceived_FS() y USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Procesamiento de datos

    +
      +
    1. En las funciones de callback, procesar los datos recibidos y preparar los datos a enviar.
    2. +
    3. Utilizar las funciones CDC_Receive_FS() y CDC_Transmit_FS() para gestionar la recepción y transmisión de datos.
    4. +
    +

    CDC Development with STM32CubeMX

    +

    STM32CubeMX Configuration

    +
      +
    1. Enable USB Device FS (Full Speed) mode in the Pinout & Configuration tab.
    2. +
    3. Select CDC (Communication Device Class) mode in the USB Device tab.
    4. +
    5. Generate the project code.
    6. +
    +

    Code Implementation

    +

    In the CDC_Receive_FS() function:

    +
      +
    1. Set the USB receive buffer using USBD_CDC_SetRxBuffer().
    2. +
    3. Call USBD_CDC_ReceivePacket() to indicate the device is ready to receive more data.
    4. +
    5. If you want to send the received data back to the host, call CDC_Transmit_FS().
    6. +
    7. Return USBD_OK to indicate the data has been processed.
    8. +
    +

    In the CDC_Transmit_FS() function:

    +
      +
    1. Verify the state of the USB transmit buffer (hcdc->TxState).
    2. +
    3. Set the USB transmit buffer using USBD_CDC_SetTxBuffer().
    4. +
    5. Call USBD_CDC_TransmitPacket() to send the data.
    6. +
    7. Return the result of the transmission.
    8. +
    +

    Interrupt Enablement

    +
      +
    1. Enable the USB interrupts in the project generated by STM32CubeMX.
    2. +
    3. Implement the USB receive and transmit callback functions, such as USBD_CDC_DataReceived_FS() and USBD_CDC_TransmitCplt_FS().
    4. +
    +

    Data Processing

    +
      +
    1. In the callback functions, process the received data and prepare the data to be sent.
    2. +
    3. Use the CDC_Receive_FS() and CDC_Transmit_FS() functions to manage the data reception and transmission.
    4. +
    +

    使用 STM32CubeMX 開發 CDC 通訊

    +

    STM32CubeMX 設定

    +
      +
    1. 在 Pinout & Configuration 標籤中啟用 USB Device FS (Full Speed) 模式。
    2. +
    3. 在 USB Device 標籤中選擇 CDC (Communication Device Class) 模式。
    4. +
    5. 產生專案程式碼。
    6. +
    +

    程式碼實作

    +

    CDC_Receive_FS() 函數中:

    +
      +
    1. 使用 USBD_CDC_SetRxBuffer() 設定接收緩衝區。
    2. +
    3. 呼叫 USBD_CDC_ReceivePacket() 表示設備已準備好接收更多資料。
    4. +
    5. 如果需要將收到的資料回傳至主機, 呼叫 CDC_Transmit_FS()
    6. +
    7. 返回 USBD_OK 表示資料已處理完成。
    8. +
    +

    CDC_Transmit_FS() 函數中:

    +
      +
    1. 檢查傳輸緩衝區的狀態 (hcdc->TxState)。
    2. +
    3. 使用 USBD_CDC_SetTxBuffer() 設定傳輸緩衝區。
    4. +
    5. 呼叫 USBD_CDC_TransmitPacket() 傳送資料。
    6. +
    7. 返回傳輸結果。
    8. +
    +

    中斷啟用

    +
      +
    1. 在 STM32CubeMX 產生的專案中啟用 USB 中斷。
    2. +
    3. 實作接收和傳輸的回呼函數, 如 USBD_CDC_DataReceived_FS()USBD_CDC_TransmitCplt_FS()
    4. +
    +

    資料處理

    +
      +
    1. 在回呼函數中處理接收到的資料, 並準備要傳送的資料。
    2. +
    3. 使用 CDC_Receive_FS()CDC_Transmit_FS() 函數管理資料的接收和傳輸。
    4. +
    + + \ No newline at end of file diff --git a/zh-hk/sitemap.xml b/zh-hk/sitemap.xml new file mode 100644 index 000000000..e5078f44a --- /dev/null +++ b/zh-hk/sitemap.xml @@ -0,0 +1 @@ +https://me.w0x7ce.eu/zh-hk/blogweekly0.5https://me.w0x7ce.eu/zh-hk/blog/archiveweekly0.5https://me.w0x7ce.eu/zh-hk/blog/Docker-Getting-Srart-01weekly0.5https://me.w0x7ce.eu/zh-hk/blog/first-blog-postweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tagsweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/dockerweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/docusaurusweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/holaweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/linuxweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/miscweekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92weekly0.5https://me.w0x7ce.eu/zh-hk/blog/tags/%E8%BB%9F%E4%BB%B6weekly0.5https://me.w0x7ce.eu/zh-hk/index.zh-hkweekly0.5https://me.w0x7ce.eu/zh-hk/markdown-pageweekly0.5https://me.w0x7ce.eu/zh-hk/weekly0.5https://me.w0x7ce.eu/zh-hk/tagsweekly0.5https://me.w0x7ce.eu/zh-hk/tags/alarmweekly0.5https://me.w0x7ce.eu/zh-hk/tags/cdcweekly0.5https://me.w0x7ce.eu/zh-hk/tags/embedded-systemsweekly0.5https://me.w0x7ce.eu/zh-hk/tags/interruptsweekly0.5https://me.w0x7ce.eu/zh-hk/tags/led-controlweekly0.5https://me.w0x7ce.eu/zh-hk/tags/pioweekly0.5https://me.w0x7ce.eu/zh-hk/tags/pwmweekly0.5https://me.w0x7ce.eu/zh-hk/tags/raspberry-pi-picoweekly0.5https://me.w0x7ce.eu/zh-hk/tags/resource-managementweekly0.5https://me.w0x7ce.eu/zh-hk/tags/rp-2040weekly0.5https://me.w0x7ce.eu/zh-hk/tags/serial-communicationweekly0.5https://me.w0x7ce.eu/zh-hk/tags/state-machine-optimizationweekly0.5https://me.w0x7ce.eu/zh-hk/tags/stm-32weekly0.5https://me.w0x7ce.eu/zh-hk/tags/timerweekly0.5https://me.w0x7ce.eu/zh-hk/tags/uartweekly0.5https://me.w0x7ce.eu/zh-hk/tags/usbweekly0.5https://me.w0x7ce.eu/zh-hk/introweekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/advanced-pio-led-control-resource-management-rp2040weekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/mastering-pio-programming-rp2040weekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/pio-uart-implementation-rp2040weekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/rp2040-pwm-usage-and-examplesweekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/rp2040-timer-and-alarm-usageweekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/RP2040/rp2040-uart-interrupt-handling-and-usageweekly0.5https://me.w0x7ce.eu/zh-hk/micro-controladores/STM32/desarrollo-cdc-stm32cubemxweekly0.5https://me.w0x7ce.eu/zh-hk/tutorialweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/congratulationsweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/create-a-blog-postweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/create-a-documentweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/create-a-pageweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/deploy-your-siteweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-basics/markdown-featuresweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-extras/manage-docs-versionsweekly0.5https://me.w0x7ce.eu/zh-hk/tutorial-extras/translate-your-siteweekly0.5 \ No newline at end of file diff --git a/zh-hk/tags/alarm/index.html b/zh-hk/tags/alarm/index.html new file mode 100644 index 000000000..1dcd4c1ae --- /dev/null +++ b/zh-hk/tags/alarm/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「alarm」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「alarm」

    檢視所有標籤

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/zh-hk/tags/cdc/index.html b/zh-hk/tags/cdc/index.html new file mode 100644 index 000000000..5ae73973f --- /dev/null +++ b/zh-hk/tags/cdc/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「cdc」 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/tags/embedded-systems/index.html b/zh-hk/tags/embedded-systems/index.html new file mode 100644 index 000000000..73b934a32 --- /dev/null +++ b/zh-hk/tags/embedded-systems/index.html @@ -0,0 +1,14 @@ + + + + + +6 篇文件帶有標籤「embedded systems」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 篇文件帶有標籤「embedded systems」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/index.html b/zh-hk/tags/index.html new file mode 100644 index 000000000..a95df318f --- /dev/null +++ b/zh-hk/tags/index.html @@ -0,0 +1,14 @@ + + + + + +標籤 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/tags/interrupts/index.html b/zh-hk/tags/interrupts/index.html new file mode 100644 index 000000000..e96612103 --- /dev/null +++ b/zh-hk/tags/interrupts/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「interrupts」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「interrupts」

    檢視所有標籤

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/led-control/index.html b/zh-hk/tags/led-control/index.html new file mode 100644 index 000000000..a7f3e6e9e --- /dev/null +++ b/zh-hk/tags/led-control/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「LED Control」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「LED Control」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/zh-hk/tags/pio/index.html b/zh-hk/tags/pio/index.html new file mode 100644 index 000000000..cbf6e00f5 --- /dev/null +++ b/zh-hk/tags/pio/index.html @@ -0,0 +1,14 @@ + + + + + +3 篇文件帶有標籤「PIO」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    3 篇文件帶有標籤「PIO」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/zh-hk/tags/pwm/index.html b/zh-hk/tags/pwm/index.html new file mode 100644 index 000000000..e0ffb0395 --- /dev/null +++ b/zh-hk/tags/pwm/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「PWM」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「PWM」

    檢視所有標籤

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    + + \ No newline at end of file diff --git a/zh-hk/tags/raspberry-pi-pico/index.html b/zh-hk/tags/raspberry-pi-pico/index.html new file mode 100644 index 000000000..ca45b1292 --- /dev/null +++ b/zh-hk/tags/raspberry-pi-pico/index.html @@ -0,0 +1,14 @@ + + + + + +6 篇文件帶有標籤「Raspberry Pi Pico」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 篇文件帶有標籤「Raspberry Pi Pico」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/resource-management/index.html b/zh-hk/tags/resource-management/index.html new file mode 100644 index 000000000..bbfb61a7a --- /dev/null +++ b/zh-hk/tags/resource-management/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「Resource Management」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「Resource Management」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/zh-hk/tags/rp-2040/index.html b/zh-hk/tags/rp-2040/index.html new file mode 100644 index 000000000..ab0c7300b --- /dev/null +++ b/zh-hk/tags/rp-2040/index.html @@ -0,0 +1,14 @@ + + + + + +6 篇文件帶有標籤「RP2040」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    6 篇文件帶有標籤「RP2040」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    Detailed Explanation of PWM Usage and Examples in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用 PWM(Pulse Width Modulation,脈衝寬度調製)功能。我們將通過三個具體的程序示例,深入了解 PWM 的工作原理,以及如何在 RP2040 中配置和使用 PWM。無論你是想要輸出 PWM 信號、控制 LED 亮度,還是測量 PWM 信號的佔空比,這篇文章都將為你提供詳盡的指導。

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/serial-communication/index.html b/zh-hk/tags/serial-communication/index.html new file mode 100644 index 000000000..1dab6faf6 --- /dev/null +++ b/zh-hk/tags/serial-communication/index.html @@ -0,0 +1,14 @@ + + + + + +2 篇文件帶有標籤「serial communication」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 篇文件帶有標籤「serial communication」

    檢視所有標籤

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/state-machine-optimization/index.html b/zh-hk/tags/state-machine-optimization/index.html new file mode 100644 index 000000000..5720b8ad4 --- /dev/null +++ b/zh-hk/tags/state-machine-optimization/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「state machine optimization」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「state machine optimization」

    檢視所有標籤

    Advanced PIO LED Control and Resource Management on RP2040

    在嵌入式系統開發中,有效利用微控制器的資源至關重要。本文將深入探討如何在 Raspberry Pi Pico 的 RP2040 晶片上使用可程式化輸入/輸出(PIO)來實現複雜的 LED 控制邏輯,同時有效管理 PIO 資源。

    + + \ No newline at end of file diff --git a/zh-hk/tags/stm-32/index.html b/zh-hk/tags/stm-32/index.html new file mode 100644 index 000000000..30ea83bce --- /dev/null +++ b/zh-hk/tags/stm-32/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「stm32」 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/tags/timer/index.html b/zh-hk/tags/timer/index.html new file mode 100644 index 000000000..749a753a4 --- /dev/null +++ b/zh-hk/tags/timer/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「timer」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    1 篇文件帶有標籤「timer」

    檢視所有標籤

    Timer and Alarm Usage in RP2040

    在這篇文章中,我將為大家詳細講解如何在 RP2040 中使用計時器(Timer)和鬧鐘(Alarm)功能。我們將通過一個具體的代碼示例,深入了解計時器和鬧鐘的工作原理,以及如何在程序中靈活運用它們。無論是需要執行定時任務,還是希望在其他程序中使用計時器功能,這篇文章都將為你提供實用的指導。

    + + \ No newline at end of file diff --git a/zh-hk/tags/uart/index.html b/zh-hk/tags/uart/index.html new file mode 100644 index 000000000..ae2ec5abe --- /dev/null +++ b/zh-hk/tags/uart/index.html @@ -0,0 +1,14 @@ + + + + + +2 篇文件帶有標籤「UART」 | 🌵 El Jardín Secreto 🌵 + + + + + +

    2 篇文件帶有標籤「UART」

    檢視所有標籤

    UART Interrupt Handling and Data Transmission in RP2040

    在這篇文章中,我將與大家分享如何在 RP2040 中使用 UART 進行資料收發,並透過中斷方式有效地處理接收到的資料。我會詳細解析程式碼,討論 FIFO 的使用,並提供實際應用的範例,帶領大家深入理解 UART 在 RP2040 中的工作原理和使用方法。

    + + \ No newline at end of file diff --git a/zh-hk/tags/usb/index.html b/zh-hk/tags/usb/index.html new file mode 100644 index 000000000..f220dd08c --- /dev/null +++ b/zh-hk/tags/usb/index.html @@ -0,0 +1,14 @@ + + + + + +1 篇文件帶有標籤「usb」 | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/congratulations/index.html b/zh-hk/tutorial-basics/congratulations/index.html new file mode 100644 index 000000000..bdbfeaf77 --- /dev/null +++ b/zh-hk/tutorial-basics/congratulations/index.html @@ -0,0 +1,28 @@ + + + + + +Congratulations! | 🌵 El Jardín Secreto 🌵 + + + + + +

    Congratulations!

    +

    You have just learned the basics of Docusaurus and made some changes to the initial template.

    +

    Docusaurus has much more to offer!

    +

    Have 5 more minutes? Take a look at versioning and i18n.

    +

    Anything unclear or buggy in this tutorial? Please report it!

    +

    What's next?

    +
    + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/create-a-blog-post/index.html b/zh-hk/tutorial-basics/create-a-blog-post/index.html new file mode 100644 index 000000000..6bcbc9cd8 --- /dev/null +++ b/zh-hk/tutorial-basics/create-a-blog-post/index.html @@ -0,0 +1,19 @@ + + + + + +Create a Blog Post | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Blog Post

    +

    Docusaurus creates a page for each blog post, but also a blog index page, a tag system, an RSS feed...

    +

    Create your first Post

    +

    Create a file at blog/2021-02-28-greetings.md:

    +
    blog/2021-02-28-greetings.md
    ---
    slug: greetings
    title: Greetings!
    authors:
    - name: Joel Marcey
    title: Co-creator of Docusaurus 1
    url: https://github.com/JoelMarcey
    image_url: https://github.com/JoelMarcey.png
    - name: Sébastien Lorber
    title: Docusaurus maintainer
    url: https://sebastienlorber.com
    image_url: https://github.com/slorber.png
    tags: [greetings]
    ---

    Congratulations, you have made your first post!

    Feel free to play around and edit this post as much as you like.
    +

    A new blog post is now available at http://localhost:3000/blog/greetings.

    + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/create-a-document/index.html b/zh-hk/tutorial-basics/create-a-document/index.html new file mode 100644 index 000000000..43a195708 --- /dev/null +++ b/zh-hk/tutorial-basics/create-a-document/index.html @@ -0,0 +1,30 @@ + + + + + +Create a Document | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Document

    +

    Documents are groups of pages connected through:

    +
      +
    • a sidebar
    • +
    • previous/next navigation
    • +
    • versioning
    • +
    +

    Create your first Doc

    +

    Create a Markdown file at docs/hello.md:

    +
    docs/hello.md
    # Hello

    This is my **first Docusaurus document**!
    +

    A new document is now available at http://localhost:3000/docs/hello.

    +

    Configure the Sidebar

    +

    Docusaurus automatically creates a sidebar from the docs folder.

    +

    Add metadata to customize the sidebar label and position:

    +
    docs/hello.md
    ---
    sidebar_label: 'Hi!'
    sidebar_position: 3
    ---

    # Hello

    This is my **first Docusaurus document**!
    +

    It is also possible to create your sidebar explicitly in sidebars.js:

    +
    sidebars.js
    export default {
    tutorialSidebar: [
    'intro',
    'hello',
    {
    type: 'category',
    label: 'Tutorial',
    items: ['tutorial-basics/create-a-document'],
    },
    ],
    };
    + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/create-a-page/index.html b/zh-hk/tutorial-basics/create-a-page/index.html new file mode 100644 index 000000000..926ab2d0d --- /dev/null +++ b/zh-hk/tutorial-basics/create-a-page/index.html @@ -0,0 +1,28 @@ + + + + + +Create a Page | 🌵 El Jardín Secreto 🌵 + + + + + +

    Create a Page

    +

    Add Markdown or React files to src/pages to create a standalone page:

    +
      +
    • src/pages/index.jslocalhost:3000/
    • +
    • src/pages/foo.mdlocalhost:3000/foo
    • +
    • src/pages/foo/bar.jslocalhost:3000/foo/bar
    • +
    +

    Create your first React Page

    +

    Create a file at src/pages/my-react-page.js:

    +
    src/pages/my-react-page.js
    import React from 'react';
    import Layout from '@theme/Layout';

    export default function MyReactPage() {
    return (
    <Layout>
    <h1>My React page</h1>
    <p>This is a React page</p>
    </Layout>
    );
    }
    +

    A new page is now available at http://localhost:3000/my-react-page.

    +

    Create your first Markdown Page

    +

    Create a file at src/pages/my-markdown-page.md:

    +
    src/pages/my-markdown-page.md
    # My Markdown page

    This is a Markdown page
    +

    A new page is now available at http://localhost:3000/my-markdown-page.

    + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/deploy-your-site/index.html b/zh-hk/tutorial-basics/deploy-your-site/index.html new file mode 100644 index 000000000..5f4d0b8b1 --- /dev/null +++ b/zh-hk/tutorial-basics/deploy-your-site/index.html @@ -0,0 +1,25 @@ + + + + + +Deploy your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Deploy your site

    +

    Docusaurus is a static-site-generator (also called Jamstack).

    +

    It builds your site as simple static HTML, JavaScript and CSS files.

    +

    Build your site

    +

    Build your site for production:

    +
    npm run build
    +

    The static files are generated in the build folder.

    +

    Deploy your site

    +

    Test your production build locally:

    +
    npm run serve
    +

    The build folder is now served at http://localhost:3000/.

    +

    You can now deploy the build folder almost anywhere easily, for free or very small cost (read the Deployment Guide).

    + + \ No newline at end of file diff --git a/zh-hk/tutorial-basics/markdown-features/index.html b/zh-hk/tutorial-basics/markdown-features/index.html new file mode 100644 index 000000000..ec0df52d8 --- /dev/null +++ b/zh-hk/tutorial-basics/markdown-features/index.html @@ -0,0 +1,45 @@ + + + + + +Markdown Features | 🌵 El Jardín Secreto 🌵 + + + + + +

    Markdown Features

    +

    Docusaurus supports Markdown and a few additional features.

    +

    Front Matter

    +

    Markdown documents have metadata at the top called Front Matter:

    +
    my-doc.md
    ---
    id: my-doc-id
    title: My document title
    description: My document description
    slug: /my-custom-url
    ---

    ## Markdown heading

    Markdown text with [links](./hello.md)
    + +

    Regular Markdown links are supported, using url paths or relative file paths.

    +
    Let's see how to [Create a page](/create-a-page).
    +
    Let's see how to [Create a page](./create-a-page.md).
    +

    Result: Let's see how to Create a page.

    +

    Images

    +

    Regular Markdown images are supported.

    +

    You can use absolute paths to reference images in the static directory (static/img/docusaurus.png):

    +
    ![Docusaurus logo](/img/docusaurus.png)
    +

    Docusaurus logo

    +

    You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:

    +
    ![Docusaurus logo](./img/docusaurus.png)
    +

    Code Blocks

    +

    Markdown code blocks are supported with Syntax highlighting.

    +
    ```jsx title="src/components/HelloDocusaurus.js"
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    ```
    +
    src/components/HelloDocusaurus.js
    function HelloDocusaurus() {
    return <h1>Hello, Docusaurus!</h1>;
    }
    +

    Admonitions

    +

    Docusaurus has a special syntax to create admonitions and callouts:

    +
    :::tip[My tip]

    Use this awesome feature option

    :::

    :::danger[Take care]

    This action is dangerous

    :::
    +
    My tip

    Use this awesome feature option

    +
    Take care

    This action is dangerous

    +

    MDX and React Components

    +

    MDX can make your documentation more interactive and allows using any React components inside Markdown:

    +
    export const Highlight = ({children, color}) => (
    <span
    style={{
    backgroundColor: color,
    borderRadius: '20px',
    color: '#fff',
    padding: '10px',
    cursor: 'pointer',
    }}
    onClick={() => {
    alert(`You clicked the color ${color} with label ${children}`)
    }}>
    {children}
    </span>
    );

    This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !

    This is <Highlight color="#1877F2">Facebook blue</Highlight> !
    + +

    This is Docusaurus green !

    +

    This is Facebook blue !

    + + \ No newline at end of file diff --git a/zh-hk/tutorial-extras/manage-docs-versions/index.html b/zh-hk/tutorial-extras/manage-docs-versions/index.html new file mode 100644 index 000000000..a1e79d2f8 --- /dev/null +++ b/zh-hk/tutorial-extras/manage-docs-versions/index.html @@ -0,0 +1,36 @@ + + + + + +Manage Docs Versions | 🌵 El Jardín Secreto 🌵 + + + + + +

    Manage Docs Versions

    +

    Docusaurus can manage multiple versions of your docs.

    +

    Create a docs version

    +

    Release a version 1.0 of your project:

    +
    npm run docusaurus docs:version 1.0
    +

    The docs folder is copied into versioned_docs/version-1.0 and versions.json is created.

    +

    Your docs now have 2 versions:

    +
      +
    • 1.0 at http://localhost:3000/docs/ for the version 1.0 docs
    • +
    • current at http://localhost:3000/docs/next/ for the upcoming, unreleased docs
    • +
    +

    Add a Version Dropdown

    +

    To navigate seamlessly across versions, add a version dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'docsVersionDropdown',
    },
    ],
    },
    },
    };
    +

    The docs version dropdown appears in your navbar:

    +

    Docs Version Dropdown

    +

    Update an existing version

    +

    It is possible to edit versioned docs in their respective folder:

    +
      +
    • versioned_docs/version-1.0/hello.md updates http://localhost:3000/docs/hello
    • +
    • docs/hello.md updates http://localhost:3000/docs/next/hello
    • +
    + + \ No newline at end of file diff --git a/zh-hk/tutorial-extras/translate-your-site/index.html b/zh-hk/tutorial-extras/translate-your-site/index.html new file mode 100644 index 000000000..b9d608535 --- /dev/null +++ b/zh-hk/tutorial-extras/translate-your-site/index.html @@ -0,0 +1,38 @@ + + + + + +Translate your site | 🌵 El Jardín Secreto 🌵 + + + + + +

    Translate your site

    +

    Let's translate docs/intro.md to French.

    +

    Configure i18n

    +

    Modify docusaurus.config.js to add support for the fr locale:

    +
    docusaurus.config.js
    export default {
    i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr'],
    },
    };
    +

    Translate a doc

    +

    Copy the docs/intro.md file to the i18n/fr folder:

    +
    mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/

    cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
    +

    Translate i18n/fr/docusaurus-plugin-content-docs/current/intro.md in French.

    +

    Start your localized site

    +

    Start your site on the French locale:

    +
    npm run start -- --locale fr
    +

    Your localized site is accessible at http://localhost:3000/fr/ and the Getting Started page is translated.

    +
    警告

    In development, you can only use one locale at a time.

    +

    Add a Locale Dropdown

    +

    To navigate seamlessly across languages, add a locale dropdown.

    +

    Modify the docusaurus.config.js file:

    +
    docusaurus.config.js
    export default {
    themeConfig: {
    navbar: {
    items: [
    {
    type: 'localeDropdown',
    },
    ],
    },
    },
    };
    +

    The locale dropdown now appears in your navbar:

    +

    Locale Dropdown

    +

    Build your localized site

    +

    Build your site for a specific locale:

    +
    npm run build -- --locale fr
    +

    Or build your site to include all the locales at once:

    +
    npm run build
    + + \ No newline at end of file diff --git a/zh-hk/tutorial/index.html b/zh-hk/tutorial/index.html new file mode 100644 index 000000000..b43b81f19 --- /dev/null +++ b/zh-hk/tutorial/index.html @@ -0,0 +1,16 @@ + + + + + +Tutorial | 🌵 El Jardín Secreto 🌵 + + + + + + + + \ No newline at end of file