/*! For license information please see main.46e74ac2.js.LICENSE.txt */
(self.webpackChunkrocketmq_docs=self.webpackChunkrocketmq_docs||[]).push([[6411],{89188:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(96540);function o(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},35947:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),o=n(58168),a=n(53259),i=n.n(a),s=n(84054);const c={"00fcf1c6":[()=>n.e(1030).then(n.bind(n,323)),"@site/release-notes/2022-04-05-release-notes-rocketmq-spring-2.2.2.md?truncated=true",323],"01326abf":[()=>n.e(2758).then(n.bind(n,57997)),"@site/release-notes/2020-12-21-4.8.0.md?truncated=true",57997],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,69158)),"@theme/BlogTagsListPage",69158],"02a79140":[()=>n.e(2127).then(n.t.bind(n,61889,19)),"~blog/release-notes/blog-post-list-prop-release-notes.json",61889],"03167c78":[()=>n.e(6718).then(n.bind(n,20205)),"@site/news/02.md",20205],"058b017f":[()=>n.e(7002).then(n.bind(n,811)),"@site/src/pages/enterprise.md",811],"05a289ec":[()=>n.e(9046).then(n.bind(n,86098)),"@site/release-notes/2023-05-15-5.1.1.md",86098],"05ae0120":[()=>n.e(5315).then(n.t.bind(n,61966,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",61966],"05e0c434":[()=>n.e(5633).then(n.bind(n,69562)),"@site/docs/04-deployment/03Dashboard.md",69562],"05e37768":[()=>n.e(4294).then(n.bind(n,44695)),"@site/events/meetup\u897f\u5b89.md?truncated=true",44695],"05f5b37f":[()=>n.e(9623).then(n.bind(n,36922)),"@site/release-notes/2022-03-15-5.0.0-ALPHA.md?truncated=true",36922],"067d07fb":[()=>n.e(867).then(n.bind(n,25626)),"@site/docs/02-producer/03message2.md",25626],"08ee51e1":[()=>n.e(6449).then(n.t.bind(n,48324,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-4-e9b-list.json",48324],"0940980a":[()=>n.e(6108).then(n.bind(n,12132)),"@site/news/09.md?truncated=true",12132],"09b00c8f":[()=>n.e(8237).then(n.bind(n,7874)),"@site/release-notes/2019-03-29-4.5.0.md",7874],"09c2fd52":[()=>n.e(4622).then(n.t.bind(n,62007,19)),"~blog/release-notes/zh-release-notes-tags-version-page-3-1fb-list.json",62007],"09ce6999":[()=>n.e(5811).then(n.bind(n,65914)),"@site/release-notes/2020-06-29-4.7.1.md",65914],"0b85b2be":[()=>n.e(511).then(n.bind(n,81627)),"@site/versioned_docs/version-5.0/07-eventbridge/02RocketMQEventBridgeOverview.md",81627],"0c2228ab":[()=>n.e(1275).then(n.bind(n,56429)),"@site/docs/04-deployment/01deploy.md",56429],"0d799663":[()=>n.e(7951).then(n.bind(n,14271)),"@site/release-notes/2019-11-11-release-notes-rocketmq-client-cpp-1.2.4.md?truncated=true",14271],"0d7f63ff":[()=>n.e(9629).then(n.bind(n,63259)),"@site/docs/07-eventbridge/03RocketMQEventBridgeQuickStart.md",63259],"0debd68d":[()=>n.e(6992).then(n.bind(n,35034)),"@site/versioned_docs/version-5.0/04-featureBehavior/10consumerretrypolicy.md",35034],"0f32938d":[()=>n.e(6794).then(n.bind(n,16552)),"@site/release-notes/2019-11-20-release-notes-rocketmq-client-go-1.2.4.md",16552],"0f39e62f":[()=>Promise.all([n.e(1869),n.e(7180)]).then(n.bind(n,57406)),"@site/src/pages/components/LogoCarousel.js",57406],"1088df23":[()=>n.e(6955).then(n.bind(n,96234)),"@site/docs/11-contributionGuide/03pull-request.md",96234],"1102346c":[()=>n.e(9319).then(n.bind(n,98984)),"@site/docs/10-connect/08RocketMQ  Connect In Action5-ES.md",98984],"1139efbd":[()=>n.e(9610).then(n.t.bind(n,39637,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-client-cpp-a37.json",39637],"1175378e":[()=>n.e(8710).then(n.t.bind(n,42002,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-spring-365.json",42002],"11b89e5e":[()=>n.e(1263).then(n.bind(n,45302)),"@site/news/14.md",45302],"12968b89":[()=>n.e(9012).then(n.bind(n,35931)),"@site/release-notes/2020-12-21-4.8.0.md",35931],"1306d659":[()=>n.e(9093).then(n.bind(n,70345)),"@site/versioned_docs/version-5.0/04-featureBehavior/02delaymessage.md",70345],13917863:[()=>n.e(9873).then(n.bind(n,83950)),"@site/news/07.md?truncated=true",83950],"141084ca":[()=>n.e(83).then(n.bind(n,68370)),"@site/release-notes/2021-08-31-release-notes-rocketmq-spring-2.2.1.md?truncated=true",68370],"143531bd":[()=>n.e(662).then(n.bind(n,5479)),"@site/versioned_docs/version-5.0/06-bestPractice/04JVMOS.md",5479],"14e1cfa5":[()=>n.e(4007).then(n.bind(n,19493)),"@site/versioned_docs/version-5.0/01-introduction/03limits.md",19493],"1600dee0":[()=>n.e(988).then(n.bind(n,77835)),"@site/docs/11-contributionGuide/02code-guidelines.md",77835],"161c28ce":[()=>n.e(6508).then(n.bind(n,80696)),"@site/release-notes/2020-02-10-release-notes-rocketmq-spring-2.1.0.md?truncated=true",80696],"16ae1604":[()=>n.e(297).then(n.bind(n,97656)),"@site/news/05.md?truncated=true",97656],"16de79bd":[()=>n.e(9333).then(n.t.bind(n,8035,19)),"~blog/events/zh-events-archive-e23.json",8035],"174e3ea9":[()=>n.e(300).then(n.bind(n,4085)),"@site/release-notes/2018-08-29-4.3.1.md?truncated=true",4085],"1783e7d7":[()=>n.e(5523).then(n.bind(n,72054)),"@site/release-notes/2022-03-15-5.0.0-ALPHA.md",72054],17896441:[()=>Promise.all([n.e(1869),n.e(2355),n.e(6886),n.e(8401)]).then(n.bind(n,25022)),"@theme/DocItem",25022],"1828472c":[()=>n.e(1552).then(n.bind(n,42220)),"@site/versioned_docs/version-5.0/10-connect/05RocketMQ Connect In Action2.md",42220],"18b93cb3":[()=>n.e(4828).then(n.bind(n,83603)),"@site/src/pages/versions.js",83603],"191aa130":[()=>n.e(3744).then(n.bind(n,92013)),"@site/docs/08-mqtt/02RocketMQMQTTQuickStart.md",92013],"199a4ec6":[()=>n.e(6129).then(n.bind(n,83175)),"@site/versioned_docs/version-5.0/03-domainModel/09subscription.md",83175],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,74604)),"@theme/SearchPage",74604],"1be78505":[()=>Promise.all([n.e(1869),n.e(8714)]).then(n.bind(n,50010)),"@theme/DocPage",50010],"1cc166a1":[()=>n.e(6497).then(n.t.bind(n,91021,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-streams-5f6.json",91021],"1d21fadf":[()=>n.e(106).then(n.bind(n,42841)),"@site/news/06.md",42841],"1d2ab7dd":[()=>n.e(394).then(n.bind(n,25378)),"@site/docs/02-producer/05message4.md",25378],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(2355),n.e(6886),n.e(6061)]).then(n.bind(n,67973)),"@theme/MDXPage",67973],"209112bc":[()=>n.e(5727).then(n.bind(n,8934)),"@site/release-notes/2023-05-15-5.1.1.md?truncated=true",8934],"209227ae":[()=>n.e(4347).then(n.bind(n,34512)),"@site/src/pages/download.md",34512],"20c0f7f4":[()=>n.e(5883).then(n.bind(n,96942)),"@site/release-notes/2020-03-31-release-notes-rocketmq-client-go-2.0.0.md?truncated=true",96942],"20dc33a7":[()=>n.e(472).then(n.t.bind(n,58210,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-sprint-62d-list.json",58210],"215140a7":[()=>n.e(2150).then(n.bind(n,51697)),"@site/release-notes/2023-06-12-4.9.7.md",51697],"216dd0a3":[()=>n.e(6034).then(n.t.bind(n,61744,19)),"~blog/release-notes/zh-release-notes-page-6-258.json",61744],"21fd011b":[()=>n.e(258).then(n.t.bind(n,6329,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-spring-365-list.json",6329],"23f8cbaf":[()=>n.e(1234).then(n.bind(n,69151)),"@site/release-notes/2024-02-19-release-notes-rocketmq-spring-2.3.0.md?truncated=true",69151],"244b7a60":[()=>n.e(6945).then(n.t.bind(n,55744,19)),"~blog/release-notes/zh-release-notes-tags-version-page-3-1fb.json",55744],"2458bf82":[()=>n.e(9912).then(n.bind(n,80532)),"@site/release-notes/2019-11-20-release-notes-rocketmq-client-go-1.2.4.md?truncated=true",80532],"249e2758":[()=>n.e(7997).then(n.bind(n,35674)),"@site/news/07.md",35674],"25e59aaf":[()=>n.e(1609).then(n.bind(n,41362)),"@site/release-notes/2019-05-13-4.5.1.md",41362],"26b224bc":[()=>n.e(948).then(n.bind(n,93239)),"@site/release-notes/2023-06-12-5.1.2.md?truncated=true",93239],27293478:[()=>Promise.all([n.e(1869),n.e(5381)]).then(n.bind(n,27312)),"@site/docs/02-producer/02message1.md",27312],"27523c81":[()=>n.e(1044).then(n.bind(n,51837)),"@site/versioned_docs/version-5.0/04-featureBehavior/08consumerloadbalance.md",51837],"2a0b19f8":[()=>n.e(2634).then(n.bind(n,96700)),"@site/release-notes/2020-02-10-release-notes-rocketmq-spring-2.1.0.md",96700],"2aca6264":[()=>n.e(5738).then(n.bind(n,18092)),"@site/release-notes/2022-04-18-release-notes-rocketmq-streams-1.0.1-preview.md?truncated=true",18092],"2b0d7b23":[()=>n.e(1917).then(n.bind(n,31747)),"@site/versioned_docs/version-5.0/04-featureBehavior/07messagefilter.md",31747],"2c552153":[()=>n.e(4859).then(n.bind(n,29418)),"@site/news/18.md",29418],"2c9c4e31":[()=>n.e(4679).then(n.bind(n,70674)),"@site/release-notes/2020-03-16-4.7.0.md",70674],"2caeba8e":[()=>n.e(7670).then(n.bind(n,64448)),"@site/release-notes/2021-08-22-4.9.1.md",64448],"2cd3a2aa":[()=>n.e(6566).then(n.bind(n,37060)),"@site/docs/05-bestPractice/04access.md",37060],"2d1a6cd7":[()=>n.e(2577).then(n.bind(n,291)),"@site/docs/10-connect/07RocketMQ Connect In Action4.md",291],"2f7bb5b4":[()=>n.e(8341).then(n.t.bind(n,58487,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-2-a48-list.json",58487],"30c75e73":[()=>n.e(4816).then(n.bind(n,51094)),"@site/release-notes/2019-03-29-4.5.0.md?truncated=true",51094],"3466f6e5":[()=>n.e(4664).then(n.bind(n,62235)),"@site/release-notes/2022-03-04-4.9.4.md?truncated=true",62235],"35059d09":[()=>n.e(2976).then(n.bind(n,41955)),"@site/versioned_docs/version-5.0/05-deploymentOperations/03autofailover.md",41955],"365f32c4":[()=>n.e(1175).then(n.bind(n,72842)),"@site/release-notes/2017-12-13-4.2.0.md?truncated=true",72842],"36948b52":[()=>n.e(1224).then(n.bind(n,89789)),"@site/release-notes/2020-02-14-release-notes-rocketmq-client-cpp-2.0.0.md",89789],"376d7d59":[()=>n.e(9048).then(n.bind(n,44559)),"@site/versioned_docs/version-5.0/11-contributionGuide/04release-manual.md",44559],"387e0437":[()=>n.e(7216).then(n.t.bind(n,64372,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-schema-registry-3ab.json",64372],"395b1b18":[()=>n.e(1520).then(n.bind(n,44065)),"@site/release-notes/2022-04-05-release-notes-rocketmq-spring-2.2.2.md",44065],"3a242c19":[()=>n.e(3742).then(n.bind(n,21925)),"@site/versioned_docs/version-5.0/03-domainModel/07consumergroup.md",21925],"3a332aed":[()=>n.e(1809).then(n.t.bind(n,8611,19)),"~blog/default/zh-blog-ea2.json",8611],"3b3ab106":[()=>n.e(7257).then(n.bind(n,9669)),"@site/docs/07-eventbridge/01RocketMQEventBridgeConcepts.md",9669],"3bbe7027":[()=>n.e(5291).then(n.bind(n,87844)),"@site/docs/05-bestPractice/05JVMOS.md",87844],"3bf2b921":[()=>n.e(8060).then(n.t.bind(n,52945,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",52945],"3bf3a571":[()=>n.e(7875).then(n.t.bind(n,99479,19)),"~blog/release-notes/zh-release-notes-tags-tags-245.json",99479],"3d2ab086":[()=>n.e(45).then(n.bind(n,15951)),"@site/release-notes/2020-2-14-4.6.1.md?truncated=true",15951],"3f265217":[()=>n.e(4121).then(n.bind(n,49377)),"@site/news/17.md?truncated=true",49377],"4004b0d8":[()=>n.e(6345).then(n.bind(n,27193)),"@site/release-notes/2021-06-15-4.9.0.md?truncated=true",27193],"4037e6ed":[()=>n.e(6959).then(n.t.bind(n,84601,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-dashboard-8e5.json",84601],40766637:[()=>n.e(1150).then(n.bind(n,6610)),"@site/release-notes/2022-10-17-release-notes-rocketmq-schema-registry-all-0.1.0.md",6610],40985062:[()=>n.e(8755).then(n.bind(n,83877)),"@site/release-notes/2021-09-23-release-notes-rocketmq-dashboard-1.0.0.md",83877],41023913:[()=>n.e(5264).then(n.bind(n,19383)),"@site/versioned_docs/version-5.0/13-sdk/02java.md",19383],"42205b98":[()=>n.e(1569).then(n.bind(n,26686)),"@site/news/18.md?truncated=true",26686],"42a357cf":[()=>n.e(7278).then(n.bind(n,91004)),"@site/release-notes/2022-09-09-5.0.0.md?truncated=true",91004],"442ded00":[()=>n.e(214).then(n.bind(n,64455)),"@site/release-notes/2023-02-16-5.1.0.md",64455],"445c3777":[()=>n.e(1419).then(n.bind(n,44576)),"@site/versioned_docs/version-5.0/10-connect/04RocketMQ Connect In Action1.md",44576],"44b25874":[()=>n.e(2193).then(n.bind(n,88378)),"@site/release-notes/2020-04-02-release-notes-rocketmq-client-cpp-2.2.0.md",88378],"45091b3e":[()=>n.e(7126).then(n.bind(n,88999)),"@site/versioned_docs/version-5.0/03-domainModel/04producer.md",88999],"468c2767":[()=>n.e(3646).then(n.bind(n,82816)),"@site/versioned_docs/version-5.0/09-streams/01RocketMQ Streams Overview.md",82816],"470c3405":[()=>n.e(3915).then(n.bind(n,43695)),"@site/versioned_docs/version-5.0/05-deploymentOperations/04Dashboard.md",43695],"47776dcd":[()=>n.e(8621).then(n.bind(n,27222)),"@site/news/10.md?truncated=true",27222],"486a004e":[()=>n.e(7285).then(n.bind(n,40663)),"@site/news/15.md?truncated=true",40663],"494c26ec":[()=>n.e(6033).then(n.bind(n,51001)),"@site/release-notes/2022-03-04-4.9.4.md",51001],"4a5d8820":[()=>n.e(8303).then(n.bind(n,10756)),"@site/release-notes/2024-01-29-4.9.8.md",10756],"4a762d1b":[()=>n.e(1322).then(n.bind(n,92572)),"@site/versioned_docs/version-5.0/06-bestPractice/06FAQ.md",92572],"4ae87825":[()=>n.e(7927).then(n.bind(n,13424)),"@site/versioned_docs/version-5.0/01-introduction/01whychoose.md",13424],"4b680726":[()=>n.e(8792).then(n.bind(n,64078)),"@site/release-notes/2020-04-02-release-notes-rocketmq-client-cpp-2.2.0.md?truncated=true",64078],"4c488bc8":[()=>n.e(3707).then(n.bind(n,35570)),"@site/versioned_docs/version-5.0/04-featureBehavior/01normalmessage.md",35570],"4cf1cda0":[()=>n.e(2453).then(n.bind(n,34920)),"@site/docs/07-eventbridge/02RocketMQEventBridgeOverview.md",34920],"4da3b897":[()=>n.e(7693).then(n.t.bind(n,57676,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-streams-5f6-list.json",57676],"4f52da78":[()=>n.e(4404).then(n.bind(n,14199)),"@site/versioned_docs/version-5.0/12-observability/01metrics.md",14199],"4f5c58bc":[()=>n.e(9795).then(n.bind(n,65434)),"@site/versioned_docs/version-5.0/04-featureBehavior/04transactionmessage.md",65434],"4f78924b":[()=>n.e(4439).then(n.bind(n,4236)),"@site/versioned_docs/version-5.0/10-connect/07RocketMQ Connect In Action4.md",4236],"506c42b6":[()=>n.e(5515).then(n.bind(n,2745)),"@site/release-notes/2023-02-16-5.1.0.md?truncated=true",2745],"515c7b8b":[()=>n.e(7332).then(n.bind(n,98888)),"@site/release-notes/2018-07-24-4.3.0.md",98888],"52298f7a":[()=>n.e(2243).then(n.t.bind(n,58965,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-4-214-list.json",58965],"5289fb30":[()=>n.e(7450).then(n.bind(n,81257)),"@site/release-notes/2018-11-02-4.3.2.md?truncated=true",81257],"53b8bd03":[()=>n.e(2500).then(n.bind(n,71847)),"@site/docs/10-connect/03RocketMQ Connect Quick Start.md",71847],"548347c6":[()=>n.e(2635).then(n.t.bind(n,52763,19)),"~blog/news/blog-post-list-prop-news.json",52763],55397297:[()=>n.e(1226).then(n.bind(n,56529)),"@site/release-notes/2020-07-20-release-notes-rocketmq-spring-2.1.1.md",56529],"55630f9e":[()=>n.e(5772).then(n.bind(n,60703)),"@site/versioned_docs/version-5.0/13-sdk/03cplusplus.md",60703],"558324a2":[()=>n.e(2701).then(n.bind(n,61269)),"@site/release-notes/2023-06-12-5.1.2.md",61269],"55a5b31b":[()=>n.e(3515).then(n.t.bind(n,75276,19)),"~blog/release-notes/zh-release-notes-page-5-ab1.json",75276],"570d7d81":[()=>n.e(7847).then(n.bind(n,85741)),"@site/release-notes/2020-2-14-4.6.1.md",85741],"5768a5ff":[()=>n.e(5347).then(n.bind(n,57472)),"@site/release-notes/2022-03-04-4.9.3.md",57472],57705121:[()=>n.e(1555).then(n.bind(n,52090)),"@site/src/pages/version.md",52090],"5795627e":[()=>n.e(2381).then(n.bind(n,52607)),"@site/news/08.md",52607],"58d8fbcc":[()=>n.e(3182).then(n.bind(n,60561)),"@site/news/08.md?truncated=true",60561],"593d8752":[()=>n.e(518).then(n.bind(n,66376)),"@site/docs/05-bestPractice/08FAQ.md",66376],"5af5c787":[()=>n.e(5399).then(n.bind(n,14987)),"@site/release-notes/2020-03-23-release-notes-rocketmq-client-cpp-2.1.0.md?truncated=true",14987],"5b2bc629":[()=>n.e(1222).then(n.t.bind(n,75395,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-024-list.json",75395],"5bc9c38a":[()=>n.e(8177).then(n.bind(n,56417)),"@site/release-notes/2023-03-26-4.9.5.md",56417],"5c2a4e22":[()=>n.e(1025).then(n.bind(n,80420)),"@site/events/\u82cf\u5ddemeetup.md?truncated=true",80420],"5ce5bfd9":[()=>n.e(6136).then(n.bind(n,51628)),"@site/docs/01-introduction/02quickstart.md",51628],"5cef567a":[()=>n.e(4103).then(n.bind(n,68544)),"@site/news/01.md",68544],"5cf99363":[()=>n.e(7021).then(n.bind(n,46656)),"@site/release-notes/2024-01-29-4.9.8.md?truncated=true",46656],"5db1ba52":[()=>n.e(413).then(n.bind(n,42331)),"@site/release-notes/2022-07-25-release-notes-rocketmq-client-go-2.1.1.md",42331],"5de43f64":[()=>n.e(6722).then(n.t.bind(n,7272,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-dashboard-8e5-list.json",7272],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"611c28ad":[()=>n.e(8565).then(n.bind(n,412)),"@site/versioned_docs/version-5.0/13-sdk/05go.md",412],"61bc617b":[()=>n.e(7977).then(n.bind(n,86319)),"@site/docs/10-connect/01RocketMQ Connect Overview.md",86319],"63142a8b":[()=>n.e(9200).then(n.t.bind(n,6330,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-3-3bd-list.json",6330],"63473fd1":[()=>n.e(3459).then(n.bind(n,48689)),"@site/src/pages/team.md",48689],"637ab824":[()=>n.e(6102).then(n.bind(n,3571)),"@site/docs/09-streams/03RocketMQ Streams Quick Start.md",3571],"63bcfa1d":[()=>n.e(5927).then(n.t.bind(n,16750,19)),"~blog/release-notes/zh-release-notes-page-4-d89.json",16750],"63f8a7a0":[()=>n.e(4479).then(n.bind(n,71593)),"@site/release-notes/2023-06-24-5.1.3.md?truncated=true",71593],"663290db":[()=>n.e(6669).then(n.bind(n,62078)),"@site/release-notes/2019-01-17-4.4.0.md",62078],"66890ba2":[()=>n.e(8877).then(n.t.bind(n,21760,19)),"~blog/release-notes/zh-release-notes-tags-version-7e6-list.json",21760],"66a16596":[()=>n.e(8375).then(n.bind(n,25798)),"@site/release-notes/2017-06-02-4.1.0.md?truncated=true",25798],"66c10cbb":[()=>n.e(1332).then(n.bind(n,59886)),"@site/src/pages/contact.md",59886],"674a24c8":[()=>n.e(5732).then(n.bind(n,45223)),"@site/versioned_docs/version-5.0/10-connect/08RocketMQ  Connect In Action5-ES.md",45223],"67e4d661":[()=>n.e(3476).then(n.bind(n,96948)),"@site/docs/02-producer/01concept1.md",96948],"6861fa3b":[()=>n.e(8166).then(n.t.bind(n,34197,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-blog/news/plugin-route-context-module-100.json",34197],"6875c492":[()=>Promise.all([n.e(1869),n.e(2355),n.e(6886),n.e(3369),n.e(4813)]).then(n.bind(n,33069)),"@theme/BlogTagsPostsPage",33069],"69d2b1e6":[()=>n.e(4956).then(n.bind(n,95247)),"@site/news/02.md?truncated=true",95247],"6c438bbb":[()=>n.e(4119).then(n.bind(n,17869)),"@site/release-notes/2022-07-25-release-notes-rocketmq-client-go-2.1.1.md?truncated=true",17869],"6ce86cd6":[()=>n.e(9598).then(n.bind(n,17609)),"@site/release-notes/2020-03-23-release-notes-rocketmq-client-cpp-2.1.0.md",17609],"6f5abaf4":[()=>n.e(9484).then(n.bind(n,43676)),"@site/release-notes/2023-02-22-release-notes-rocketmq-streams-all-1.1.1.md?truncated=true",43676],"6fe6f29d":[()=>n.e(2525).then(n.bind(n,42817)),"@site/versioned_docs/version-5.0/13-sdk/01overview.md",42817],"70c3df63":[()=>n.e(2464).then(n.bind(n,9673)),"@site/release-notes/2019-11-01-release-notes-rocketmq-spring-2.0.4.md",9673],"720aa178":[()=>n.e(6090).then(n.bind(n,47271)),"@site/docs/10-connect/02RocketMQ Connect Concept.md",47271],"729a97d5":[()=>n.e(7319).then(n.t.bind(n,74699,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-blog/events/plugin-route-context-module-100.json",74699],"7331a908":[()=>n.e(3755).then(n.t.bind(n,74036,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-client-cpp-a37-list.json",74036],"73fe947c":[()=>n.e(3211).then(n.bind(n,65911)),"@site/docs/11-contributionGuide/01how-to-contribute.md",65911],"740d2917":[()=>n.e(385).then(n.bind(n,22479)),"@site/docs/05-bestPractice/02dledger.md",22479],"745a98a5":[()=>n.e(2605).then(n.bind(n,74447)),"@site/versioned_docs/version-5.0/04-featureBehavior/03fifomessage.md",74447],"7700ad60":[()=>n.e(2024).then(n.bind(n,69875)),"@site/release-notes/2020-07-20-release-notes-rocketmq-spring-2.1.1.md?truncated=true",69875],"7733e037":[()=>n.e(8490).then(n.bind(n,34601)),"@site/versioned_docs/version-5.0/03-domainModel/08consumer.md",34601],"773e1e21":[()=>Promise.all([n.e(1869),n.e(8348)]).then(n.bind(n,74879)),"@site/src/pages/components/Hero.js",74879],77445549:[()=>n.e(1658).then(n.bind(n,19564)),"@site/versioned_docs/version-5.0/05-deploymentOperations/02admintool.md",19564],"77c02689":[()=>n.e(6361).then(n.bind(n,76054)),"@site/docs/06-parameterConfiguration/02server.md",76054],"782b4b76":[()=>n.e(6519).then(n.bind(n,97057)),"@site/news/11.md",97057],"78a3c97a":[()=>n.e(606).then(n.t.bind(n,75798,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-2-813-list.json",75798],"78a71e80":[()=>n.e(4996).then(n.bind(n,29432)),"@site/news/09.md",29432],"78dde81d":[()=>n.e(4350).then(n.bind(n,7173)),"@site/release-notes/2021-09-06-release-notes-5.0.0-PREVIEW.md",7173],"78fcb0a0":[()=>n.e(6970).then(n.bind(n,13335)),"@site/release-notes/2018-11-02-4.3.2.md",13335],"790b9e87":[()=>n.e(128).then(n.bind(n,65726)),"@site/release-notes/2019-11-25-4.6.0.md?truncated=true",65726],"791d769b":[()=>n.e(3330).then(n.bind(n,50022)),"@site/versioned_docs/version-5.0/09-streams/03RocketMQ Streams Quick Start.md",50022],"798936c8":[()=>n.e(3516).then(n.bind(n,83860)),"@site/release-notes/2022-01-18-release-notes-rocketmq-streams-1.0.0-preview.md",83860],"7a21f84b":[()=>n.e(3920).then(n.t.bind(n,3228,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-024.json",3228],"7ad94958":[()=>n.e(680).then(n.bind(n,63648)),"@site/release-notes/2022-04-18-release-notes-rocketmq-streams-1.0.1-preview.md",63648],"7aea7917":[()=>n.e(1253).then(n.bind(n,13683)),"@site/versioned_docs/version-5.0/03-domainModel/01main.md",13683],"7b17e62f":[()=>n.e(5013).then(n.bind(n,46549)),"@site/news/15.md",46549],"7b41d18c":[()=>n.e(5375).then(n.bind(n,11071)),"@site/release-notes/2020-02-14-release-notes-rocketmq-client-cpp-2.0.0.md?truncated=true",11071],"7cc1c753":[()=>n.e(7375).then(n.bind(n,7742)),"@site/docs/05-bestPractice/01bestpractice.md",7742],"7d4976a8":[()=>n.e(3195).then(n.t.bind(n,51842,19)),"~docs/default/version-5-0-metadata-prop-efc.json",51842],"7e234054":[()=>n.e(4761).then(n.bind(n,93582)),"@site/news/03.md",93582],"7e8c8d75":[()=>n.e(4316).then(n.bind(n,3124)),"@site/release-notes/2018-07-24-4.3.0.md?truncated=true",3124],"7eb2ad12":[()=>n.e(6917).then(n.bind(n,88554)),"@site/versioned_docs/version-5.0/10-connect/03RocketMQ Connect Quick Start.md",88554],"7ecc8185":[()=>n.e(1193).then(n.t.bind(n,96299,19)),"~blog/events/zh-events-d8e.json",96299],"7f1f1d64":[()=>n.e(4720).then(n.bind(n,49767)),"@site/docs/05-bestPractice/07subscribe.md",49767],"7fbd8dae":[()=>n.e(2100).then(n.bind(n,93764)),"@site/versioned_docs/version-5.0/07-eventbridge/03RocketMQEventBridgeQuickStart.md",93764],"814f3328":[()=>n.e(7472).then(n.t.bind(n,55513,19)),"~blog/default/blog-post-list-prop-default.json",55513],"81e08c33":[()=>n.e(4128).then(n.bind(n,52992)),"@site/news/12.md?truncated=true",52992],"81e37bfc":[()=>n.e(6208).then(n.bind(n,89124)),"@site/src/pages/version 2.md",89124],"81f74e38":[()=>n.e(5383).then(n.bind(n,78970)),"@site/release-notes/2021-10-26-4.9.2.md",78970],"827b7f83":[()=>n.e(3230).then(n.t.bind(n,26513,19)),"~blog/release-notes/zh-release-notes-tags-version-7e6.json",26513],"82a7de3d":[()=>n.e(2857).then(n.bind(n,94845)),"@site/release-notes/2019-11-11-release-notes-rocketmq-client-cpp-1.2.4.md",94845],"82f65107":[()=>n.e(1096).then(n.bind(n,11885)),"@site/news/13.md?truncated=true",11885],"83bce6b0":[()=>n.e(8066).then(n.bind(n,29544)),"@site/versioned_docs/version-5.0/03-domainModel/02topic.md",29544],"8417b4b0":[()=>n.e(3443).then(n.bind(n,76102)),"@site/release-notes/2023-02-06-release-notes-rocketmq-spring-2.2.3.md?truncated=true",76102],"849310ba":[()=>n.e(9911).then(n.bind(n,38099)),"@site/release-notes/2023-06-12-4.9.7.md?truncated=true",38099],"85da417b":[()=>n.e(2185).then(n.bind(n,11378)),"@site/docs/04-deployment/02admintool.md",11378],"86bee575":[()=>n.e(9171).then(n.bind(n,95534)),"@site/versioned_docs/version-5.0/07-eventbridge/01RocketMQEventBridgeConcepts.md",95534],"86c91f7b":[()=>n.e(1700).then(n.bind(n,31388)),"@site/release-notes/2024-01-30-5.2.0.md",31388],"897f6fbe":[()=>n.e(9790).then(n.bind(n,27767)),"@site/release-notes/2023-09-22-5.1.4.md",27767],"8990ddbe":[()=>n.e(1998).then(n.bind(n,82544)),"@site/release-notes/2021-01-08-release-notes-rocketmq-spring-2.2.0.md",82544],"899d3dd1":[()=>n.e(5453).then(n.bind(n,33231)),"@site/docs/03-consumer/02push.md",33231],"8a21868a":[()=>n.e(9382).then(n.bind(n,78162)),"@site/news/03.md?truncated=true",78162],"8b76f146":[()=>n.e(3535).then(n.bind(n,77903)),"@site/news/17.md",77903],"8d923bf9":[()=>n.e(1834).then(n.bind(n,62282)),"@site/versioned_docs/version-5.0/13-sdk/04csharp.md",62282],"8dc82a94":[()=>n.e(2106).then(n.bind(n,31442)),"@site/release-notes/2023-02-06-release-notes-rocketmq-spring-2.2.3.md",31442],"8e46c907":[()=>n.e(4799).then(n.bind(n,60196)),"@site/release-notes/2023-01-06-release-notes-rocketmq-streams-all-1.1.0.md?truncated=true",60196],"8ef3cae8":[()=>n.e(3120).then(n.bind(n,62122)),"@site/release-notes/2017-01-24-4.0.0.md?truncated=true",62122],"8f2d213e":[()=>n.e(8715).then(n.bind(n,57766)),"@site/release-notes/2022-10-17-release-notes-rocketmq-schema-registry-all-0.1.0.md?truncated=true",57766],"8f8abc4a":[()=>n.e(8432).then(n.t.bind(n,89376,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-2-a48.json",89376],"8fb22d59":[()=>n.e(4833).then(n.bind(n,52496)),"@site/release-notes/2022-01-18-release-notes-rocketmq-streams-1.0.0-preview.md?truncated=true",52496],"8ff72bd1":[()=>n.e(9929).then(n.bind(n,70338)),"@site/release-notes/2019-01-17-4.4.0.md?truncated=true",70338],"9145396b":[()=>n.e(3180).then(n.bind(n,29802)),"@site/release-notes/2019-11-25-4.6.0.md",29802],"9230e626":[()=>n.e(5210).then(n.bind(n,89567)),"@site/versioned_docs/version-5.0/05-deploymentOperations/01deploy.md",89567],"927d70e2":[()=>n.e(3507).then(n.t.bind(n,44933,19)),"~blog/default/zh-blog-archive-8d7.json",44933],"92d9142b":[()=>n.e(2920).then(n.bind(n,23331)),"@site/news/11.md?truncated=true",23331],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,35610,19)),"~docs/default/version-current-metadata-prop-751.json",35610],94244261:[()=>n.e(9191).then(n.bind(n,44957)),"@site/release-notes/2024-02-19-release-notes-rocketmq-spring-2.3.0.md",44957],"950e454f":[()=>n.e(5551).then(n.bind(n,2474)),"@site/versioned_docs/version-5.0/09-streams/02RocketMQ Streams Concept.md",2474],"957232b8":[()=>n.e(6491).then(n.bind(n,44820)),"@site/versioned_docs/version-5.0/10-connect/01RocketMQ Connect Overview.md",44820],"961c9ac9":[()=>n.e(5456).then(n.bind(n,11768)),"@site/release-notes/2023-01-06-release-notes-rocketmq-streams-all-1.1.0.md",11768],"98546df3":[()=>n.e(544).then(n.bind(n,69911)),"@site/docs/05-bestPractice/03messagetra.md",69911],99071281:[()=>n.e(5014).then(n.bind(n,87436)),"@site/release-notes/2022-03-04-4.9.3.md?truncated=true",87436],"99e44b89":[()=>n.e(5693).then(n.bind(n,88164)),"@site/versioned_docs/version-5.0/11-contributionGuide/02code-guidelines.md",88164],"9a46e79a":[()=>n.e(9005).then(n.bind(n,18537)),"@site/release-notes/2023-09-22-5.1.4.md?truncated=true",18537],"9a6bc13c":[()=>n.e(8867).then(n.bind(n,44532)),"@site/release-notes/2021-03-17-release-notes-rocketmq-client-go-2.1.0.md",44532],"9ae3ca59":[()=>n.e(727).then(n.bind(n,2993)),"@site/versioned_docs/version-5.0/05-deploymentOperations/05Exporter.md",2993],"9ae5d27d":[()=>n.e(9604).then(n.bind(n,17279)),"@site/docs/09-streams/02RocketMQ Streams Concept.md",17279],"9d2b70a5":[()=>n.e(203).then(n.bind(n,87756)),"@site/release-notes/2021-08-22-4.9.1.md?truncated=true",87756],"9d4a6280":[()=>n.e(7657).then(n.bind(n,30328)),"@site/blog/mse.mdx",30328],"9e4087bc":[()=>n.e(2711).then(n.bind(n,89331)),"@theme/BlogArchivePage",89331],"9e5d69b3":[()=>n.e(7988).then(n.bind(n,46087)),"@site/release-notes/2021-09-23-release-notes-rocketmq-dashboard-1.0.0.md?truncated=true",46087],"9f90b1ab":[()=>n.e(6971).then(n.t.bind(n,85402,19)),"~blog/release-notes/zh-release-notes-295.json",85402],"9f920ce5":[()=>n.e(654).then(n.bind(n,45401)),"@site/docs/06-parameterConfiguration/01local.md",45401],"9ff171f9":[()=>n.e(4234).then(n.bind(n,85963)),"@site/versioned_docs/version-5.0/01-introduction/02concepts.md",85963],a01cb60a:[()=>n.e(9757).then(n.bind(n,62131)),"@site/docs/10-connect/06RocketMQ Connect In Action3.md",62131],a046769c:[()=>n.e(2413).then(n.t.bind(n,77265,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-blog/release-notes/plugin-route-context-module-100.json",77265],a073d297:[()=>n.e(6544).then(n.t.bind(n,49356,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-3-128-list.json",49356],a0780aa2:[()=>n.e(1889).then(n.bind(n,79056)),"@site/release-notes/2022-09-09-5.0.0.md",79056],a1b5d890:[()=>n.e(2489).then(n.bind(n,41913)),"@site/release-notes/2023-05-18-4.9.6.md?truncated=true",41913],a1d6fe1e:[()=>Promise.all([n.e(1869),n.e(7794)]).then(n.bind(n,54029)),"@site/src/pages/components/Community.js",54029],a2144c61:[()=>n.e(7817).then(n.bind(n,5979)),"@site/versioned_docs/version-5.0/06-bestPractice/03access.md",5979],a3cd2ba8:[()=>n.e(6765).then(n.bind(n,26391)),"@site/release-notes/2023-06-24-5.1.3.md",26391],a4915667:[()=>n.e(6998).then(n.bind(n,68400)),"@site/release-notes/2023-02-22-release-notes-rocketmq-streams-all-1.1.1.md",68400],a6804bf7:[()=>n.e(9633).then(n.bind(n,57476)),"@site/news/12.md",57476],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(2355),n.e(6886),n.e(3369),n.e(7643)]).then(n.bind(n,77785)),"@theme/BlogListPage",77785],a7d8f5d9:[()=>n.e(5345).then(n.bind(n,54988)),"@site/news/01.md?truncated=true",54988],a8513214:[()=>n.e(8718).then(n.bind(n,38270)),"@site/release-notes/2019-08-20-release-notes-rocketmq-client-cpp-1.2.3.md?truncated=true",38270],abb29a1b:[()=>n.e(5325).then(n.bind(n,34426)),"@site/news/14.md?truncated=true",34426],abb50e7e:[()=>n.e(5168).then(n.t.bind(n,63602,19)),"~blog/news/zh-news-page-2-bb9.json",63602],ae37744e:[()=>n.e(163).then(n.bind(n,6568)),"@site/versioned_docs/version-5.0/10-connect/06RocketMQ Connect In Action3.md",6568],afbf4277:[()=>Promise.all([n.e(1869),n.e(2038)]).then(n.bind(n,72360)),"@site/docs/01-introduction/03whatis.md",72360],afcb696e:[()=>n.e(5629).then(n.bind(n,22690)),"@site/src/pages/origin.md",22690],b033e064:[()=>n.e(8406).then(n.bind(n,15878)),"@site/release-notes/2017-12-13-4.2.0.md",15878],b0850f7b:[()=>n.e(6981).then(n.bind(n,36543)),"@site/versioned_docs/version-5.0/11-contributionGuide/03pull-request.md",36543],b14014aa:[()=>n.e(9789).then(n.bind(n,62535)),"@site/release-notes/2021-06-15-4.9.0.md",62535],b1b27138:[()=>n.e(7525).then(n.t.bind(n,3006,19)),"~blog/news/zh-news-archive-2e6.json",3006],b266ab2f:[()=>n.e(2774).then(n.bind(n,24248)),"@site/release-notes/2024-01-30-5.2.0.md?truncated=true",24248],b26d5cb4:[()=>n.e(5451).then(n.bind(n,86090)),"@site/versioned_docs/version-5.0/10-connect/02RocketMQ Connect Concept.md",86090],b79414c4:[()=>n.e(4715).then(n.t.bind(n,61947,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-schema-registry-3ab-list.json",61947],b7c8d52c:[()=>n.e(2315).then(n.bind(n,86775)),"@site/versioned_docs/version-5.0/06-bestPractice/05subscribe.md",86775],b866a27f:[()=>n.e(5187).then(n.bind(n,19390)),"@site/docs/11-contributionGuide/04release-manual.md",19390],b95782af:[()=>n.e(4335).then(n.bind(n,70823)),"@site/docs/10-connect/04RocketMQ Connect In Action1.md",70823],b9864f27:[()=>n.e(2313).then(n.bind(n,95676)),"@site/docs/04-deployment/04Exporter.md",95676],bb1fc4b7:[()=>n.e(1638).then(n.bind(n,29658)),"@site/release-notes/2020-03-31-release-notes-rocketmq-client-go-2.0.0.md",29658],bbdf0144:[()=>n.e(6164).then(n.bind(n,43611)),"@site/docs/09-streams/01RocketMQ Streams Overview.md",43611],bc220349:[()=>n.e(2447).then(n.bind(n,56111)),"@site/versioned_docs/version-5.0/04-featureBehavior/06consumertype.md",56111],bd234a5b:[()=>Promise.all([n.e(1869),n.e(9348)]).then(n.bind(n,41576)),"@site/docs/05-bestPractice/06log.md",41576],be6f35f6:[()=>n.e(1884).then(n.bind(n,23154)),"@site/release-notes/2017-06-02-4.1.0.md",23154],bedaf566:[()=>n.e(3706).then(n.bind(n,86342)),"@site/release-notes/2017-01-24-4.0.0.md",86342],bf069436:[()=>n.e(9029).then(n.t.bind(n,25387,19)),"~blog/release-notes/zh-release-notes-archive-fac.json",25387],bf7faa8a:[()=>n.e(8319).then(n.bind(n,28372)),"@site/news/16.md?truncated=true",28372],c30f74af:[()=>n.e(8195).then(n.bind(n,98292)),"@site/docs/02-producer/04message3.md",98292],c41a13bf:[()=>n.e(5736).then(n.bind(n,15257)),"@site/versioned_docs/version-5.0/08-mqtt/01RocketMQMQTTOverview.md",15257],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2355),n.e(253)]).then(n.bind(n,61669)),"@site/src/pages/index.js",61669],c5c7a019:[()=>n.e(2180).then(n.bind(n,42887)),"@site/release-notes/2021-09-06-release-notes-5.0.0-PREVIEW.md?truncated=true",42887],c9845ad5:[()=>n.e(8472).then(n.bind(n,95551)),"@site/docs/10-connect/05RocketMQ Connect In Action2.md",95551],c9e03c33:[()=>n.e(5408).then(n.t.bind(n,12125,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-f07.json",12125],ca373a18:[()=>n.e(4790).then(n.t.bind(n,57757,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",57757],ca86a1f0:[()=>n.e(1901).then(n.bind(n,40362)),"@site/release-notes/2019-08-20-release-notes-rocketmq-client-cpp-1.2.3.md",40362],cab04640:[()=>n.e(6047).then(n.bind(n,13442)),"@site/news/10.md",13442],caf0da9e:[()=>n.e(1334).then(n.bind(n,10387)),"@site/news/04.md",10387],cb9bc0fc:[()=>n.e(9201).then(n.bind(n,51388)),"@site/release-notes/2021-01-08-release-notes-rocketmq-spring-2.2.0.md?truncated=true",51388],cca4bcc5:[()=>n.e(1879).then(n.bind(n,1755)),"@site/news/06.md?truncated=true",1755],ccc49370:[()=>Promise.all([n.e(1869),n.e(2355),n.e(6886),n.e(3369),n.e(3249)]).then(n.bind(n,84029)),"@theme/BlogPostPage",84029],ccfcfac3:[()=>n.e(3129).then(n.bind(n,47814)),"@site/release-notes/2020-03-16-4.7.0.md?truncated=true",47814],cdba1bfc:[()=>n.e(6437).then(n.bind(n,91532)),"@site/versioned_docs/version-5.0/02-quickStart/01quickstart.md",91532],ce2c4f77:[()=>n.e(9894).then(n.bind(n,72392)),"@site/release-notes/2019-08-02-4.5.2.md",72392],ce395170:[()=>n.e(1712).then(n.bind(n,84278)),"@site/versioned_docs/version-5.0/08-mqtt/02RocketMQMQTTQuickStart.md",84278],cf6ac9b5:[()=>n.e(8567).then(n.bind(n,87092)),"@site/versioned_docs/version-5.0/11-contributionGuide/01how-to-contribute.md",87092],d4bbd9fd:[()=>n.e(4044).then(n.bind(n,2985)),"@site/versioned_docs/version-5.0/04-featureBehavior/11messagestorepolicy.md",2985],d4fbf459:[()=>n.e(6643).then(n.bind(n,60963)),"@site/release-notes/2018-08-29-4.3.1.md",60963],d71e89a1:[()=>n.e(881).then(n.t.bind(n,10446,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-4-214.json",10446],d785d90a:[()=>n.e(1258).then(n.bind(n,98158)),"@site/release-notes/2021-10-26-4.9.2.md?truncated=true",98158],d7a098ee:[()=>n.e(438).then(n.bind(n,67598)),"@site/release-notes/2020-06-29-4.7.1.md?truncated=true",67598],d9489a4f:[()=>n.e(5418).then(n.bind(n,33008)),"@site/docs/02-producer/06message5.md",33008],dabf5bdf:[()=>n.e(6473).then(n.bind(n,60542)),"@site/versioned_docs/version-5.0/04-featureBehavior/05sendretrypolicy.md",60542],dc9e3ed0:[()=>n.e(1034).then(n.bind(n,52106)),"@site/versioned_docs/version-5.0/03-domainModel/03messagequeue.md",52106],dd51c2a4:[()=>n.e(3721).then(n.bind(n,86068)),"@site/versioned_docs/version-5.0/06-bestPractice/01bestpractice.md",86068],ddb76b72:[()=>n.e(1593).then(n.t.bind(n,45005,19)),"~blog/news/zh-news-dcb.json",45005],de29319c:[()=>n.e(4205).then(n.bind(n,43022)),"@site/versioned_docs/version-5.0/03-domainModel/04message.md",43022],de7ea2fe:[()=>n.e(7252).then(n.t.bind(n,27649,19)),"~blog/release-notes/zh-release-notes-tags-version-page-2-e9a.json",27649],df5c85d0:[()=>n.e(9780).then(n.bind(n,1957)),"@site/docs/01-introduction/01whychoose.md",1957],e04d54c4:[()=>n.e(3258).then(n.bind(n,98120)),"@site/news/16.md",98120],e1a325bd:[()=>n.e(1928).then(n.bind(n,46512)),"@site/release-notes/2021-03-17-release-notes-rocketmq-client-go-2.1.0.md?truncated=true",46512],e2534e20:[()=>n.e(6289).then(n.bind(n,84775)),"@site/release-notes/2023-05-18-4.9.6.md",84775],e29a0983:[()=>n.e(8262).then(n.t.bind(n,22437,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-4-e9b.json",22437],e2b8ef29:[()=>n.e(7974).then(n.t.bind(n,8859,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-3-3bd.json",8859],e40838ee:[()=>n.e(4507).then(n.t.bind(n,4323,19)),"~blog/release-notes/zh-release-notes-tags-version-page-4-84f-list.json",4323],e4a2abc8:[()=>n.e(2065).then(n.t.bind(n,19644,19)),"~blog/release-notes/zh-release-notes-tags-version-page-4-84f.json",19644],e5de87c8:[()=>n.e(9390).then(n.bind(n,98341)),"@site/news/04.md?truncated=true",98341],e946ae30:[()=>n.e(5652).then(n.bind(n,86948)),"@site/blog/mse.mdx?truncated=true",86948],ecd96bcd:[()=>n.e(799).then(n.bind(n,87637)),"@site/events/meetup\u897f\u5b89.md",87637],ee2bdcdf:[()=>n.e(9136).then(n.bind(n,48124)),"@site/news/05.md",48124],eeafdef5:[()=>n.e(8225).then(n.t.bind(n,39981,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-page-3-128.json",39981],ef9d6a50:[()=>n.e(4649).then(n.bind(n,18715)),"@site/news/13.md",18715],f15304d0:[()=>Promise.all([n.e(1869),n.e(7804)]).then(n.bind(n,57011)),"@site/src/pages/components/Section.js",57011],f2fbfb1a:[()=>n.e(8761).then(n.bind(n,48248)),"@site/events/\u82cf\u5ddemeetup.md",48248],f321f471:[()=>Promise.all([n.e(1869),n.e(7975)]).then(n.bind(n,30037)),"@site/src/pages/components/Robot.js",30037],f39c0ae2:[()=>n.e(3474).then(n.bind(n,37163)),"@site/release-notes/2019-11-01-release-notes-rocketmq-spring-2.0.4.md?truncated=true",37163],f3bf0d7a:[()=>n.e(6254).then(n.t.bind(n,64403,19)),"~blog/release-notes/zh-release-notes-page-3-39e.json",64403],f415570d:[()=>n.e(9235).then(n.t.bind(n,35852,19)),"~blog/release-notes/zh-release-notes-page-2-8ef.json",35852],f44b47d1:[()=>n.e(3725).then(n.bind(n,16387)),"@site/docs/03-consumer/03pull.md",16387],f480065b:[()=>n.e(4230).then(n.t.bind(n,47683,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-sprint-62d.json",47683],f7ada8a8:[()=>n.e(2085).then(n.t.bind(n,65231,19)),"~blog/events/blog-post-list-prop-events.json",65231],f982a64f:[()=>n.e(3262).then(n.bind(n,18074)),"@site/docs/08-mqtt/01RocketMQMQTTOverview.md",18074],f9c7fc71:[()=>n.e(9663).then(n.t.bind(n,39162,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-client-go-493-list.json",39162],fbc7a890:[()=>n.e(7777).then(n.bind(n,38612)),"@site/release-notes/2019-08-02-4.5.2.md?truncated=true",38612],fc9b999f:[()=>n.e(508).then(n.t.bind(n,4061,19)),"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],fd49290f:[()=>n.e(9129).then(n.t.bind(n,16571,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-client-go-493.json",16571],fd93cfee:[()=>Promise.all([n.e(1869),n.e(9352)]).then(n.bind(n,60125)),"@site/src/pages/components/Highlight.js",60125],fdf6ef84:[()=>n.e(1348).then(n.bind(n,61093)),"@site/versioned_docs/version-5.0/04-featureBehavior/09consumerprogress.md",61093],fe26666d:[()=>n.e(9230).then(n.t.bind(n,61328,19)),"~blog/release-notes/zh-release-notes-tags-version-page-2-e9a-list.json",61328],fe920e07:[()=>n.e(3815).then(n.bind(n,28326)),"@site/release-notes/2019-05-13-4.5.1.md?truncated=true",28326],feacc518:[()=>n.e(7219).then(n.bind(n,19598)),"@site/release-notes/2021-08-31-release-notes-rocketmq-spring-2.2.1.md",19598],feddb877:[()=>n.e(7508).then(n.bind(n,51459)),"@site/release-notes/2023-03-26-4.9.5.md?truncated=true",51459],ff0865b6:[()=>n.e(8204).then(n.bind(n,27265)),"@site/versioned_docs/version-5.0/06-bestPractice/02dledger.md",27265],ff2fbc48:[()=>n.e(902).then(n.t.bind(n,78567,19)),"~blog/release-notes/zh-release-notes-tags-rocket-mq-page-2-813.json",78567],ff861ac0:[()=>n.e(8202).then(n.bind(n,9084)),"@site/docs/03-consumer/01concept2.md",9084],ffc6128b:[()=>n.e(9095).then(n.t.bind(n,6428,19)),"~blog/release-notes/zh-release-notes-tags-release-notes-f07-list.json",6428]};function l(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("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%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("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"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(86921),d=n(53102);function p(e,t){if("*"===e)return i()({loading:l,loader:()=>n.e(1774).then(n.bind(n,81774)),modules:["@theme/NotFound"],webpack:()=>[81774],render(e,t){const n=e.default;return r.createElement(d.W,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=s[`${e}-${t}`],p={},f=[],m=[],h=(0,u.A)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=c[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:l,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));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 a=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{a=a[e]})),a[s[s.length-1]]=o}));const s=i.__comp;delete i.__comp;const c=i.__context;return delete i.__context,r.createElement(d.W,{value:c},r.createElement(s,(0,o.A)({},i,n)))}})}const f=[{path:"/zh/blog",component:p("/zh/blog","71d"),exact:!0},{path:"/zh/blog/archive",component:p("/zh/blog/archive","3c7"),exact:!0},{path:"/zh/blog/mse",component:p("/zh/blog/mse","fe8"),exact:!0},{path:"/zh/components/Community",component:p("/zh/components/Community","684"),exact:!0},{path:"/zh/components/Hero",component:p("/zh/components/Hero","38a"),exact:!0},{path:"/zh/components/Highlight",component:p("/zh/components/Highlight","b26"),exact:!0},{path:"/zh/components/LogoCarousel",component:p("/zh/components/LogoCarousel","114"),exact:!0},{path:"/zh/components/Robot",component:p("/zh/components/Robot","c8a"),exact:!0},{path:"/zh/components/Section",component:p("/zh/components/Section","22b"),exact:!0},{path:"/zh/contact",component:p("/zh/contact","e91"),exact:!0},{path:"/zh/download",component:p("/zh/download","09b"),exact:!0},{path:"/zh/enterprise",component:p("/zh/enterprise","bfa"),exact:!0},{path:"/zh/events",component:p("/zh/events","9c6"),exact:!0},{path:"/zh/events/archive",component:p("/zh/events/archive","136"),exact:!0},{path:"/zh/events/meetup\u897f\u5b89",component:p("/zh/events/meetup\u897f\u5b89","dbe"),exact:!0},{path:"/zh/events/\u82cf\u5ddemeetup",component:p("/zh/events/\u82cf\u5ddemeetup","476"),exact:!0},{path:"/zh/news",component:p("/zh/news","f7a"),exact:!0},{path:"/zh/news/01",component:p("/zh/news/01","fb8"),exact:!0},{path:"/zh/news/02",component:p("/zh/news/02","c06"),exact:!0},{path:"/zh/news/03",component:p("/zh/news/03","9b6"),exact:!0},{path:"/zh/news/04",component:p("/zh/news/04","d07"),exact:!0},{path:"/zh/news/05",component:p("/zh/news/05","cc6"),exact:!0},{path:"/zh/news/06",component:p("/zh/news/06","47a"),exact:!0},{path:"/zh/news/07",component:p("/zh/news/07","379"),exact:!0},{path:"/zh/news/08",component:p("/zh/news/08","fc0"),exact:!0},{path:"/zh/news/09",component:p("/zh/news/09","6b3"),exact:!0},{path:"/zh/news/10",component:p("/zh/news/10","b06"),exact:!0},{path:"/zh/news/11",component:p("/zh/news/11","38f"),exact:!0},{path:"/zh/news/12",component:p("/zh/news/12","647"),exact:!0},{path:"/zh/news/13",component:p("/zh/news/13","a61"),exact:!0},{path:"/zh/news/14",component:p("/zh/news/14","ee9"),exact:!0},{path:"/zh/news/15",component:p("/zh/news/15","ace"),exact:!0},{path:"/zh/news/16",component:p("/zh/news/16","f98"),exact:!0},{path:"/zh/news/17",component:p("/zh/news/17","6a9"),exact:!0},{path:"/zh/news/18",component:p("/zh/news/18","30d"),exact:!0},{path:"/zh/news/archive",component:p("/zh/news/archive","d20"),exact:!0},{path:"/zh/news/page/2",component:p("/zh/news/page/2","4f7"),exact:!0},{path:"/zh/origin",component:p("/zh/origin","b22"),exact:!0},{path:"/zh/release-notes",component:p("/zh/release-notes","ecf"),exact:!0},{path:"/zh/release-notes/2017/01/24/4.0.0",component:p("/zh/release-notes/2017/01/24/4.0.0","d55"),exact:!0},{path:"/zh/release-notes/2017/06/02/4.1.0",component:p("/zh/release-notes/2017/06/02/4.1.0","9a1"),exact:!0},{path:"/zh/release-notes/2017/12/13/4.2.0",component:p("/zh/release-notes/2017/12/13/4.2.0","63e"),exact:!0},{path:"/zh/release-notes/2018/07/24/4.3.0",component:p("/zh/release-notes/2018/07/24/4.3.0","a0f"),exact:!0},{path:"/zh/release-notes/2018/08/29/4.3.1",component:p("/zh/release-notes/2018/08/29/4.3.1","835"),exact:!0},{path:"/zh/release-notes/2018/11/02/4.3.2",component:p("/zh/release-notes/2018/11/02/4.3.2","a73"),exact:!0},{path:"/zh/release-notes/2019/01/17/4.4.0",component:p("/zh/release-notes/2019/01/17/4.4.0","edf"),exact:!0},{path:"/zh/release-notes/2019/03/29/4.5.0",component:p("/zh/release-notes/2019/03/29/4.5.0","e6e"),exact:!0},{path:"/zh/release-notes/2019/05/13/4.5.1",component:p("/zh/release-notes/2019/05/13/4.5.1","ca7"),exact:!0},{path:"/zh/release-notes/2019/08/02/4.5.2",component:p("/zh/release-notes/2019/08/02/4.5.2","583"),exact:!0},{path:"/zh/release-notes/2019/08/20/release-notes-rocketmq-client-cpp-1.2.3",component:p("/zh/release-notes/2019/08/20/release-notes-rocketmq-client-cpp-1.2.3","29d"),exact:!0},{path:"/zh/release-notes/2019/11/01/release-notes-rocketmq-spring-2.0.4",component:p("/zh/release-notes/2019/11/01/release-notes-rocketmq-spring-2.0.4","22b"),exact:!0},{path:"/zh/release-notes/2019/11/11/release-notes-rocketmq-client-cpp-1.2.4",component:p("/zh/release-notes/2019/11/11/release-notes-rocketmq-client-cpp-1.2.4","a7b"),exact:!0},{path:"/zh/release-notes/2019/11/20/release-notes-rocketmq-client-go-1.2.4",component:p("/zh/release-notes/2019/11/20/release-notes-rocketmq-client-go-1.2.4","d9f"),exact:!0},{path:"/zh/release-notes/2019/11/25/4.6.0",component:p("/zh/release-notes/2019/11/25/4.6.0","829"),exact:!0},{path:"/zh/release-notes/2020/02/10/release-notes-rocketmq-spring-2.1.0",component:p("/zh/release-notes/2020/02/10/release-notes-rocketmq-spring-2.1.0","8ee"),exact:!0},{path:"/zh/release-notes/2020/02/14/release-notes-rocketmq-client-cpp-2.0.0",component:p("/zh/release-notes/2020/02/14/release-notes-rocketmq-client-cpp-2.0.0","5f2"),exact:!0},{path:"/zh/release-notes/2020/03/16/4.7.0",component:p("/zh/release-notes/2020/03/16/4.7.0","753"),exact:!0},{path:"/zh/release-notes/2020/03/23/release-notes-rocketmq-client-cpp-2.1.0",component:p("/zh/release-notes/2020/03/23/release-notes-rocketmq-client-cpp-2.1.0","e32"),exact:!0},{path:"/zh/release-notes/2020/03/31/release-notes-rocketmq-client-go-2.0.0",component:p("/zh/release-notes/2020/03/31/release-notes-rocketmq-client-go-2.0.0","186"),exact:!0},{path:"/zh/release-notes/2020/04/02/release-notes-rocketmq-client-cpp-2.2.0",component:p("/zh/release-notes/2020/04/02/release-notes-rocketmq-client-cpp-2.2.0","d11"),exact:!0},{path:"/zh/release-notes/2020/06/29/4.7.1",component:p("/zh/release-notes/2020/06/29/4.7.1","10d"),exact:!0},{path:"/zh/release-notes/2020/07/20/release-notes-rocketmq-spring-2.1.1",component:p("/zh/release-notes/2020/07/20/release-notes-rocketmq-spring-2.1.1","952"),exact:!0},{path:"/zh/release-notes/2020/12/21/4.8.0",component:p("/zh/release-notes/2020/12/21/4.8.0","ee7"),exact:!0},{path:"/zh/release-notes/2020/2/14/4.6.1",component:p("/zh/release-notes/2020/2/14/4.6.1","c8f"),exact:!0},{path:"/zh/release-notes/2021/01/08/release-notes-rocketmq-spring-2.2.0",component:p("/zh/release-notes/2021/01/08/release-notes-rocketmq-spring-2.2.0","a4a"),exact:!0},{path:"/zh/release-notes/2021/03/17/release-notes-rocketmq-client-go-2.1.0",component:p("/zh/release-notes/2021/03/17/release-notes-rocketmq-client-go-2.1.0","267"),exact:!0},{path:"/zh/release-notes/2021/06/15/4.9.0",component:p("/zh/release-notes/2021/06/15/4.9.0","c40"),exact:!0},{path:"/zh/release-notes/2021/08/22/4.9.1",component:p("/zh/release-notes/2021/08/22/4.9.1","3b4"),exact:!0},{path:"/zh/release-notes/2021/08/31/release-notes-rocketmq-spring-2.2.1",component:p("/zh/release-notes/2021/08/31/release-notes-rocketmq-spring-2.2.1","3c3"),exact:!0},{path:"/zh/release-notes/2021/09/06/release-notes-5.0.0-PREVIEW",component:p("/zh/release-notes/2021/09/06/release-notes-5.0.0-PREVIEW","4e9"),exact:!0},{path:"/zh/release-notes/2021/09/23/release-notes-rocketmq-dashboard-1.0.0",component:p("/zh/release-notes/2021/09/23/release-notes-rocketmq-dashboard-1.0.0","480"),exact:!0},{path:"/zh/release-notes/2021/10/26/4.9.2",component:p("/zh/release-notes/2021/10/26/4.9.2","60c"),exact:!0},{path:"/zh/release-notes/2022/01/18/release-notes-rocketmq-streams-1.0.0-preview",component:p("/zh/release-notes/2022/01/18/release-notes-rocketmq-streams-1.0.0-preview","4f6"),exact:!0},{path:"/zh/release-notes/2022/03/04/4.9.3",component:p("/zh/release-notes/2022/03/04/4.9.3","cb0"),exact:!0},{path:"/zh/release-notes/2022/03/04/4.9.4",component:p("/zh/release-notes/2022/03/04/4.9.4","507"),exact:!0},{path:"/zh/release-notes/2022/03/15/5.0.0-ALPHA",component:p("/zh/release-notes/2022/03/15/5.0.0-ALPHA","f32"),exact:!0},{path:"/zh/release-notes/2022/04/05/release-notes-rocketmq-spring-2.2.2",component:p("/zh/release-notes/2022/04/05/release-notes-rocketmq-spring-2.2.2","505"),exact:!0},{path:"/zh/release-notes/2022/04/18/release-notes-rocketmq-streams-1.0.1-preview",component:p("/zh/release-notes/2022/04/18/release-notes-rocketmq-streams-1.0.1-preview","a80"),exact:!0},{path:"/zh/release-notes/2022/07/25/release-notes-rocketmq-client-go-2.1.1",component:p("/zh/release-notes/2022/07/25/release-notes-rocketmq-client-go-2.1.1","b33"),exact:!0},{path:"/zh/release-notes/2022/09/09/5.0.0",component:p("/zh/release-notes/2022/09/09/5.0.0","1b1"),exact:!0},{path:"/zh/release-notes/2022/10/17/release-notes-rocketmq-schema-registry-all-0.1.0",component:p("/zh/release-notes/2022/10/17/release-notes-rocketmq-schema-registry-all-0.1.0","29a"),exact:!0},{path:"/zh/release-notes/2023/01/06/release-notes-rocketmq-streams-all-1.1.0",component:p("/zh/release-notes/2023/01/06/release-notes-rocketmq-streams-all-1.1.0","759"),exact:!0},{path:"/zh/release-notes/2023/02/06/release-notes-rocketmq-spring-2.2.3",component:p("/zh/release-notes/2023/02/06/release-notes-rocketmq-spring-2.2.3","85b"),exact:!0},{path:"/zh/release-notes/2023/02/16/5.1.0",component:p("/zh/release-notes/2023/02/16/5.1.0","cec"),exact:!0},{path:"/zh/release-notes/2023/02/22/release-notes-rocketmq-streams-all-1.1.1",component:p("/zh/release-notes/2023/02/22/release-notes-rocketmq-streams-all-1.1.1","49e"),exact:!0},{path:"/zh/release-notes/2023/03/26/4.9.5",component:p("/zh/release-notes/2023/03/26/4.9.5","d7d"),exact:!0},{path:"/zh/release-notes/2023/05/15/5.1.1",component:p("/zh/release-notes/2023/05/15/5.1.1","506"),exact:!0},{path:"/zh/release-notes/2023/05/18/4.9.6",component:p("/zh/release-notes/2023/05/18/4.9.6","a82"),exact:!0},{path:"/zh/release-notes/2023/06/12/4.9.7",component:p("/zh/release-notes/2023/06/12/4.9.7","a74"),exact:!0},{path:"/zh/release-notes/2023/06/12/5.1.2",component:p("/zh/release-notes/2023/06/12/5.1.2","0b0"),exact:!0},{path:"/zh/release-notes/2023/06/24/5.1.3",component:p("/zh/release-notes/2023/06/24/5.1.3","e06"),exact:!0},{path:"/zh/release-notes/2023/09/22/5.1.4",component:p("/zh/release-notes/2023/09/22/5.1.4","5f5"),exact:!0},{path:"/zh/release-notes/2024/01/29/4.9.8",component:p("/zh/release-notes/2024/01/29/4.9.8","b8c"),exact:!0},{path:"/zh/release-notes/2024/01/30/5.2.0",component:p("/zh/release-notes/2024/01/30/5.2.0","124"),exact:!0},{path:"/zh/release-notes/2024/02/19/release-notes-rocketmq-spring-2.3.0",component:p("/zh/release-notes/2024/02/19/release-notes-rocketmq-spring-2.3.0","219"),exact:!0},{path:"/zh/release-notes/archive",component:p("/zh/release-notes/archive","a06"),exact:!0},{path:"/zh/release-notes/page/2",component:p("/zh/release-notes/page/2","41d"),exact:!0},{path:"/zh/release-notes/page/3",component:p("/zh/release-notes/page/3","8f9"),exact:!0},{path:"/zh/release-notes/page/4",component:p("/zh/release-notes/page/4","58f"),exact:!0},{path:"/zh/release-notes/page/5",component:p("/zh/release-notes/page/5","d5f"),exact:!0},{path:"/zh/release-notes/page/6",component:p("/zh/release-notes/page/6","379"),exact:!0},{path:"/zh/release-notes/tags",component:p("/zh/release-notes/tags","07d"),exact:!0},{path:"/zh/release-notes/tags/release-notes",component:p("/zh/release-notes/tags/release-notes","070"),exact:!0},{path:"/zh/release-notes/tags/release-notes/page/2",component:p("/zh/release-notes/tags/release-notes/page/2","754"),exact:!0},{path:"/zh/release-notes/tags/release-notes/page/3",component:p("/zh/release-notes/tags/release-notes/page/3","297"),exact:!0},{path:"/zh/release-notes/tags/release-notes/page/4",component:p("/zh/release-notes/tags/release-notes/page/4","78c"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq",component:p("/zh/release-notes/tags/rocket-mq","d23"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-client-cpp",component:p("/zh/release-notes/tags/rocket-mq-client-cpp","8ac"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-client-go",component:p("/zh/release-notes/tags/rocket-mq-client-go","cf5"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-dashboard",component:p("/zh/release-notes/tags/rocket-mq-dashboard","32d"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-schema-registry",component:p("/zh/release-notes/tags/rocket-mq-schema-registry","d27"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-spring",component:p("/zh/release-notes/tags/rocket-mq-spring","83c"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-sprint",component:p("/zh/release-notes/tags/rocket-mq-sprint","79e"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq-streams",component:p("/zh/release-notes/tags/rocket-mq-streams","87e"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq/page/2",component:p("/zh/release-notes/tags/rocket-mq/page/2","705"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq/page/3",component:p("/zh/release-notes/tags/rocket-mq/page/3","771"),exact:!0},{path:"/zh/release-notes/tags/rocket-mq/page/4",component:p("/zh/release-notes/tags/rocket-mq/page/4","f60"),exact:!0},{path:"/zh/release-notes/tags/version",component:p("/zh/release-notes/tags/version","958"),exact:!0},{path:"/zh/release-notes/tags/version/page/2",component:p("/zh/release-notes/tags/version/page/2","a9f"),exact:!0},{path:"/zh/release-notes/tags/version/page/3",component:p("/zh/release-notes/tags/version/page/3","6e8"),exact:!0},{path:"/zh/release-notes/tags/version/page/4",component:p("/zh/release-notes/tags/version/page/4","5e5"),exact:!0},{path:"/zh/search",component:p("/zh/search","348"),exact:!0},{path:"/zh/team",component:p("/zh/team","112"),exact:!0},{path:"/zh/version",component:p("/zh/version","d5d"),exact:!0},{path:"/zh/version%202",component:p("/zh/version%202","24d"),exact:!0},{path:"/zh/versions",component:p("/zh/versions","83d"),exact:!0},{path:"/zh/docs/4.x",component:p("/zh/docs/4.x","a97"),routes:[{path:"/zh/docs/4.x/",component:p("/zh/docs/4.x/","691"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/01bestpractice",component:p("/zh/docs/4.x/bestPractice/01bestpractice","e9c"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/02dledger",component:p("/zh/docs/4.x/bestPractice/02dledger","51d"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/03messagetra",component:p("/zh/docs/4.x/bestPractice/03messagetra","e7f"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/04access",component:p("/zh/docs/4.x/bestPractice/04access","048"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/05JVMOS",component:p("/zh/docs/4.x/bestPractice/05JVMOS","db3"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/06log",component:p("/zh/docs/4.x/bestPractice/06log","965"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/07subscribe",component:p("/zh/docs/4.x/bestPractice/07subscribe","108"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/bestPractice/08FAQ",component:p("/zh/docs/4.x/bestPractice/08FAQ","ac8"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/01RocketMQ Connect Overview",component:p("/zh/docs/4.x/connect/01RocketMQ Connect Overview","b4b"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/02RocketMQ Connect Concept",component:p("/zh/docs/4.x/connect/02RocketMQ Connect Concept","5c7"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/03RocketMQ Connect Quick Start",component:p("/zh/docs/4.x/connect/03RocketMQ Connect Quick Start","5dc"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/04RocketMQ Connect In Action1",component:p("/zh/docs/4.x/connect/04RocketMQ Connect In Action1","054"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/05RocketMQ Connect In Action2",component:p("/zh/docs/4.x/connect/05RocketMQ Connect In Action2","2e7"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/06RocketMQ Connect In Action3",component:p("/zh/docs/4.x/connect/06RocketMQ Connect In Action3","154"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/07RocketMQ Connect In Action4",component:p("/zh/docs/4.x/connect/07RocketMQ Connect In Action4","7ba"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/connect/08RocketMQ  Connect In Action5-ES",component:p("/zh/docs/4.x/connect/08RocketMQ  Connect In Action5-ES","566"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/consumer/01concept2",component:p("/zh/docs/4.x/consumer/01concept2","327"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/consumer/02push",component:p("/zh/docs/4.x/consumer/02push","124"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/consumer/03pull",component:p("/zh/docs/4.x/consumer/03pull","ff9"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/contributionGuide/01how-to-contribute",component:p("/zh/docs/4.x/contributionGuide/01how-to-contribute","e84"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/contributionGuide/02code-guidelines",component:p("/zh/docs/4.x/contributionGuide/02code-guidelines","356"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/contributionGuide/03pull-request",component:p("/zh/docs/4.x/contributionGuide/03pull-request","cb8"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/contributionGuide/04release-manual",component:p("/zh/docs/4.x/contributionGuide/04release-manual","b15"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/deployment/01deploy",component:p("/zh/docs/4.x/deployment/01deploy","03e"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/deployment/02admintool",component:p("/zh/docs/4.x/deployment/02admintool","61f"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/deployment/03Dashboard",component:p("/zh/docs/4.x/deployment/03Dashboard","2fe"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/deployment/04Exporter",component:p("/zh/docs/4.x/deployment/04Exporter","dcb"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/eventbridge/01RocketMQEventBridgeConcepts",component:p("/zh/docs/4.x/eventbridge/01RocketMQEventBridgeConcepts","b04"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/eventbridge/02RocketMQEventBridgeOverview",component:p("/zh/docs/4.x/eventbridge/02RocketMQEventBridgeOverview","395"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/eventbridge/03RocketMQEventBridgeQuickStart",component:p("/zh/docs/4.x/eventbridge/03RocketMQEventBridgeQuickStart","b77"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/introduction/02quickstart",component:p("/zh/docs/4.x/introduction/02quickstart","710"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/introduction/03whatis",component:p("/zh/docs/4.x/introduction/03whatis","568"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/mqtt/01RocketMQMQTTOverview",component:p("/zh/docs/4.x/mqtt/01RocketMQMQTTOverview","7a1"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/mqtt/02RocketMQMQTTQuickStart",component:p("/zh/docs/4.x/mqtt/02RocketMQMQTTQuickStart","70b"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/parameterConfiguration/01local",component:p("/zh/docs/4.x/parameterConfiguration/01local","7df"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/parameterConfiguration/02server",component:p("/zh/docs/4.x/parameterConfiguration/02server","5f2"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/01concept1",component:p("/zh/docs/4.x/producer/01concept1","28d"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/02message1",component:p("/zh/docs/4.x/producer/02message1","d22"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/03message2",component:p("/zh/docs/4.x/producer/03message2","596"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/04message3",component:p("/zh/docs/4.x/producer/04message3","294"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/05message4",component:p("/zh/docs/4.x/producer/05message4","430"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/producer/06message5",component:p("/zh/docs/4.x/producer/06message5","c59"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/streams/01RocketMQ Streams Overview",component:p("/zh/docs/4.x/streams/01RocketMQ Streams Overview","54d"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/streams/02RocketMQ Streams Concept",component:p("/zh/docs/4.x/streams/02RocketMQ Streams Concept","ef3"),exact:!0,sidebar:"myAutogeneratedSidebar"},{path:"/zh/docs/4.x/streams/03RocketMQ Streams Quick Start",component:p("/zh/docs/4.x/streams/03RocketMQ Streams Quick Start","085"),exact:!0,sidebar:"myAutogeneratedSidebar"}]},{path:"/zh/docs/",component:p("/zh/docs/","e4f"),routes:[{path:"/zh/docs/",component:p("/zh/docs/","160"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/01bestpractice",component:p("/zh/docs/bestPractice/01bestpractice","819"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/02dledger",component:p("/zh/docs/bestPractice/02dledger","ebe"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/03access",component:p("/zh/docs/bestPractice/03access","220"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/04JVMOS",component:p("/zh/docs/bestPractice/04JVMOS","b54"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/05subscribe",component:p("/zh/docs/bestPractice/05subscribe","789"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/bestPractice/06FAQ",component:p("/zh/docs/bestPractice/06FAQ","284"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/01RocketMQ Connect Overview",component:p("/zh/docs/connect/01RocketMQ Connect Overview","476"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/02RocketMQ Connect Concept",component:p("/zh/docs/connect/02RocketMQ Connect Concept","0a4"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/03RocketMQ Connect Quick Start",component:p("/zh/docs/connect/03RocketMQ Connect Quick Start","a36"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/04RocketMQ Connect In Action1",component:p("/zh/docs/connect/04RocketMQ Connect In Action1","a0c"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/05RocketMQ Connect In Action2",component:p("/zh/docs/connect/05RocketMQ Connect In Action2","a3f"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/06RocketMQ Connect In Action3",component:p("/zh/docs/connect/06RocketMQ Connect In Action3","41b"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/07RocketMQ Connect In Action4",component:p("/zh/docs/connect/07RocketMQ Connect In Action4","766"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/connect/08RocketMQ  Connect In Action5-ES",component:p("/zh/docs/connect/08RocketMQ  Connect In Action5-ES","21b"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/contributionGuide/01how-to-contribute",component:p("/zh/docs/contributionGuide/01how-to-contribute","004"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/contributionGuide/02code-guidelines",component:p("/zh/docs/contributionGuide/02code-guidelines","bc9"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/contributionGuide/03pull-request",component:p("/zh/docs/contributionGuide/03pull-request","4f6"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/contributionGuide/04release-manual",component:p("/zh/docs/contributionGuide/04release-manual","15f"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/deploymentOperations/01deploy",component:p("/zh/docs/deploymentOperations/01deploy","378"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/deploymentOperations/02admintool",component:p("/zh/docs/deploymentOperations/02admintool","8b0"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/deploymentOperations/03autofailover",component:p("/zh/docs/deploymentOperations/03autofailover","53f"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/deploymentOperations/04Dashboard",component:p("/zh/docs/deploymentOperations/04Dashboard","e94"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/deploymentOperations/05Exporter",component:p("/zh/docs/deploymentOperations/05Exporter","eb0"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/01main",component:p("/zh/docs/domainModel/01main","63f"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/02topic",component:p("/zh/docs/domainModel/02topic","4cb"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/03messagequeue",component:p("/zh/docs/domainModel/03messagequeue","94a"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/04message",component:p("/zh/docs/domainModel/04message","a94"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/04producer",component:p("/zh/docs/domainModel/04producer","2d6"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/07consumergroup",component:p("/zh/docs/domainModel/07consumergroup","6da"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/08consumer",component:p("/zh/docs/domainModel/08consumer","a56"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/domainModel/09subscription",component:p("/zh/docs/domainModel/09subscription","d25"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/eventbridge/01RocketMQEventBridgeConcepts",component:p("/zh/docs/eventbridge/01RocketMQEventBridgeConcepts","cff"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/eventbridge/02RocketMQEventBridgeOverview",component:p("/zh/docs/eventbridge/02RocketMQEventBridgeOverview","71a"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/eventbridge/03RocketMQEventBridgeQuickStart",component:p("/zh/docs/eventbridge/03RocketMQEventBridgeQuickStart","1ef"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/01normalmessage",component:p("/zh/docs/featureBehavior/01normalmessage","78c"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/02delaymessage",component:p("/zh/docs/featureBehavior/02delaymessage","2c7"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/03fifomessage",component:p("/zh/docs/featureBehavior/03fifomessage","917"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/04transactionmessage",component:p("/zh/docs/featureBehavior/04transactionmessage","1ba"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/05sendretrypolicy",component:p("/zh/docs/featureBehavior/05sendretrypolicy","2e9"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/06consumertype",component:p("/zh/docs/featureBehavior/06consumertype","813"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/07messagefilter",component:p("/zh/docs/featureBehavior/07messagefilter","fd7"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/08consumerloadbalance",component:p("/zh/docs/featureBehavior/08consumerloadbalance","587"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/09consumerprogress",component:p("/zh/docs/featureBehavior/09consumerprogress","f6c"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/10consumerretrypolicy",component:p("/zh/docs/featureBehavior/10consumerretrypolicy","03d"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/featureBehavior/11messagestorepolicy",component:p("/zh/docs/featureBehavior/11messagestorepolicy","44e"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/introduction/02concepts",component:p("/zh/docs/introduction/02concepts","a37"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/introduction/03limits",component:p("/zh/docs/introduction/03limits","27f"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/mqtt/01RocketMQMQTTOverview",component:p("/zh/docs/mqtt/01RocketMQMQTTOverview","e43"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/mqtt/02RocketMQMQTTQuickStart",component:p("/zh/docs/mqtt/02RocketMQMQTTQuickStart","1a4"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/observability/01metrics",component:p("/zh/docs/observability/01metrics","251"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/quickStart/01quickstart",component:p("/zh/docs/quickStart/01quickstart","8d9"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/sdk/01overview",component:p("/zh/docs/sdk/01overview","939"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/sdk/02java",component:p("/zh/docs/sdk/02java","960"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/sdk/03cplusplus",component:p("/zh/docs/sdk/03cplusplus","85e"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/sdk/04csharp",component:p("/zh/docs/sdk/04csharp","710"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/sdk/05go",component:p("/zh/docs/sdk/05go","933"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/streams/01RocketMQ Streams Overview",component:p("/zh/docs/streams/01RocketMQ Streams Overview","c73"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/streams/02RocketMQ Streams Concept",component:p("/zh/docs/streams/02RocketMQ Streams Concept","fc3"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"},{path:"/zh/docs/streams/03RocketMQ Streams Quick Start",component:p("/zh/docs/streams/03RocketMQ Streams Quick Start","8a3"),exact:!0,sidebar:"version-5.0/myAutogeneratedSidebar"}]},{path:"/zh/",component:p("/zh/","b3c"),exact:!0},{path:"*",component:p("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>a});var r=n(96540);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},38536:(e,t,n)=>{"use strict";var r=n(96540),o=n(40961),a=n(54625),i=n(80545),s=n(38193);const c=[n(10119),n(26134),n(76294),n(51043),n(45815),n(37651)];var l=n(35947),u=n(56347),d=n(22831);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(58168),m=n(5260),h=n(44586),g=n(86025),b=n(6342),v=n(69024),y=n(32131),w=n(14090),k=n(2967),S=n(70440),_=n(41463);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.A)(),n=(0,y.o)();return r.createElement(m.A,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),o=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,u.zy)();return e+(0,S.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:o;return r.createElement(m.A,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function A(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return r.createElement(r.Fragment,null,r.createElement(m.A,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.w})),n&&r.createElement(v.be,{image:n}),r.createElement(E,null),r.createElement(x,null),r.createElement(_.A,{tag:k.Cy,locale:e}),r.createElement(m.A,null,t.map(((e,t)=>r.createElement("meta",(0,f.A)({key:t},e))))))}const z=new Map;function C(e){if(z.has(e.pathname))return{...e,pathname:z.get(e.pathname)};if((0,d.u)(l.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return z.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return z.set(e.pathname,t),{...e,pathname:t}}var T=n(6125),R=n(26988);function M(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 o=c.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)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:o}),M("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(l.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?M("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=M("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(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 r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(u.qh,{location:t,render:()=>e}))}}const N=O,I="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container",q="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${q}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n  var shouldInsert = window['${q}'];\n  shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n  var bannerContainer = document.getElementById('${I}');\n  if (!bannerContainer) {\n    return;\n  }\n  var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${D}" 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="${B}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n  bannerContainer.innerHTML = bannerHtml;\n  var suggestionContainer = document.getElementById('${B}');\n  var actualHomePagePath = window.location.pathname;\n  var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n        ? actualHomePagePath\n        : actualHomePagePath + '/';\n  suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function F(){const{siteConfig:{baseUrl:e}}=(0,h.A)();return(0,r.useLayoutEffect)((()=>{window[q]=!1}),[]),r.createElement(r.Fragment,null,!s.A.canUseDOM&&r.createElement(m.A,null,r.createElement("script",null,j(e))),r.createElement("div",{id:I}))}function Q(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.A)(),{pathname:n}=(0,u.zy)();return t&&n===e?r.createElement(F,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,h.A)(),i=(0,g.A)(e),{htmlLang:s,direction:c}=a[o];return r.createElement(m.A,null,r.createElement("html",{lang:s,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var $=n(67489),G=n(92303);function H(){const e=(0,G.A)();return r.createElement(m.A,null,r.createElement("html",{"data-has-hydrated":e}))}function V(){const e=(0,d.v)(l.A),t=(0,u.zy)();return r.createElement($.A,null,r.createElement(R.l,null,r.createElement(T.x,null,r.createElement(p,null,r.createElement(U,null),r.createElement(A,null),r.createElement(Q,null),r.createElement(N,{location:C(t)},e)),r.createElement(H,null))))}var W=n(84054);const K=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 o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.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 Y=n(86921);const X=new Set,J=new Set,Z=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!Z()&&!J.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,d.u)(l.A,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Z()&&!J.has(e))(e)&&(J.add(e),L(e))},te=Object.freeze(ee);if(s.A.canUseDOM){window.docusaurus=te;const e=o.hydrate;L(window.location.pathname).then((()=>{e(r.createElement(i.vd,null,r.createElement(a.Kd,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>u,l:()=>d});var r=n(96540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/zh/docs/","versions":[{"name":"current","label":"4.x","isLast":false,"path":"/zh/docs/4.x","mainDocId":"introduction/01whychoose","docs":[{"id":"bestPractice/01bestpractice","path":"/zh/docs/4.x/bestPractice/01bestpractice","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/02dledger","path":"/zh/docs/4.x/bestPractice/02dledger","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/03messagetra","path":"/zh/docs/4.x/bestPractice/03messagetra","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/04access","path":"/zh/docs/4.x/bestPractice/04access","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/05JVMOS","path":"/zh/docs/4.x/bestPractice/05JVMOS","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/06log","path":"/zh/docs/4.x/bestPractice/06log","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/07subscribe","path":"/zh/docs/4.x/bestPractice/07subscribe","sidebar":"myAutogeneratedSidebar"},{"id":"bestPractice/08FAQ","path":"/zh/docs/4.x/bestPractice/08FAQ","sidebar":"myAutogeneratedSidebar"},{"id":"connect/01RocketMQ Connect Overview","path":"/zh/docs/4.x/connect/01RocketMQ Connect Overview","sidebar":"myAutogeneratedSidebar"},{"id":"connect/02RocketMQ Connect Concept","path":"/zh/docs/4.x/connect/02RocketMQ Connect Concept","sidebar":"myAutogeneratedSidebar"},{"id":"connect/03RocketMQ Connect Quick Start","path":"/zh/docs/4.x/connect/03RocketMQ Connect Quick Start","sidebar":"myAutogeneratedSidebar"},{"id":"connect/04RocketMQ Connect In Action1","path":"/zh/docs/4.x/connect/04RocketMQ Connect In Action1","sidebar":"myAutogeneratedSidebar"},{"id":"connect/05RocketMQ Connect In Action2","path":"/zh/docs/4.x/connect/05RocketMQ Connect In Action2","sidebar":"myAutogeneratedSidebar"},{"id":"connect/06RocketMQ Connect In Action3","path":"/zh/docs/4.x/connect/06RocketMQ Connect In Action3","sidebar":"myAutogeneratedSidebar"},{"id":"connect/07RocketMQ Connect In Action4","path":"/zh/docs/4.x/connect/07RocketMQ Connect In Action4","sidebar":"myAutogeneratedSidebar"},{"id":"connect/08RocketMQ  Connect In Action5-ES","path":"/zh/docs/4.x/connect/08RocketMQ  Connect In Action5-ES","sidebar":"myAutogeneratedSidebar"},{"id":"consumer/01concept2","path":"/zh/docs/4.x/consumer/01concept2","sidebar":"myAutogeneratedSidebar"},{"id":"consumer/02push","path":"/zh/docs/4.x/consumer/02push","sidebar":"myAutogeneratedSidebar"},{"id":"consumer/03pull","path":"/zh/docs/4.x/consumer/03pull","sidebar":"myAutogeneratedSidebar"},{"id":"contributionGuide/01how-to-contribute","path":"/zh/docs/4.x/contributionGuide/01how-to-contribute","sidebar":"myAutogeneratedSidebar"},{"id":"contributionGuide/02code-guidelines","path":"/zh/docs/4.x/contributionGuide/02code-guidelines","sidebar":"myAutogeneratedSidebar"},{"id":"contributionGuide/03pull-request","path":"/zh/docs/4.x/contributionGuide/03pull-request","sidebar":"myAutogeneratedSidebar"},{"id":"contributionGuide/04release-manual","path":"/zh/docs/4.x/contributionGuide/04release-manual","sidebar":"myAutogeneratedSidebar"},{"id":"deployment/01deploy","path":"/zh/docs/4.x/deployment/01deploy","sidebar":"myAutogeneratedSidebar"},{"id":"deployment/02admintool","path":"/zh/docs/4.x/deployment/02admintool","sidebar":"myAutogeneratedSidebar"},{"id":"deployment/03Dashboard","path":"/zh/docs/4.x/deployment/03Dashboard","sidebar":"myAutogeneratedSidebar"},{"id":"deployment/04Exporter","path":"/zh/docs/4.x/deployment/04Exporter","sidebar":"myAutogeneratedSidebar"},{"id":"eventbridge/01RocketMQEventBridgeConcepts","path":"/zh/docs/4.x/eventbridge/01RocketMQEventBridgeConcepts","sidebar":"myAutogeneratedSidebar"},{"id":"eventbridge/02RocketMQEventBridgeOverview","path":"/zh/docs/4.x/eventbridge/02RocketMQEventBridgeOverview","sidebar":"myAutogeneratedSidebar"},{"id":"eventbridge/03RocketMQEventBridgeQuickStart","path":"/zh/docs/4.x/eventbridge/03RocketMQEventBridgeQuickStart","sidebar":"myAutogeneratedSidebar"},{"id":"introduction/01whychoose","path":"/zh/docs/4.x/","sidebar":"myAutogeneratedSidebar"},{"id":"introduction/02quickstart","path":"/zh/docs/4.x/introduction/02quickstart","sidebar":"myAutogeneratedSidebar"},{"id":"introduction/03whatis","path":"/zh/docs/4.x/introduction/03whatis","sidebar":"myAutogeneratedSidebar"},{"id":"mqtt/01RocketMQMQTTOverview","path":"/zh/docs/4.x/mqtt/01RocketMQMQTTOverview","sidebar":"myAutogeneratedSidebar"},{"id":"mqtt/02RocketMQMQTTQuickStart","path":"/zh/docs/4.x/mqtt/02RocketMQMQTTQuickStart","sidebar":"myAutogeneratedSidebar"},{"id":"parameterConfiguration/01local","path":"/zh/docs/4.x/parameterConfiguration/01local","sidebar":"myAutogeneratedSidebar"},{"id":"parameterConfiguration/02server","path":"/zh/docs/4.x/parameterConfiguration/02server","sidebar":"myAutogeneratedSidebar"},{"id":"producer/01concept1","path":"/zh/docs/4.x/producer/01concept1","sidebar":"myAutogeneratedSidebar"},{"id":"producer/02message1","path":"/zh/docs/4.x/producer/02message1","sidebar":"myAutogeneratedSidebar"},{"id":"producer/03message2","path":"/zh/docs/4.x/producer/03message2","sidebar":"myAutogeneratedSidebar"},{"id":"producer/04message3","path":"/zh/docs/4.x/producer/04message3","sidebar":"myAutogeneratedSidebar"},{"id":"producer/05message4","path":"/zh/docs/4.x/producer/05message4","sidebar":"myAutogeneratedSidebar"},{"id":"producer/06message5","path":"/zh/docs/4.x/producer/06message5","sidebar":"myAutogeneratedSidebar"},{"id":"streams/01RocketMQ Streams Overview","path":"/zh/docs/4.x/streams/01RocketMQ Streams Overview","sidebar":"myAutogeneratedSidebar"},{"id":"streams/02RocketMQ Streams Concept","path":"/zh/docs/4.x/streams/02RocketMQ Streams Concept","sidebar":"myAutogeneratedSidebar"},{"id":"streams/03RocketMQ Streams Quick Start","path":"/zh/docs/4.x/streams/03RocketMQ Streams Quick Start","sidebar":"myAutogeneratedSidebar"}],"draftIds":[],"sidebars":{"myAutogeneratedSidebar":{"link":{"path":"/zh/docs/4.x/","label":"introduction/01whychoose"}}}},{"name":"5.0","label":"5.0","isLast":true,"path":"/zh/docs/","mainDocId":"introduction/01whychoose","docs":[{"id":"bestPractice/01bestpractice","path":"/zh/docs/bestPractice/01bestpractice","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"bestPractice/02dledger","path":"/zh/docs/bestPractice/02dledger","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"bestPractice/03access","path":"/zh/docs/bestPractice/03access","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"bestPractice/04JVMOS","path":"/zh/docs/bestPractice/04JVMOS","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"bestPractice/05subscribe","path":"/zh/docs/bestPractice/05subscribe","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"bestPractice/06FAQ","path":"/zh/docs/bestPractice/06FAQ","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/01RocketMQ Connect Overview","path":"/zh/docs/connect/01RocketMQ Connect Overview","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/02RocketMQ Connect Concept","path":"/zh/docs/connect/02RocketMQ Connect Concept","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/03RocketMQ Connect Quick Start","path":"/zh/docs/connect/03RocketMQ Connect Quick Start","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/04RocketMQ Connect In Action1","path":"/zh/docs/connect/04RocketMQ Connect In Action1","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/05RocketMQ Connect In Action2","path":"/zh/docs/connect/05RocketMQ Connect In Action2","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/06RocketMQ Connect In Action3","path":"/zh/docs/connect/06RocketMQ Connect In Action3","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/07RocketMQ Connect In Action4","path":"/zh/docs/connect/07RocketMQ Connect In Action4","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"connect/08RocketMQ  Connect In Action5-ES","path":"/zh/docs/connect/08RocketMQ  Connect In Action5-ES","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"contributionGuide/01how-to-contribute","path":"/zh/docs/contributionGuide/01how-to-contribute","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"contributionGuide/02code-guidelines","path":"/zh/docs/contributionGuide/02code-guidelines","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"contributionGuide/03pull-request","path":"/zh/docs/contributionGuide/03pull-request","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"contributionGuide/04release-manual","path":"/zh/docs/contributionGuide/04release-manual","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"deploymentOperations/01deploy","path":"/zh/docs/deploymentOperations/01deploy","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"deploymentOperations/02admintool","path":"/zh/docs/deploymentOperations/02admintool","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"deploymentOperations/03autofailover","path":"/zh/docs/deploymentOperations/03autofailover","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"deploymentOperations/04Dashboard","path":"/zh/docs/deploymentOperations/04Dashboard","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"deploymentOperations/05Exporter","path":"/zh/docs/deploymentOperations/05Exporter","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/01main","path":"/zh/docs/domainModel/01main","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/02topic","path":"/zh/docs/domainModel/02topic","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/03messagequeue","path":"/zh/docs/domainModel/03messagequeue","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/04message","path":"/zh/docs/domainModel/04message","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/04producer","path":"/zh/docs/domainModel/04producer","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/07consumergroup","path":"/zh/docs/domainModel/07consumergroup","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/08consumer","path":"/zh/docs/domainModel/08consumer","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"domainModel/09subscription","path":"/zh/docs/domainModel/09subscription","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"eventbridge/01RocketMQEventBridgeConcepts","path":"/zh/docs/eventbridge/01RocketMQEventBridgeConcepts","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"eventbridge/02RocketMQEventBridgeOverview","path":"/zh/docs/eventbridge/02RocketMQEventBridgeOverview","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"eventbridge/03RocketMQEventBridgeQuickStart","path":"/zh/docs/eventbridge/03RocketMQEventBridgeQuickStart","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/01normalmessage","path":"/zh/docs/featureBehavior/01normalmessage","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/02delaymessage","path":"/zh/docs/featureBehavior/02delaymessage","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/03fifomessage","path":"/zh/docs/featureBehavior/03fifomessage","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/04transactionmessage","path":"/zh/docs/featureBehavior/04transactionmessage","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/05sendretrypolicy","path":"/zh/docs/featureBehavior/05sendretrypolicy","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/06consumertype","path":"/zh/docs/featureBehavior/06consumertype","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/07messagefilter","path":"/zh/docs/featureBehavior/07messagefilter","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/08consumerloadbalance","path":"/zh/docs/featureBehavior/08consumerloadbalance","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/09consumerprogress","path":"/zh/docs/featureBehavior/09consumerprogress","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/10consumerretrypolicy","path":"/zh/docs/featureBehavior/10consumerretrypolicy","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"featureBehavior/11messagestorepolicy","path":"/zh/docs/featureBehavior/11messagestorepolicy","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"introduction/01whychoose","path":"/zh/docs/","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"introduction/02concepts","path":"/zh/docs/introduction/02concepts","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"introduction/03limits","path":"/zh/docs/introduction/03limits","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"mqtt/01RocketMQMQTTOverview","path":"/zh/docs/mqtt/01RocketMQMQTTOverview","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"mqtt/02RocketMQMQTTQuickStart","path":"/zh/docs/mqtt/02RocketMQMQTTQuickStart","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"observability/01metrics","path":"/zh/docs/observability/01metrics","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"quickStart/01quickstart","path":"/zh/docs/quickStart/01quickstart","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"sdk/01overview","path":"/zh/docs/sdk/01overview","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"sdk/02java","path":"/zh/docs/sdk/02java","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"sdk/03cplusplus","path":"/zh/docs/sdk/03cplusplus","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"sdk/04csharp","path":"/zh/docs/sdk/04csharp","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"sdk/05go","path":"/zh/docs/sdk/05go","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"streams/01RocketMQ Streams Overview","path":"/zh/docs/streams/01RocketMQ Streams Overview","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"streams/02RocketMQ Streams Concept","path":"/zh/docs/streams/02RocketMQ Streams Concept","sidebar":"version-5.0/myAutogeneratedSidebar"},{"id":"streams/03RocketMQ Streams Quick Start","path":"/zh/docs/streams/03RocketMQ Streams Quick Start","sidebar":"version-5.0/myAutogeneratedSidebar"}],"draftIds":[],"sidebars":{"version-5.0/myAutogeneratedSidebar":{"link":{"path":"/zh/docs/","label":"version-5.0/introduction/01whychoose"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["zh","en"],"path":"i18n","currentLocale":"zh","localeConfigs":{"zh":{"label":"\u7b80\u4f53\u4e2d\u6587","direction":"ltr","htmlLang":"zh","calendar":"gregory","path":"zh"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(22654);const c=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.3"},"docusaurus-plugin-baidu-tongji":{"type":"package","name":"docusaurus-plugin-baidu-tongji","version":"0.0.0-beta.4"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.3"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"2.4.3"}}}'),l={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(l);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:l},t)}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(96540),o=n(38193),a=n(5260),i=n(70440),s=n(78511);function c(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(l,{error:t}))}function l(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(c,{error:t,tryAgain:n})},r.createElement(a.A,null,r.createElement("title",null,"Page Error")),r.createElement(s.A,null,r.createElement(c,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.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??d)(e)}return e??null}}},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={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:()=>a});var r=n(96540),o=n(80545);function a(e){return r.createElement(o.mg,e)}},75489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(58168),o=n(96540),a=n(54625),i=n(70440),s=n(44586),c=n(16654),l=n(38193);const u=o.createContext({collectLink:()=>{}});var d=n(86025);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,s.A)(),{withBaseUrl:k}=(0,d.h)(),S=(0,o.useContext)(u),_=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>_.current));const x=p||f;const E=(0,c.A)(x),A=x?.replace("pathname://","");let z=void 0!==A?(C=A,b&&(e=>e.startsWith("/"))(C)?k(C):C):void 0;var C;z&&E&&(z=(0,i.applyTrailingSlash)(z,{trailingSlash:y,baseUrl:w}));const T=(0,o.useRef)(!1),R=n?a.k2:a.N_,M=l.A.canUseIntersectionObserver,P=(0,o.useRef)(),L=()=>{T.current||null==z||(window.docusaurus.preload(z),T.current=!0)};(0,o.useEffect)((()=>(!M&&E&&null!=z&&window.docusaurus.prefetch(z),()=>{M&&P.current&&P.current.disconnect()})),[P,z,M,E]);const O=z?.startsWith("#")??!1,N=!z||!E||O;return N||g||S.collectLink(z),N?o.createElement("a",(0,r.A)({ref:_,href:z},x&&!E&&{target:"_blank",rel:"noopener noreferrer"},v)):o.createElement(R,(0,r.A)({},v,{onMouseEnter:L,onTouchStart:L,innerRef:e=>{_.current=e,M&&e&&E&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=z&&window.docusaurus.prefetch(z))}))})),P.current.observe(e))},to:z},n&&{isActive:h,activeClassName:m}))}const f=o.forwardRef(p)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>s});var r=n(96540);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 a=n(22654);function i(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 a[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:a}=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 s=i({message:t,id:n});return r.createElement(r.Fragment,null,o(s,a))}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(96540),o=n(44586),a=n(16654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(26988);function a(){return(0,r.useContext)(o.o)}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>a,o:()=>o});var r=n(96540);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(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:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},44070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>f,gk:()=>m,Gy:()=>d,HW:()=>v,ht:()=>p,r7:()=>g,jh:()=>h});var r=n(56347),o=n(44586),a=n(17065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=c(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=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})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&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 a}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:c(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.zy)();return l(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},37651:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},26134:(e,t,n)=>{"use strict";n.r(t);var r=n(61258),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(18692)(`./prism-${e}`)})),delete globalThis.Prism}(r.A)},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("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"}))}},78511:(e,t,n)=>{"use strict";n.d(t,{A:()=>Mt});var r=n(96540),o=n(20053),a=n(67489),i=n(69024),s=n(58168),c=n(56347),l=n(21312),u=n(75062);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,c.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,l.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 h(e){const t=e.children??m,{containerRef:n,onClick:o}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,s.A)({},e,{href:`#${d}`,onClick:o}),t))}var g=n(17559),b=n(14090);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6342),k=n(65041);function S(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...c}=e;return r.createElement("svg",(0,s.A)({viewBox:"0 0 15 15",width:t,height:n},c),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const _={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,s.A)({type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.A)("clean-btn close",_.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const E={content:"content_knG7"};function A(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return r.createElement("div",(0,s.A)({},e,{className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const z={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function C(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:z.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:z.announcementBarPlaceholder}),r.createElement(A,{className:z.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:z.announcementBarClose}))}var T=n(22069),R=n(23104);var M=n(89532),P=n(75600);const L=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,T.M)(),t=(0,P.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,M.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(L.Provider,{value:n},t)}function N(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function I(){const e=(0,r.useContext)(L);if(!e)throw new M.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:N(a)})),[o,a,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=I();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var B=n(95293),q=n(92303);function j(e){return r.createElement("svg",(0,s.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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 F(e){return r.createElement("svg",(0,s.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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 Q={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function U(e){let{className:t,buttonClassName:n,value:a,onChange:i}=e;const s=(0,q.A)(),c=(0,l.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"===a?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.A)(Q.toggle,t)},r.createElement("button",{className:(0,o.A)("clean-btn",Q.toggleButton,!s&&Q.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===a?"light":"dark"),disabled:!s,title:c,"aria-label":c,"aria-live":"polite"},r.createElement(j,{className:(0,o.A)(Q.toggleIcon,Q.lightToggleIcon)}),r.createElement(F,{className:(0,o.A)(Q.toggleIcon,Q.darkToggleIcon)})))}const $=r.memo(U),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function H(e){let{className:t}=e;const n=(0,w.p)().navbar.style,o=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,B.G)();return o?null:r.createElement($,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var V=n(23465);function W(){return r.createElement(V.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,T.M)();return r.createElement("button",{type:"button","aria-label":(0,l.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()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(H,{className:"margin-right--md"}),r.createElement(K,null))}var X=n(75489),J=n(86025),Z=n(16654),ee=n(91252),te=n(43186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:c,isDropdownLink:l,prependBaseUrlToHref:u,...d}=e;const p=(0,J.A)(o),f=(0,J.A)(t),m=(0,J.A)(a,{forcePrependBaseUrl:!0}),h=i&&a&&!(0,Z.A)(a),g=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.A,l&&{width:12,height:12}))};return a?r.createElement(X.A,(0,s.A)({href:u?m:a},d,g)):r.createElement(X.A,(0,s.A)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(ne,(0,s.A)({className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function oe(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,s.A)({className:(0,o.A)("menu__link",t)},a)))}function ae(e){let{mobile:t=!1,position:n,...o}=e;const a=t?oe:re;return r.createElement(a,(0,s.A)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(41422),se=n(99169),ce=n(44586);function le(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:a,onClick:i,...c}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.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)}}),[l]),r.createElement("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,s.A)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:c.to?void 0:"#",className:(0,o.A)("navbar__link",a)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),c.children??c.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement($e,(0,s.A)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,ce.A)(),{pathname:t}=(0,c.zy)();return t.replace(e,"/")}(),d=le(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,s.A)({role:"button",className:(0,o.A)("menu__link menu__link--sublist menu__link--sublist-caret",n)},l,{onClick:e=>{e.preventDefault(),f()}}),l.children??l.label),r.createElement(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement($e,(0,s.A)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const o=t?de:ue;return r.createElement(o,n)}var fe=n(32131);function me(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,s.A)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("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";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(89188),ve=["translations"];function ye(){return ye=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},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(c){s=!0,o=c}finally{try{i||null==n.return||n.return()}finally{if(s)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _e="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=Se(e,ve),i=o.buttonText,s=void 0===i?"Search":i,c=o.buttonAriaLabel,l=void 0===c?"Search":c,u=we((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(_e))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":l},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement(Ee,{reactsToKey:d===_e?_e:"Meta"},d===_e?r.createElement(ge,null):d),r.createElement(Ee,{reactsToKey:"k"},"K"))))}));function Ee(e){var t=e.reactsToKey,n=e.children,o=we((0,r.useState)(!1),2),a=o[0],i=o[1];return(0,r.useEffect)((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),r.createElement("kbd",{className:a?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}var Ae=n(5260),ze=n(24255),Ce=n(51062),Te=n(2967);var Re=n(40961);const Me={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Le(e){let{hit:t,children:n}=e;return r.createElement(X.A,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const o=(0,ze.w)();return r.createElement(X.A,{to:o(t.query),onClick:n},r.createElement(l.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ne(e){let{contextualSearch:t,externalUrlRegex:o,...a}=e;const{siteMetadata:i}=(0,ce.A)(),l=(0,Ce.C)(),u=function(){const{locale:e,tags:t}=(0,Te.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=a.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(u,d):d,f={...a.searchParameters,facetFilters:p},m=(0,c.W6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9462).then(n.bind(n,9462)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,90416))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),_=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),E=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(o,t)?window.location.href=t:m.push(t)}}).current,A=(0,r.useRef)((e=>a.transformItems?a.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,z=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,s.A)({},e,{onClose:_}))),[_]),C=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}({isOpen:b,onOpen:S,onClose:_,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(Ae.A,null,r.createElement("link",{rel:"preconnect",href:`https://${a.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Me.button}),b&&Pe&&h.current&&(0,Re.createPortal)(r.createElement(Pe,(0,s.A)({onClose:_,initialScrollY:window.scrollY,initialQuery:y,navigator:E,transformItems:A,hitComponent:Le,transformSearchClient:C},a.searchPagePath&&{resultsFooterComponent:z},a,{searchParameters:f,placeholder:Me.placeholder,translations:Me.modal})),h.current))}function Ie(){const{siteConfig:e}=(0,ce.A)();return r.createElement(Ne,e.themeConfig.algolia)}const De={searchBox:"searchBox_ZlJk"};function Be(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.A)(n,De.searchBox)},t)}var qe=n(44070),je=n(84142);var Fe=n(55597);const Qe=e=>e.docs.find((t=>t.id===e.mainDocId));const Ue={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,ce.A)(),p=(0,fe.o)(),{search:f,hash:m}=(0,c.zy)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;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":""}})),...o],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,s.A)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Be,{className:n},r.createElement(Ie,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,o.A)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,qe.zK)(o),c=(0,je.QB)(t,o);return null===c?null:r.createElement(ae,(0,s.A)({exact:!0},a,{isActive:()=>i?.path===c.path||!!i?.sidebar&&i.sidebar===c.sidebar,label:n??c.id,to:c.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,qe.zK)(o),c=(0,je.fW)(t,o).link;if(!c)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ae,(0,s.A)({exact:!0},a,{isActive:()=>i?.sidebar===t,label:n??c.label,to:c.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,je.Vd)(o)[0],c=t??i.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(ae,(0,s.A)({},a,{label:c,to:l}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,c.zy)(),f=(0,qe.zK)(n),m=(0,qe.jh)(n),{savePreferredVersionName:h}=(0,Fe.g1)(n),g=[...a,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Qe(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.Vd)(n)[0],v=t&&g.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Qe(b).path;return g.length<=1?r.createElement(ae,(0,s.A)({},u,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(pe,(0,s.A)({},u,{mobile:t,label:v,to:y,items:g,isActive:o?()=>!1:void 0}))}};function $e(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ue[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function Ge(){const e=(0,T.M)(),t=(0,w.p)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement($e,(0,s.A)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function He(e){return r.createElement("button",(0,s.A)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.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)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.p)().navbar.items.length,t=I();return r.createElement(r.Fragment,null,!e&&r.createElement(He,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,T.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?r.createElement(D,{header:r.createElement(Y,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ke={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ye(e){return r.createElement("div",(0,s.A)({role:"presentation"},e,{className:(0,o.A)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,T.M)(),{navbarRef:s,isNavbarVisible:c}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,R.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const s=r?.scrollY,c=document.documentElement.scrollHeight-a.current,l=window.innerHeight;s&&i>=s?n(!1):i+l<c&&n(!0)})),(0,u.$)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Ke.navbarHideable,!c&&Ke.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(Ye,{onClick:i.toggle}),r.createElement(We,null))}var Je=n(70440);const Ze={errorBoundaryError:"errorBoundaryError_a6uf"};function et(e){return r.createElement("button",(0,s.A)({type:"button"},e),r.createElement(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function tt(e){let{error:t}=e;const n=(0,Je.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Ze.errorBoundaryError},n)}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const rt="right";function ot(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,s.A)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,T.M)();return r.createElement("button",{onClick:e,"aria-label":(0,l.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"},r.createElement(ot,null))}const it={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(nt,{key:t,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})},r.createElement($e,e)))))}function ct(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function lt(){const e=(0,T.M)(),t=(0,w.p)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??rt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement(ct,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(W,null),r.createElement(st,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(st,{items:o}),r.createElement(H,{className:it.colorModeToggle}),!a&&r.createElement(Be,null,r.createElement(Ie,null)))})}function ut(){return r.createElement(Xe,null,r.createElement(lt,null))}function dt(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...c}=t,l=(0,J.A)(n),u=(0,J.A)(o,{forcePrependBaseUrl:!0});return r.createElement(X.A,(0,s.A)({className:"footer__link-item"},o?{href:i?u:o}:{to:l},c),a,o&&!(0,Z.A)(o)&&r.createElement(te.A,null))}function pt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(dt,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(pt,{key:t,item:e})))))}function mt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function ht(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function gt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(dt,{item:t})}function bt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(gt,{item:e}),t.length!==n+1&&r.createElement(ht,null))))))}function vt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(mt,{columns:t}):r.createElement(bt,{links:t})}var yt=n(41653);const wt={footerLogoLink:"footerLogoLink_BH7S"};function kt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.h)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(yt.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function St(e){let{logo:t}=e;return t.href?r.createElement(X.A,{href:t.href,className:wt.footerLogoLink,target:t.target},r.createElement(kt,{logo:t})):r.createElement(kt,{logo:t})}function _t(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function xt(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function Et(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(xt,{style:a,links:n&&n.length>0&&r.createElement(vt,{links:n}),logo:o&&r.createElement(St,{logo:o}),copyright:t&&r.createElement(_t,{copyright:t})})}const At=r.memo(Et),zt=(0,M.fM)([B.a,k.oq,R.Tv,Fe.VQ,i.Jx,function(e){let{children:t}=e;return r.createElement(P.y_,null,r.createElement(T.e,null,r.createElement(O,null,t)))}]);function Ct(e){let{children:t}=e;return r.createElement(zt,null,t)}function Tt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(et,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(tt,{error:t})))))}const Rt={mainWrapper:"mainWrapper_z2l0"};function Mt(e){const{children:t,noFooter:n,wrapperClassName:s,title:c,description:l}=e;return(0,b.J)(),r.createElement(Ct,null,r.createElement(i.be,{title:c,description:l}),r.createElement(y,null),r.createElement(C,null),r.createElement(ut,null),r.createElement("div",{id:d,className:(0,o.A)(g.G.wrapper.main,Rt.mainWrapper,s)},r.createElement(a.A,{fallback:e=>r.createElement(Tt,e)},t)),!n&&r.createElement(At,null))}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(58168),o=n(96540),a=n(75489),i=n(86025),s=n(44586),c=n(6342),l=n(41653);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.A)(t.src),dark:(0,i.A)(t.srcDark||t.src)},s=o.createElement(l.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.A)(),{navbar:{title:n,logo:l}}=(0,c.p)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.A)(l?.href||"/"),h=n?"":t,g=l?.alt??h;return o.createElement(a.A,(0,r.A)({to:m},f,l?.target&&{target:l.target}),l&&o.createElement(u,{logo:l,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:p},n))}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540),o=n(5260);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.A,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},41653:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(58168),o=n(96540),a=n(20053),i=n(92303),s=n(95293);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function l(e){const t=(0,i.A)(),{colorMode:n}=(0,s.G)(),{sources:l,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.A)({key:e,src:l[e],alt:d,className:(0,a.A)(c.themedImage,c[`themedImage--${e}`],u)},p)))))}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>g,u:()=>c});var r=n(58168),o=n(96540),a=n(38193),i=n(53109);const s="ease-in-out";function c(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const l={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?l:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.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 ${r?.easing??s}`,height:`${t}px`}}function c(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return d(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(c(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{c()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!a.A.canUseDOM)return e?l:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const l=(0,o.useRef)(null);return p({collapsibleRef:l,collapsed:n,animation:a}),o.createElement(t,{ref:l,style:c?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(l.current,n),i?.(n))},className:s},r)}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[s,c]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&c(t)}),[a,t]),a?o.createElement(m,(0,r.A)({},n,{collapsed:s})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return o.createElement(r,n)}},65041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>m,oq:()=>f});var r=n(96540),o=n(92303),a=n(89466),i=n(89532),s=n(6342);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),l=(0,a.Wf)("docusaurus.announcement.id"),u=()=>"true"===c.get(),d=e=>c.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=l.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;l.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>h});var r=n(96540),o=n(38193),a=n(89532),i=n(89466),s=n(6342);const c=r.createContext(void 0),l="theme",u=(0,i.Wf)(l),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>o.A.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{u.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==l)return;const t=u.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const c=(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||c.current?c.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(c.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},55597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,XK:()=>y,g1:()=>v});var r=n(96540),o=n(44070),a=n(17065),i=n(6342),s=n(84142),c=n(89532),l=n(89466);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(u(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return s.C5?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new c.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,o.Gy)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},26588:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,t:()=>c});var r=n(96540),o=n(89532);const a=Symbol("EmptyContext"),i=r.createContext(a);function s(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function c(){const e=(0,r.useContext)(i);if(e===a)throw new o.dV("DocsSidebarProvider");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>d});var r=n(96540),o=n(75600),a=n(24581),i=n(57485),s=n(6342),c=n(89532);const l=r.createContext(void 0);function u(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[c,l]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(c)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:c})),[e,n,u,c])}function d(e){let{children:t}=e;const n=u();return r.createElement(l.Provider,{value:n},t)}function p(){const e=r.useContext(l);if(void 0===e)throw new c.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>s,y_:()=>i});var r=n(96540),o=n(89532);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(a);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=i,c=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(96540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24255:(e,t,n)=>{"use strict";n.d(t,{b:()=>s,w:()=>c});var r=n(96540),o=n(44586),a=n(57485);const i="q";function s(){return(0,a.l)(i)}function c(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(96540),o=n(38193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return o.A.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const c=!1;function l(){const[e,t]=(0,r.useState)((()=>c?"ssr":s()));return(0,r.useEffect)((()=>{function e(){t(s())}const n=c?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},17559:(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",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:{}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},84142:(e,t,n)=>{"use strict";n.d(t,{C5:()=>d,OF:()=>b,QB:()=>w,Vd:()=>v,_o:()=>p,fW:()=>y,mz:()=>k,w8:()=>h});var r=n(96540),o=n(56347),a=n(22831),i=n(44070),s=n(55597),c=n(26588),l=n(31682),u=n(99169);const d=!!i.Gy;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,u.ys)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,u.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,u.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function b(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,l.s)([t,n,o].filter(Boolean))),[t,n,o])}function y(e,t){const n=v(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 w(e,t){const n=v(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- ${(0,l.s)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,o.zy)(),i=t.routes,s=i.find((e=>(0,o.B6)(r.pathname,e)));if(!s)return null;const c=s.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:l}}},20481:(e,t,n)=>{"use strict";n.d(t,{s:()=>o});var r=n(44586);function o(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>s,aZ:()=>c,l:()=>l});var r=n(96540),o=n(56347),a=n(19888),i=n(89532);function s(e){!function(e){const t=(0,o.W6)(),n=(0,i._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function c(e){return function(e){const t=(0,o.W6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=c(e)??"",n=function(){const e=(0,o.W6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},31682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{X:()=>r,s:()=>o})},69024:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>u,Jx:()=>f});var r=n(96540),o=n(20053),a=n(5260),i=n(53102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(86025),l=n(20481);function u(e){let{title:t,description:n,keywords:o,image:i,children:s}=e;const u=(0,l.s)(t),{withBaseUrl:d}=(0,c.h)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.A,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,o.A)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(a.A,null,r.createElement("html",{className:s})),n)}function f(e){let{children:t}=e;const n=s(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.A)(a,i)},t)}},89532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>i,_q:()=>a,dV:()=>s,fM:()=>l});var r=n(96540);const o=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function l(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},91252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(96540),o=n(35947),a=n(44586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.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 o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>d,Tv:()=>c,a_:()=>p,gk:()=>f});var r=n(96540),o=n(38193),a=n(92303),i=n(89532);const s=r.createContext(void 0);function c(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 r.createElement(s.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const u=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=l(),o=(0,r.useRef)(u()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=l(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function f(){const e=(0,r.useRef)(null),t=(0,a.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 o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>i,af:()=>c,tU:()=>s});var r=n(44070),o=n(44586),a=n(55597);const i="default";function s(e,t){return`docs-${e}-${t}`}function c(){const{i18n:e}=(0,o.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),c=(0,a.XK)();const l=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=c[e],a=t[e].versions.find((e=>e.isLast));return s(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:l}}},89466:(e,t,n)=>{"use strict";n.d(t,{Dv:()=>d,Wf:()=>u});var r=n(96540),o=n(19888);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function s(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,c||(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),c=!0),null}var t}let c=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){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}}(e);const n=s(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?l:u(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(44586),o=n(56347),a=n(70440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:c}=(0,o.zy)(),l=(0,a.applyTrailingSlash)(c,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=l.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),o=n(56347),a=n(89532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._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:()=>o});var r=n(44586);function o(){return(0,r.A)().siteConfig.themeConfig}},38126:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(44586);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},51062:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(96540),o=n(91252),a=n(86025),i=n(38126);function s(){const{withBaseUrl:e}=(0,a.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.c)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.G)(t,a.href))return r;const i=`${a.pathname+a.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},12983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},80253:(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]}},70440: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.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(12983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(80253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},45815:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=n(38193).A.canUseDOM?{onRouteUpdate(e){let{location:t}=e;void 0!==typeof _hmt&&t.pathname&&_hmt.push(["_trackPageview",t.pathname])}}:null},20053:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}n.d(t,{A:()=>o});const o=function(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>A,yJ:()=>f,sC:()=>C,AO:()=>p});var r=n(58168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;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("/")||[],s=e&&o(e),c=t&&o(t),l=s||c;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(11561);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!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 h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t,n=window.history,o=(-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,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,w=void 0!==l&&l,k=i.getUserConfirmation,S=void 0===k?g:k,_=i.keyLength,x=void 0===_?6:_,E=e.basename?d(c(e.basename)):"";function A(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return E&&(a=u(a,E)),f(a,r,n)}function z(){return Math.random().toString(36).substr(2,x)}var C=m();function T(e){(0,r.A)(F,e),F.length=n.length,C.notifyListeners(F.location,F.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||L(A(e.state))}function M(){L(A(y()))}var P=!1;function L(e){if(P)P=!1,T();else{C.confirmTransitionTo(e,"POP",S,(function(t){t?T({action:"POP",location:e}):function(e){var t=F.location,n=N.indexOf(t.key);-1===n&&(n=0);var r=N.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(P=!0,D(o))}(e)}))}}var O=A(y()),N=[O.key];function I(e){return E+p(e)}function D(e){n.go(e)}var B=0;function q(e){1===(B+=e)&&1===e?(window.addEventListener(b,R),a&&window.addEventListener(v,M)):0===B&&(window.removeEventListener(b,R),a&&window.removeEventListener(v,M))}var j=!1;var F={length:n.length,action:"POP",location:O,createHref:I,push:function(e,t){var r="PUSH",a=f(e,t,z(),F.location);C.confirmTransitionTo(a,r,S,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var c=N.indexOf(F.location.key),l=N.slice(0,c+1);l.push(a.key),N=l,T({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,z(),F.location);C.confirmTransitionTo(a,r,S,(function(e){if(e){var t=I(a),i=a.key,s=a.state;if(o)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var c=N.indexOf(F.location.key);-1!==c&&(N[c]=a.key),T({action:r,location:a})}else window.location.replace(t)}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=C.setPrompt(e);return j||(q(1),j=!0),function(){return j&&(j=!1,q(-1)),t()}},listen:function(e){var t=C.appendListener(e);return q(1),function(){q(-1),t()}}};return F}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+l(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:l,decodePath:c},slash:{encodePath:c,decodePath:c}};function _(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function x(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function E(e){window.location.replace(_(window.location.href)+"#"+e)}function A(e){void 0===e&&(e={}),h||(0,s.A)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,l=void 0===i?"slash":i,b=e.basename?d(c(e.basename)):"",v=S[l],y=v.encodePath,w=v.decodePath;function A(){var e=w(x());return b&&(e=u(e,b)),f(e)}var z=m();function C(e){(0,r.A)(j,e),j.length=t.length,z.notifyListeners(j.location,j.action)}var T=!1,R=null;function M(){var e,t,n=x(),r=y(n);if(n!==r)E(r);else{var o=A(),i=j.location;if(!T&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(o))return;R=null,function(e){if(T)T=!1,C();else{var t="POP";z.confirmTransitionTo(e,t,a,(function(n){n?C({action:t,location:e}):function(e){var t=j.location,n=N.lastIndexOf(p(t));-1===n&&(n=0);var r=N.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(T=!0,I(o))}(e)}))}}(o)}}var P=x(),L=y(P);P!==L&&E(L);var O=A(),N=[p(O)];function I(e){t.go(e)}var D=0;function B(e){1===(D+=e)&&1===e?window.addEventListener(k,M):0===D&&window.removeEventListener(k,M)}var q=!1;var j={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=_(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,j.location);z.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(x()!==o){R=t,function(e){window.location.hash=e}(o);var a=N.lastIndexOf(p(j.location)),i=N.slice(0,a+1);i.push(t),N=i,C({action:n,location:r})}else C()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,j.location);z.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);x()!==o&&(R=t,E(o));var a=N.indexOf(p(j.location));-1!==a&&(N[a]=t),C({action:n,location:r})}}))},go:I,goBack:function(){I(-1)},goForward:function(){I(1)},block:function(e){void 0===e&&(e=!1);var t=z.setPrompt(e);return q||(B(1),q=!0),function(){return q&&(q=!1,B(-1)),t()}},listen:function(e){var t=z.appendListener(e);return B(1),function(){B(-1),t()}}};return j}function z(e,t,n){return Math.min(Math.max(e,t),n)}function C(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,s=void 0===i?0:i,c=t.keyLength,l=void 0===c?6:c,u=m();function d(e){(0,r.A)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,l)}var g=z(s,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=z(w.index+e,0,w.entries.length-1),r=w.entries[t];u.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:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,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,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(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),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},4146:(e,t,n)=>{"use strict";var r=n(73404),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={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},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=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 o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),h=c(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{l(t,b,v)}catch(y){}}}}return t}},3072:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=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,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=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 u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case g:case h:case c:return e;default:return t}}case o:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=l,t.ContextProvider=c,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===l},t.isContextProvider=function(e){return k(e)===c},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)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===s},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===a||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===c||e.$$typeof===l||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},73404:(e,t,n)=>{"use strict";e.exports=n(3072)},20311:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},10119:(e,t,n)=>{"use strict";n.r(t)},51043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;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 o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}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=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),l=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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)*o(Math.random()*t,.1,.95)),t=o(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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=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,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(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===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},45228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),c=1;c<arguments.length;c++){for(var l in a=Object(arguments[c]))n.call(a,l)&&(s[l]=a[l]);if(t){i=t(a);for(var u=0;u<i.length;u++)r.call(a,i[u])&&(s[i[u]]=a[i[u]])}}return s}},61258:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").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 o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);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 o=e.classList;if(o.contains(t))return!0;if(o.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 o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var s in a)if(a.hasOwnProperty(s)){if(s==t)for(var c in n)n.hasOwnProperty(c)&&(i[c]=n[c]);n.hasOwnProperty(s)||(i[s]=a[s])}var l=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===l&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],o||s);var c=t[s],l=r.util.type(c);"Object"!==l||a[i(c)]?"Array"!==l||a[i(c)]||(a[i(c)]=!0,e(c,n,s,a)):(a[i(c)]=!0,e(c,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return c(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},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 o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,s,u,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 h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=s.next,_=u;S!==t.tail&&!(d&&_>=d.reach);_+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof o)){var E,A=1;if(v){if(!(E=a(k,_,e,b))||E.index>=e.length)break;var z=E.index,C=E.index+E[0].length,T=_;for(T+=S.value.length;z>=T;)T+=(S=S.next).value.length;if(_=T-=S.value.length,S.value instanceof o)continue;for(var R=S;R!==t.tail&&(T<C||"string"==typeof R.value);R=R.next)A++,T+=R.value.length;A--,x=e.slice(_,T),E.index-=_}else if(!(E=a(k,0,x,b)))continue;z=E.index;var M=E[0],P=x.slice(0,z),L=x.slice(z+M.length),O=_+x.length;d&&O>d.reach&&(d.reach=O);var N=S.prev;if(P&&(N=c(t,N,P),_+=P.length),l(t,N,A),S=c(t,N,new o(p,g?r.tokenize(M,g):M,y,M)),L&&c(t,S,L),A>1){var I={cause:p+","+m,reach:O};i(e,t,n,S.prev,_,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function s(){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 c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={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(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var s="";for(var c in a.attributes)s+=" "+c+'="'+(a.attributes[c]||"").replace(/"/g,"&quot;")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+s+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.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"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.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:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.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:/[{}[\];(),.:]/},o.languages.c=o.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|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.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},o.languages.c.string],char:o.languages.c.char,comment:o.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:o.languages.c}}}}),o.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 o.languages.c.boolean,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"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,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;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;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("\\[(?:[^[\\]\"']|"+n.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":[n,{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}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={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|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:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.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}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.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:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.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:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.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:o.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"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.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")),o.languages.js=o.languages.javascript,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}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\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})),a=/"(?:[^"\\\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"(?:"+o+"|"+a+")"}))),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(a),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}(o),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,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;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("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),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 o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var s=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),c="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,c]:i.alias.push(c):i.alias=[c]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],l=/language-(.+)/.exec(a);if(l){n=l[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),c(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.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:o.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+/},o.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 o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c<s;c++){var l=t[c];"variable"===l.type&&o.indexOf(l.content)>=0&&f(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))o++;else if(r.test(s)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.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,o=r.inside["interpolation-punctuation"],a=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 s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function l(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,c(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=c(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var c=a.substring(0,s),d=l(u[o]),f=a.substring(s+o.length),m=[];if(c&&m.push(c),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,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 d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var s=i[1];if(3===i.length&&"string"!=typeof s&&"embedded-code"===s.type){var c=p(s),l=s.alias,d=Array.isArray(l)?l[0]:l,f=e.languages[d];if(!f)continue;i[1]=u(c,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),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}(o),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 o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\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:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(c+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.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/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c<s.length&&!(o>=a.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof l?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.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 o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.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:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.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/}),o.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 o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?: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|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)\b/i,{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,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},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),o=n(98380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(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(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),a.add(e)}))}i.silent=!1,e.exports=i},18692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=18692},63157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=63157},98380: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 o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var s={},c=e[r];if(c){function l(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(c.require,l),t(c.optional,l),t(c.modify,l)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var c=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),l=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(c);i=i.map(l),s=(s||[]).map(l);var u=n(i),d=n(s);i.forEach((function e(n){var r=c[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(c),m=u;o(m);){for(var h in p={},m){var g=c[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!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,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},c={};function l(e){if(e in s)return s[e];c[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=l(e);return delete c[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)l(u);var d=[];for(var p in c)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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:a,resetWarningCache:o};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"},22551:(e,t,n)=>{"use strict";var r=n(96540),o=n(45228),a=n(69982);function i(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."}if(!r)throw Error(i(227));var s=new Set,c={};function l(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(c[e]=t,e=0;e<t.length;e++)s.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),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=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[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];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[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){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.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,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!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(v,y);b[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(v,y);b[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(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,_=60106,x=60107,E=60108,A=60114,z=60109,C=60110,T=60112,R=60113,M=60120,P=60115,L=60116,O=60121,N=60128,I=60129,D=60130,B=60131;if("function"==typeof Symbol&&Symbol.for){var q=Symbol.for;S=q("react.element"),_=q("react.portal"),x=q("react.fragment"),E=q("react.strict_mode"),A=q("react.profiler"),z=q("react.provider"),C=q("react.context"),T=q("react.forward_ref"),R=q("react.suspense"),M=q("react.suspense_list"),P=q("react.memo"),L=q("react.lazy"),O=q("react.block"),q("react.scope"),N=q("react.opaque.id"),I=q("react.debug_trace_mode"),D=q("react.offscreen"),B=q("react.legacy_hidden")}var j,F="function"==typeof Symbol&&Symbol.iterator;function Q(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=F&&e[F]||e["@@iterator"])?e:null}function U(e){if(void 0===j)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);j=t&&t[1]||""}return"\n"+j+e}var $=!1;function G(e,t){if(!e||$)return"";$=!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(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=s);break}}}finally{$=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?U(e):""}function H(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=G(e.type,!1);case 11:return e=G(e.type.render,!1);case 22:return e=G(e.type._render,!1);case 1:return e=G(e.type,!0);default:return""}}function V(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 x:return"Fragment";case _:return"Portal";case A:return"Profiler";case E:return"StrictMode";case R:return"Suspense";case M:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case C:return(e.displayName||"Context")+".Consumer";case z:return(e._context.displayName||"Context")+".Provider";case T:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case P:return V(e.type);case O:return V(e._render);case L:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function W(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function K(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=K(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 o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.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 X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=K(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function J(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 Z(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=W(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 te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=W(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")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(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 oe(e,t,n){"number"===t&&J(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ce(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function le(e,t){var n=W(t.value),r=W(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 ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function pe(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 fe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?pe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var me,he,ge=(he=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((me=me||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=me.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 he(e,t)}))}:he);function be(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 ve={animationIterationCount:!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},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ve.hasOwnProperty(e)&&ve[e]?(""+t).trim():t+"px"}function ke(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ve).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ve[t]=ve[e]}))}));var Se=o({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 _e(e,t){if(t){if(Se[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(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}}function Ee(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ae=null,ze=null,Ce=null;function Te(e){if(e=no(e)){if("function"!=typeof Ae)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ae(e.stateNode,e.type,t))}}function Re(e){ze?Ce?Ce.push(e):Ce=[e]:ze=e}function Me(){if(ze){var e=ze,t=Ce;if(Ce=ze=null,Te(e),t)for(e=0;e<t.length;e++)Te(t[e])}}function Pe(e,t){return e(t)}function Le(e,t,n,r,o){return e(t,n,r,o)}function Oe(){}var Ne=Pe,Ie=!1,De=!1;function Be(){null===ze&&null===Ce||(Oe(),Me())}function qe(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(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(i(231,t,typeof n));return n}var je=!1;if(d)try{var Fe={};Object.defineProperty(Fe,"passive",{get:function(){je=!0}}),window.addEventListener("test",Fe,Fe),window.removeEventListener("test",Fe,Fe)}catch(he){je=!1}function Qe(e,t,n,r,o,a,i,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(u){this.onError(u)}}var Ue=!1,$e=null,Ge=!1,He=null,Ve={onError:function(e){Ue=!0,$e=e}};function We(e,t,n,r,o,a,i,s,c){Ue=!1,$e=null,Qe.apply(Ve,arguments)}function Ke(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(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 Xe(e){if(Ke(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ke(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var s=!1,c=o.child;c;){if(c===n){s=!0,n=o,r=a;break}if(c===r){s=!0,r=o,n=a;break}c=c.sibling}if(!s){for(c=a.child;c;){if(c===n){s=!0,n=a,r=o;break}if(c===r){s=!0,r=a,n=o;break}c=c.sibling}if(!s)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Ze(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,st=null,ct=null,lt=new Map,ut=new Map,dt=[],pt="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 ft(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function mt(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":lt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ut.delete(t.pointerId)}}function ht(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=ft(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Ke(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function bt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function vt(e,t,n){bt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&bt(it)&&(it=null),null!==st&&bt(st)&&(st=null),null!==ct&&bt(ct)&&(ct=null),lt.forEach(vt),ut.forEach(vt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function kt(e){function t(t){return wt(t,e)}if(0<at.length){wt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==st&&wt(st,e),null!==ct&&wt(ct,e),lt.forEach(t),ut.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function St(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:St("Animation","AnimationEnd"),animationiteration:St("Animation","AnimationIteration"),animationstart:St("Animation","AnimationStart"),transitionend:St("Transition","TransitionEnd")},xt={},Et={};function At(e){if(xt[e])return xt[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in Et)return xt[e]=n[t];return e}d&&(Et=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var zt=At("animationend"),Ct=At("animationiteration"),Tt=At("animationstart"),Rt=At("transitionend"),Mt=new Map,Pt=new Map,Lt=["abort","abort",zt,"animationEnd",Ct,"animationIteration",Tt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Rt,"transitionEnd","waiting","waiting"];function Ot(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Pt.set(r,t),Mt.set(r,o),l(o,[r])}}(0,a.unstable_now)();var Nt=8;function It(e){if(1&e)return Nt=15,1;if(2&e)return Nt=14,2;if(4&e)return Nt=13,4;var t=24&e;return 0!==t?(Nt=12,t):32&e?(Nt=11,32):0!==(t=192&e)?(Nt=10,t):256&e?(Nt=9,256):0!==(t=3584&e)?(Nt=8,t):4096&e?(Nt=7,4096):0!==(t=4186112&e)?(Nt=6,t):0!==(t=62914560&e)?(Nt=5,t):67108864&e?(Nt=4,67108864):134217728&e?(Nt=3,134217728):0!==(t=805306368&e)?(Nt=2,t):1073741824&e?(Nt=1,1073741824):(Nt=8,e)}function Dt(e,t){var n=e.pendingLanes;if(0===n)return Nt=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,s=e.pingedLanes;if(0!==a)r=a,o=Nt=15;else if(0!==(a=134217727&n)){var c=a&~i;0!==c?(r=It(c),o=Nt):0!==(s&=a)&&(r=It(s),o=Nt)}else 0!==(a=n&~i)?(r=It(a),o=Nt):0!==s&&(r=It(s),o=Nt);if(0===r)return 0;if(r=n&((0>(r=31-Ut(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&!(t&i)){if(It(t),o<=Nt)return t;Nt=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ut(t)),r|=e[n],t&=~o;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function qt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=jt(24&~t))?qt(10,t):e;case 10:return 0===(e=jt(192&~t))?qt(8,t):e;case 8:return 0===(e=jt(3584&~t))&&(0===(e=jt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=jt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function jt(e){return e&-e}function Ft(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Qt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ut(t)]=n}var Ut=Math.clz32?Math.clz32:function(e){return 0===e?32:31-($t(e)/Gt|0)|0},$t=Math.log,Gt=Math.LN2;var Ht=a.unstable_UserBlockingPriority,Vt=a.unstable_runWithPriority,Wt=!0;function Kt(e,t,n,r){Ie||Oe();var o=Xt,a=Ie;Ie=!0;try{Le(o,e,t,n,r)}finally{(Ie=a)||Be()}}function Yt(e,t,n,r){Vt(Ht,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Wt)if((o=!(4&t))&&0<at.length&&-1<pt.indexOf(e))e=ft(null,e,t,n,r),at.push(e);else{var a=Jt(e,t,n,r);if(null===a)o&&mt(e,r);else{if(o){if(-1<pt.indexOf(e))return e=ft(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=ht(it,e,t,n,r,o),!0;case"dragenter":return st=ht(st,e,t,n,r,o),!0;case"mouseover":return ct=ht(ct,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return lt.set(a,ht(lt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ut.set(a,ht(ut.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;mt(e,r)}Or(e,t,r,null,n)}}}function Jt(e,t,n,r){var o=Ee(r);if(null!==(o=to(o))){var a=Ke(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ye(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Or(e,t,r,o,n),null}var Zt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Zt?Zt.value:Zt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(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 on(){return!0}function an(){return!1}function sn(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(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=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var cn,ln,un,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=sn(dn),fn=o({},dn,{view:0,detail:0}),mn=sn(fn),hn=o({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zn,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!==un&&(un&&"mousemove"===e.type?(cn=e.screenX-un.screenX,ln=e.screenY-un.screenY):ln=cn=0,un=e),cn)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),gn=sn(hn),bn=sn(o({},hn,{dataTransfer:0})),vn=sn(o({},fn,{relatedTarget:0})),yn=sn(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),kn=sn(wn),Sn=sn(o({},dn,{data:0})),_n={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"},En={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function An(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=En[e])&&!!t[e]}function zn(){return An}var Cn=o({},fn,{key:function(e){if(e.key){var t=_n[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(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:zn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=sn(Cn),Rn=sn(o({},hn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Mn=sn(o({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zn})),Pn=sn(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Ln=o({},hn,{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}),On=sn(Ln),Nn=[9,13,27,32],In=d&&"CompositionEvent"in window,Dn=null;d&&"documentMode"in document&&(Dn=document.documentMode);var Bn=d&&"TextEvent"in window&&!Dn,qn=d&&(!In||Dn&&8<Dn&&11>=Dn),jn=String.fromCharCode(32),Fn=!1;function Qn(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 Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var Gn={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?!!Gn[e.type]:"textarea"===t}function Vn(e,t,n,r){Re(r),0<(t=Ir(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Wn=null,Kn=null;function Yn(e){Cr(e,0)}function Xn(e){if(X(ro(e)))return e}function Jn(e,t){if("change"===e)return t}var Zn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Zn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Wn&&(Wn.detachEvent("onpropertychange",or),Kn=Wn=null)}function or(e){if("value"===e.propertyName&&Xn(Kn)){var t=[];if(Vn(t,Kn,e,Ee(e)),e=Yn,Ie)e(t);else{Ie=!0;try{Pe(e,t)}finally{Ie=!1,Be()}}}}function ar(e,t,n){"focusin"===e?(rr(),Kn=n,(Wn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Kn)}function sr(e,t){if("click"===e)return Xn(t)}function cr(e,t){if("input"===e||"change"===e)return Xn(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},ur=Object.prototype.hasOwnProperty;function dr(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++)if(!ur.call(t,n[r])||!lr(e[n[r]],t[n[r]]))return!1;return!0}function pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function fr(e,t){var n,r=pr(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=pr(r)}}function mr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?mr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=J();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=J((e=t.contentWindow).document)}return t}function gr(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)}var br=d&&"documentMode"in document&&11>=document.documentMode,vr=null,yr=null,wr=null,kr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;kr||null==vr||vr!==J(r)||("selectionStart"in(r=vr)&&gr(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},wr&&dr(wr,r)||(wr=r,0<(r=Ir(yr,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=vr)))}Ot("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Ot("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Ot(Lt,2);for(var _r="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<_r.length;xr++)Pt.set(_r[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Er="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Ar=new Set("cancel close invalid load scroll toggle".split(" ").concat(Er));function zr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,s,c,l){if(We.apply(this,arguments),Ue){if(!Ue)throw Error(i(198));var u=$e;Ue=!1,$e=null,Ge||(Ge=!0,He=u)}}(r,t,void 0,e),e.currentTarget=null}function Cr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&o.isPropagationStopped())break e;zr(o,s,l),a=c}else for(i=0;i<r.length;i++){if(c=(s=r[i]).instance,l=s.currentTarget,s=s.listener,c!==a&&o.isPropagationStopped())break e;zr(o,s,l),a=c}}}if(Ge)throw e=He,Ge=!1,He=null,e}function Tr(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Lr(t,e,2,!1),n.add(r))}var Rr="_reactListening"+Math.random().toString(36).slice(2);function Mr(e){e[Rr]||(e[Rr]=!0,s.forEach((function(t){Ar.has(t)||Pr(t,!1,e,null),Pr(t,!0,e,null)})))}function Pr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Ar.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),s=e+"__"+(t?"capture":"bubble");i.has(s)||(t&&(o|=4),Lr(a,e,o,t),i.add(s))}function Lr(e,t,n,r){var o=Pt.get(t);switch(void 0===o?2:o){case 0:o=Kt;break;case 1:o=Yt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!je||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Or(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&((c=i.stateNode.containerInfo)===o||8===c.nodeType&&c.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=to(s)))return;if(5===(c=i.tag)||6===c){r=a=i;continue e}s=s.parentNode}}r=r.return}!function(e,t,n){if(De)return e(t,n);De=!0;try{return Ne(e,t,n)}finally{De=!1,Be()}}((function(){var r=a,o=Ee(n),i=[];e:{var s=Mt.get(e);if(void 0!==s){var c=pn,l=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":c=Tn;break;case"focusin":l="focus",c=vn;break;case"focusout":l="blur",c=vn;break;case"beforeblur":case"afterblur":c=vn;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":c=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":c=bn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":c=Mn;break;case zt:case Ct:case Tt:c=yn;break;case Rt:c=Pn;break;case"scroll":c=mn;break;case"wheel":c=On;break;case"copy":case"cut":case"paste":c=kn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":c=Rn}var u=!!(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=qe(m,p))&&u.push(Nr(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new c(s,l,null,n,o),i.push({event:s,listeners:u}))}}if(!(7&t)){if(c="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||16&t||!(l=n.relatedTarget||n.fromElement)||!to(l)&&!l[Zr])&&(c||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,c?(c=r,null!==(l=(l=n.relatedTarget||n.toElement)?to(l):null)&&(l!==(d=Ke(l))||5!==l.tag&&6!==l.tag)&&(l=null)):(c=null,l=r),c!==l)){if(u=gn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Rn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==c?s:ro(c),f=null==l?s:ro(l),(s=new u(h,m+"leave",c,n,o)).target=d,s.relatedTarget=f,h=null,to(o)===r&&((u=new u(p,m+"enter",l,n,o)).target=f,u.relatedTarget=d,h=u),d=h,c&&l)e:{for(p=l,m=0,f=u=c;f;f=Dr(f))m++;for(f=0,h=p;h;h=Dr(h))f++;for(;0<m-f;)u=Dr(u),m--;for(;0<f-m;)p=Dr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Dr(u),p=Dr(p)}u=null}else u=null;null!==c&&Br(i,s,c,u,!1),null!==l&&null!==d&&Br(i,d,l,u,!0)}if("select"===(c=(s=r?ro(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===c&&"file"===s.type)var g=Jn;else if(Hn(s))if(Zn)g=cr;else{g=ir;var b=ar}else(c=s.nodeName)&&"input"===c.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=sr);switch(g&&(g=g(e,r))?Vn(i,g,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&oe(s,"number",s.value)),b=r?ro(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(vr=b,yr=r,wr=null);break;case"focusout":wr=yr=vr=null;break;case"mousedown":kr=!0;break;case"contextmenu":case"mouseup":case"dragend":kr=!1,Sr(i,n,o);break;case"selectionchange":if(br)break;case"keydown":case"keyup":Sr(i,n,o)}var v;if(In)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?Qn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(qn&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=nn()):(en="value"in(Zt=o)?Zt.value:Zt.textContent,$n=!0)),0<(b=Ir(r,y)).length&&(y=new Sn(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Un(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(Fn=!0,jn);case"textInput":return(e=t.data)===jn&&Fn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!In&&Qn(e,t)?(e=nn(),tn=en=Zt=null,$n=!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 qn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Ir(r,"onBeforeInput")).length&&(o=new Sn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Cr(i,t)}))}function Nr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ir(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=qe(e,n))&&r.unshift(Nr(e,a,o)),null!=(a=qe(e,t))&&r.push(Nr(e,a,o))),e=e.return}return r}function Dr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(null!==c&&c===r)break;5===s.tag&&null!==l&&(s=l,o?null!=(c=qe(n,a))&&i.unshift(Nr(n,c,s)):o||null!=(c=qe(n,a))&&i.push(Nr(n,c,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function qr(){}var jr=null,Fr=null;function Qr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Ur(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var $r="function"==typeof setTimeout?setTimeout:void 0,Gr="function"==typeof clearTimeout?clearTimeout:void 0;function Hr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Vr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Wr(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 Kr=0;var Yr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Yr,Jr="__reactProps$"+Yr,Zr="__reactContainer$"+Yr,eo="__reactEvents$"+Yr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Zr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Wr(e);null!==e;){if(n=e[Xr])return n;e=Wr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Zr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Jr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],so=-1;function co(e){return{current:e}}function lo(e){0>so||(e.current=io[so],io[so]=null,so--)}function uo(e,t){so++,io[so]=e.current,e.current=t}var po={},fo=co(po),mo=co(!1),ho=po;function go(e,t){var n=e.type.contextTypes;if(!n)return po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function bo(e){return null!=(e=e.childContextTypes)}function vo(){lo(mo),lo(fo)}function yo(e,t,n){if(fo.current!==po)throw Error(i(168));uo(fo,t),uo(mo,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,V(t)||"Unknown",a));return o({},n,r)}function ko(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||po,ho=fo.current,uo(fo,e),uo(mo,mo.current),!0}function So(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wo(e,t,ho),r.__reactInternalMemoizedMergedChildContext=e,lo(mo),lo(fo),uo(fo,e)):lo(mo),uo(mo,n)}var _o=null,xo=null,Eo=a.unstable_runWithPriority,Ao=a.unstable_scheduleCallback,zo=a.unstable_cancelCallback,Co=a.unstable_shouldYield,To=a.unstable_requestPaint,Ro=a.unstable_now,Mo=a.unstable_getCurrentPriorityLevel,Po=a.unstable_ImmediatePriority,Lo=a.unstable_UserBlockingPriority,Oo=a.unstable_NormalPriority,No=a.unstable_LowPriority,Io=a.unstable_IdlePriority,Do={},Bo=void 0!==To?To:function(){},qo=null,jo=null,Fo=!1,Qo=Ro(),Uo=1e4>Qo?Ro:function(){return Ro()-Qo};function $o(){switch(Mo()){case Po:return 99;case Lo:return 98;case Oo:return 97;case No:return 96;case Io:return 95;default:throw Error(i(332))}}function Go(e){switch(e){case 99:return Po;case 98:return Lo;case 97:return Oo;case 96:return No;case 95:return Io;default:throw Error(i(332))}}function Ho(e,t){return e=Go(e),Eo(e,t)}function Vo(e,t,n){return e=Go(e),Ao(e,t,n)}function Wo(){if(null!==jo){var e=jo;jo=null,zo(e)}Ko()}function Ko(){if(!Fo&&null!==qo){Fo=!0;var e=0;try{var t=qo;Ho(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),qo=null}catch(n){throw null!==qo&&(qo=qo.slice(e+1)),Ao(Po,Wo),n}finally{Fo=!1}}}var Yo=k.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Jo=co(null),Zo=null,ea=null,ta=null;function na(){ta=ea=Zo=null}function ra(e){var t=Jo.current;lo(Jo),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Zo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(Ii=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Zo)throw Error(i(308));ea=t,Zo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var sa=!1;function ca(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function la(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 ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function pa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=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===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function fa(e,t,n,r){var a=e.updateQueue;sa=!1;var i=a.firstBaseUpdate,s=a.lastBaseUpdate,c=a.shared.pending;if(null!==c){a.shared.pending=null;var l=c,u=l.next;l.next=null,null===s?i=u:s.next=u,s=l;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==s&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=l)}}if(null!==i){for(p=a.baseState,s=0,d=u=l=null;;){c=i.lane;var f=i.eventTime;if((r&c)===c){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(c=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,c);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(c="function"==typeof(m=h.payload)?m.call(f,p,c):m))break e;p=o({},p,c);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(c=a.effects)?a.effects=[i]:c.push(i))}else f={eventTime:f,lane:c,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,l=p):d=d.next=f,s|=c;if(null===(i=i.next)){if(null===(c=a.shared.pending))break;i=c.next,c.next=null,a.lastBaseUpdate=c,a.shared.pending=null}}null===d&&(l=p),a.baseState=l,a.firstBaseUpdate=u,a.lastBaseUpdate=d,Fs|=s,e.lanes=s,e.memoizedState=p}}function ma(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ha=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ba={isMounted:function(e){return!!(e=e._reactInternals)&&Ke(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pc(),o=fc(e),a=ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),mc(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pc(),r=fc(e),o=ua(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),mc(e,r,n)}};function va(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=po,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=bo(t)?ho:fo.current,a=(r=null!=(r=t.contextTypes))?go(e,o):po),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function wa(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&&ba.enqueueReplaceState(t,t.state,null)}function ka(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ha,ca(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=bo(t)?ho:fo.current,o.context=go(e,a)),fa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ba.enqueueReplaceState(o,o.state,null),fa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var Sa=Array.isArray;function _a(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(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ha&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xa(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Ea(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}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 o(e,t){return(e=Hc(e,t)).index=0,e.sibling=null,e}function a(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):n}function s(t){return e&&null===t.alternate&&(t.flags=2),t}function c(e,t,n,r){return null===t||6!==t.tag?((t=Yc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function l(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=_a(e,t,n),r.return=e,r):((r=Vc(n.type,n.key,n.props,null,e.mode,r)).ref=_a(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Wc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Yc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Vc(t.type,t.key,t.props,null,e.mode,n)).ref=_a(e,null,t),n.return=e,n;case _:return(t=Xc(t,e.mode,n)).return=e,t}if(Sa(t)||Q(t))return(t=Wc(t,e.mode,n,null)).return=e,t;xa(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:c(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===o?n.type===x?d(e,t,n.props.children,r,o):l(e,t,n,r):null;case _:return n.key===o?u(e,t,n,r):null}if(Sa(n)||Q(n))return null!==o?null:d(e,t,n,r,null);xa(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return c(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===x?d(t,e,r.props.children,o,r.key):l(t,e,r,o);case _:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Sa(r)||Q(r))return d(t,e=e.get(n)||null,r,o,null);xa(t,r)}return null}function h(o,i,s,c){for(var l=null,u=null,d=i,h=i=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,s[h],c);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?l=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(o,d),l;if(null===d){for(;h<s.length;h++)null!==(d=p(o,s[h],c))&&(i=a(d,i,h),null===u?l=d:u.sibling=d,u=d);return l}for(d=r(o,d);h<s.length;h++)null!==(g=m(d,o,h,s[h],c))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?l=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),l}function g(o,s,c,l){var u=Q(c);if("function"!=typeof u)throw Error(i(150));if(null==(c=u.call(c)))throw Error(i(151));for(var d=u=null,h=s,g=s=0,b=null,v=c.next();null!==h&&!v.done;g++,v=c.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,l);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),s=a(y,s,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=c.next())null!==(v=p(o,v.value,l))&&(s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=c.next())null!==(v=m(h,o,g,v.value,l))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=a(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,c){var l="object"==typeof a&&null!==a&&a.type===x&&null===a.key;l&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case S:e:{for(u=a.key,l=r;null!==l;){if(l.key===u){if(7===l.tag){if(a.type===x){n(e,l.sibling),(r=o(l,a.props.children)).return=e,e=r;break e}}else if(l.elementType===a.type){n(e,l.sibling),(r=o(l,a.props)).ref=_a(e,l,a),r.return=e,e=r;break e}n(e,l);break}t(e,l),l=l.sibling}a.type===x?((r=Wc(a.props.children,e.mode,c,a.key)).return=e,e=r):((c=Vc(a.type,a.key,a.props,null,e.mode,c)).ref=_a(e,r,a),c.return=e,e=c)}return s(e);case _:e:{for(l=a.key;null!==r;){if(r.key===l){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xc(a,e.mode,c)).return=e,e=r}return s(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Yc(a,e.mode,c)).return=e,e=r),s(e);if(Sa(a))return h(e,r,a,c);if(Q(a))return g(e,r,a,c);if(u&&xa(e,a),void 0===a&&!l)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,V(e.type)||"Component"))}return n(e,r)}}var Aa=Ea(!0),za=Ea(!1),Ca={},Ta=co(Ca),Ra=co(Ca),Ma=co(Ca);function Pa(e){if(e===Ca)throw Error(i(174));return e}function La(e,t){switch(uo(Ma,t),uo(Ra,e),uo(Ta,Ca),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:fe(null,"");break;default:t=fe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}lo(Ta),uo(Ta,t)}function Oa(){lo(Ta),lo(Ra),lo(Ma)}function Na(e){Pa(Ma.current);var t=Pa(Ta.current),n=fe(t,e.type);t!==n&&(uo(Ra,e),uo(Ta,n))}function Ia(e){Ra.current===e&&(lo(Ta),lo(Ra))}var Da=co(0);function Ba(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(64&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 qa=null,ja=null,Fa=!1;function Qa(e,t){var n=$c(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ua(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,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function $a(e){if(Fa){var t=ja;if(t){var n=t;if(!Ua(e,t)){if(!(t=Vr(n.nextSibling))||!Ua(e,t))return e.flags=-1025&e.flags|2,Fa=!1,void(qa=e);Qa(qa,n)}qa=e,ja=Vr(t.firstChild)}else e.flags=-1025&e.flags|2,Fa=!1,qa=e}}function Ga(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;qa=e}function Ha(e){if(e!==qa)return!1;if(!Fa)return Ga(e),Fa=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Ur(t,e.memoizedProps))for(t=ja;t;)Qa(e,t),t=Vr(t.nextSibling);if(Ga(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ja=Vr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ja=null}}else ja=qa?Vr(e.stateNode.nextSibling):null;return!0}function Va(){ja=qa=null,Fa=!1}var Wa=[];function Ka(){for(var e=0;e<Wa.length;e++)Wa[e]._workInProgressVersionPrimary=null;Wa.length=0}var Ya=k.ReactCurrentDispatcher,Xa=k.ReactCurrentBatchConfig,Ja=0,Za=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(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 ii(e,t,n,r,o,a){if(Ja=a,Za=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ya.current=null===e||null===e.memoizedState?Pi:Li,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ya.current=Oi,e=n(r,o)}while(ri)}if(Ya.current=Mi,t=null!==ei&&null!==ei.next,Ja=0,ti=ei=Za=null,ni=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Za.memoizedState=ti=e:ti=ti.next=e,ti}function ci(){if(null===ei){var e=Za.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Za.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Za.memoizedState=ti=e:ti=ti.next=e}return ti}function li(e,t){return"function"==typeof t?t(e):t}function ui(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var s=o.next;o.next=a.next,a.next=s}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var c=s=a=null,l=o;do{var u=l.lane;if((Ja&u)===u)null!==c&&(c=c.next={lane:0,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null}),r=l.eagerReducer===e?l.eagerState:e(r,l.action);else{var d={lane:u,action:l.action,eagerReducer:l.eagerReducer,eagerState:l.eagerState,next:null};null===c?(s=c=d,a=r):c=c.next=d,Za.lanes|=u,Fs|=u}l=l.next}while(null!==l&&l!==o);null===c?a=r:c.next=s,lr(r,t.memoizedState)||(Ii=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=c,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{a=e(a,s.action),s=s.next}while(s!==o);lr(a,t.memoizedState)||(Ii=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function pi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ja&e)===e)&&(t._workInProgressVersionPrimary=r,Wa.push(t))),e)return n(t._source);throw Wa.push(t),Error(i(350))}function fi(e,t,n,r){var o=Ls;if(null===o)throw Error(i(349));var a=t._getVersion,s=a(t._source),c=Ya.current,l=c.useState((function(){return pi(o,t,n)})),u=l[1],d=l[0];l=ti;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=Za;return e.memoizedState={refs:f,source:t,subscribe:r},c.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!lr(s,e)){e=n(t._source),lr(d,e)||(u(e),e=fc(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var c=31-Ut(i),l=1<<c;r[c]|=e,i&=~l}}}),[n,t,r]),c.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fc(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),lr(m,n)&&lr(h,t)&&lr(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:d}).dispatch=u=Ri.bind(null,Za,e),l.queue=e,l.baseQueue=null,d=pi(o,t,n),l.memoizedState=l.baseState=d),d}function mi(e,t,n){return fi(ci(),e,t,n)}function hi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:li,lastRenderedState:e}).dispatch=Ri.bind(null,Za,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Za.updateQueue)?(t={lastEffect:null},Za.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 bi(e){return e={current:e},si().memoizedState=e}function vi(){return ci().memoizedState}function yi(e,t,n,r){var o=si();Za.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var o=ci();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Za.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function ki(e,t){return yi(516,4,e,t)}function Si(e,t){return wi(516,4,e,t)}function _i(e,t){return wi(4,2,e,t)}function xi(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 Ei(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)}function Ai(){}function zi(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ci(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ti(e,t){var n=$o();Ho(98>n?98:n,(function(){e(!0)})),Ho(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Ri(e,t,n){var r=pc(),o=fc(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Za||null!==i&&i===Za)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=i(s,n);if(a.eagerReducer=i,a.eagerState=c,lr(c,s))return}catch(l){}mc(e,o,r)}}var Mi={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Pi={readContext:ia,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:ki,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Ri.bind(null,Za,e),[r.memoizedState,e]},useRef:bi,useState:hi,useDebugValue:Ai,useDeferredValue:function(e){var t=hi(e),n=t[0],r=t[1];return ki((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=hi(!1),t=e[0];return bi(e=Ti.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},fi(r,e,t,n)},useOpaqueIdentifier:function(){if(Fa){var e=!1,t=function(e){return{$$typeof:N,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Kr++).toString(36))),Error(i(355))})),n=hi(t)[1];return!(2&Za.mode)&&(Za.flags|=516,gi(5,(function(){n("r:"+(Kr++).toString(36))}),void 0,null)),t}return hi(t="r:"+(Kr++).toString(36)),t},unstable_isNewReconciler:!1},Li={readContext:ia,useCallback:zi,useContext:ia,useEffect:Si,useImperativeHandle:Ei,useLayoutEffect:_i,useMemo:Ci,useReducer:ui,useRef:vi,useState:function(){return ui(li)},useDebugValue:Ai,useDeferredValue:function(e){var t=ui(li),n=t[0],r=t[1];return Si((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ui(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return ui(li)[0]},unstable_isNewReconciler:!1},Oi={readContext:ia,useCallback:zi,useContext:ia,useEffect:Si,useImperativeHandle:Ei,useLayoutEffect:_i,useMemo:Ci,useReducer:di,useRef:vi,useState:function(){return di(li)},useDebugValue:Ai,useDeferredValue:function(e){var t=di(li),n=t[0],r=t[1];return Si((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(li)[0];return[vi().current,e]},useMutableSource:mi,useOpaqueIdentifier:function(){return di(li)[0]},unstable_isNewReconciler:!1},Ni=k.ReactCurrentOwner,Ii=!1;function Di(e,t,n,r){t.child=null===e?za(t,null,n,r):Aa(t,e.child,n,r)}function Bi(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||Ii?(t.flags|=1,Di(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function qi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||Gc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Vc(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,ji(e,t,i,r,o,a))}return i=e.child,o&a||(o=i.memoizedProps,!(n=null!==(n=n.compare)?n:dr)(o,r)||e.ref!==t.ref)?(t.flags|=1,(e=Hc(i,r)).ref=t.ref,e.return=t,t.child=e):as(e,t,a)}function ji(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(Ii=!1,!(a&o))return t.lanes=e.lanes,as(e,t,a);16384&e.flags&&(Ii=!0)}return Ui(e,t,n,r,a)}function Fi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(4&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Sc(t,e),null;t.memoizedState={baseLanes:0},Sc(t,null!==a?a.baseLanes:n)}else t.memoizedState={baseLanes:0},Sc(t,n);else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Sc(t,r);return Di(e,t,o,n),t.child}function Qi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Ui(e,t,n,r,o){var a=bo(n)?ho:fo.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||Ii?(t.flags|=1,Di(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,as(e,t,o))}function $i(e,t,n,r,o){if(bo(n)){var a=!0;ko(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),ka(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var c=i.context,l=n.contextType;"object"==typeof l&&null!==l?l=ia(l):l=go(t,l=bo(n)?ho:fo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||c!==l)&&wa(t,i,r,l),sa=!1;var p=t.memoizedState;i.state=p,fa(t,r,i,o),c=t.memoizedState,s!==r||p!==c||mo.current||sa?("function"==typeof u&&(ga(t,n,u,r),c=t.memoizedState),(s=sa||va(t,n,s,r,p,c,l))?(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|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=c),i.props=r,i.state=c,i.context=l,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,la(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:Xo(t.type,s),i.props=l,d=t.pendingProps,p=i.context,"object"==typeof(c=n.contextType)&&null!==c?c=ia(c):c=go(t,c=bo(n)?ho:fo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==c)&&wa(t,i,r,c),sa=!1,p=t.memoizedState,i.state=p,fa(t,r,i,o);var m=t.memoizedState;s!==d||p!==m||mo.current||sa?("function"==typeof f&&(ga(t,n,f,r),m=t.memoizedState),(l=sa||va(t,n,l,r,p,m,c))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,c),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,c)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=c,r=l):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Gi(e,t,n,r,a,o)}function Gi(e,t,n,r,o,a){Qi(e,t);var i=!!(64&t.flags);if(!r&&!i)return o&&So(t,n,!1),as(e,t,a);r=t.stateNode,Ni.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Aa(t,e.child,null,a),t.child=Aa(t,null,s,a)):Di(e,t,s,a),t.memoizedState=r.state,o&&So(t,n,!0),t.child}function Hi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),La(e,t.containerInfo)}var Vi,Wi,Ki,Yi,Xi={dehydrated:null,retryLane:0};function Ji(e,t,n){var r,o=t.pendingProps,a=Da.current,i=!1;return(r=!!(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&!!(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),uo(Da,1&a),null===e?(void 0!==o.fallback&&$a(t),e=o.children,a=o.fallback,i?(e=Zi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Zi(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Kc({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=ts(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=es(e,t,o.children,n),t.memoizedState=null,n))}function Zi(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},2&o||null===a?a=Kc(t,o,0,null):(a.childLanes=0,a.pendingProps=t),n=Wc(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function es(e,t,n,r){var o=e.child;return e=o.sibling,n=Hc(o,{mode:"visible",children:n}),!(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function ts(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var s={mode:"hidden",children:n};return 2&a||t.child===i?n=Hc(i,s):((n=t.child).childLanes=0,n.pendingProps=s,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null),null!==e?r=Hc(e,r):(r=Wc(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function ns(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rs(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function os(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Di(e,t,r.children,n),2&(r=Da.current))r=1&r|2,t.flags|=64;else{if(null!==e&&64&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&ns(e,n);else if(19===e.tag)ns(e,n);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(uo(Da,r),2&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rs(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Ba(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rs(t,!0,n,null,a,t.lastEffect);break;case"together":rs(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function as(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Fs|=t.lanes,n&t.childLanes){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Hc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Hc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function is(e,t){if(!Fa)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 ss(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return bo(t.type)&&vo(),null;case 3:return Oa(),lo(mo),lo(fo),Ka(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Ha(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Wi(t),null;case 5:Ia(t);var a=Pa(Ma.current);if(n=t.type,null!==e&&null!=t.stateNode)Ki(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Pa(Ta.current),Ha(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Xr]=t,r[Jr]=s,n){case"dialog":Tr("cancel",r),Tr("close",r);break;case"iframe":case"object":case"embed":Tr("load",r);break;case"video":case"audio":for(e=0;e<Er.length;e++)Tr(Er[e],r);break;case"source":Tr("error",r);break;case"img":case"image":case"link":Tr("error",r),Tr("load",r);break;case"details":Tr("toggle",r);break;case"input":ee(r,s),Tr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},Tr("invalid",r);break;case"textarea":ce(r,s),Tr("invalid",r)}for(var l in _e(n,s),e=null,s)s.hasOwnProperty(l)&&(a=s[l],"children"===l?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):c.hasOwnProperty(l)&&null!=a&&"onScroll"===l&&Tr("scroll",r));switch(n){case"input":Y(r),re(r,s,!0);break;case"textarea":Y(r),ue(r);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(r.onclick=qr)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(l=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=pe(n)),e===de.html?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Vi(e,t,!1,!1),t.stateNode=e,l=xe(n,r),n){case"dialog":Tr("cancel",e),Tr("close",e),a=r;break;case"iframe":case"object":case"embed":Tr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Er.length;a++)Tr(Er[a],e);a=r;break;case"source":Tr("error",e),a=r;break;case"img":case"image":case"link":Tr("error",e),Tr("load",e),a=r;break;case"details":Tr("toggle",e),a=r;break;case"input":ee(e,r),a=Z(e,r),Tr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Tr("invalid",e);break;case"textarea":ce(e,r),a=se(e,r),Tr("invalid",e);break;default:a=r}_e(n,a);var u=a;for(s in u)if(u.hasOwnProperty(s)){var d=u[s];"style"===s?ke(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"==typeof d?("textarea"!==n||""!==d)&&be(e,d):"number"==typeof d&&be(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(c.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Tr("scroll",e):null!=d&&w(e,s,d,l))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+W(r.value));break;case"select":e.multiple=!!r.multiple,null!=(s=r.value)?ie(e,!!r.multiple,s,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=qr)}Qr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Pa(Ma.current),Pa(Ta.current),Ha(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return lo(Da),r=t.memoizedState,64&t.flags?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Ha(t):n=null!==e.memoizedState,r&&!n&&2&t.mode&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||1&Da.current?0===Bs&&(Bs=3):(0!==Bs&&3!==Bs||(Bs=4),null===Ls||!(134217727&Fs)&&!(134217727&Qs)||vc(Ls,Ns))),(r||n)&&(t.flags|=4),null);case 4:return Oa(),Wi(t),null===e&&Mr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(lo(Da),null===(r=t.memoizedState))return null;if(s=!!(64&t.flags),null===(l=r.rendering))if(s)is(r,!1);else{if(0!==Bs||null!==e&&64&e.flags)for(e=t.child;null!==e;){if(null!==(l=Ba(e))){for(t.flags|=64,is(r,!1),null!==(s=l.updateQueue)&&(t.updateQueue=s,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(s=n).flags&=2,s.nextEffect=null,s.firstEffect=null,s.lastEffect=null,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return uo(Da,1&Da.current|2),t.child}e=e.sibling}null!==r.tail&&Uo()>Hs&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432)}else{if(!s)if(null!==(e=Ba(l))){if(t.flags|=64,s=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),is(r,!0),null===r.tail&&"hidden"===r.tailMode&&!l.alternate&&!Fa)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Uo()-r.renderingStartTime>Hs&&1073741824!==n&&(t.flags|=64,s=!0,is(r,!1),t.lanes=33554432);r.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=r.last)?n.sibling=l:t.child=l,r.last=l)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Uo(),n.sibling=null,t=Da.current,uo(Da,s?1&t|2:1&t),n):null;case 23:case 24:return _c(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function cs(e){switch(e.tag){case 1:bo(e.type)&&vo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Oa(),lo(mo),lo(fo),Ka(),64&(t=e.flags))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Ia(e),null;case 13:return lo(Da),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return lo(Da),null;case 4:return Oa(),null;case 10:return ra(e),null;case 23:case 24:return _c(),null;default:return null}}function ls(e,t){try{var n="",r=t;do{n+=H(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function us(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Vi=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}},Wi=function(){},Ki=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Pa(Ta.current);var i,s=null;switch(n){case"input":a=Z(e,a),r=Z(e,r),s=[];break;case"option":a=ae(e,a),r=ae(e,r),s=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),s=[];break;case"textarea":a=se(e,a),r=se(e,r),s=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=qr)}for(d in _e(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var l=a[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(c.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var u=r[d];if(l=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==l&&(null!=u||null!=l))if("style"===d)if(l){for(i in l)!l.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&l[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(s||(s=[]),s.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,l=l?l.__html:void 0,null!=u&&l!==u&&(s=s||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(s=s||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(c.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Tr("scroll",e),s||l===u||(s=[])):"object"==typeof u&&null!==u&&u.$$typeof===N?u.toString():(s=s||[]).push(d,u))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var ds="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ys||(Ys=!0,Xs=r),us(0,t)},n}function fs(e,t,n){(n=ua(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return us(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Js?Js=new Set([this]):Js.add(this),us(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ms="function"==typeof WeakSet?WeakSet:Set;function hs(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){jc(e,n)}else t.current=null}function gs(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Hr(t.stateNode.containerInfo))}throw Error(i(163))}function bs(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(!(3&~e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,4&(o=o.tag)&&1&o&&(Dc(n,e),Ic(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ma(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ma(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Qr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&kt(n)))))}throw Error(i(163))}function vs(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function ys(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(_o,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(4&r)Dc(t,n);else{r=t;try{o()}catch(a){jc(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hs(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){jc(t,a)}break;case 5:hs(t);break;case 4:Es(e,t)}}function ws(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ks(e){return 5===e.tag||3===e.tag||4===e.tag}function Ss(e){e:{for(var t=e.return;null!==t;){if(ks(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(be(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||ks(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?_s(e,n,t):xs(e,n,t)}function _s(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,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=qr));else if(4!==r&&null!==(e=e.child))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function xs(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(xs(e,t,n),e=e.sibling;null!==e;)xs(e,t,n),e=e.sibling}function Es(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var s=e,c=o,l=c;;)if(ys(s,l),null!==l.child&&4!==l.tag)l.child.return=l,l=l.child;else{if(l===c)break e;for(;null===l.sibling;){if(null===l.return||l.return===c)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}r?(s=n,c=o.stateNode,8===s.nodeType?s.parentNode.removeChild(c):s.removeChild(c)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(ys(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function As(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{!(3&~r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var s=a[o],c=a[o+1];"style"===s?ke(n,c):"dangerouslySetInnerHTML"===s?ge(n,c):"children"===s?be(n,c):w(n,s,c,t)}switch(e){case"input":ne(n,r);break;case"textarea":le(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,kt(n.containerInfo)));case 13:return null!==t.memoizedState&&(Gs=Uo(),vs(t.child,!0)),void zs(t);case 19:return void zs(t);case 23:case 24:return void vs(t,null!==t.memoizedState)}throw Error(i(163))}function zs(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ms),t.forEach((function(t){var r=Qc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Cs(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Ts=Math.ceil,Rs=k.ReactCurrentDispatcher,Ms=k.ReactCurrentOwner,Ps=0,Ls=null,Os=null,Ns=0,Is=0,Ds=co(0),Bs=0,qs=null,js=0,Fs=0,Qs=0,Us=0,$s=null,Gs=0,Hs=1/0;function Vs(){Hs=Uo()+500}var Ws,Ks=null,Ys=!1,Xs=null,Js=null,Zs=!1,ec=null,tc=90,nc=[],rc=[],oc=null,ac=0,ic=null,sc=-1,cc=0,lc=0,uc=null,dc=!1;function pc(){return 48&Ps?Uo():-1!==sc?sc:sc=Uo()}function fc(e){if(!(2&(e=e.mode)))return 1;if(!(4&e))return 99===$o()?1:2;if(0===cc&&(cc=js),0!==Yo.transition){0!==lc&&(lc=null!==$s?$s.pendingLanes:0),e=cc;var t=4186112&~lc;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=$o(),4&Ps&&98===e?e=qt(12,cc):e=qt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),cc),e}function mc(e,t,n){if(50<ac)throw ac=0,ic=null,Error(i(185));if(null===(e=hc(e,t)))return null;Qt(e,t,n),e===Ls&&(Qs|=t,4===Bs&&vc(e,Ns));var r=$o();1===t?8&Ps&&!(48&Ps)?yc(e):(gc(e,n),0===Ps&&(Vs(),Wo())):(!(4&Ps)||98!==r&&99!==r||(null===oc?oc=new Set([e]):oc.add(e)),gc(e,n)),$s=e}function hc(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}function gc(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,s=e.pendingLanes;0<s;){var c=31-Ut(s),l=1<<c,u=a[c];if(-1===u){if(!(l&r)||l&o){u=t,It(l);var d=Nt;a[c]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=l);s&=~l}if(r=Dt(e,e===Ls?Ns:0),t=Nt,0===r)null!==n&&(n!==Do&&zo(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Do&&zo(n)}15===t?(n=yc.bind(null,e),null===qo?(qo=[n],jo=Ao(Po,Ko)):qo.push(n),n=Do):14===t?n=Vo(99,yc.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Vo(n,bc.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bc(e){if(sc=-1,lc=cc=0,48&Ps)throw Error(i(327));var t=e.callbackNode;if(Nc()&&e.callbackNode!==t)return null;var n=Dt(e,e===Ls?Ns:0);if(0===n)return null;var r=n,o=Ps;Ps|=16;var a=Ac();for(Ls===e&&Ns===r||(Vs(),xc(e,r));;)try{Tc();break}catch(c){Ec(e,c)}if(na(),Rs.current=a,Ps=o,null!==Os?r=0:(Ls=null,Ns=0,r=Bs),js&Qs)xc(e,0);else if(0!==r){if(2===r&&(Ps|=64,e.hydrate&&(e.hydrate=!1,Hr(e.containerInfo)),0!==(n=Bt(e))&&(r=zc(e,n))),1===r)throw t=qs,xc(e,0),vc(e,n),gc(e,Uo()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Pc(e);break;case 3:if(vc(e,n),(62914560&n)===n&&10<(r=Gs+500-Uo())){if(0!==Dt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){pc(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Pc.bind(null,e),r);break}Pc(e);break;case 4:if(vc(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var s=31-Ut(n);a=1<<s,(s=r[s])>o&&(o=s),n&=~a}if(n=o,10<(n=(120>(n=Uo()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ts(n/1960))-n)){e.timeoutHandle=$r(Pc.bind(null,e),n);break}Pc(e);break;default:throw Error(i(329))}}return gc(e,Uo()),e.callbackNode===t?bc.bind(null,e):null}function vc(e,t){for(t&=~Us,t&=~Qs,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ut(t),r=1<<n;e[n]=-1,t&=~r}}function yc(e){if(48&Ps)throw Error(i(327));if(Nc(),e===Ls&&e.expiredLanes&Ns){var t=Ns,n=zc(e,t);js&Qs&&(n=zc(e,t=Dt(e,t)))}else n=zc(e,t=Dt(e,0));if(0!==e.tag&&2===n&&(Ps|=64,e.hydrate&&(e.hydrate=!1,Hr(e.containerInfo)),0!==(t=Bt(e))&&(n=zc(e,t))),1===n)throw n=qs,xc(e,0),vc(e,t),gc(e,Uo()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Pc(e),gc(e,Uo()),null}function wc(e,t){var n=Ps;Ps|=1;try{return e(t)}finally{0===(Ps=n)&&(Vs(),Wo())}}function kc(e,t){var n=Ps;Ps&=-2,Ps|=8;try{return e(t)}finally{0===(Ps=n)&&(Vs(),Wo())}}function Sc(e,t){uo(Ds,Is),Is|=t,js|=t}function _c(){Is=Ds.current,lo(Ds)}function xc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Gr(n)),null!==Os)for(n=Os.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&vo();break;case 3:Oa(),lo(mo),lo(fo),Ka();break;case 5:Ia(r);break;case 4:Oa();break;case 13:case 19:lo(Da);break;case 10:ra(r);break;case 23:case 24:_c()}n=n.return}Ls=e,Os=Hc(e.current,null),Ns=Is=js=t,Bs=0,qs=null,Us=Qs=Fs=0}function Ec(e,t){for(;;){var n=Os;try{if(na(),Ya.current=Mi,ni){for(var r=Za.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Ja=0,ti=ei=Za=null,ri=!1,Ms.current=null,null===n||null===n.return){Bs=1,qs=t,Os=null;break}e:{var a=e,i=n.return,s=n,c=t;if(t=Ns,s.flags|=2048,s.firstEffect=s.lastEffect=null,null!==c&&"object"==typeof c&&"function"==typeof c.then){var l=c;if(!(2&s.mode)){var u=s.alternate;u?(s.updateQueue=u.updateQueue,s.memoizedState=u.memoizedState,s.lanes=u.lanes):(s.updateQueue=null,s.memoizedState=null)}var d=!!(1&Da.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(l),p.updateQueue=b}else g.add(l);if(!(2&p.mode)){if(p.flags|=64,s.flags|=16384,s.flags&=-2981,1===s.tag)if(null===s.alternate)s.tag=17;else{var v=ua(-1,1);v.tag=2,da(s,v)}s.lanes|=1;break e}c=void 0,s=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new ds,c=new Set,y.set(l,c)):void 0===(c=y.get(l))&&(c=new Set,y.set(l,c)),!c.has(s)){c.add(s);var w=Fc.bind(null,a,l,s);l.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);c=Error((V(s.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Bs&&(Bs=2),c=ls(c,s),p=i;do{switch(p.tag){case 3:a=c,p.flags|=4096,t&=-t,p.lanes|=t,pa(p,ps(0,a,t));break e;case 1:a=c;var k=p.type,S=p.stateNode;if(!(64&p.flags||"function"!=typeof k.getDerivedStateFromError&&(null===S||"function"!=typeof S.componentDidCatch||null!==Js&&Js.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,pa(p,fs(p,a,t));break e}}p=p.return}while(null!==p)}Mc(n)}catch(_){t=_,Os===n&&null!==n&&(Os=n=n.return);continue}break}}function Ac(){var e=Rs.current;return Rs.current=Mi,null===e?Mi:e}function zc(e,t){var n=Ps;Ps|=16;var r=Ac();for(Ls===e&&Ns===t||xc(e,t);;)try{Cc();break}catch(o){Ec(e,o)}if(na(),Ps=n,Rs.current=r,null!==Os)throw Error(i(261));return Ls=null,Ns=0,Bs}function Cc(){for(;null!==Os;)Rc(Os)}function Tc(){for(;null!==Os&&!Co();)Rc(Os)}function Rc(e){var t=Ws(e.alternate,e,Is);e.memoizedProps=e.pendingProps,null===t?Mc(e):Os=t,Ms.current=null}function Mc(e){var t=e;do{var n=t.alternate;if(e=t.return,2048&t.flags){if(null!==(n=cs(t)))return n.flags&=2047,void(Os=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}else{if(null!==(n=ss(n,t,Is)))return void(Os=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||1073741824&Is||!(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&!(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}if(null!==(t=t.sibling))return void(Os=t);Os=t=e}while(null!==t);0===Bs&&(Bs=5)}function Pc(e){var t=$o();return Ho(99,Lc.bind(null,e,t)),null}function Lc(e,t){do{Nc()}while(null!==ec);if(48&Ps)throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var s=e.eventTimes,c=e.expirationTimes;0<a;){var l=31-Ut(a),u=1<<l;o[l]=0,s[l]=-1,c[l]=-1,a&=~u}if(null!==oc&&!(24&r)&&oc.has(e)&&oc.delete(e),e===Ls&&(Os=Ls=null,Ns=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Ps,Ps|=32,Ms.current=null,jr=Wt,gr(s=hr())){if("selectionStart"in s)c={start:s.selectionStart,end:s.selectionEnd};else e:if(c=(c=s.ownerDocument)&&c.defaultView||window,(u=c.getSelection&&c.getSelection())&&0!==u.rangeCount){c=u.anchorNode,a=u.anchorOffset,l=u.focusNode,u=u.focusOffset;try{c.nodeType,l.nodeType}catch(A){c=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=s,b=null;t:for(;;){for(var v;g!==c||0!==a&&3!==g.nodeType||(p=d+a),g!==l||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===s)break t;if(b===c&&++m===a&&(p=d),b===l&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}c=-1===p||-1===f?null:{start:p,end:f}}else c=null;c=c||{start:0,end:0}}else c=null;Fr={focusedElem:s,selectionRange:c},Wt=!1,uc=null,dc=!1,Ks=r;do{try{Oc()}catch(A){if(null===Ks)throw Error(i(330));jc(Ks,A),Ks=Ks.nextEffect}}while(null!==Ks);uc=null,Ks=r;do{try{for(s=e;null!==Ks;){var y=Ks.flags;if(16&y&&be(Ks.stateNode,""),128&y){var w=Ks.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Ss(Ks),Ks.flags&=-3;break;case 6:Ss(Ks),Ks.flags&=-3,As(Ks.alternate,Ks);break;case 1024:Ks.flags&=-1025;break;case 1028:Ks.flags&=-1025,As(Ks.alternate,Ks);break;case 4:As(Ks.alternate,Ks);break;case 8:Es(s,c=Ks);var S=c.alternate;ws(c),null!==S&&ws(S)}Ks=Ks.nextEffect}}catch(A){if(null===Ks)throw Error(i(330));jc(Ks,A),Ks=Ks.nextEffect}}while(null!==Ks);if(k=Fr,w=hr(),y=k.focusedElem,s=k.selectionRange,w!==y&&y&&y.ownerDocument&&mr(y.ownerDocument.documentElement,y)){null!==s&&gr(y)&&(w=s.start,void 0===(k=s.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),c=y.textContent.length,S=Math.min(s.start,c),s=void 0===s.end?S:Math.min(s.end,c),!k.extend&&S>s&&(c=s,s=S,S=c),c=fr(y,S),a=fr(y,s),c&&a&&(1!==k.rangeCount||k.anchorNode!==c.node||k.anchorOffset!==c.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(c.node,c.offset),k.removeAllRanges(),S>s?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Wt=!!jr,Fr=jr=null,e.current=n,Ks=r;do{try{for(y=e;null!==Ks;){var _=Ks.flags;if(36&_&&bs(y,Ks.alternate,Ks),128&_){w=void 0;var x=Ks.ref;if(null!==x){var E=Ks.stateNode;Ks.tag,w=E,"function"==typeof x?x(w):x.current=w}}Ks=Ks.nextEffect}}catch(A){if(null===Ks)throw Error(i(330));jc(Ks,A),Ks=Ks.nextEffect}}while(null!==Ks);Ks=null,Bo(),Ps=o}else e.current=n;if(Zs)Zs=!1,ec=e,tc=t;else for(Ks=r;null!==Ks;)t=Ks.nextEffect,Ks.nextEffect=null,8&Ks.flags&&((_=Ks).sibling=null,_.stateNode=null),Ks=t;if(0===(r=e.pendingLanes)&&(Js=null),1===r?e===ic?ac++:(ac=0,ic=e):ac=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(_o,n,void 0,!(64&~n.current.flags))}catch(A){}if(gc(e,Uo()),Ys)throw Ys=!1,e=Xs,Xs=null,e;return 8&Ps||Wo(),null}function Oc(){for(;null!==Ks;){var e=Ks.alternate;dc||null===uc||(8&Ks.flags?Ze(Ks,uc)&&(dc=!0):13===Ks.tag&&Cs(e,Ks)&&Ze(Ks,uc)&&(dc=!0));var t=Ks.flags;256&t&&gs(e,Ks),!(512&t)||Zs||(Zs=!0,Vo(97,(function(){return Nc(),null}))),Ks=Ks.nextEffect}}function Nc(){if(90!==tc){var e=97<tc?97:tc;return tc=90,Ho(e,Bc)}return!1}function Ic(e,t){nc.push(t,e),Zs||(Zs=!0,Vo(97,(function(){return Nc(),null})))}function Dc(e,t){rc.push(t,e),Zs||(Zs=!0,Vo(97,(function(){return Nc(),null})))}function Bc(){if(null===ec)return!1;var e=ec;if(ec=null,48&Ps)throw Error(i(331));var t=Ps;Ps|=32;var n=rc;rc=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],s=o.destroy;if(o.destroy=void 0,"function"==typeof s)try{s()}catch(l){if(null===a)throw Error(i(330));jc(a,l)}}for(n=nc,nc=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var c=o.create;o.destroy=c()}catch(l){if(null===a)throw Error(i(330));jc(a,l)}}for(c=e.current.firstEffect;null!==c;)e=c.nextEffect,c.nextEffect=null,8&c.flags&&(c.sibling=null,c.stateNode=null),c=e;return Ps=t,Wo(),!0}function qc(e,t,n){da(e,t=ps(0,t=ls(n,t),1)),t=pc(),null!==(e=hc(e,1))&&(Qt(e,1,t),gc(e,t))}function jc(e,t){if(3===e.tag)qc(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){qc(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r))){var o=fs(n,e=ls(t,e),1);if(da(n,o),o=pc(),null!==(n=hc(n,1)))Qt(n,1,o),gc(n,o);else if("function"==typeof r.componentDidCatch&&(null===Js||!Js.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function Fc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=pc(),e.pingedLanes|=e.suspendedLanes&n,Ls===e&&(Ns&n)===n&&(4===Bs||3===Bs&&(62914560&Ns)===Ns&&500>Uo()-Gs?xc(e,0):Us|=n),gc(e,t)}function Qc(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(2&(t=e.mode)?4&t?(0===cc&&(cc=js),0===(t=jt(62914560&~cc))&&(t=4194304)):t=99===$o()?1:2:t=1),n=pc(),null!==(e=hc(e,t))&&(Qt(e,t,n),gc(e,n))}function Uc(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.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function $c(e,t,n,r){return new Uc(e,t,n,r)}function Gc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Hc(e,t){var n=e.alternate;return null===n?((n=$c(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.nextEffect=null,n.firstEffect=null,n.lastEffect=null),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 Vc(e,t,n,r,o,a){var s=2;if(r=e,"function"==typeof e)Gc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case x:return Wc(n.children,o,a,t);case I:s=8,o|=16;break;case E:s=8,o|=1;break;case A:return(e=$c(12,n,t,8|o)).elementType=A,e.type=A,e.lanes=a,e;case R:return(e=$c(13,n,t,o)).type=R,e.elementType=R,e.lanes=a,e;case M:return(e=$c(19,n,t,o)).elementType=M,e.lanes=a,e;case D:return Kc(n,o,a,t);case B:return(e=$c(24,n,t,o)).elementType=B,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case z:s=10;break e;case C:s=9;break e;case T:s=11;break e;case P:s=14;break e;case L:s=16,r=null;break e;case O:s=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=$c(s,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Wc(e,t,n,r){return(e=$c(7,e,r,t)).lanes=n,e}function Kc(e,t,n,r){return(e=$c(23,e,r,t)).elementType=D,e.lanes=n,e}function Yc(e,t,n){return(e=$c(6,e,null,t)).lanes=n,e}function Xc(e,t,n){return(t=$c(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jc(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=Ft(0),this.expirationTimes=Ft(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ft(0),this.mutableSourceEagerHydrationData=null}function Zc(e,t,n,r){var o=t.current,a=pc(),s=fc(o);e:if(n){t:{if(Ke(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var c=n;do{switch(c.tag){case 3:c=c.stateNode.context;break t;case 1:if(bo(c.type)){c=c.stateNode.__reactInternalMemoizedMergedChildContext;break t}}c=c.return}while(null!==c);throw Error(i(171))}if(1===n.tag){var l=n.type;if(bo(l)){n=wo(n,l,c);break e}}n=c}else n=po;return null===t.context?t.context=n:t.pendingContext=n,(t=ua(a,s)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),mc(o,s,a),s}function el(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tl(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nl(e,t){tl(e,t),(e=e.alternate)&&tl(e,t)}function rl(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Jc(e,t,null!=n&&!0===n.hydrate),t=$c(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ca(t),e[Zr]=n.current,Mr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ol(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function al(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var s=o;o=function(){var e=el(i);s.call(e)}}Zc(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new rl(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var c=o;o=function(){var e=el(i);c.call(e)}}kc((function(){Zc(t,i,e,o)}))}return el(i)}function il(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:_,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Ws=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||mo.current)Ii=!0;else{if(!(n&r)){switch(Ii=!1,t.tag){case 3:Hi(t),Va();break;case 5:Na(t);break;case 1:bo(t.type)&&ko(t);break;case 4:La(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;uo(Jo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return n&t.child.childLanes?Ji(e,t,n):(uo(Da,1&Da.current),null!==(t=as(e,t,n))?t.sibling:null);uo(Da,1&Da.current);break;case 19:if(r=!!(n&t.childLanes),64&e.flags){if(r)return os(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),uo(Da,Da.current),r)break;return null;case 23:case 24:return t.lanes=0,Fi(e,t,n)}return as(e,t,n)}Ii=!!(16384&e.flags)}else Ii=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,fo.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,bo(r)){var a=!0;ko(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ca(t);var s=r.getDerivedStateFromProps;"function"==typeof s&&ga(t,r,s,e),o.updater=ba,t.stateNode=o,o._reactInternals=t,ka(t,r,e,n),t=Gi(null,t,r,!0,a,n)}else t.tag=0,Di(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Gc(e)?1:0;if(null!=e){if((e=e.$$typeof)===T)return 11;if(e===P)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Ui(null,t,o,e,n);break e;case 1:t=$i(null,t,o,e,n);break e;case 11:t=Bi(null,t,o,e,n);break e;case 14:t=qi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Ui(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,$i(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Hi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,la(e,t),fa(t,r,null,n),(r=t.memoizedState.element)===o)Va(),t=as(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(ja=Vr(t.stateNode.containerInfo.firstChild),qa=t,a=Fa=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Wa.push(a);for(n=za(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Di(e,t,r,n),Va();t=t.child}return t;case 5:return Na(t),null===e&&$a(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,s=o.children,Ur(r,o)?s=null:null!==a&&Ur(r,a)&&(t.flags|=16),Qi(e,t),Di(e,t,s,n),t.child;case 6:return null===e&&$a(t),null;case 13:return Ji(e,t,n);case 4:return La(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Aa(t,null,r,n):Di(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Bi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Di(e,t,t.pendingProps,n),t.child;case 8:case 12:return Di(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,s=t.memoizedProps,a=o.value;var c=t.type._context;if(uo(Jo,c._currentValue),c._currentValue=a,null!==s)if(c=s.value,0===(a=lr(c,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(c,a):1073741823))){if(s.children===o.children&&!mo.current){t=as(e,t,n);break e}}else for(null!==(c=t.child)&&(c.return=t);null!==c;){var l=c.dependencies;if(null!==l){s=c.child;for(var u=l.firstContext;null!==u;){if(u.context===r&&u.observedBits&a){1===c.tag&&((u=ua(-1,n&-n)).tag=2,da(c,u)),c.lanes|=n,null!==(u=c.alternate)&&(u.lanes|=n),oa(c.return,n),l.lanes|=n;break}u=u.next}}else s=10===c.tag&&c.type===t.type?null:c.child;if(null!==s)s.return=c;else for(s=c;null!==s;){if(s===t){s=null;break}if(null!==(c=s.sibling)){c.return=s.return,s=c;break}s=s.return}c=s}Di(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Di(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),qi(e,t,o,a=Xo(o.type,a),r,n);case 15:return ji(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,bo(r)?(e=!0,ko(t)):e=!1,aa(t,n),ya(t,r,o),ka(t,r,o,n),Gi(null,t,r,!0,e,n);case 19:return os(e,t,n);case 23:case 24:return Fi(e,t,n)}throw Error(i(156,t.tag))},rl.prototype.render=function(e){Zc(e,this._internalRoot,null,null)},rl.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Zc(null,e,null,(function(){t[Zr]=null}))},et=function(e){13===e.tag&&(mc(e,4,pc()),nl(e,4))},tt=function(e){13===e.tag&&(mc(e,67108864,pc()),nl(e,67108864))},nt=function(e){if(13===e.tag){var t=pc(),n=fc(e);mc(e,n,t),nl(e,n)}},rt=function(e,t){return t()},Ae=function(e,t,n){switch(t){case"input":if(ne(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 o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":le(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Pe=wc,Le=function(e,t,n,r,o){var a=Ps;Ps|=4;try{return Ho(98,e.bind(null,t,n,r,o))}finally{0===(Ps=a)&&(Vs(),Wo())}},Oe=function(){!(49&Ps)&&(function(){if(null!==oc){var e=oc;oc=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gc(e,Uo())}))}Wo()}(),Nc())},Ne=function(e,t){var n=Ps;Ps|=2;try{return e(t)}finally{0===(Ps=n)&&(Vs(),Wo())}};var sl={Events:[no,ro,oo,Re,Me,Nc,{current:!1}]},cl={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},ll={bundleType:cl.bundleType,version:cl.version,rendererPackageName:cl.rendererPackageName,rendererConfig:cl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:cl.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ul=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ul.isDisabled&&ul.supportsFiber)try{_o=ul.inject(ll),xo=ul}catch(he){}}t.createPortal=il,t.hydrate=function(e,t,n){if(!ol(t))throw Error(i(200));return al(null,e,t,!0,n)}},40961:(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(22551)},30115:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,c,l,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(!a(e[c],i[c]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!a(c.value[1],i.get(c.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!i.has(c.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(c=s;0!=c--;)if(e[c]!==i[c])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((s=(l=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(c=s;0!=c--;)if(!Object.prototype.hasOwnProperty.call(i,l[c]))return!1;if(t&&e instanceof Element)return!1;for(c=s;0!=c--;)if(("_owner"!==l[c]&&"__v"!==l[c]&&"__o"!==l[c]||!e.$$typeof)&&!a(e[l[c]],i[l[c]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},80545:(e,t,n)=>{"use strict";n.d(t,{mg:()=>Z,vd:()=>G});var r=n(96540),o=n(5556),a=n.n(o),i=n(30115),s=n.n(i),c=n(20311),l=n.n(c),u=n(2833),d=n.n(u);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 h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}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"]},v={type:["application/ld+json"]},y={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"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),_=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},x=function(e){var t=_(e,g.TITLE),n=_(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=_(e,"defaultTitle");return t||r||void 0},E=function(e){return _(e,"onChangeClientState")||function(){}},A=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)}),{})},z=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),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},C=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 o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var s=a[i],c=s.toLowerCase();-1===t.indexOf(c)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===c&&"stylesheet"===e[c].toLowerCase()||(n=c),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][l]&&(o[n][l]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var s=a[i],c=p({},r[s],o[s]);r[s]=c}return e}),[]).reverse()},T=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},R=function(e){return Array.isArray(e)?e.join(""):e},M=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}},P=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},L=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")},N=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)},D=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},B=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=N(n),a=R(t);return o?"<"+e+' data-rh="true" '+o+">"+O(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return N(t)}};default:return{toComponent:function(){return D(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===L.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},q=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,s=e.title,c=void 0===s?"":s,l=e.titleAttributes,u=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,o=M(e.metaTags,y),a=M(t,b),i=M(n,v);return{priorityMethods:{toComponent:function(){return[].concat(D(g.META,o.priority),D(g.LINK,a.priority),D(g.SCRIPT,i.priority))},toString:function(){return B(g.META,o.priority,r)+" "+B(g.LINK,a.priority,r)+" "+B(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:B(g.BASE,t,r),bodyAttributes:B("bodyAttributes",n,r),htmlAttributes:B("htmlAttributes",o,r),link:B(g.LINK,u,r),meta:B(g.META,d,r),noscript:B(g.NOSCRIPT,a,r),script:B(g.SCRIPT,p,r),style:B(g.STYLE,i,r),title:B(g.TITLE,{title:c,titleAttributes:l},r)}},j=[],F=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?j:n.instances},add:function(e){(n.canUseDOM?j:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?j:n.instances).indexOf(e);(n.canUseDOM?j:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=q({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Q=r.createContext({}),U=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),$="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new F(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(Q.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=$,G.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var H=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),s=0;s<i.length;s+=1){var c=i[s],l=t[c]||"";n.getAttribute(c)!==l&&n.setAttribute(c,l),-1===o.indexOf(c)&&o.push(c);var u=a.indexOf(c);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,c=e.scriptTags,l=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),V(g.TITLE,t)}(u,d);var p={baseTag:H(g.BASE,n),linkTags:H(g.LINK,o),metaTags:H(g.META,a),noscriptTags:H(g.NOSCRIPT,i),scriptTags:H(g.SCRIPT,c),styleTags:H(g.STYLE,l)},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(),s(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];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,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:z(["href"],e),bodyAttributes:A("bodyAttributes",e),defer:_(e,"defer"),encode:_(e,"encodeSpecialCharacters"),htmlAttributes:A("htmlAttributes",e),linkTags:C(g.LINK,["rel","href"],e),metaTags:C(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:C(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:E(e),scriptTags:C(g.SCRIPT,["src","innerHTML"],e),styleTags:C(g.STYLE,["cssText"],e),title:x(e),titleAttributes:A("titleAttributes",e),prioritizeSeoTags:T(e,"prioritizeSeoTags")});G.canUseDOM?(t=a,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){W(t,(function(){K=null}))})):(W(t),K=null)):q&&(o=q(a)),r(o)},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:U.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],J=["children"],Z=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(P(this.props,"helmetData"),P(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,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),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 l()(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."),l()(!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,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,X),s=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),c=e.type;switch("symbol"==typeof c?c=c.toString():n.warnOnInvalidChildren(e,a),c){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:s,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,J),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof F||(a=new F(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(Q.Consumer,null,(function(e){return r.createElement(Y,p({},o,{context:e}))}))},t}(r.Component);Z.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},Z.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Z.displayName="Helmet"},53259:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(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 s=n(96540),c=n(5556),l=[],u=[];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 o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.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 s.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),h=null;function g(){return h||(h=e(m.loader)),h.promise}return l.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.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 a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.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.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.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:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.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?s.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}(s.Component),a(d,"contextTypes",{loadable:c.shape({report:c.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.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)}))}a(g,"propTypes",{report:c.func.isRequired}),a(g,"childContextTypes",{loadable:c.shape({report:c.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(l).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},22831:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,v:()=>s});var r=n(56347),o=n(58168),a=n(96540);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.B6)(t,e):n.length?n[n.length-1].match:r.Ix.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.dO,n,e.map((function(e,n){return a.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,o.A)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.A)({},n,t,{route:e}))}})}))):null}},54625:(e,t,n)=>{"use strict";n.d(t,{Kd:()=>u,N_:()=>g,k2:()=>y});var r=n(56347),o=n(42892),a=n(96540),i=n(31513),s=n(58168),c=n(98587),l=n(11561),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.zR)(t.props),t}return(0,o.A)(t,e),t.prototype.render=function(){return a.createElement(r.Ix,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.yJ)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,c.A)(e,["innerRef","navigate","onClick"]),l=i.target,u=(0,s.A)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||l&&"_self"!==l||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,c.A)(e,["component","replace","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=e.history,r=p(d(g,e.location),e.location),c=r?n.createHref(r):"",h=(0,s.A)({},v,{href:c,navigate:function(){var t=d(g,e.location),r=(0,i.AO)(e.location)===(0,i.AO)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,_=e.style,x=e.to,E=e.innerRef,A=(0,c.A)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.XZ.Consumer,null,(function(e){e||(0,l.A)(!1);var n=w||e.location,i=p(d(x,n),n),c=i.pathname,z=c&&c.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),C=z?(0,r.B6)(n.pathname,{path:z,exact:h,sensitive:k,strict:S}):null,T=!!(y?y(C,n):C),R="function"==typeof m?m(T):m,M="function"==typeof _?_(T):_;T&&(R=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(" ")}(R,u),M=(0,s.A)({},M,f));var P=(0,s.A)({"aria-current":T&&o||null,className:R,style:M,to:i},A);return b!==v?P.ref=t||E:P.innerRef=E,a.createElement(g,P)}))}))},56347:(e,t,n)=>{"use strict";n.d(t,{B6:()=>_,Ix:()=>y,W6:()=>P,XZ:()=>v,dO:()=>R,qh:()=>x,zy:()=>L});var r=n(42892),o=n(96540),a=n(5556),i=n.n(a),s=n(31513),c=n(11561),l=n(58168),u=n(8505),d=n.n(u),p=(n(37564),n(98587)),f=(n(4146),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",c=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||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 o=n.prototype;return o.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);c.childContextTypes=((n={})[s]=i().object.isRequired,n);var l=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];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 o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},o.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},o.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},o.getValue=function(){return this.context[s]?this.context[s].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return l.contextTypes=((a={})[s]=i().object,a),{Provider:c,Consumer:l}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=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 o.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var w={},k=1e4,S=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,s=void 0!==i&&i,c=n.sensitive,l=void 0!==c&&c;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 o=[],a={regexp:d()(e,o,t),keys:o};return S<k&&(r[e]=a,S++),a}(n,{end:a,strict:s,sensitive:l}),o=r.regexp,i=r.keys,c=o.exec(e);if(!c)return null;var u=c[0],p=c.slice(1),f=e===u;return a&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.A)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,a=(0,l.A)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===o.Children.count(e)}(s)&&(s=null),o.createElement(v.Provider,{value:a},a.match?s?"function"==typeof s?s(a):s:u?o.createElement(u,a):d?d(a):null:"function"==typeof s?s(a):null)}))},t}(o.Component);function E(e){return"/"===e.charAt(0)?e:"/"+e}function A(e,t){if(!e)return t;var n=E(e);return 0!==t.pathname.indexOf(n)?t:(0,l.A)({},t,{pathname:t.pathname.substr(n.length)})}function z(e){return"string"==typeof e?e:(0,s.AO)(e)}function C(e){return function(){(0,c.A)(!1)}}function T(){}o.Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.A)(t,e),t.prototype.render=function(){var e=this;return o.createElement(v.Consumer,null,(function(t){t||(0,c.A)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?_(a.pathname,(0,l.A)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var M=o.useContext;function P(){return M(b)}function L(){return M(v).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=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,_="?"===y||"*"===y,x=n[2]||u,E=b||v;r.push({name:g||a++,prefix:h||"",delimiter:x,optional:_,repeat:S,partial:k,asterisk:!!w,pattern:E?l(E):w?".*":"[^"+c(x)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",s=t||{},c=(o||{}).pretty?i:encodeURIComponent,l=0;l<e.length;l++){var u=e[l];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=c(p[f]),!n[l].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(p),!n[l].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(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 o=(n=n||{}).strict,a=!1!==n.end,i="",s=0;s<e.length;s++){var l=e[s];if("string"==typeof l)i+=c(l);else{var p=c(l.prefix),f="(?:"+l.pattern+")";t.push(l),l.repeat&&(f+="(?:"+p+f+")*"),i+=f=l.optional?l.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=c(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(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 u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},14912:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=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,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=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 u:case d:case a:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case l:case p:case g:case h:case c:return e;default:return t}}case o:return t}}}function S(e){return k(e)===d}},37564:(e,t,n)=>{"use strict";n(14912)},15287:(e,t,n)=>{"use strict";var r=n(45228),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,s=60110,c=60112;t.Suspense=60113;var l=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),s=d("react.context"),c=d("react.forward_ref"),t.Suspense=d("react.suspense"),l=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(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 m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,n){var r,a={},i=null,s=null;if(null!=t)for(r in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(a[r]=t[r]);var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===a[r]&&(a[r]=c[r]);return{$$typeof:o,type:e,key:i,ref:s,props:a,_owner:w.current}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var E=/\/+/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 z(e,t,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case o:case a:c=!0}}if(c)return i=i(c=e),e=""===r?"."+A(c,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(E,"$&/")+"/"),z(i,t,n,"",(function(e){return e}))):null!=i&&(x(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||c&&c.key===i.key?"":(""+i.key).replace(E,"$&/")+"/")+e)),t.push(i)),1;if(c=0,r=""===r?".":r+":",Array.isArray(e))for(var l=0;l<e.length;l++){var u=r+A(s=e[l],l);c+=z(s,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),l=0;!(s=e.next()).done;)c+=z(s=s.value,t,n,u=r+A(s,l++),i);else if("object"===s)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return c}function C(e,t,n){if(null==e)return e;var r=[],o=0;return z(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function T(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function M(){var e=R.current;if(null===e)throw Error(f(321));return e}var P={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:C,forEach:function(e,t,n){C(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return C(e,(function(){t++})),t},toArray:function(e){return C(e,(function(e){return e}))||[]},only:function(e){if(!x(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=P,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,s=e.ref,c=e._owner;if(null!=t){if(void 0!==t.ref&&(s=t.ref,c=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(u in t)k.call(t,u)&&!S.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==l?l[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){l=Array(u);for(var d=0;d<u;d++)l[d]=arguments[d+2];a.children=l}return{$$typeof:o,type:e.type,key:i,ref:s,props:a,_owner:c}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:s,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_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:c,render:e}},t.isValidElement=x,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:T}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return M().useCallback(e,t)},t.useContext=function(e,t){return M().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return M().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return M().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return M().useLayoutEffect(e,t)},t.useMemo=function(e,t){return M().useMemo(e,t)},t.useReducer=function(e,t,n){return M().useReducer(e,t,n)},t.useRef=function(e){return M().useRef(e)},t.useState=function(e){return M().useState(e)},t.version="17.0.2"},96540:(e,t,n)=>{"use strict";e.exports=n(15287)},7463:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,c=s.now();t.unstable_now=function(){return s.now()-c}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var l=null,u=null,d=function(){if(null!==l)try{var e=t.unstable_now();l(!0,e),l=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==l?setTimeout(n,0,e):(l=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},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"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<E(o,t)))break e;e[r]=t,e[n]=o,n=r}}function _(e){return void 0===(e=e[0])?null:e}function x(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],s=a+1,c=e[s];if(void 0!==i&&0>E(i,n))void 0!==c&&0>E(c,i)?(e[r]=c,e[s]=n,r=s):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==c&&0>E(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}return null}function E(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var A=[],z=[],C=1,T=null,R=3,M=!1,P=!1,L=!1;function O(e){for(var t=_(z);null!==t;){if(null===t.callback)x(z);else{if(!(t.startTime<=e))break;x(z),t.sortIndex=t.expirationTime,S(A,t)}t=_(z)}}function N(e){if(L=!1,O(e),!P)if(null!==_(A))P=!0,n(I);else{var t=_(z);null!==t&&r(N,t.startTime-e)}}function I(e,n){P=!1,L&&(L=!1,o()),M=!0;var a=R;try{for(O(n),T=_(A);null!==T&&(!(T.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=T.callback;if("function"==typeof i){T.callback=null,R=T.priorityLevel;var s=i(T.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?T.callback=s:T===_(A)&&x(A),O(n)}else x(A);T=_(A)}if(null!==T)var c=!0;else{var l=_(z);null!==l&&r(N,l.startTime-n),c=!1}return c}finally{T=null,R=a,M=!1}}var D=a;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(){P||M||(P=!0,n(I))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return _(A)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=D,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,a,i){var s=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?s+i:s:i=s,e){case 1:var c=-1;break;case 2:c=250;break;case 5:c=1073741823;break;case 4:c=1e4;break;default:c=5e3}return e={id:C++,callback:a,priorityLevel:e,startTime:i,expirationTime:c=i+c,sortIndex:-1},i>s?(e.sortIndex=i,S(z,e),null===_(A)&&e===_(z)&&(L?o():L=!0,r(N,i-s))):(e.sortIndex=c,S(A,e),P||M||(P=!0,n(I))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},69982:(e,t,n)=>{"use strict";e.exports=n(7463)},2833:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),c=0;c<a.length;c++){var l=a[c];if(!s(l))return!1;var u=e[l],d=t[l];if(!1===(o=n?n.call(r,u,d,l):void 0)||void 0===o&&u!==d)return!1}return!0}},1063:(e,t,n)=>{"use strict";var r=n(96540);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,s=r.useLayoutEffect,c=r.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return s((function(){o.value=n,o.getSnapshot=t,l(o)&&u({inst:o})}),[e,n,t]),i((function(){return l(o)&&u({inst:o}),e((function(){l(o)&&u({inst:o})}))}),[e]),c(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},19888:(e,t,n)=>{"use strict";e.exports=n(1063)},4784:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"RocketMQ",tagline:"\u5b98\u65b9\u7f51\u7ad9",url:"https://your-docusaurus-test-site.com",baseUrl:"/zh/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"facebook",projectName:"docusaurus",i18n:{defaultLocale:"en",locales:["zh","en"],localeConfigs:{zh:{label:"\u7b80\u4f53\u4e2d\u6587",direction:"ltr"},en:{label:"English",direction:"ltr"}},path:"i18n"},scripts:[{src:"//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.js"}],stylesheets:[{href:"//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.css"}],presets:[["@docusaurus/preset-classic",{docs:{routeBasePath:"/docs/",sidebarPath:"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/sidebars.js",editUrl:"https://github.com/apache/rocketmq-site/tree/new-official-website",lastVersion:"5.0",versions:{current:{label:"4.x",path:"/4.x",banner:"none"},"5.0":{label:"5.0"}}},blog:{blogTitle:"RocketMQ \u535a\u5ba2",blogDescription:"\u6280\u672f\u66f4\u65b0\xb7\u7ebf\u4e0a\u4e0b\u6d3b\u52a8\xb7\u7528\u6237\u6848\u4f8b",postsPerPage:"ALL",blogSidebarTitle:"All posts",blogSidebarCount:"ALL"},theme:{customCss:"/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/src/css/custom.css"}}]],plugins:[["/home/runner/work/rocketmq-site/rocketmq-site/rocketmq-site/node_modules/docusaurus-plugin-baidu-tongji/lib/index.js",{token:"36428f2b841d08e7405724cbf7f860d2"}],["@docusaurus/plugin-google-analytics",{trackingID:"UA-89603173-1",anonymizeIP:!0}],["@docusaurus/plugin-content-blog",{id:"events",routeBasePath:"events",path:"./events"}],["@docusaurus/plugin-content-blog",{id:"release-notes",routeBasePath:"release-notes",path:"./release-notes"}],["@docusaurus/plugin-content-blog",{id:"news",routeBasePath:"news",path:"./news"}],["@docusaurus/plugin-client-redirects",{redirects:[{from:"/dowloading/releases/",to:"/download"},{from:"/year-archive/",to:"/release-notes"},{from:"/users/",to:"/blog"},{from:"/about/contact/",to:"/contact"},{from:"/about/origin/",to:"/origin"},{from:"/about/team/",to:"/team"},{from:"/about/rewards/",to:"/news"},{from:"/docs/rmq-arc",to:"/docs/domainModel/01main"},{from:"/docs/rmq-deployment/",to:"/docs/deploymentOperations/01deploy"},{from:"/docs/motivation/",to:"/docs/"},{from:["/docs/quickstart/","/docs/quick-start","/docs/quickStart/02quickstart/"],to:"/docs/quickStart/01quickstart"},{from:"/docs/how-to-contribute/",to:"/docs/contributionGuide/01how-to-contribute"},{from:"/docs/code-guidelines/",to:"/docs/contributionGuide/02code-guidelines"},{from:"/docs/pull-request/",to:"/docs/contributionGuide/03pull-request"},{from:"/docs/release-manual",to:"/docs/contributionGuide/04release-manual"},{from:"/docs/cli-admin-tool/",to:"/docs/deploymentOperations/02admintool"},{from:"/docs/system-config",to:"/docs/bestPractice/04JVMOS"},{from:"/docs/faq/",to:"/docs/bestPractice/06FAQ"},{from:"/docs/logappender-example/",to:"/docs/4.x/bestPractice/06log"},{from:"/docs/order-example/",to:"/docs/4.x/producer/03message2"},{from:"/docs/schedule-example/",to:"/docs/4.x/producer/04message3"},{from:"/docs/batch-example/",to:"/docs/4.x/producer/05message4"},{from:"/docs/transaction-example/",to:"/docs/4.x/producer/06message5"},{from:"/docs/cluster-deployment/",to:"/docs/4.x/parameterConfiguration/02server"},{from:"/docs/documentation/",to:"/docs/"},{from:"/docs/best-practice-consumer/",to:"/docs/4.x/bestPractice/01bestpractice"},{from:"/release_notes/",to:"/release-notes"}]}]],themeConfig:{algolia:{appId:"R2IYF7ETH7",apiKey:"599cec31baffa4868cae4e79f180729b",indexName:"docsearch",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},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"}}]},navbar:{title:"Apache RocketMQ",logo:{alt:"My Site Logo",src:"img/Apache_RocketMQ_logo.svg.png"},items:[{href:"https://github.com/apache/rocketmq",label:"GitHub",position:"right"},{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]},{type:"dropdown",label:"\u6587\u6863",position:"right",items:[{to:"/docs/",label:"5.0"},{to:"/docs/4.x/",label:"4.x"}]},{to:"/download",label:"\u4e0b\u8f7d",position:"right"},{type:"dropdown",label:"\u535a\u5ba2",position:"right",items:[{to:"/blog",label:"\u7528\u6237\u6848\u4f8b"},{to:"/events",label:"\u793e\u533a\u6d3b\u52a8"},{to:"/release-notes",label:"\u7248\u672c\u53d8\u5316"},{to:"/news",label:"RocketMQ\u65b0\u95fb"}]},{type:"dropdown",label:"\u793e\u533a",position:"right",items:[{to:"/contact",label:"\u53c2\u4e0e\u793e\u533a"},{to:"/origin",label:"\u9879\u76ee\u8d77\u6e90"},{to:"/team",label:"\u8d21\u732e\u56e2\u961f"},{to:"/docs/contributionGuide/01how-to-contribute",label:"\u8d21\u732e\u8bf4\u660e"},{to:"/enterprise",label:"\u4f01\u4e1a\u7528\u6237"}]}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Learn",items:[{label:"Introduction",to:"/docs/domainModel/01main"},{label:"Installation",to:"/docs/quickStart/01quickstart"},{label:"Migration from 4.x to 5.0",to:"/version"}]},{title:"Community",items:[{label:"Twitter",href:"https://twitter.com/ApacheRocketMQ"},{label:"Github",to:"https://github.com/apache/rocketmq"},{label:"Help",to:"https://github.com/apache/rocketmq"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"Changelog",to:"/release-notes"},{label:"GitHub",href:"https://github.com/apache/rocketmq"},{label:"Twitter",href:"https://twitter.com/docusaurus"}]},{title:"Legal",items:[{label:"Licenses",href:"https://www.apache.org/licenses/"},{label:"Security",href:"https://www.apache.org/security/"},{label:"Thanks",href:"https://www.apache.org/foundation/thanks.html"},{label:"Sponsorship",href:"https://www.apache.org/foundation/sponsorship.html"}]}],logo:{alt:"Meta Open Source Logo",src:"img/Apache_RocketMQ_logo.svg.png",href:"https://rocketmq.apache.org/"},copyright:"Copyright \xa9 2024 The Apache Software Foundation. Licensed under the Apache License, Version 2.0."},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},themes:[],headTags:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1}}},58168:(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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{A:()=>r})},42892:(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 o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{A:()=>o})},98587:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{A:()=>r})},11561:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},22654:e=>{"use strict";e.exports=JSON.parse('{"theme.AnnouncementBar.closeButtonAriaLabel":"\u5173\u95ed","theme.BackToTopButton.buttonAriaLabel":"\u56de\u5230\u9876\u90e8","theme.CodeBlock.copied":"\u590d\u5236\u6210\u529f","theme.CodeBlock.copy":"\u590d\u5236","theme.CodeBlock.copyButtonAriaLabel":"\u590d\u5236\u4ee3\u7801\u5230\u526a\u8d34\u677f","theme.CodeBlock.wordWrapToggle":"\u5207\u6362\u81ea\u52a8\u6362\u884c","theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel":"\u6253\u5f00/\u6536\u8d77\u4fa7\u8fb9\u680f\u83dc\u5355\u300c{label}\u300d","theme.ErrorPageContent.title":"\u9875\u9762\u5df2\u5d29\u6e83\u3002","theme.ErrorPageContent.tryAgain":"\u91cd\u8bd5","theme.NavBar.navAriaLabel":"\u4e3b\u5bfc\u822a","theme.NotFound.p1":"\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u627e\u7684\u9875\u9762\u3002","theme.NotFound.p2":"\u8bf7\u8054\u7cfb\u539f\u59cb\u94fe\u63a5\u6765\u6e90\u7f51\u7ad9\u7684\u6240\u6709\u8005\uff0c\u5e76\u544a\u77e5\u4ed6\u4eec\u94fe\u63a5\u5df2\u635f\u574f\u3002","theme.NotFound.title":"\u627e\u4e0d\u5230\u9875\u9762","theme.TOCCollapsible.toggleButtonLabel":"\u672c\u9875\u603b\u89c8","theme.admonition.caution":"\u8b66\u544a","theme.admonition.danger":"\u5371\u9669","theme.admonition.info":"\u4fe1\u606f","theme.admonition.note":"\u5907\u6ce8","theme.admonition.tip":"\u63d0\u793a","theme.blog.archive.description":"\u5386\u53f2\u535a\u6587","theme.blog.archive.title":"\u5386\u53f2\u535a\u6587","theme.blog.paginator.navAriaLabel":"\u535a\u6587\u5217\u8868\u5206\u9875\u5bfc\u822a","theme.blog.paginator.newerEntries":"\u8f83\u65b0\u7684\u535a\u6587","theme.blog.paginator.olderEntries":"\u8f83\u65e7\u7684\u535a\u6587","theme.blog.post.paginator.navAriaLabel":"\u535a\u6587\u5206\u9875\u5bfc\u822a","theme.blog.post.paginator.newerPost":"\u8f83\u65b0\u4e00\u7bc7","theme.blog.post.paginator.olderPost":"\u8f83\u65e7\u4e00\u7bc7","theme.blog.post.plurals":"{count} \u7bc7\u535a\u6587","theme.blog.post.readMore":"\u9605\u8bfb\u66f4\u591a","theme.blog.post.readMoreLabel":"\u9605\u8bfb {title} \u7684\u5168\u6587","theme.blog.post.readingTime.plurals":"\u9605\u8bfb\u9700 {readingTime} \u5206\u949f","theme.blog.sidebar.navAriaLabel":"\u6700\u8fd1\u535a\u6587\u5bfc\u822a","theme.blog.tagTitle":"{nPosts} \u542b\u6709\u6807\u7b7e\u300c{tagName}\u300d","theme.colorToggle.ariaLabel":"\u5207\u6362\u6d45\u8272/\u6697\u9ed1\u6a21\u5f0f\uff08\u5f53\u524d\u4e3a{mode}\uff09","theme.colorToggle.ariaLabel.mode.dark":"\u6697\u9ed1\u6a21\u5f0f","theme.colorToggle.ariaLabel.mode.light":"\u6d45\u8272\u6a21\u5f0f","theme.common.editThisPage":"\u7f16\u8f91\u6b64\u9875","theme.common.headingLinkTitle":"{heading}\u7684\u76f4\u63a5\u94fe\u63a5","theme.common.skipToMainContent":"\u8df3\u5230\u4e3b\u8981\u5185\u5bb9","theme.docs.DocCard.categoryDescription":"{count} \u4e2a\u9879\u76ee","theme.docs.breadcrumbs.home":"\u4e3b\u9875\u9762","theme.docs.breadcrumbs.navAriaLabel":"\u9875\u9762\u8def\u5f84","theme.docs.paginator.navAriaLabel":"\u6587\u4ef6\u9009\u9879\u5361","theme.docs.paginator.next":"\u4e0b\u4e00\u9875","theme.docs.paginator.previous":"\u4e0a\u4e00\u9875","theme.docs.sidebar.closeSidebarButtonAriaLabel":"\u5173\u95ed\u5bfc\u822a\u680f","theme.docs.sidebar.collapseButtonAriaLabel":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.collapseButtonTitle":"\u6536\u8d77\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonAriaLabel":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.expandButtonTitle":"\u5c55\u5f00\u4fa7\u8fb9\u680f","theme.docs.sidebar.navAriaLabel":"\u6587\u6863\u4fa7\u8fb9\u680f","theme.docs.sidebar.toggleSidebarButtonAriaLabel":"\u5207\u6362\u5bfc\u822a\u680f","theme.docs.tagDocListPageTitle":"{nDocsTagged}\u300c{tagName}\u300d","theme.docs.tagDocListPageTitle.nDocsTagged":"{count} \u7bc7\u6587\u6863\u5e26\u6709\u6807\u7b7e","theme.docs.versionBadge.label":"\u7248\u672c\uff1a{versionLabel}","theme.docs.versions.latestVersionLinkLabel":"\u6700\u65b0\u7248\u672c","theme.docs.versions.latestVersionSuggestionLabel":"\u6700\u65b0\u7684\u6587\u6863\u8bf7\u53c2\u9605 {latestVersionLink} ({versionLabel})\u3002","theme.docs.versions.unmaintainedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u7684\u6587\u6863\uff0c\u73b0\u5df2\u4e0d\u518d\u79ef\u6781\u7ef4\u62a4\u3002","theme.docs.versions.unreleasedVersionLabel":"\u6b64\u4e3a {siteTitle} {versionLabel} \u7248\u5c1a\u672a\u53d1\u884c\u7684\u6587\u6863\u3002","theme.lastUpdated.atDate":"\u4e8e {date} ","theme.lastUpdated.byUser":"\u7531 {user} ","theme.lastUpdated.lastUpdatedAtBy":"\u6700\u540e{byUser}{atDate}\u66f4\u65b0","theme.navbar.mobileLanguageDropdown.label":"\u9009\u62e9\u8bed\u8a00","theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel":"\u2190 \u56de\u5230\u4e3b\u83dc\u5355","theme.navbar.mobileVersionsDropdown.label":"\u9009\u62e9\u7248\u672c","theme.tags.tagsListLabel":"\u6807\u7b7e\uff1a","theme.tags.tagsPageLink":"\u67e5\u770b\u6240\u6709\u6807\u7b7e","theme.tags.tagsPageTitle":"\u6807\u7b7e","theme.SearchBar.label":"\u641c\u7d22","theme.SearchBar.seeAll":"\u67e5\u770b\u5168\u90e8 {count} \u4e2a\u7ed3\u679c","theme.SearchModal.errorScreen.helpText":"\u4f60\u53ef\u80fd\u9700\u8981\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\u3002","theme.SearchModal.errorScreen.titleText":"\u65e0\u6cd5\u83b7\u53d6\u7ed3\u679c","theme.SearchModal.footer.closeKeyAriaLabel":"Esc \u952e","theme.SearchModal.footer.closeText":"\u5173\u95ed","theme.SearchModal.footer.navigateDownKeyAriaLabel":"\u5411\u4e0b\u952e","theme.SearchModal.footer.navigateText":"\u5bfc\u822a","theme.SearchModal.footer.navigateUpKeyAriaLabel":"\u5411\u4e0a\u952e","theme.SearchModal.footer.searchByText":"\u641c\u7d22\u63d0\u4f9b","theme.SearchModal.footer.selectKeyAriaLabel":"Enter \u952e","theme.SearchModal.footer.selectText":"\u9009\u4e2d","theme.SearchModal.noResultsScreen.noResultsText":"\u6ca1\u6709\u7ed3\u679c\uff1a","theme.SearchModal.noResultsScreen.reportMissingResultsLinkText":"\u8bf7\u544a\u77e5\u6211\u4eec\u3002","theme.SearchModal.noResultsScreen.reportMissingResultsText":"\u8ba4\u4e3a\u8fd9\u4e2a\u67e5\u8be2\u5e94\u8be5\u6709\u7ed3\u679c\uff1f","theme.SearchModal.noResultsScreen.suggestedQueryText":"\u8bd5\u8bd5\u641c\u7d22","theme.SearchModal.placeholder":"\u641c\u7d22\u6587\u6863","theme.SearchModal.searchBox.cancelButtonText":"\u53d6\u6d88","theme.SearchModal.searchBox.resetButtonTitle":"\u6e05\u9664\u67e5\u8be2","theme.SearchModal.startScreen.favoriteSearchesTitle":"\u6536\u85cf","theme.SearchModal.startScreen.noRecentSearchesText":"\u6ca1\u6709\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.recentSearchesTitle":"\u6700\u8fd1\u641c\u7d22","theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle":"\u4ece\u6536\u85cf\u5217\u8868\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.removeRecentSearchButtonTitle":"\u4ece\u5386\u53f2\u8bb0\u5f55\u4e2d\u5220\u9664\u8fd9\u4e2a\u641c\u7d22","theme.SearchModal.startScreen.saveRecentSearchButtonTitle":"\u4fdd\u5b58\u8fd9\u4e2a\u641c\u7d22","theme.SearchPage.algoliaLabel":"\u901a\u8fc7 Algolia \u641c\u7d22","theme.SearchPage.documentsFound.plurals":"\u627e\u5230 {count} \u4efd\u6587\u4ef6","theme.SearchPage.emptyResultsTitle":"\u5728\u6587\u6863\u4e2d\u641c\u7d22","theme.SearchPage.existingResultsTitle":"\u300c{query}\u300d\u7684\u641c\u7d22\u7ed3\u679c","theme.SearchPage.fetchingNewResults":"\u6b63\u5728\u83b7\u53d6\u65b0\u7684\u641c\u7d22\u7ed3\u679c...","theme.SearchPage.inputLabel":"\u641c\u7d22","theme.SearchPage.inputPlaceholder":"\u5728\u6b64\u8f93\u5165\u641c\u7d22\u5b57\u8bcd","theme.SearchPage.noResultsText":"\u672a\u627e\u5230\u4efb\u4f55\u7ed3\u679c"}')},84054:e=>{"use strict";e.exports=JSON.parse('{"/zh/blog-71d":{"__comp":"a6aa9e1f","__context":{"plugin":"3bf2b921"},"sidebar":"814f3328","items":[{"content":"e946ae30"}],"metadata":"3a332aed"},"/zh/blog/archive-3c7":{"__comp":"9e4087bc","__context":{"plugin":"3bf2b921"},"archive":"927d70e2"},"/zh/blog/mse-fe8":{"__comp":"ccc49370","__context":{"plugin":"3bf2b921"},"sidebar":"814f3328","content":"9d4a6280"},"/zh/components/Community-684":{"__comp":"a1d6fe1e","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/components/Hero-38a":{"__comp":"773e1e21","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/components/Highlight-b26":{"__comp":"fd93cfee","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/components/LogoCarousel-114":{"__comp":"0f39e62f","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/components/Robot-c8a":{"__comp":"f321f471","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/components/Section-22b":{"__comp":"f15304d0","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/contact-e91":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"66c10cbb"},"/zh/download-09b":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"209227ae"},"/zh/enterprise-bfa":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"058b017f"},"/zh/events-9c6":{"__comp":"a6aa9e1f","__context":{"plugin":"729a97d5"},"sidebar":"f7ada8a8","items":[{"content":"05e37768"},{"content":"5c2a4e22"}],"metadata":"7ecc8185"},"/zh/events/archive-136":{"__comp":"9e4087bc","__context":{"plugin":"729a97d5"},"archive":"16de79bd"},"/zh/events/meetup\u897f\u5b89-dbe":{"__comp":"ccc49370","__context":{"plugin":"729a97d5"},"sidebar":"f7ada8a8","content":"ecd96bcd"},"/zh/events/\u82cf\u5ddemeetup-476":{"__comp":"ccc49370","__context":{"plugin":"729a97d5"},"sidebar":"f7ada8a8","content":"f2fbfb1a"},"/zh/news-f7a":{"__comp":"a6aa9e1f","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","items":[{"content":"a7d8f5d9"},{"content":"69d2b1e6"},{"content":"8a21868a"},{"content":"e5de87c8"},{"content":"16ae1604"},{"content":"cca4bcc5"},{"content":"13917863"},{"content":"58d8fbcc"},{"content":"0940980a"},{"content":"47776dcd"}],"metadata":"ddb76b72"},"/zh/news/01-fb8":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"5cef567a"},"/zh/news/02-c06":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"03167c78"},"/zh/news/03-9b6":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"7e234054"},"/zh/news/04-d07":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"caf0da9e"},"/zh/news/05-cc6":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"ee2bdcdf"},"/zh/news/06-47a":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"1d21fadf"},"/zh/news/07-379":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"249e2758"},"/zh/news/08-fc0":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"5795627e"},"/zh/news/09-6b3":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"78a71e80"},"/zh/news/10-b06":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"cab04640"},"/zh/news/11-38f":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"782b4b76"},"/zh/news/12-647":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"a6804bf7"},"/zh/news/13-a61":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"ef9d6a50"},"/zh/news/14-ee9":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"11b89e5e"},"/zh/news/15-ace":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"7b17e62f"},"/zh/news/16-f98":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"e04d54c4"},"/zh/news/17-6a9":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"8b76f146"},"/zh/news/18-30d":{"__comp":"ccc49370","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","content":"2c552153"},"/zh/news/archive-d20":{"__comp":"9e4087bc","__context":{"plugin":"6861fa3b"},"archive":"b1b27138"},"/zh/news/page/2-4f7":{"__comp":"a6aa9e1f","__context":{"plugin":"6861fa3b"},"sidebar":"548347c6","items":[{"content":"92d9142b"},{"content":"81e08c33"},{"content":"82f65107"},{"content":"abb29a1b"},{"content":"486a004e"},{"content":"bf7faa8a"},{"content":"3f265217"},{"content":"42205b98"}],"metadata":"abb50e7e"},"/zh/origin-b22":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"afcb696e"},"/zh/release-notes-ecf":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"23f8cbaf"},{"content":"b266ab2f"},{"content":"5cf99363"},{"content":"9a46e79a"},{"content":"63f8a7a0"},{"content":"849310ba"},{"content":"26b224bc"},{"content":"a1b5d890"},{"content":"209112bc"},{"content":"feddb877"}],"metadata":"9f90b1ab"},"/zh/release-notes/2017/01/24/4.0.0-d55":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"bedaf566"},"/zh/release-notes/2017/06/02/4.1.0-9a1":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"be6f35f6"},"/zh/release-notes/2017/12/13/4.2.0-63e":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"b033e064"},"/zh/release-notes/2018/07/24/4.3.0-a0f":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"515c7b8b"},"/zh/release-notes/2018/08/29/4.3.1-835":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"d4fbf459"},"/zh/release-notes/2018/11/02/4.3.2-a73":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"78fcb0a0"},"/zh/release-notes/2019/01/17/4.4.0-edf":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"663290db"},"/zh/release-notes/2019/03/29/4.5.0-e6e":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"09b00c8f"},"/zh/release-notes/2019/05/13/4.5.1-ca7":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"25e59aaf"},"/zh/release-notes/2019/08/02/4.5.2-583":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"ce2c4f77"},"/zh/release-notes/2019/08/20/release-notes-rocketmq-client-cpp-1.2.3-29d":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"ca86a1f0"},"/zh/release-notes/2019/11/01/release-notes-rocketmq-spring-2.0.4-22b":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"70c3df63"},"/zh/release-notes/2019/11/11/release-notes-rocketmq-client-cpp-1.2.4-a7b":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"82a7de3d"},"/zh/release-notes/2019/11/20/release-notes-rocketmq-client-go-1.2.4-d9f":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"0f32938d"},"/zh/release-notes/2019/11/25/4.6.0-829":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"9145396b"},"/zh/release-notes/2020/02/10/release-notes-rocketmq-spring-2.1.0-8ee":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"2a0b19f8"},"/zh/release-notes/2020/02/14/release-notes-rocketmq-client-cpp-2.0.0-5f2":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"36948b52"},"/zh/release-notes/2020/03/16/4.7.0-753":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"2c9c4e31"},"/zh/release-notes/2020/03/23/release-notes-rocketmq-client-cpp-2.1.0-e32":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"6ce86cd6"},"/zh/release-notes/2020/03/31/release-notes-rocketmq-client-go-2.0.0-186":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"bb1fc4b7"},"/zh/release-notes/2020/04/02/release-notes-rocketmq-client-cpp-2.2.0-d11":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"44b25874"},"/zh/release-notes/2020/06/29/4.7.1-10d":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"09ce6999"},"/zh/release-notes/2020/07/20/release-notes-rocketmq-spring-2.1.1-952":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"55397297"},"/zh/release-notes/2020/12/21/4.8.0-ee7":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"12968b89"},"/zh/release-notes/2020/2/14/4.6.1-c8f":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"570d7d81"},"/zh/release-notes/2021/01/08/release-notes-rocketmq-spring-2.2.0-a4a":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"8990ddbe"},"/zh/release-notes/2021/03/17/release-notes-rocketmq-client-go-2.1.0-267":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"9a6bc13c"},"/zh/release-notes/2021/06/15/4.9.0-c40":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"b14014aa"},"/zh/release-notes/2021/08/22/4.9.1-3b4":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"2caeba8e"},"/zh/release-notes/2021/08/31/release-notes-rocketmq-spring-2.2.1-3c3":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"feacc518"},"/zh/release-notes/2021/09/06/release-notes-5.0.0-PREVIEW-4e9":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"78dde81d"},"/zh/release-notes/2021/09/23/release-notes-rocketmq-dashboard-1.0.0-480":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"40985062"},"/zh/release-notes/2021/10/26/4.9.2-60c":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"81f74e38"},"/zh/release-notes/2022/01/18/release-notes-rocketmq-streams-1.0.0-preview-4f6":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"798936c8"},"/zh/release-notes/2022/03/04/4.9.3-cb0":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"5768a5ff"},"/zh/release-notes/2022/03/04/4.9.4-507":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"494c26ec"},"/zh/release-notes/2022/03/15/5.0.0-ALPHA-f32":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"1783e7d7"},"/zh/release-notes/2022/04/05/release-notes-rocketmq-spring-2.2.2-505":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"395b1b18"},"/zh/release-notes/2022/04/18/release-notes-rocketmq-streams-1.0.1-preview-a80":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"7ad94958"},"/zh/release-notes/2022/07/25/release-notes-rocketmq-client-go-2.1.1-b33":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"5db1ba52"},"/zh/release-notes/2022/09/09/5.0.0-1b1":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"a0780aa2"},"/zh/release-notes/2022/10/17/release-notes-rocketmq-schema-registry-all-0.1.0-29a":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"40766637"},"/zh/release-notes/2023/01/06/release-notes-rocketmq-streams-all-1.1.0-759":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"961c9ac9"},"/zh/release-notes/2023/02/06/release-notes-rocketmq-spring-2.2.3-85b":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"8dc82a94"},"/zh/release-notes/2023/02/16/5.1.0-cec":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"442ded00"},"/zh/release-notes/2023/02/22/release-notes-rocketmq-streams-all-1.1.1-49e":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"a4915667"},"/zh/release-notes/2023/03/26/4.9.5-d7d":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"5bc9c38a"},"/zh/release-notes/2023/05/15/5.1.1-506":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"05a289ec"},"/zh/release-notes/2023/05/18/4.9.6-a82":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"e2534e20"},"/zh/release-notes/2023/06/12/4.9.7-a74":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"215140a7"},"/zh/release-notes/2023/06/12/5.1.2-0b0":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"558324a2"},"/zh/release-notes/2023/06/24/5.1.3-e06":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"a3cd2ba8"},"/zh/release-notes/2023/09/22/5.1.4-5f5":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"897f6fbe"},"/zh/release-notes/2024/01/29/4.9.8-b8c":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"4a5d8820"},"/zh/release-notes/2024/01/30/5.2.0-124":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"86c91f7b"},"/zh/release-notes/2024/02/19/release-notes-rocketmq-spring-2.3.0-219":{"__comp":"ccc49370","__context":{"plugin":"a046769c"},"sidebar":"02a79140","content":"94244261"},"/zh/release-notes/archive-a06":{"__comp":"9e4087bc","__context":{"plugin":"a046769c"},"archive":"bf069436"},"/zh/release-notes/page/2-41d":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"6f5abaf4"},{"content":"506c42b6"},{"content":"8417b4b0"},{"content":"8e46c907"},{"content":"8f2d213e"},{"content":"42a357cf"},{"content":"6c438bbb"},{"content":"2aca6264"},{"content":"00fcf1c6"},{"content":"05f5b37f"}],"metadata":"f415570d"},"/zh/release-notes/page/3-8f9":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"99071281"},{"content":"3466f6e5"},{"content":"8fb22d59"},{"content":"d785d90a"},{"content":"9e5d69b3"},{"content":"c5c7a019"},{"content":"141084ca"},{"content":"9d2b70a5"},{"content":"4004b0d8"},{"content":"e1a325bd"}],"metadata":"f3bf0d7a"},"/zh/release-notes/page/4-58f":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"cb9bc0fc"},{"content":"01326abf"},{"content":"7700ad60"},{"content":"d7a098ee"},{"content":"4b680726"},{"content":"20c0f7f4"},{"content":"5af5c787"},{"content":"ccfcfac3"},{"content":"7b41d18c"},{"content":"3d2ab086"}],"metadata":"63bcfa1d"},"/zh/release-notes/page/5-d5f":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"161c28ce"},{"content":"790b9e87"},{"content":"2458bf82"},{"content":"0d799663"},{"content":"f39c0ae2"},{"content":"a8513214"},{"content":"fbc7a890"},{"content":"fe920e07"},{"content":"30c75e73"},{"content":"8ff72bd1"}],"metadata":"55a5b31b"},"/zh/release-notes/page/6-379":{"__comp":"a6aa9e1f","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"5289fb30"},{"content":"174e3ea9"},{"content":"7e8c8d75"},{"content":"365f32c4"},{"content":"66a16596"},{"content":"8ef3cae8"}],"metadata":"216dd0a3"},"/zh/release-notes/tags-07d":{"__comp":"01a85c17","__context":{"plugin":"a046769c"},"sidebar":"02a79140","tags":"3bf3a571"},"/zh/release-notes/tags/release-notes-070":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"b266ab2f"},{"content":"5cf99363"},{"content":"9a46e79a"},{"content":"63f8a7a0"},{"content":"849310ba"},{"content":"26b224bc"},{"content":"a1b5d890"},{"content":"209112bc"},{"content":"feddb877"},{"content":"506c42b6"}],"tag":"c9e03c33","listMetadata":"ffc6128b"},"/zh/release-notes/tags/release-notes/page/2-754":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"42a357cf"},{"content":"05f5b37f"},{"content":"99071281"},{"content":"3466f6e5"},{"content":"d785d90a"},{"content":"9d2b70a5"},{"content":"4004b0d8"},{"content":"01326abf"},{"content":"d7a098ee"},{"content":"ccfcfac3"}],"tag":"8f8abc4a","listMetadata":"2f7bb5b4"},"/zh/release-notes/tags/release-notes/page/3-297":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"3d2ab086"},{"content":"790b9e87"},{"content":"2458bf82"},{"content":"fbc7a890"},{"content":"fe920e07"},{"content":"30c75e73"},{"content":"8ff72bd1"},{"content":"5289fb30"},{"content":"174e3ea9"},{"content":"7e8c8d75"}],"tag":"eeafdef5","listMetadata":"a073d297"},"/zh/release-notes/tags/release-notes/page/4-78c":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"365f32c4"},{"content":"8ef3cae8"}],"tag":"d71e89a1","listMetadata":"52298f7a"},"/zh/release-notes/tags/rocket-mq-d23":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"b266ab2f"},{"content":"5cf99363"},{"content":"9a46e79a"},{"content":"63f8a7a0"},{"content":"849310ba"},{"content":"26b224bc"},{"content":"a1b5d890"},{"content":"209112bc"},{"content":"feddb877"},{"content":"506c42b6"}],"tag":"7a21f84b","listMetadata":"5b2bc629"},"/zh/release-notes/tags/rocket-mq-client-cpp-8ac":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"4b680726"},{"content":"5af5c787"},{"content":"7b41d18c"},{"content":"0d799663"},{"content":"a8513214"}],"tag":"1139efbd","listMetadata":"7331a908"},"/zh/release-notes/tags/rocket-mq-client-go-cf5":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"6c438bbb"},{"content":"e1a325bd"},{"content":"20c0f7f4"}],"tag":"fd49290f","listMetadata":"f9c7fc71"},"/zh/release-notes/tags/rocket-mq-dashboard-32d":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"9e5d69b3"}],"tag":"4037e6ed","listMetadata":"5de43f64"},"/zh/release-notes/tags/rocket-mq-schema-registry-d27":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"8f2d213e"}],"tag":"387e0437","listMetadata":"b79414c4"},"/zh/release-notes/tags/rocket-mq-spring-83c":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"23f8cbaf"},{"content":"8417b4b0"},{"content":"00fcf1c6"},{"content":"141084ca"},{"content":"cb9bc0fc"},{"content":"161c28ce"},{"content":"f39c0ae2"}],"tag":"1175378e","listMetadata":"21fd011b"},"/zh/release-notes/tags/rocket-mq-sprint-79e":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"7700ad60"}],"tag":"f480065b","listMetadata":"20dc33a7"},"/zh/release-notes/tags/rocket-mq-streams-87e":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"6f5abaf4"},{"content":"8e46c907"},{"content":"2aca6264"},{"content":"8fb22d59"}],"tag":"1cc166a1","listMetadata":"4da3b897"},"/zh/release-notes/tags/rocket-mq/page/2-705":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"42a357cf"},{"content":"05f5b37f"},{"content":"99071281"},{"content":"3466f6e5"},{"content":"d785d90a"},{"content":"c5c7a019"},{"content":"9d2b70a5"},{"content":"4004b0d8"},{"content":"01326abf"},{"content":"d7a098ee"}],"tag":"ff2fbc48","listMetadata":"78a3c97a"},"/zh/release-notes/tags/rocket-mq/page/3-771":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"ccfcfac3"},{"content":"3d2ab086"},{"content":"790b9e87"},{"content":"2458bf82"},{"content":"fbc7a890"},{"content":"fe920e07"},{"content":"30c75e73"},{"content":"8ff72bd1"},{"content":"5289fb30"},{"content":"174e3ea9"}],"tag":"e2b8ef29","listMetadata":"63142a8b"},"/zh/release-notes/tags/rocket-mq/page/4-f60":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"7e8c8d75"},{"content":"365f32c4"},{"content":"8ef3cae8"}],"tag":"e29a0983","listMetadata":"08ee51e1"},"/zh/release-notes/tags/version-958":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"b266ab2f"},{"content":"5cf99363"},{"content":"9a46e79a"},{"content":"63f8a7a0"},{"content":"849310ba"},{"content":"26b224bc"},{"content":"a1b5d890"},{"content":"209112bc"},{"content":"feddb877"},{"content":"506c42b6"}],"tag":"827b7f83","listMetadata":"66890ba2"},"/zh/release-notes/tags/version/page/2-a9f":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"42a357cf"},{"content":"05f5b37f"},{"content":"99071281"},{"content":"3466f6e5"},{"content":"d785d90a"},{"content":"9d2b70a5"},{"content":"4004b0d8"},{"content":"01326abf"},{"content":"d7a098ee"},{"content":"ccfcfac3"}],"tag":"de7ea2fe","listMetadata":"fe26666d"},"/zh/release-notes/tags/version/page/3-6e8":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"3d2ab086"},{"content":"790b9e87"},{"content":"2458bf82"},{"content":"fbc7a890"},{"content":"fe920e07"},{"content":"30c75e73"},{"content":"8ff72bd1"},{"content":"5289fb30"},{"content":"174e3ea9"},{"content":"7e8c8d75"}],"tag":"244b7a60","listMetadata":"09c2fd52"},"/zh/release-notes/tags/version/page/4-5e5":{"__comp":"6875c492","__context":{"plugin":"a046769c"},"sidebar":"02a79140","items":[{"content":"365f32c4"},{"content":"8ef3cae8"}],"tag":"e4a2abc8","listMetadata":"e40838ee"},"/zh/search-348":{"__comp":"1a4e3797","__context":{"plugin":"ca373a18"}},"/zh/team-112":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"63473fd1"},"/zh/version-d5d":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"57705121"},"/zh/version%202-24d":{"__comp":"1f391b9e","__context":{"plugin":"fc9b999f"},"content":"81e37bfc"},"/zh/versions-83d":{"__comp":"18b93cb3","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"},"/zh/docs/4.x-a97":{"__comp":"1be78505","__context":{"plugin":"05ae0120"},"versionMetadata":"935f2afb"},"/zh/docs/4.x/-691":{"__comp":"17896441","content":"df5c85d0"},"/zh/docs/4.x/bestPractice/01bestpractice-e9c":{"__comp":"17896441","content":"7cc1c753"},"/zh/docs/4.x/bestPractice/02dledger-51d":{"__comp":"17896441","content":"740d2917"},"/zh/docs/4.x/bestPractice/03messagetra-e7f":{"__comp":"17896441","content":"98546df3"},"/zh/docs/4.x/bestPractice/04access-048":{"__comp":"17896441","content":"2cd3a2aa"},"/zh/docs/4.x/bestPractice/05JVMOS-db3":{"__comp":"17896441","content":"3bbe7027"},"/zh/docs/4.x/bestPractice/06log-965":{"__comp":"17896441","content":"bd234a5b"},"/zh/docs/4.x/bestPractice/07subscribe-108":{"__comp":"17896441","content":"7f1f1d64"},"/zh/docs/4.x/bestPractice/08FAQ-ac8":{"__comp":"17896441","content":"593d8752"},"/zh/docs/4.x/connect/01RocketMQ Connect Overview-b4b":{"__comp":"17896441","content":"61bc617b"},"/zh/docs/4.x/connect/02RocketMQ Connect Concept-5c7":{"__comp":"17896441","content":"720aa178"},"/zh/docs/4.x/connect/03RocketMQ Connect Quick Start-5dc":{"__comp":"17896441","content":"53b8bd03"},"/zh/docs/4.x/connect/04RocketMQ Connect In Action1-054":{"__comp":"17896441","content":"b95782af"},"/zh/docs/4.x/connect/05RocketMQ Connect In Action2-2e7":{"__comp":"17896441","content":"c9845ad5"},"/zh/docs/4.x/connect/06RocketMQ Connect In Action3-154":{"__comp":"17896441","content":"a01cb60a"},"/zh/docs/4.x/connect/07RocketMQ Connect In Action4-7ba":{"__comp":"17896441","content":"2d1a6cd7"},"/zh/docs/4.x/connect/08RocketMQ  Connect In Action5-ES-566":{"__comp":"17896441","content":"1102346c"},"/zh/docs/4.x/consumer/01concept2-327":{"__comp":"17896441","content":"ff861ac0"},"/zh/docs/4.x/consumer/02push-124":{"__comp":"17896441","content":"899d3dd1"},"/zh/docs/4.x/consumer/03pull-ff9":{"__comp":"17896441","content":"f44b47d1"},"/zh/docs/4.x/contributionGuide/01how-to-contribute-e84":{"__comp":"17896441","content":"73fe947c"},"/zh/docs/4.x/contributionGuide/02code-guidelines-356":{"__comp":"17896441","content":"1600dee0"},"/zh/docs/4.x/contributionGuide/03pull-request-cb8":{"__comp":"17896441","content":"1088df23"},"/zh/docs/4.x/contributionGuide/04release-manual-b15":{"__comp":"17896441","content":"b866a27f"},"/zh/docs/4.x/deployment/01deploy-03e":{"__comp":"17896441","content":"0c2228ab"},"/zh/docs/4.x/deployment/02admintool-61f":{"__comp":"17896441","content":"85da417b"},"/zh/docs/4.x/deployment/03Dashboard-2fe":{"__comp":"17896441","content":"05e0c434"},"/zh/docs/4.x/deployment/04Exporter-dcb":{"__comp":"17896441","content":"b9864f27"},"/zh/docs/4.x/eventbridge/01RocketMQEventBridgeConcepts-b04":{"__comp":"17896441","content":"3b3ab106"},"/zh/docs/4.x/eventbridge/02RocketMQEventBridgeOverview-395":{"__comp":"17896441","content":"4cf1cda0"},"/zh/docs/4.x/eventbridge/03RocketMQEventBridgeQuickStart-b77":{"__comp":"17896441","content":"0d7f63ff"},"/zh/docs/4.x/introduction/02quickstart-710":{"__comp":"17896441","content":"5ce5bfd9"},"/zh/docs/4.x/introduction/03whatis-568":{"__comp":"17896441","content":"afbf4277"},"/zh/docs/4.x/mqtt/01RocketMQMQTTOverview-7a1":{"__comp":"17896441","content":"f982a64f"},"/zh/docs/4.x/mqtt/02RocketMQMQTTQuickStart-70b":{"__comp":"17896441","content":"191aa130"},"/zh/docs/4.x/parameterConfiguration/01local-7df":{"__comp":"17896441","content":"9f920ce5"},"/zh/docs/4.x/parameterConfiguration/02server-5f2":{"__comp":"17896441","content":"77c02689"},"/zh/docs/4.x/producer/01concept1-28d":{"__comp":"17896441","content":"67e4d661"},"/zh/docs/4.x/producer/02message1-d22":{"__comp":"17896441","content":"27293478"},"/zh/docs/4.x/producer/03message2-596":{"__comp":"17896441","content":"067d07fb"},"/zh/docs/4.x/producer/04message3-294":{"__comp":"17896441","content":"c30f74af"},"/zh/docs/4.x/producer/05message4-430":{"__comp":"17896441","content":"1d2ab7dd"},"/zh/docs/4.x/producer/06message5-c59":{"__comp":"17896441","content":"d9489a4f"},"/zh/docs/4.x/streams/01RocketMQ Streams Overview-54d":{"__comp":"17896441","content":"bbdf0144"},"/zh/docs/4.x/streams/02RocketMQ Streams Concept-ef3":{"__comp":"17896441","content":"9ae5d27d"},"/zh/docs/4.x/streams/03RocketMQ Streams Quick Start-085":{"__comp":"17896441","content":"637ab824"},"/zh/docs/-e4f":{"__comp":"1be78505","__context":{"plugin":"05ae0120"},"versionMetadata":"7d4976a8"},"/zh/docs/-160":{"__comp":"17896441","content":"4ae87825"},"/zh/docs/bestPractice/01bestpractice-819":{"__comp":"17896441","content":"dd51c2a4"},"/zh/docs/bestPractice/02dledger-ebe":{"__comp":"17896441","content":"ff0865b6"},"/zh/docs/bestPractice/03access-220":{"__comp":"17896441","content":"a2144c61"},"/zh/docs/bestPractice/04JVMOS-b54":{"__comp":"17896441","content":"143531bd"},"/zh/docs/bestPractice/05subscribe-789":{"__comp":"17896441","content":"b7c8d52c"},"/zh/docs/bestPractice/06FAQ-284":{"__comp":"17896441","content":"4a762d1b"},"/zh/docs/connect/01RocketMQ Connect Overview-476":{"__comp":"17896441","content":"957232b8"},"/zh/docs/connect/02RocketMQ Connect Concept-0a4":{"__comp":"17896441","content":"b26d5cb4"},"/zh/docs/connect/03RocketMQ Connect Quick Start-a36":{"__comp":"17896441","content":"7eb2ad12"},"/zh/docs/connect/04RocketMQ Connect In Action1-a0c":{"__comp":"17896441","content":"445c3777"},"/zh/docs/connect/05RocketMQ Connect In Action2-a3f":{"__comp":"17896441","content":"1828472c"},"/zh/docs/connect/06RocketMQ Connect In Action3-41b":{"__comp":"17896441","content":"ae37744e"},"/zh/docs/connect/07RocketMQ Connect In Action4-766":{"__comp":"17896441","content":"4f78924b"},"/zh/docs/connect/08RocketMQ  Connect In Action5-ES-21b":{"__comp":"17896441","content":"674a24c8"},"/zh/docs/contributionGuide/01how-to-contribute-004":{"__comp":"17896441","content":"cf6ac9b5"},"/zh/docs/contributionGuide/02code-guidelines-bc9":{"__comp":"17896441","content":"99e44b89"},"/zh/docs/contributionGuide/03pull-request-4f6":{"__comp":"17896441","content":"b0850f7b"},"/zh/docs/contributionGuide/04release-manual-15f":{"__comp":"17896441","content":"376d7d59"},"/zh/docs/deploymentOperations/01deploy-378":{"__comp":"17896441","content":"9230e626"},"/zh/docs/deploymentOperations/02admintool-8b0":{"__comp":"17896441","content":"77445549"},"/zh/docs/deploymentOperations/03autofailover-53f":{"__comp":"17896441","content":"35059d09"},"/zh/docs/deploymentOperations/04Dashboard-e94":{"__comp":"17896441","content":"470c3405"},"/zh/docs/deploymentOperations/05Exporter-eb0":{"__comp":"17896441","content":"9ae3ca59"},"/zh/docs/domainModel/01main-63f":{"__comp":"17896441","content":"7aea7917"},"/zh/docs/domainModel/02topic-4cb":{"__comp":"17896441","content":"83bce6b0"},"/zh/docs/domainModel/03messagequeue-94a":{"__comp":"17896441","content":"dc9e3ed0"},"/zh/docs/domainModel/04message-a94":{"__comp":"17896441","content":"de29319c"},"/zh/docs/domainModel/04producer-2d6":{"__comp":"17896441","content":"45091b3e"},"/zh/docs/domainModel/07consumergroup-6da":{"__comp":"17896441","content":"3a242c19"},"/zh/docs/domainModel/08consumer-a56":{"__comp":"17896441","content":"7733e037"},"/zh/docs/domainModel/09subscription-d25":{"__comp":"17896441","content":"199a4ec6"},"/zh/docs/eventbridge/01RocketMQEventBridgeConcepts-cff":{"__comp":"17896441","content":"86bee575"},"/zh/docs/eventbridge/02RocketMQEventBridgeOverview-71a":{"__comp":"17896441","content":"0b85b2be"},"/zh/docs/eventbridge/03RocketMQEventBridgeQuickStart-1ef":{"__comp":"17896441","content":"7fbd8dae"},"/zh/docs/featureBehavior/01normalmessage-78c":{"__comp":"17896441","content":"4c488bc8"},"/zh/docs/featureBehavior/02delaymessage-2c7":{"__comp":"17896441","content":"1306d659"},"/zh/docs/featureBehavior/03fifomessage-917":{"__comp":"17896441","content":"745a98a5"},"/zh/docs/featureBehavior/04transactionmessage-1ba":{"__comp":"17896441","content":"4f5c58bc"},"/zh/docs/featureBehavior/05sendretrypolicy-2e9":{"__comp":"17896441","content":"dabf5bdf"},"/zh/docs/featureBehavior/06consumertype-813":{"__comp":"17896441","content":"bc220349"},"/zh/docs/featureBehavior/07messagefilter-fd7":{"__comp":"17896441","content":"2b0d7b23"},"/zh/docs/featureBehavior/08consumerloadbalance-587":{"__comp":"17896441","content":"27523c81"},"/zh/docs/featureBehavior/09consumerprogress-f6c":{"__comp":"17896441","content":"fdf6ef84"},"/zh/docs/featureBehavior/10consumerretrypolicy-03d":{"__comp":"17896441","content":"0debd68d"},"/zh/docs/featureBehavior/11messagestorepolicy-44e":{"__comp":"17896441","content":"d4bbd9fd"},"/zh/docs/introduction/02concepts-a37":{"__comp":"17896441","content":"9ff171f9"},"/zh/docs/introduction/03limits-27f":{"__comp":"17896441","content":"14e1cfa5"},"/zh/docs/mqtt/01RocketMQMQTTOverview-e43":{"__comp":"17896441","content":"c41a13bf"},"/zh/docs/mqtt/02RocketMQMQTTQuickStart-1a4":{"__comp":"17896441","content":"ce395170"},"/zh/docs/observability/01metrics-251":{"__comp":"17896441","content":"4f52da78"},"/zh/docs/quickStart/01quickstart-8d9":{"__comp":"17896441","content":"cdba1bfc"},"/zh/docs/sdk/01overview-939":{"__comp":"17896441","content":"6fe6f29d"},"/zh/docs/sdk/02java-960":{"__comp":"17896441","content":"41023913"},"/zh/docs/sdk/03cplusplus-85e":{"__comp":"17896441","content":"55630f9e"},"/zh/docs/sdk/04csharp-710":{"__comp":"17896441","content":"8d923bf9"},"/zh/docs/sdk/05go-933":{"__comp":"17896441","content":"611c28ad"},"/zh/docs/streams/01RocketMQ Streams Overview-c73":{"__comp":"17896441","content":"468c2767"},"/zh/docs/streams/02RocketMQ Streams Concept-fc3":{"__comp":"17896441","content":"950e454f"},"/zh/docs/streams/03RocketMQ Streams Quick Start-8a3":{"__comp":"17896441","content":"791d769b"},"/zh/-b3c":{"__comp":"c4f5d8e4","__context":{"plugin":"fc9b999f"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[1869],(()=>{return t=38536,e(e.s=t);var t}));e.O()}]);