From 641f0bb40a6634d612f22934ffd7db065259b888 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 03:17:55 +0000 Subject: [PATCH] deploy: 6c4cd2548cad31be4b2e61be6955383189383983 --- 404.html | 8 +++---- assets/js/1921acbb.9c127b55.js | 1 + assets/js/3d291b3d.2e453ca6.js | 1 + assets/js/3d291b3d.9139634b.js | 1 - assets/js/5148d8fe.6f4bc5f5.js | 1 + assets/js/5148d8fe.dc4901be.js | 1 - assets/js/935f2afb.37e792bd.js | 1 - assets/js/935f2afb.98cd9060.js | 1 + assets/js/main.1c1c2ce0.js | 2 ++ ...CENSE.txt => main.1c1c2ce0.js.LICENSE.txt} | 0 assets/js/main.ec7235d9.js | 2 -- assets/js/runtime~main.758286d0.js | 1 - assets/js/runtime~main.7d2dcb29.js | 1 + blog.html | 8 +++---- blog/archive.html | 8 +++---- blog/catelog.html | 8 +++---- blog/instructions.html | 8 +++---- blog/mindexperiment.html | 8 +++---- blog/principle.html | 8 +++---- docs/basic.html | 10 ++++----- docs/basic/aotgeneric.html | 10 ++++----- docs/basic/architecture.html | 10 ++++----- docs/basic/bestpractice.html | 10 ++++----- docs/basic/buildpipeline.html | 10 ++++----- docs/basic/buildwebgl.html | 10 ++++----- docs/basic/codestriping.html | 10 ++++----- docs/basic/com.code-philosophy.hybridclr.html | 10 ++++----- docs/basic/compileassembly.html | 8 +++---- docs/basic/dots.html | 10 ++++----- docs/basic/hotupdateassemblysetting.html | 10 ++++----- docs/basic/il2cppbugs.html | 10 ++++----- docs/basic/impactonappsize.html | 22 +++++++++++++++++++ docs/basic/install.html | 10 ++++----- docs/basic/memory.html | 10 ++++----- docs/basic/methodbridge.html | 10 ++++----- docs/basic/migratefromnetstandard.html | 10 ++++----- docs/basic/monobehaviour.html | 10 ++++----- docs/basic/notsupportedfeatures.html | 10 ++++----- docs/basic/performance.html | 12 +++++----- docs/basic/projectsettings.html | 10 ++++----- docs/basic/runhotupdatecodes.html | 10 ++++----- docs/basic/sourceinspect.html | 10 ++++----- .../supportedplatformanduniyversion.html | 10 ++++----- docs/basic/workwithscriptlanguage.html | 10 ++++----- docs/beginner.html | 8 +++---- docs/beginner/generic.html | 8 +++---- docs/beginner/monobehaviour.html | 8 +++---- docs/beginner/otherhelp.html | 8 +++---- docs/beginner/quickstart.html | 8 +++---- docs/business.html | 8 +++---- docs/business/accesspolicy.html | 8 +++---- docs/business/advancedencryption.html | 8 +++---- docs/business/advancedoptimization.html | 8 +++---- docs/business/assemblyloadoptimization.html | 8 +++---- docs/business/basicencryption.html | 8 +++---- docs/business/basicoptimization.html | 8 +++---- docs/business/businesscase.html | 8 +++---- docs/business/crashreport.html | 8 +++---- .../business/differentialhybridexecution.html | 8 +++---- docs/business/fullgenericsharing.html | 8 +++---- docs/business/intro.html | 8 +++---- docs/business/metadataoptimization.html | 8 +++---- docs/business/pro/commonerrors.html | 8 +++---- docs/business/pro/freetrial.html | 8 +++---- docs/business/pro/intro.html | 8 +++---- docs/business/pro/manual.html | 8 +++---- docs/business/pro/quickstart.html | 8 +++---- docs/business/reload/commonerrors.html | 8 +++---- docs/business/reload/freetrial.html | 8 +++---- docs/business/reload/hotreloadassembly.html | 8 +++---- docs/business/reload/intro.html | 8 +++---- docs/business/reload/manual.html | 8 +++---- docs/business/reload/modifydll.html | 8 +++---- docs/business/reload/quickstart.html | 8 +++---- docs/business/ultimate/build.html | 8 +++---- docs/business/ultimate/commonerrors.html | 8 +++---- docs/business/ultimate/dhao.html | 8 +++---- docs/business/ultimate/freetrial.html | 8 +++---- docs/business/ultimate/injectrules.html | 8 +++---- docs/business/ultimate/intro.html | 8 +++---- docs/business/ultimate/manual.html | 8 +++---- .../ultimate/quickstartunchecked.html | 8 +++---- docs/business/ultimate/useIncodes.html | 8 +++---- docs/help.html | 8 +++---- docs/help/commonerrors.html | 8 +++---- docs/help/faq.html | 8 +++---- docs/help/issue.html | 8 +++---- docs/intro.html | 8 +++---- docs/other.html | 8 +++---- docs/other/businesscase.html | 8 +++---- docs/other/changelog.html | 8 +++---- docs/other/contactme.html | 8 +++---- docs/other/donate.html | 8 +++---- docs/other/relativepojects.html | 8 +++---- docs/other/roadmap.html | 8 +++---- docs/pro.html | 8 +++---- docs/reload.html | 8 +++---- docs/ultimate.html | 8 +++---- en/404.html | 8 +++---- en/assets/js/12aa5f76.52f7c98d.js | 1 + en/assets/js/12aa5f76.a0ca1f60.js | 1 - en/assets/js/359abbd3.0b287d24.js | 1 + en/assets/js/359abbd3.29132be4.js | 1 - en/assets/js/935f2afb.86fb227f.js | 1 - en/assets/js/935f2afb.f2addf85.js | 1 + en/assets/js/b4001de4.74e1a757.js | 1 + en/assets/js/main.03c3aedd.js | 2 -- en/assets/js/main.2e9077d5.js | 2 ++ ...CENSE.txt => main.2e9077d5.js.LICENSE.txt} | 0 en/assets/js/runtime~main.d98aabfb.js | 1 + en/assets/js/runtime~main.f1c4b46a.js | 1 - en/blog.html | 8 +++---- en/blog/archive.html | 8 +++---- en/blog/catelog.html | 8 +++---- en/blog/instructions.html | 8 +++---- en/blog/mindexperiment.html | 8 +++---- en/blog/principle.html | 8 +++---- en/docs/basic.html | 10 ++++----- en/docs/basic/aotgeneric.html | 10 ++++----- en/docs/basic/architecture.html | 10 ++++----- en/docs/basic/bestpractice.html | 10 ++++----- en/docs/basic/buildpipeline.html | 10 ++++----- en/docs/basic/buildwebgl.html | 10 ++++----- en/docs/basic/codestriping.html | 10 ++++----- .../basic/com.code-philosophy.hybridclr.html | 10 ++++----- en/docs/basic/compileassembly.html | 8 +++---- en/docs/basic/dots.html | 10 ++++----- en/docs/basic/hotupdateassemblysetting.html | 10 ++++----- en/docs/basic/il2cppbugs.html | 10 ++++----- en/docs/basic/impactonappsize.html | 21 ++++++++++++++++++ en/docs/basic/install.html | 10 ++++----- en/docs/basic/memory.html | 10 ++++----- en/docs/basic/methodbridge.html | 10 ++++----- en/docs/basic/migratefromnetstandard.html | 10 ++++----- en/docs/basic/monobehaviour.html | 10 ++++----- en/docs/basic/notsupportedfeatures.html | 10 ++++----- en/docs/basic/performance.html | 12 +++++----- en/docs/basic/projectsettings.html | 10 ++++----- en/docs/basic/runhotupdatecodes.html | 10 ++++----- en/docs/basic/sourceinspect.html | 10 ++++----- .../supportedplatformanduniyversion.html | 10 ++++----- en/docs/basic/workwithscriptlanguage.html | 10 ++++----- en/docs/beginner.html | 8 +++---- en/docs/beginner/generic.html | 8 +++---- en/docs/beginner/monobehaviour.html | 8 +++---- en/docs/beginner/otherhelp.html | 8 +++---- en/docs/beginner/quickstart.html | 8 +++---- en/docs/business.html | 8 +++---- en/docs/business/accesspolicy.html | 8 +++---- en/docs/business/advancedencryption.html | 8 +++---- en/docs/business/advancedoptimization.html | 8 +++---- .../business/assemblyloadoptimization.html | 8 +++---- en/docs/business/basicencryption.html | 8 +++---- en/docs/business/basicoptimization.html | 8 +++---- en/docs/business/businesscase.html | 8 +++---- en/docs/business/crashreport.html | 8 +++---- .../business/differentialhybridexecution.html | 8 +++---- en/docs/business/fullgenericsharing.html | 8 +++---- en/docs/business/intro.html | 8 +++---- en/docs/business/metadataoptimization.html | 8 +++---- en/docs/business/pro/commonerrors.html | 8 +++---- en/docs/business/pro/freetrial.html | 8 +++---- en/docs/business/pro/intro.html | 8 +++---- en/docs/business/pro/manual.html | 8 +++---- en/docs/business/pro/quickstart.html | 8 +++---- en/docs/business/reload/commonerrors.html | 8 +++---- en/docs/business/reload/freetrial.html | 8 +++---- .../business/reload/hotreloadassembly.html | 8 +++---- en/docs/business/reload/intro.html | 8 +++---- en/docs/business/reload/manual.html | 8 +++---- en/docs/business/reload/modifydll.html | 8 +++---- en/docs/business/reload/quickstart.html | 8 +++---- en/docs/business/ultimate/build.html | 8 +++---- en/docs/business/ultimate/commonerrors.html | 8 +++---- en/docs/business/ultimate/dhao.html | 8 +++---- en/docs/business/ultimate/freetrial.html | 8 +++---- en/docs/business/ultimate/injectrules.html | 8 +++---- en/docs/business/ultimate/intro.html | 8 +++---- en/docs/business/ultimate/manual.html | 8 +++---- .../ultimate/quickstartunchecked.html | 8 +++---- en/docs/business/ultimate/useIncodes.html | 8 +++---- en/docs/help.html | 8 +++---- en/docs/help/commonerrors.html | 8 +++---- en/docs/help/faq.html | 8 +++---- en/docs/help/issue.html | 8 +++---- en/docs/intro.html | 8 +++---- en/docs/other.html | 8 +++---- en/docs/other/businesscase.html | 8 +++---- en/docs/other/changelog.html | 8 +++---- en/docs/other/contactme.html | 8 +++---- en/docs/other/donate.html | 8 +++---- en/docs/other/relativepojects.html | 8 +++---- en/docs/other/roadmap.html | 8 +++---- en/docs/pro.html | 8 +++---- en/docs/reload.html | 8 +++---- en/docs/ultimate.html | 8 +++---- en/index.html | 8 +++---- en/search.html | 8 +++---- en/sitemap.xml | 2 +- index.html | 8 +++---- search.html | 8 +++---- sitemap.xml | 2 +- 202 files changed, 803 insertions(+), 758 deletions(-) create mode 100644 assets/js/1921acbb.9c127b55.js create mode 100644 assets/js/3d291b3d.2e453ca6.js delete mode 100644 assets/js/3d291b3d.9139634b.js create mode 100644 assets/js/5148d8fe.6f4bc5f5.js delete mode 100644 assets/js/5148d8fe.dc4901be.js delete mode 100644 assets/js/935f2afb.37e792bd.js create mode 100644 assets/js/935f2afb.98cd9060.js create mode 100644 assets/js/main.1c1c2ce0.js rename assets/js/{main.ec7235d9.js.LICENSE.txt => main.1c1c2ce0.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.ec7235d9.js delete mode 100644 assets/js/runtime~main.758286d0.js create mode 100644 assets/js/runtime~main.7d2dcb29.js create mode 100644 docs/basic/impactonappsize.html create mode 100644 en/assets/js/12aa5f76.52f7c98d.js delete mode 100644 en/assets/js/12aa5f76.a0ca1f60.js create mode 100644 en/assets/js/359abbd3.0b287d24.js delete mode 100644 en/assets/js/359abbd3.29132be4.js delete mode 100644 en/assets/js/935f2afb.86fb227f.js create mode 100644 en/assets/js/935f2afb.f2addf85.js create mode 100644 en/assets/js/b4001de4.74e1a757.js delete mode 100644 en/assets/js/main.03c3aedd.js create mode 100644 en/assets/js/main.2e9077d5.js rename en/assets/js/{main.03c3aedd.js.LICENSE.txt => main.2e9077d5.js.LICENSE.txt} (100%) create mode 100644 en/assets/js/runtime~main.d98aabfb.js delete mode 100644 en/assets/js/runtime~main.f1c4b46a.js create mode 100644 en/docs/basic/impactonappsize.html diff --git a/404.html b/404.html index bf060286d..b464a62bb 100644 --- a/404.html +++ b/404.html @@ -9,13 +9,13 @@ - - + +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- - + + \ No newline at end of file diff --git a/assets/js/1921acbb.9c127b55.js b/assets/js/1921acbb.9c127b55.js new file mode 100644 index 000000000..27a2334a9 --- /dev/null +++ b/assets/js/1921acbb.9c127b55.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[6492],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>c});var n=a(7294);function l(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(l[a]=t[a]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(l[a]=t[a])}return l}var d=n.createContext({}),o=function(t){var e=n.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},u=function(t){var e=o(t.components);return n.createElement(d.Provider,{value:e},t.children)},m="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},N=n.forwardRef((function(t,e){var a=t.components,l=t.mdxType,r=t.originalType,d=t.parentName,u=p(t,["components","mdxType","originalType","parentName"]),m=o(a),N=l,c=m["".concat(d,".").concat(N)]||m[N]||k[N]||r;return a?n.createElement(c,i(i({ref:e},u),{},{components:a})):n.createElement(c,i({ref:e},u))}));function c(t,e){var a=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=a.length,i=new Array(r);i[0]=N;var p={};for(var d in e)hasOwnProperty.call(e,d)&&(p[d]=e[d]);p.originalType=t,p[m]="string"==typeof t?t:l,i[1]=p;for(var o=2;o{a.r(e),a.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>p,toc:()=>o});var n=a(7462),l=(a(7294),a(3905));const r={},i="\u5bf9App\u5305\u4f53\u5f71\u54cd",p={unversionedId:"basic/impactonappsize",id:"basic/impactonappsize",title:"\u5bf9App\u5305\u4f53\u5f71\u54cd",description:"\u63a5\u5165hybridclr\u540e\uff0c\u4f1a\u8f7b\u5fae\u5730\u589e\u52a0\u5305\u4f53\uff0c\u4e3b\u8981\u7531\u4ee5\u4e0b\u51e0\u90e8\u5206\u6784\u6210\uff1a",source:"@site/docs/basic/impactonappsize.md",sourceDirName:"basic",slug:"/basic/impactonappsize",permalink:"/docs/basic/impactonappsize",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6267\u884c\u6027\u80fd",permalink:"/docs/basic/performance"},next:{title:"\u4e0d\u652f\u6301\u7684\u7279\u6027",permalink:"/docs/basic/notsupportedfeatures"}},d={},o=[{value:"\u6d4b\u8bd5",id:"\u6d4b\u8bd5",level:2},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:2}],u={toc:o},m="wrapper";function k(t){let{components:e,...a}=t;return(0,l.kt)(m,(0,n.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u5bf9app\u5305\u4f53\u5f71\u54cd"},"\u5bf9App\u5305\u4f53\u5f71\u54cd"),(0,l.kt)("p",null,"\u63a5\u5165hybridclr\u540e\uff0c\u4f1a\u8f7b\u5fae\u5730\u589e\u52a0\u5305\u4f53\uff0c\u4e3b\u8981\u7531\u4ee5\u4e0b\u51e0\u90e8\u5206\u6784\u6210\uff1a"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"hybridclr\u9664\u4e86MethodBridge.cpp\u4ee5\u5916\u7684\u4e3b\u4f53\u4ee3\u7801"),(0,l.kt)("li",{parentName:"ol"},"\u6865\u63a5\u51fd\u6570\u6587\u4ef6MethodBridge.cpp\u4ee3\u7801"),(0,l.kt)("li",{parentName:"ol"},"il2cpp\u5c06HybridCLR.Runtime.dll\u4ee3\u7801\u7ffb\u8bd1\u540e\u7684cpp\u4ee3\u7801")),(0,l.kt)("p",null,"\u5176\u4e2d\u7b2c1\u90e8\u5206\u4ee3\u7801\u4e0d\u52303\u4e07\u884c\uff0c\u7b2c3\u90e8\u5206\u4ee3\u7801\u4e0d\u52302000\u884c\uff0c\u5b83\u4eec\u5bf9\u6700\u7ec8\u5305\u4f53\u7684\u5f71\u54cd\u5f88\u5c0f\uff0c\u800cMethodBridge.cpp\u662f\u6839\u636eAOT\u7a0b\u5e8f\u96c6\u8ba1\u7b97\u751f\u6210\u7684\uff0c\u4e00\u822c\u6765\u8bf4\uff0c\u5982\u679cAOT\u7a0b\u5e8f\u96c6\u4ee3\u7801\u8d8a\u591a\uff0cMethodBridge.cpp\n\u6587\u4ef6\u5927\u5c0f\u4f1a\u8d8a\u5927\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u6839\u636e\u9879\u76eeAOT\u6a21\u5757\u7684\u590d\u6742\u5ea6\uff0cMethodBridge.cpp\u6587\u4ef6\u5927\u5c0f\u57282M-40M\u4e4b\u95f4\u3002"),(0,l.kt)("p",null,"\u6211\u4eec\u6784\u5efa\u4e86\u6d4b\u8bd5\u9879\u76ee\u6d4b\u8bd5hybridclr\u5bf9\u5305\u4f53\u7684\u5b9e\u9645\u5f71\u54cd\u3002"),(0,l.kt)("h2",{id:"\u6d4b\u8bd5"},"\u6d4b\u8bd5"),(0,l.kt)("p",null,"\u6211\u4eec\u5728Unity 2021\u7248\u672c\u6d4b\u8bd5\u4e86\u6784\u5efa\u7684Android Armv8\u5e73\u53f0apk\u7684\u5927\u5c0f\u3002"),(0,l.kt)("p",null,"\u6d4b\u8bd5\u5de5\u7a0b\u7684AOT\u90e8\u5206\u5b8c\u6574\u5305\u542b\u4e86\u4ee5\u4e0b\u6846\u67b6\u548c\u5e93\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"mscorlib\u3001System\u3001System.Core"),(0,l.kt)("li",{parentName:"ul"},"UnityEngine.dll\u3001UnityEngine.CoreModule.dll\u3001UnityEngine.UI.dll\u3001UnityEngine.PhysicsModule.dll"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/EllanJiang/GameFramework"},"GameFramework\u6846\u67b6")),(0,l.kt)("li",{parentName:"ul"},"HybridCLR.Runtime.dll"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/focus-creative-games/luban"},"Luban")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/Cysharp/UniTask"},"UniTask")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/tuyoogame/YooAsset"},"YooAsset"))),(0,l.kt)("p",null,"\u6211\u4eec\u7edf\u8ba1\u4e86\u6784\u5efa\u5b8capk\u540eAOT\u6a21\u5757dll\u7684\u603b\u5927\u5c0f\uff1a\u517112.0M\u3002"),(0,l.kt)("p",null,"\u6d4b\u8bd5\u5de5\u7a0b\u7684\u70ed\u66f4\u65b0\u90e8\u5206\u4ee3\u7801\u4ee5\u4e0b\u90e8\u5206\u6784\u6210\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u5355\u5143\u6d4b\u8bd5\u5de5\u7a0b\u4ee3\u7801"),(0,l.kt)("li",{parentName:"ul"},"Luban\u751f\u6210\u7684\u914d\u7f6e\u4ee3\u7801")),(0,l.kt)("p",null,"\u7f16\u8bd1\u540e\u7684HotUpdate.dll\u4e3a1216k\u3002\u4e3a\u4e86\u516c\u5e73\u8d77\u89c1\uff0c\u63a5\u5165HybridCLR\u7684\u9879\u76ee\u4f1a\u5c06\u70ed\u66f4\u65b0dll\u538b\u7f29\u540e\u653e\u5165StreamingAssets\u627f\u5305\u643a\u5e26\u3002"),(0,l.kt)("p",null,"\u6211\u4eec\u5bf9\u6bd4\u4e86\u4ee5\u4e0b6\u79cd\u60c5\u51b5\u7684\u5305\u4f53\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"NotHybridCLR-NotHotUpdateCode \u672a\u63a5\u5165HybridCLR\u3001\u672a\u5305\u542bHotUpdate\u4ee3\u7801\uff08\u5373\u672a\u5c06HotUpdate\u5305\u542b\u5230AOT\u4e2d\uff09"),(0,l.kt)("li",{parentName:"ul"},"HybridCLR-NotHotUpdateCode-NotMethodBridge \u63a5\u5165HybridCLR\u3001\u4e0d\u5305\u542bHotUpdate\u4ee3\u7801\uff0c\u6865\u63a5\u51fd\u6570\u6587\u4ef6\u4e3a\u7a7a"),(0,l.kt)("li",{parentName:"ul"},"HybridCLR-NotHotUpdateCode-MethodBridge \u63a5\u5165HybridCLR\u3001\u4e0d\u5305\u542bHotUpdate\u4ee3\u7801\uff0c\u6b63\u5e38\u751f\u6210\u6865\u63a5\u51fd\u6570\u6587\u4ef6"),(0,l.kt)("li",{parentName:"ul"},"NotHybridCLR-HotUpdateCode \u672a\u63a5\u5165HybridCLR\u3001\u5305\u542bHotUpdate\u4ee3\u7801\uff08\u5373\u5c06HotUpdate\u5305\u542b\u5230AOT\u4e2d\uff09"),(0,l.kt)("li",{parentName:"ul"},"NotHybridCLR-HOtUpdateCode-NotMethodBridge \u63a5\u5165HybridCLR\u3001\u5305\u542bHotUpdate\u4ee3\u7801\uff08\u5c06HotUpdate.dll\u538b\u7f29\u540e\u653e\u5230StreamingAssets\u627f\u5305\u643a\u5e26\uff09\uff0c\u6865\u63a5\u51fd\u6570\u6587\u4ef6\u4e3a\u7a7a"),(0,l.kt)("li",{parentName:"ul"},"NotHybridCLR-HotUpdateCode-MethodBridge \u63a5\u5165HybridCLR\u3001\u5305\u542bHotUpdate\u4ee3\u7801\uff0c\u6b63\u5e38\u751f\u6210\u6865\u63a5\u51fd\u6570\u6587\u4ef6")),(0,l.kt)("p",null,"\u6d4b\u8bd5\u6570\u636e\u5982\u4e0b\uff1a"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"\u6784\u5efa\u65b9\u5f0f"),(0,l.kt)("th",{parentName:"tr",align:null},"Apk\u5927\u5c0f\uff08K\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"global-metadata.dat\uff08\u672a\u538b\u7f29\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"global-metadata.dat\uff08\u538b\u7f29\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"libil2cpp.so\uff08\u672a\u538b\u7f29\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"libil2cpp.so\uff08\u538b\u7f29\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"HotUpdate.dll\u5927\u5c0f\uff08\u672a\u538b\u7f29\uff09\uff08K\uff09"),(0,l.kt)("th",{parentName:"tr",align:null},"MethodBridge.cpp\u5927\u5c0f\uff08K\uff09"),(0,l.kt)("th",{parentName:"tr",align:null}))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"NotHybridCLR-NotHotUpdateCode"),(0,l.kt)("td",{parentName:"tr",align:null},"30066"),(0,l.kt)("td",{parentName:"tr",align:null},"10087740"),(0,l.kt)("td",{parentName:"tr",align:null},"2980934"),(0,l.kt)("td",{parentName:"tr",align:null},"73383680"),(0,l.kt)("td",{parentName:"tr",align:null},"18954786"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"HybridCLR-NotHotUpdateCode-NotMethodBridge"),(0,l.kt)("td",{parentName:"tr",align:null},"30262"),(0,l.kt)("td",{parentName:"tr",align:null},"10075360"),(0,l.kt)("td",{parentName:"tr",align:null},"2904652"),(0,l.kt)("td",{parentName:"tr",align:null},"74026488"),(0,l.kt)("td",{parentName:"tr",align:null},"19158769"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"HybridCLR-NotHotUpdateCode-MethodBridge"),(0,l.kt)("td",{parentName:"tr",align:null},"30900"),(0,l.kt)("td",{parentName:"tr",align:null},"10075360"),(0,l.kt)("td",{parentName:"tr",align:null},"2904652"),(0,l.kt)("td",{parentName:"tr",align:null},"78450168"),(0,l.kt)("td",{parentName:"tr",align:null},"19905020"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null},"15082"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"NotHybridCLR-HotUpdateCode"),(0,l.kt)("td",{parentName:"tr",align:null},"31718"),(0,l.kt)("td",{parentName:"tr",align:null},"10893056"),(0,l.kt)("td",{parentName:"tr",align:null},"3103289"),(0,l.kt)("td",{parentName:"tr",align:null},"79670208"),(0,l.kt)("td",{parentName:"tr",align:null},"20387018"),(0,l.kt)("td",{parentName:"tr",align:null},"1206"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"NotHybridCLR-HotUpdateCode-NotMethodBridge"),(0,l.kt)("td",{parentName:"tr",align:null},"30531"),(0,l.kt)("td",{parentName:"tr",align:null},"10081232"),(0,l.kt)("td",{parentName:"tr",align:null},"29006522"),(0,l.kt)("td",{parentName:"tr",align:null},"74158928"),(0,l.kt)("td",{parentName:"tr",align:null},"19177165"),(0,l.kt)("td",{parentName:"tr",align:null},"1206"),(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"NotHybridCLR-HotUpdateCode-MethodBridge"),(0,l.kt)("td",{parentName:"tr",align:null},"31259"),(0,l.kt)("td",{parentName:"tr",align:null},"10081232"),(0,l.kt)("td",{parentName:"tr",align:null},"29006522"),(0,l.kt)("td",{parentName:"tr",align:null},"78492496"),(0,l.kt)("td",{parentName:"tr",align:null},"19920506"),(0,l.kt)("td",{parentName:"tr",align:null},"1206"),(0,l.kt)("td",{parentName:"tr",align:null},"14861"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},(0,l.kt)("inlineCode",{parentName:"p"},"\u672a\u538b\u7f29")," \u6307\u5728apk\u5185\u8be5\u6587\u4ef6\u7684\u539f\u59cb\u5927\u5c0f\uff0c",(0,l.kt)("inlineCode",{parentName:"p"},"\u538b\u7f29")," \u6307\u5728apk\u5185\u8be5\u6587\u4ef6\u538b\u7f29\u540e\u7684\u5927\u5c0f")),(0,l.kt)("p",null,"\u70ed\u66f4\u65b0\u4ee3\u7801HotUpdate.dll\u539f\u59cb\u5927\u5c0f\u76841216k\uff0c\u538b\u7f29\u540e\u4e3a200k\u3002"),(0,l.kt)("p",null,"\u6839\u636e\u4ee5\u4e0a\u6d4b\u8bd5\u9879\u76ee\uff0c\u6211\u4eec\u5927\u7ea6\u53ef\u4ee5\u5f97\u51fa\u4ee5\u4e0b\u7ed3\u8bba\uff1a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"HybridCLR\u4e0d\u542bMethodBridge.cpp\u7684\u4e3b\u4f53\u90e8\u5206\u6700\u7ec8\u589e\u52a0\u4e86196k\u5305\u4f53"),(0,l.kt)("li",{parentName:"ul"},"\u6865\u63a5\u51fd\u6570\u6587\u4ef6\u589e\u52a0\u4e86\u5927\u7ea6 ",(0,l.kt)("inlineCode",{parentName:"li"},"{MethodBridge.cpp\u5927\u5c0f} * 0.049")," \u5305\u4f53\u5927\u5c0f"),(0,l.kt)("li",{parentName:"ul"},"\u6bcf\u65b0\u589e\u5927\u5c0f\u4e3aS\u7684\u6e38\u620f\u4ee3\u7801\uff0c\u5bf9\u4e8e\u6ca1\u63a5\u5165HybridCLR\u7684App\uff0c\u589e\u52a0\u4e86",(0,l.kt)("inlineCode",{parentName:"li"},"S * 1.37"),"\u5305\u4f53\u5927\u5c0f"),(0,l.kt)("li",{parentName:"ul"},"\u6bcf\u589e\u52a0\u5927\u5c0f\u4e3aS\u7684\u6e38\u620f\u4ee3\u7801\uff0c\u5bf9\u4e8e\u63a5\u5165HybridCLR\u7684App\uff0c\u589e\u52a0\u4e86",(0,l.kt)("inlineCode",{parentName:"li"},"S * 0.2"),"\u5305\u4f53\u5927\u5c0f")),(0,l.kt)("h2",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,l.kt)("p",null,"\u63a5\u5165HybridCLR\u589e\u52a0\u4e86",(0,l.kt)("inlineCode",{parentName:"p"},"196k + {\u6865\u63a5\u51fd\u6570\u6587\u4ef6\u5927\u5c0f}*0.049")," \u5927\u5c0f\u7684\u5305\u4f53\uff0c\u4f46\u5c06\u6e38\u620f\u4ee3\u7801\u4eceAOT\u4e2d\u79fb\u5230\u70ed\u66f4\u65b0\u540e\u80fd\u51cf\u5c11",(0,l.kt)("inlineCode",{parentName:"p"},"{\u70ed\u66f4\u65b0dll\u5927\u5c0f}*1.17"),"\u500d\u5305\u4f53\u3002"),(0,l.kt)("p",null,"\u8fd9\u610f\u5473\u7740\uff0c\u5982\u679c\u4e00\u4e2a\u9879\u76ee\u70ed\u66f4\u65b0\u4ee3\u7801\u8d85\u8fc7800K-1500K\uff0c\u63a5\u5165HybridCLR\u540e\u6700\u7ec8\u5305\u4f53\u4f1a\u6bd4\u672a\u63a5\u5165HybridCLR\u5c0f\u3002\u6700\u7ec8\u51cf\u5c11\u7684\u5305\u4f53\u53ef\u4ee5\u7b80\u7565\u5730\u4f7f\u7528 ",(0,l.kt)("inlineCode",{parentName:"p"},"\u70ed\u66f4\u65b0dll\u5927\u5c0f*1.05"),"\u8fd1\u4f3c\u8ba1\u7b97\u3002"),(0,l.kt)("p",null,"\u5bf9\u4e8e\u793e\u533a\u7248\u3001\u4e13\u4e1a\u7248\u3001\u70ed\u91cd\u8f7d\u7248\u672c\u4ee5\u4e0a\u7ed3\u8bba\u5747\u9002\u7528\uff0c\u5bf9\u4e8e\u65d7\u8230\u7248\u672c\uff0c\u7531\u4e8eDHE\u7a0b\u5e8f\u96c6\u4e5f\u88ab\u7f16\u8bd1\u5230AOT\u4e2d\uff0c\u6240\u4ee5\u65d7\u8230\u7248\u672c\u4f1a\u5bfc\u81f4\u5305\u4f53\u6574\u4f53\u589e\u52a0\uff0c\u76f8\u6bd4\u4e8e\u672a\u63a5\u5165\u589e\u52a0\u4e862-5M\u5305\u4f53\u3002"))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3d291b3d.2e453ca6.js b/assets/js/3d291b3d.2e453ca6.js new file mode 100644 index 000000000..af34e74f8 --- /dev/null +++ b/assets/js/3d291b3d.2e453ca6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[9822],{3905:(n,a,e)=>{e.d(a,{Zo:()=>b,kt:()=>p});var t=e(7294);function r(n,a,e){return a in n?Object.defineProperty(n,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[a]=e,n}function c(n,a){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable}))),e.push.apply(e,t)}return e}function i(n){for(var a=1;a=0||(r[e]=n[e]);return r}(n,a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(n,e)&&(r[e]=n[e])}return r}var d=t.createContext({}),l=function(n){var a=t.useContext(d),e=a;return n&&(e="function"==typeof n?n(a):i(i({},a),n)),e},b=function(n){var a=l(n.components);return t.createElement(d.Provider,{value:a},n.children)},u="mdxType",s={inlineCode:"code",wrapper:function(n){var a=n.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(n,a){var e=n.components,r=n.mdxType,c=n.originalType,d=n.parentName,b=o(n,["components","mdxType","originalType","parentName"]),u=l(e),m=r,p=u["".concat(d,".").concat(m)]||u[m]||s[m]||c;return e?t.createElement(p,i(i({ref:a},b),{},{components:e})):t.createElement(p,i({ref:a},b))}));function p(n,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof n||r){var c=e.length,i=new Array(c);i[0]=m;var o={};for(var d in a)hasOwnProperty.call(a,d)&&(o[d]=a[d]);o.originalType=n,o[u]="string"==typeof n?n:r,i[1]=o;for(var l=2;l{e.r(a),e.d(a,{assets:()=>F,contentTitle:()=>V,default:()=>w,frontMatter:()=>R,metadata:()=>I,toc:()=>P});var t=e(7462),r=e(7294),c=e(3905),i=e(6010),o=e(2466),d=e(6550),l=e(1980),b=e(7392),u=e(12);function s(n){return function(n){return r.Children.map(n,(n=>{if(!n||(0,r.isValidElement)(n)&&function(n){const{props:a}=n;return!!a&&"object"==typeof a&&"value"in a}(n))return n;throw new Error(`Docusaurus error: Bad child <${"string"==typeof n.type?n.type:n.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(n).map((n=>{let{props:{value:a,label:e,attributes:t,default:r}}=n;return{value:a,label:e,attributes:t,default:r}}))}function m(n){const{values:a,children:e}=n;return(0,r.useMemo)((()=>{const n=a??s(e);return function(n){const a=(0,b.l)(n,((n,a)=>n.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((n=>n.value)).join(", ")}" found in . Every value needs to be unique.`)}(n),n}),[a,e])}function p(n){let{value:a,tabValues:e}=n;return e.some((n=>n.value===a))}function v(n){let{queryString:a=!1,groupId:e}=n;const t=(0,d.k6)(),c=function(n){let{queryString:a=!1,groupId:e}=n;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!e)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return e??null}({queryString:a,groupId:e});return[(0,l._X)(c),(0,r.useCallback)((n=>{if(!c)return;const a=new URLSearchParams(t.location.search);a.set(c,n),t.replace({...t.location,search:a.toString()})}),[c,t])]}function f(n){const{defaultValue:a,queryString:e=!1,groupId:t}=n,c=m(n),[i,o]=(0,r.useState)((()=>function(n){let{defaultValue:a,tabValues:e}=n;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${e.map((n=>n.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}const t=e.find((n=>n.default))??e[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:a,tabValues:c}))),[d,l]=v({queryString:e,groupId:t}),[b,s]=function(n){let{groupId:a}=n;const e=function(n){return n?`docusaurus.tab.${n}`:null}(a),[t,c]=(0,u.Nk)(e);return[t,(0,r.useCallback)((n=>{e&&c.set(n)}),[e,c])]}({groupId:t}),f=(()=>{const n=d??b;return p({value:n,tabValues:c})?n:null})();(0,r.useLayoutEffect)((()=>{f&&o(f)}),[f]);return{selectedValue:i,selectValue:(0,r.useCallback)((n=>{if(!p({value:n,tabValues:c}))throw new Error(`Can't select invalid tab value=${n}`);o(n),l(n),s(n)}),[l,s,c]),tabValues:c}}var k=e(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(n){let{className:a,block:e,selectedValue:c,selectValue:d,tabValues:l}=n;const b=[],{blockElementScrollPositionUntilNextRender:u}=(0,o.o5)(),s=n=>{const a=n.currentTarget,e=b.indexOf(a),t=l[e].value;t!==c&&(u(a),d(t))},m=n=>{let a=null;switch(n.key){case"Enter":s(n);break;case"ArrowRight":{const e=b.indexOf(n.currentTarget)+1;a=b[e]??b[0];break}case"ArrowLeft":{const e=b.indexOf(n.currentTarget)-1;a=b[e]??b[b.length-1];break}}a?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":e},a)},l.map((n=>{let{value:a,label:e,attributes:o}=n;return r.createElement("li",(0,t.Z)({role:"tab",tabIndex:c===a?0:-1,"aria-selected":c===a,key:a,ref:n=>b.push(n),onKeyDown:m,onClick:s},o,{className:(0,i.Z)("tabs__item",g.tabItem,o?.className,{"tabs__item--active":c===a})}),e??a)})))}function y(n){let{lazy:a,children:e,selectedValue:t}=n;const c=(Array.isArray(e)?e:[e]).filter(Boolean);if(a){const n=c.find((n=>n.props.value===t));return n?(0,r.cloneElement)(n,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},c.map(((n,a)=>(0,r.cloneElement)(n,{key:a,hidden:n.props.value!==t}))))}function C(n){const a=f(n);return r.createElement("div",{className:(0,i.Z)("tabs-container",g.tabList)},r.createElement(h,(0,t.Z)({},n,a)),r.createElement(y,(0,t.Z)({},n,a)))}function T(n){const a=(0,k.Z)();return r.createElement(C,(0,t.Z)({key:String(a)},n))}const x={tabItem:"tabItem_Ymn6"};function O(n){let{children:a,hidden:e,className:t}=n;return r.createElement("div",{role:"tabpanel",className:(0,i.Z)(x.tabItem,t),hidden:e},a)}const R={},V="\u6267\u884c\u6027\u80fd",I={unversionedId:"basic/performance",id:"basic/performance",title:"\u6267\u884c\u6027\u80fd",description:"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002",source:"@site/docs/basic/performance.md",sourceDirName:"basic",slug:"/basic/performance",permalink:"/docs/basic/performance",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5185\u5b58\u4e0eGC",permalink:"/docs/basic/memory"},next:{title:"\u5bf9App\u5305\u4f53\u5f71\u54cd",permalink:"/docs/basic/impactonappsize"}},F={},P=[{value:"\u6d4b\u8bd5\u62a5\u544a",id:"\u6d4b\u8bd5\u62a5\u544a",level:2},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs Mono\u8017\u65f6",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-mono\u8017\u65f6",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/Mono \u6027\u80fd\u500d\u7387",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cmono-\u6027\u80fd\u500d\u7387",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs xlua\u8017\u65f6",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-xlua\u8017\u65f6",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/xlua \u6027\u80fd\u500d\u7387",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cxlua-\u6027\u80fd\u500d\u7387",level:3},{value:"AOT\u8017\u65f6 vs \u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"aot\u8017\u65f6-vs-\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6aot\u8017\u65f6--\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd/\u793e\u533a\u7248\u672c\u6027\u80fd \uff08\u8d8a\u5927\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u793e\u533a\u7248\u672c\u6027\u80fd-\u8d8a\u5927\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u539f\u7406",id:"\u539f\u7406",level:2},{value:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93",id:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93",level:3},{value:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6",id:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6",level:3},{value:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808",id:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808",level:3},{value:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316",id:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316",level:3},{value:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e",id:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e",level:3},{value:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548",id:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548",level:3},{value:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\uff0c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5",id:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5",level:3},{value:"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\uff0c\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f",id:"\u5143\u6570\u636e\u7edf\u4e00\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f",level:3},{value:"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\uff0c\u5e76\u4e14\u6ca1\u6709PInvoke\u548cReservePInvoke\u7684\u989d\u5916\u5f00\u9500",id:"\u5143\u6570\u636e\u7edf\u4e00\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\u5e76\u4e14\u6ca1\u6709pinvoke\u548creservepinvoke\u7684\u989d\u5916\u5f00\u9500",level:3},{value:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570",id:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570",level:3},{value:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\uff0c\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c",id:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c",level:3},{value:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f",id:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f",level:3},{value:"\u9644\u5f55\uff1a\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801",id:"\u9644\u5f55\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801",level:2},{value:"\u5546\u4e1a\u5316\u7248\u672c vs xlua",id:"\u5546\u4e1a\u5316\u7248\u672c-vs-xlua",level:3},{value:"AOT vs \u793e\u533a\u7248 vs \u5546\u4e1a\u5316\u7248\u672c vs Mono",id:"aot-vs-\u793e\u533a\u7248-vs-\u5546\u4e1a\u5316\u7248\u672c-vs-mono",level:3}],A={toc:P},_="wrapper";function w(n){let{components:a,...r}=n;return(0,c.kt)(_,(0,t.Z)({},A,r,{components:a,mdxType:"MDXLayout"}),(0,c.kt)("h1",{id:"\u6267\u884c\u6027\u80fd"},"\u6267\u884c\u6027\u80fd"),(0,c.kt)("p",null,"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002"),(0,c.kt)("h2",{id:"\u6d4b\u8bd5\u62a5\u544a"},"\u6d4b\u8bd5\u62a5\u544a"),(0,c.kt)("admonition",{type:"tip"},(0,c.kt)("p",{parentName:"admonition"},"HybridCLR\u662f\u76ee\u524d\u6027\u80fd\u6700\u9ad8\u7684CLR\u89e3\u91ca\u5668\u5b9e\u73b0\uff0c\u4e5f\u662f\u5f53\u524d\u6240\u6709\u70ed\u66f4\u65b0\u65b9\u6848\u4e2d\u6027\u80fd\u6700\u4f18\u5f02\u7684\uff0c\u7efc\u5408\u6027\u80fd\u8d85\u51fa\u5176\u4ed6\u65b9\u6848\u4e00\u4e2a\u6570\u91cf\u7ea7\u4ee5\u4e0a\u3002")),(0,c.kt)("p",null,"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u7684\u7efc\u5408\u6027\u80fd\u5927\u5e45\u4f18\u4e8eMono\u7684mint\u5b9e\u73b0\uff0c\u6570\u503c\u8ba1\u7b97\u6307\u4ee4\u6027\u80fd\u662fMono\u7684140%-330%\u4e4b\u95f4\u3002"),(0,c.kt)("p",null,"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u7684\u6027\u80fd",(0,c.kt)("strong",{parentName:"p"},"\u5168\u9762\u78be\u538b"),"\u4e86xlua\u65b9\u6848\uff0c\u6570\u503c\u8ba1\u7b97\u6307\u4ee4\u6027\u80fd\u662fxlua\u7684651%-720%\uff0c\u5176\u4ed6\u65b9\u9762\u6570\u5341\u500d\u751a\u81f3\u767e\u500d\u4ee5\u4e0a\u5feb\u4e8exlua\u65b9\u6848\u3002"),(0,c.kt)("p",null,"\u793e\u533a\u7248\u672c\u7684HybridCLR\u9664\u4e86",(0,c.kt)("strong",{parentName:"p"},"\u6570\u503c\u8ba1\u7b97"),"\u8ddfAOT\u6709\u8f83\u660e\u663e\u5dee\u8ddd\u5916\uff0c\u5176\u4ed6\u65b9\u9762\u5dee\u8ddd\u4e0d\u5927\u3002\u56e0\u6b64\u5bf9\u4e8e\u5927\u591a\u6570\u9879\u76ee\u6765\u8bf4\uff0c\u6e38\u620f\u7efc\u5408\u6027\u80fd\u8ddf\u5168\u539f\u751f\u7248\u672c\u5dee\u8ddd\u4e0d\u5927\u3002"),(0,c.kt)("p",null,(0,c.kt)("strong",{parentName:"p"},"\u5546\u4e1a\u7248\u672c"),"\u7684HybridCLR\u5927\u5e45\u4f18\u5316\u4e86\u6570\u503c\u8ba1\u7b97\u6027\u80fd\uff0c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684280%-735%\uff0c\u5bf9\u6027\u80fd\u6709\u4e25\u82db\u8981\u6c42\u7684\u5f00\u53d1\u8005\u53ef\u4ee5\u8054\u7cfb\u6211\u4eec",(0,c.kt)("a",{parentName:"p",href:"/docs/business/intro"},"\u5546\u4e1a\u5316\u670d\u52a1"),"\u3002"),(0,c.kt)("p",null,"\u4ee5\u4e0b\u662fOnePlus 9R ArmV8 \u5b9e\u673a\u6d4b\u8bd5\u62a5\u544a\uff0c\u6d4b\u8bd5\u4ee3\u7801\u9644\u5f55\u6700\u540e\u3002"),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-mono\u8017\u65f6"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs Mono\u8017\u65f6"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(7355).Z,width:"880",height:"478"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cmono-\u6027\u80fd\u500d\u7387"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/Mono \u6027\u80fd\u500d\u7387"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(1332).Z,width:"915",height:"551"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-xlua\u8017\u65f6"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs xlua\u8017\u65f6"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(7860).Z,width:"972",height:"558"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cxlua-\u6027\u80fd\u500d\u7387"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/xlua \u6027\u80fd\u500d\u7387"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(1024).Z,width:"972",height:"527"})),(0,c.kt)("h3",{id:"aot\u8017\u65f6-vs-\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d"},"AOT\u8017\u65f6 vs \u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(5108).Z,width:"1361",height:"628"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6aot\u8017\u65f6--\u8d8a\u5c0f\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"AOT\u7248\u672c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"4.1 - 90"),"\u500d\uff0c\u662f\u5546\u4e1a\u5316\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"1.30 - 12.9"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9446).Z,width:"1283",height:"647"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u793e\u533a\u7248\u672c\u6027\u80fd-\u8d8a\u5927\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd/\u793e\u533a\u7248\u672c\u6027\u80fd \uff08\u8d8a\u5927\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"2.87-7.35"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9672).Z,width:"1280",height:"527"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"AOT\u7248\u672c\u6027\u80fd\u662f\u662f\u5546\u4e1a\u5316\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"1.30 - 12.9"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9999).Z,width:"1280",height:"640"})),(0,c.kt)("h2",{id:"\u539f\u7406"},"\u539f\u7406"),(0,c.kt)("p",null,"\u7531\u4e8eHybridCLR\u7528C++\u5b9e\u73b0\uff0c\u5e76\u4e14\u76f4\u63a5\u4e0eil2cpp\u8fd0\u884c\u65f6\u65e0\u7f1d\u96c6\u6210\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd0\u884c\u65f6\u5e95\u5c42\u7684\u6570\u636e\u548c\u5404\u79cd\u63a5\u53e3\u3002\u76f8\u6bd4\u4e0eILRuntime\u548cXlua\uff0c\u7701\u53bbC#\u5c42\u7684\u989d\u5916\u6210\u672c\uff0c\u4ea4\u4e92\u6210\u672c\u6781\u5927\u964d\u4f4e\u3002"),(0,c.kt)("p",null,"HybridCLR\u6027\u80fd\u4f18\u79c0\u4e3b\u8981\u6765\u81ea\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,c.kt)("h3",{id:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93"},"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93"),(0,c.kt)("p",null,"\u6211\u4eec\u6ca1\u6709\u4f7f\u7528\u73b0\u6210\u7684metadata\u89e3\u6790\u5e93\uff0c\u6309\u7167HybridCLR\u9700\u6c42\u5b9e\u73b0\u4e86\u4e00\u4e2aC++\u7248\u672c\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\n\u89e3\u6790\u5e93\u3002\u800c\u5176\u4ed6C#\u70ed\u66f4\u65b0\u6216\u8005hotfix\u65b9\u6848\u5747\u7528\u4e86Cecil\u4e4b\u7c7b\u7684C#\u5e93\uff0c\u5185\u5b58\u548c\u52a0\u8f7d\u6548\u7387\u5dee\u8ddd\u5de8\u5927\uff01"),(0,c.kt)("h3",{id:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6"},"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6"),(0,c.kt)("p",null,"\u539f\u59cbIL\u5b57\u8282\u7801\u662f\u57fa\u4e8e\u6808\u7684\u6307\u4ee4\u96c6\uff0cHybridCLR\u5c06\u5176\u8f6c\u6210\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6\uff0c\u51cf\u5c11\u4e86\u6808\u7ef4\u62a4\u5f00\u9500\u3002"),(0,c.kt)("h3",{id:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808"},"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808"),(0,c.kt)("p",null,"\u6808\u64cd\u4f5c\u662fCLI\u4e2d\u6700\u5e38\u89c1\u7684\u64cd\u4f5c\uff0c\u51e0\u4e4e\u6240\u6709\u6307\u4ee4\u90fd\u4f1a\u6d89\u53ca\u5230\u6808\u64cd\u4f5c\u3002\u7531\u4e8e\u89e3\u91ca\u5668\u6808\u662f\u81ea\u5df1\u7ef4\u62a4\u7684\u5806\u5185\u5b58\uff0cCLI\u5bf9struct\u7684\u6307\u9488\u64cd\u4f5c\u6709\u9650\u5236\uff0c\u5982\u679c\u7528C#\u5b9e\u73b0\u89e3\u91ca\u5668\uff0c\n\u5219\u65e0\u6cd5\u76f4\u63a5\u5728\u89e3\u91ca\u5668\u6808\u4e0a\u64cd\u4f5c\u6570\u636e\u7c7b\u578b\uff0c\u4e0d\u5f97\u4e0d\u4f7f\u7528\u4f7f\u7528\u5404\u79cd\u6280\u5de7\u95f4\u63a5\u8fbe\u5230\u8fd9\u4e2a\u76ee\u7684\u3002\u800cHybridCLR\u662fC++\u5b9e\u73b0\uff0c\u53ef\u4ee5\u76f4\u63a5\u64cd\u4f5c\u3002"),(0,c.kt)("p",null,"\u64cd\u4f5cstruct\u7c7b\u578b\u6548\u7387\u76f8\u6bd4\u5176\u4ed6\u89e3\u91ca\u5668\u6709\u6570\u500d\u5230\u6570\u5341\u500d\u63d0\u5347\u3002"),(0,c.kt)("h3",{id:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316"},"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316"),(0,c.kt)("p",null,"\u6709\u4e00\u4e9b\u6307\u4ee4\u5982",(0,c.kt)("inlineCode",{parentName:"p"},"add"),"\u6307\u4ee4\u662f\u591a\u529f\u80fd\u6307\u4ee4\uff0c\u6839\u636e\u5f53\u524d\u6808\u4e0a\u7684\u64cd\u4f5c\u6570\u7c7b\u578b\u6765\u51b3\u5b9a\u6700\u7ec8\u7684\u64cd\u4f5c\u3002HybridCLR\u4e3a\u5b83\u8bbe\u8ba1\u4e86",(0,c.kt)("inlineCode",{parentName:"p"},"add_i4\u3001add_i8\u3001add_r4\u3001add_r8"),"\u8fd94\u6761\u6307\u4ee4\uff0c\u7ffb\u8bd1\u6307\u4ee4\u65f6\n\u8ba1\u7b97\u51fa\u5f53\u524d\u5806\u6808\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7ffb\u8bd1\u4e3a\u5bf9\u5e94\u7684\u7279\u4f8b\u5316\u5316\u6307\u4ee4\u3002\u8282\u7701\u4e86\u8fd0\u884c\u65f6\u5224\u65ad\u7c7b\u578b\u7684\u5f00\u9500\uff0c\u4e5f\u8282\u7701\u4e86\u8fd0\u884c\u65f6\u7ef4\u62a4\u6570\u636e\u7c7b\u578b\u7684\u5f00\u9500\u3002"),(0,c.kt)("h3",{id:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e"},"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e"),(0,c.kt)("p",null,"\u6709\u4e9b\u6307\u4ee4\u5982ldtoken\u3001ldstr\u4e4b\u7c7b\u9700\u8981\u8fd0\u884c\u65f6\u5c06\u6307\u4ee4\u4e2d\u7684\u6570\u636e\u8f6c\u6362\u4e3a\u5b9e\u9645\u5730\u8fd0\u884c\u65f6\u6570\u636e\u3002HybridCLR\u5728\u7ffb\u8bd1\u65f6\u76f4\u63a5\u8ba1\u7b97\u51fa\u5bf9\u5e94\u7684\u8fd0\u884c\u65f6\u6570\u636e\uff0c\u4fdd\u5b58\u5230\u8f6c\u6362\u540e\u7684\u6307\u4ee4\u4e2d\uff0c\n\u6781\u5927\u63d0\u5347\u4e86\u6027\u80fd"),(0,c.kt)("h3",{id:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548"},"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548"),(0,c.kt)("p",null,"\u50cf ",(0,c.kt)("inlineCode",{parentName:"p"},"v.x = b;")," \u8fd9\u79cd\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u975e\u5e38\u5e38\u89c1\uff0c\u50cfILRuntime\u548cxlua\u7531\u4e8eC#\u8bed\u8a00\u9650\u5236\uff0c\u4e0d\u5f97\u4e0d\u901a\u8fc7\u4e00\u4e2awrap\u51fd\u6570\u8c03\u7528\u8fdb\u884c\u64cd\u4f5c\u3002\u800cHybridCLR\u7531\u4e8e\u7528C++\u5b9e\u73b0\uff0c\u80fd\u76f4\u63a5\u8bbf\u95ee\n\u5bf9\u8c61\u7684\u5185\u5b58\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u524d\u8ba1\u7b97\u5b57\u6bb5\u5728\u5bf9\u8c61\u4e2d\u7684\u504f\u79fb\uff0c\u76f4\u63a5 ",(0,c.kt)("inlineCode",{parentName:"p"},"*(int32_t*)(obj + offset) = b;")," \u5c31\u80fd\u5b8c\u6210\u8fd9\u4e2a\u8bbf\u95ee\u64cd\u4f5c\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6570\u51e0\u5341\u500d\u5730\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5"},"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\uff0c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5"),(0,c.kt)("p",null,"\u7531\u4e8eCLI\u7684\u89c4\u8303\u9650\u5236\uff0c\u5728C#\u4e2d\u5f15\u7528\u53ea\u80fd\u653e\u5230\u6258\u7ba1\u6808\u4e0a\uff0c\u800c\u4e0d\u80fd\u5b58\u653e\u5230\u89e3\u91ca\u5668\u6808\u4e0a(\u56e0\u4e3a\u662f\u5806\u5185\u5b58)\u3002\u4e3a\u4e86\u5904\u7406 ",(0,c.kt)("inlineCode",{parentName:"p"},"ref int a = ref b; a = 5;")," \u4e4b\u7c7b\u7684\u4ee3\u7801\uff0c\u4e0d\u5f97\u4e0d\u4f7f\u7528\u975e\u5e38\u590d\u6742\u7684\n\u6280\u5de7\u95f4\u63a5\u5730\u7ef4\u62a4\u8fd9\u4e2a\u5f15\u7528\u3002\u800cHybridCLR\u4f7f\u7528c++\u5b9e\u73b0\uff0c\u53ef\u4ee5\u76f4\u63a5\u4fdd\u5b58\u548c\u64cd\u4f5c\u8fd9\u4e9b\u6570\u636e\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6548\u7387\u6781\u5927\u63d0\u5347\u3002"),(0,c.kt)("h3",{id:"\u5143\u6570\u636e\u7edf\u4e00\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f"},"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\uff0c\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f"),(0,c.kt)("p",null,"\u7531\u4e8e\u5143\u6570\u636e\u7edf\u4e00\uff0c\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528il2cpp::vm::Object::New\u6765\u521b\u5efa\u5bf9\u8c61\uff0c\u6548\u7387\u8ddf\u539f\u751f\u975e\u5e38\u63a5\u8fd1\uff0c\u800c\u4e14\u5185\u5b58\u5b8c\u5168\u76f8\u540c\u3002\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u4f7f\u7528\u5047\u7c7b\u578b\uff0c\n\u5bf9\u8c61\u81c3\u80bf\uff0c\u521b\u5efa\u5bf9\u8c61\u7684\u8fc7\u7a0b\u66f4\u91cd\u5ea6\u590d\u6742\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6781\u5927\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u5143\u6570\u636e\u7edf\u4e00\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\u5e76\u4e14\u6ca1\u6709pinvoke\u548creservepinvoke\u7684\u989d\u5916\u5f00\u9500"},"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\uff0c\u5e76\u4e14\u6ca1\u6709PInvoke\u548cReservePInvoke\u7684\u989d\u5916\u5f00\u9500"),(0,c.kt)("p",null,"HybridCLR\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528 \u7531IL\u51fd\u6570\u7ffb\u8bd1\u540e\u7684c++\u51fd\u6570\uff0c\u6ca1\u6709\u4efb\u4f55\u4e2d\u95f4\u73af\u8282\uff0c\u800cILRuntime\u548cxlua\u9700\u8981\u5404\u79cd\u590d\u6742\u7684\u5224\u5b9a\u548c\u53c2\u6570\u8f6c\u6362\u4ee5\u53ca\u4e0eC#\u4e4b\u95f4PInvoke\u548cReservePInvoke\u5e26\u6765\u989d\u5916\u5927\u91cf\u5f00\u9500\u3002"),(0,c.kt)("p",null,"HybridCLR\u4e0eil2cpp AOT\u90e8\u5206\u4ea4\u4e92\u6781\u5176\u8f7b\u91cf\u9ad8\u6548\u3002\u4e0d\u518d\u6709\u6027\u80fd\u95ee\u9898\u3002"),(0,c.kt)("h3",{id:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570"},"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570"),(0,c.kt)("p",null,"\u50cf ",(0,c.kt)("inlineCode",{parentName:"p"},"new Vector{2,3,4}"),"\u3001",(0,c.kt)("inlineCode",{parentName:"p"},"new string()"),"\u3001",(0,c.kt)("inlineCode",{parentName:"p"},"Nullable.Value")," \u7b49\u7b49\u7684\u5e38\u7528\u64cd\u4f5c\uff0c\u6211\u4eec\u76f4\u63a5\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u6307\u4ee4\uff0c\u8fd0\u884c\u5f00\u9500\u751a\u81f3\u4f4e\u4e8eAOT\u7684\u5b9e\u73b0\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6570\u51e0\u5341\u500d\u5730\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c"},"\u4e25\u683c\u9075\u5faa\u89c4\u8303\uff0c\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c"),(0,c.kt)("p",null,"\u7531\u4e8e\u7cbe\u5fc3\u7684\u8bbe\u8ba1\u548c\u4f18\u5316\uff0cHybridCLR\u5c3d\u91cf\u89c4\u907f\u5404\u79cd\u4e0d\u5fc5\u8981\u7684\u5f00\u9500\u3002\u4f8b\u5982\u6267\u884c\u8fc7\u7a0b\u7684GC\u4e0e\u539f\u751fil2cpp\u53camono\u5b8c\u5168\u76f8\u540c\u3002"),(0,c.kt)("h3",{id:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f"},"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f"),(0,c.kt)("p",null,"\u5176\u4ed6\u7684\u4f18\u5316\u6280\u672f"),(0,c.kt)("h2",{id:"\u9644\u5f55\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801"},"\u9644\u5f55\uff1a\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801"),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c-vs-xlua"},"\u5546\u4e1a\u5316\u7248\u672c vs xlua"),(0,c.kt)(T,{mdxType:"Tabs"},(0,c.kt)(O,{value:"HybridCLR",label:"HybridCLR",default:!0,mdxType:"TabItem"},(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},'\n public class AOTForCallFunctions\n {\n public void Empty()\n {\n\n }\n\n public int ReturnInt()\n {\n return 0;\n }\n\n public Vector3 ReturnVector3()\n {\n return default;\n }\n\n public void Func1(int a, int b, int c, int d, int e)\n {\n }\n\n public void Func2(Vector3 a, Vector3 b, Vector3 c, Vector3 d)\n {\n\n }\n }\n\npublic class BenchmarkTestCases\n{\n public const int kTestCount = 10000;\n\n /// \n /// \u6d4b\u8bd5\u7b80\u5355\u6570\u503c\u8ba1\u7b97\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public int BinOpAdd(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n /// \n /// \u6d4b\u8bd5\u590d\u6742\u6570\u503c\u8ba1\u7b97\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public void BinOpComplex(int cnt)\n {\n int total = 0;\n for (int i = 0; i < cnt; i++)\n {\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n }\n }\n\n /// \n /// \u6d4b\u8bd5\u6570\u7ec4\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public int ArrayOp(int cnt)\n {\n var arr = new int[100];\n int k = cnt % 100 + 1;\n for (int i = 0; i < cnt; i++)\n {\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n }\n return arr[0];\n }\n\n /// \n /// \u6d4b\u8bd5Vector3\u64cd\u4f5c\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int VectorOp1(int cnt)\n {\n float m = 0f;\n var v = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n }\n return (int)m;\n }\n\n [Benchmark]\n [Params(kTestCount * 10)]\n public int VectorOp2(int cnt)\n {\n Vector3 c = default;\n var a = new Vector3(1, 2, 3);\n var b = new Vector3(4, 5, 6);\n for (var i = 0; i < cnt; i++)\n {\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n }\n return (int)c.x;\n }\n\n /// \n /// \u6d4b\u8bd5Quaternion\u64cd\u4f5c\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int QuaternionOp(int cnt)\n {\n for (var i = 0; i < cnt; i++)\n {\n var q1 = Quaternion.Euler(i, i, i);\n var q2 = Quaternion.Slerp(Quaternion.identity, q1, 0.5f);\n var q3 = q2.normalized;\n var q4 = Quaternion.Lerp(q3, q2, 0.5f);\n }\n return 0;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u9759\u6001\u6210\u5458\u51fd\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTStaticMethod(int cnt)\n {\n float t = 0f;\n for (var i = 0; i < cnt; i++)\n {\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n }\n\n return (int)t;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570\u4f20int\u7c7b\u578b\u53c2\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodParamInt(int cnt)\n {\n var o = new AOTForCallFunctions();\n int x = 0;\n for (var i = 0; i < cnt; i++)\n {\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n }\n return x + 1;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570\u4f20Vector3\u7c7b\u578b\u53c2\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodParamVector3(int cnt)\n {\n var o = new AOTForCallFunctions();\n Vector3 a = Vector3.one;\n Vector3 b = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n }\n return 0;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570,\u8fd4\u56de\u503c\u4e3aint\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodReturn1(int cnt)\n {\n var o = new AOTForCallFunctions();\n int x = 0;\n for (var i = 0; i < cnt; i++)\n {\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n }\n return x + 1;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570,\u8fd4\u56de\u503c\u4e3aVector3\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodReturnVector3(int cnt)\n {\n var o = new AOTForCallFunctions();\n Vector3 x = default;\n for (var i = 0; i < cnt; i++)\n {\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n }\n return (int)x.x;\n }\n\n /// \n /// \u6d4b\u8bd5GameObject\u521b\u5efa\u548c\u9500\u6bc1\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount)]\n public void GameObjectCreateAndDestroy(int cnt)\n {\n for (var i = 0; i < cnt; i++)\n {\n var go = new GameObject("t");\n Object.Destroy(go);\n }\n }\n\n /// \n /// \u6d4b\u8bd5 Transform\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public void SetTransformPosition(int cnt)\n {\n var go = new GameObject();\n Vector3 v = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n }\n Object.Destroy(go);\n }\n}\n'))),(0,c.kt)(O,{value:"xlua",label:"xlua",mdxType:"TabItem"},(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-lua"},'\nfunction BinOpAdd(cnt)\n local a = 1;\n local b = cnt;\n local c = cnt;\n local d = cnt;\n\n for i = 1, cnt do\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n end\n return a + b + c + d\nend\n\nfunction BinOpComplex(cnt)\n local total = 0;\n for i = 1, cnt do \n \n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n end\n return total\nend\n\nfunction ArrayOp(cnt)\n local arr = {}\n for i = 0, 100 do \n arr[i] = 0\n end\n local k = cnt % 100 + 1;\n\n for i = 1, cnt do\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n end\n return arr[0]\nend\n\nfunction VectorOp1(cnt)\n local m = 0\n local v = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n end\n return m;\nend\n\nfunction VectorOp2(cnt)\n local c = CS.UnityEngine.Vector3.one;\n local a = CS.UnityEngine.Vector3(1, 2, 3);\n local b = CS.UnityEngine.Vector3(4, 5, 6);\n for i = 1, cnt do\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n end\n return c.x\nend\n\nlocal Quaternion = CS.UnityEngine.Quaternion\n\nfunction QuaternionOp(cnt)\n for i = 1, cnt do\n local q1 = Quaternion.Euler(i, i, i);\n local q2 = Quaternion.Slerp(Quaternion.identity, q1, 0.5);\n local q3 = q2.normalized;\n local q4 = Quaternion.Lerp(q3, q2, 0.5);\n end\n return 0;\nend\n\nfunction CallAOTStaticMethod(cnt)\n local Time = CS.UnityEngine.Time\n local t \n for i = 1, cnt do \n t = Time.deltaTime\n end\n return t\nend\n\nfunction CallAOTInstanceMethodParamInt(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n for i = 1, cnt do\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n \n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n end\nend\n\nfunction CallAOTInstanceMethodParamVector3(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local a = CS.UnityEngine.Vector3.one;\n local b = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n end\nend\n\nfunction CallAOTInstanceMethodReturn1(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local x = 0;\n for i = 1, cnt do \n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n end\n return x + 1;\nend\n\nfunction CallAOTInstanceMethodReturnVector3(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local x \n for i = 1, cnt do \n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n end\n return x;\nend\n\nfunction GameObjectCreateAndDestroy(cnt)\n for i = 1, cnt do \n local go = CS.UnityEngine.GameObject("t")\n CS.UnityEngine.Object.Destroy(go)\n end\nend\n\nfunction SetTransformPosition(cnt)\n local go = CS.UnityEngine.GameObject("t")\n local v = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do \n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n end\n CS.UnityEngine.Object.Destroy(go)\nend\n\n')))),(0,c.kt)("h3",{id:"aot-vs-\u793e\u533a\u7248-vs-\u5546\u4e1a\u5316\u7248\u672c-vs-mono"},"AOT vs \u793e\u533a\u7248 vs \u5546\u4e1a\u5316\u7248\u672c vs Mono"),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},"public class LongArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public long add_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n \n for(long i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long add_2(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n long e = 3;\n\n for (long i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long mul_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n\n for (long i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long mul_2(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n long e = 3;\n\n for (long i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long div_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n\n for (long i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n\n\n public class IntArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public int add_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n \n for(int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int add_2(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n int e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int mul_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int mul_2(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n int e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int div_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\npublic class FloatArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public float add_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n \n for(int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float add_2(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n float e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float mul_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float mul_2(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n float e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float div_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\npublic class DoubleArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public double add_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double add_2(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n double e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double mul_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double mul_2(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n double e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double div_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\n")))}w.isMDXComponent=!0},1024:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/full_hybridclr_div_xlua-143177a79ae1387193eb9ccfb6b3cd86.jpg"},7860:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/full_hybridclr_vs_xlua-9d0605aaf28538ae1823e04d7723bd70.jpg"},1332:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/hybridclr_div_mono-1a9330b1df4890c97c1c78d1ad98095f.png"},7355:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/hybridclr_vs_mono-ee3f541d15750f28d09fb5a8c752b5cb.png"},9446:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_business_vs_aot_div_aot-5f9d5d52b2dd791d61ef588be2f6e1e4.jpg"},5108:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_datas-c7e623fb0136033a877678da6376da41.jpg"},9999:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_dialog_business_div_aot-44e9b55446d50bceb8b332085d55387f.jpg"},9672:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_dialog_business_div_community-e02edc41129f5859b800a362c8b91bc8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/3d291b3d.9139634b.js b/assets/js/3d291b3d.9139634b.js deleted file mode 100644 index 66a8a9c70..000000000 --- a/assets/js/3d291b3d.9139634b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[9822],{3905:(n,a,e)=>{e.d(a,{Zo:()=>b,kt:()=>p});var t=e(7294);function r(n,a,e){return a in n?Object.defineProperty(n,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[a]=e,n}function c(n,a){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(n);a&&(t=t.filter((function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable}))),e.push.apply(e,t)}return e}function i(n){for(var a=1;a=0||(r[e]=n[e]);return r}(n,a);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(n);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(n,e)&&(r[e]=n[e])}return r}var d=t.createContext({}),l=function(n){var a=t.useContext(d),e=a;return n&&(e="function"==typeof n?n(a):i(i({},a),n)),e},b=function(n){var a=l(n.components);return t.createElement(d.Provider,{value:a},n.children)},u="mdxType",s={inlineCode:"code",wrapper:function(n){var a=n.children;return t.createElement(t.Fragment,{},a)}},m=t.forwardRef((function(n,a){var e=n.components,r=n.mdxType,c=n.originalType,d=n.parentName,b=o(n,["components","mdxType","originalType","parentName"]),u=l(e),m=r,p=u["".concat(d,".").concat(m)]||u[m]||s[m]||c;return e?t.createElement(p,i(i({ref:a},b),{},{components:e})):t.createElement(p,i({ref:a},b))}));function p(n,a){var e=arguments,r=a&&a.mdxType;if("string"==typeof n||r){var c=e.length,i=new Array(c);i[0]=m;var o={};for(var d in a)hasOwnProperty.call(a,d)&&(o[d]=a[d]);o.originalType=n,o[u]="string"==typeof n?n:r,i[1]=o;for(var l=2;l{e.r(a),e.d(a,{assets:()=>F,contentTitle:()=>V,default:()=>w,frontMatter:()=>R,metadata:()=>I,toc:()=>P});var t=e(7462),r=e(7294),c=e(3905),i=e(6010),o=e(2466),d=e(6550),l=e(1980),b=e(7392),u=e(12);function s(n){return function(n){return r.Children.map(n,(n=>{if(!n||(0,r.isValidElement)(n)&&function(n){const{props:a}=n;return!!a&&"object"==typeof a&&"value"in a}(n))return n;throw new Error(`Docusaurus error: Bad child <${"string"==typeof n.type?n.type:n.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(n).map((n=>{let{props:{value:a,label:e,attributes:t,default:r}}=n;return{value:a,label:e,attributes:t,default:r}}))}function m(n){const{values:a,children:e}=n;return(0,r.useMemo)((()=>{const n=a??s(e);return function(n){const a=(0,b.l)(n,((n,a)=>n.value===a.value));if(a.length>0)throw new Error(`Docusaurus error: Duplicate values "${a.map((n=>n.value)).join(", ")}" found in . Every value needs to be unique.`)}(n),n}),[a,e])}function p(n){let{value:a,tabValues:e}=n;return e.some((n=>n.value===a))}function v(n){let{queryString:a=!1,groupId:e}=n;const t=(0,d.k6)(),c=function(n){let{queryString:a=!1,groupId:e}=n;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!e)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return e??null}({queryString:a,groupId:e});return[(0,l._X)(c),(0,r.useCallback)((n=>{if(!c)return;const a=new URLSearchParams(t.location.search);a.set(c,n),t.replace({...t.location,search:a.toString()})}),[c,t])]}function f(n){const{defaultValue:a,queryString:e=!1,groupId:t}=n,c=m(n),[i,o]=(0,r.useState)((()=>function(n){let{defaultValue:a,tabValues:e}=n;if(0===e.length)throw new Error("Docusaurus error: the component requires at least one children component");if(a){if(!p({value:a,tabValues:e}))throw new Error(`Docusaurus error: The has a defaultValue "${a}" but none of its children has the corresponding value. Available values are: ${e.map((n=>n.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return a}const t=e.find((n=>n.default))??e[0];if(!t)throw new Error("Unexpected error: 0 tabValues");return t.value}({defaultValue:a,tabValues:c}))),[d,l]=v({queryString:e,groupId:t}),[b,s]=function(n){let{groupId:a}=n;const e=function(n){return n?`docusaurus.tab.${n}`:null}(a),[t,c]=(0,u.Nk)(e);return[t,(0,r.useCallback)((n=>{e&&c.set(n)}),[e,c])]}({groupId:t}),f=(()=>{const n=d??b;return p({value:n,tabValues:c})?n:null})();(0,r.useLayoutEffect)((()=>{f&&o(f)}),[f]);return{selectedValue:i,selectValue:(0,r.useCallback)((n=>{if(!p({value:n,tabValues:c}))throw new Error(`Can't select invalid tab value=${n}`);o(n),l(n),s(n)}),[l,s,c]),tabValues:c}}var k=e(2389);const g={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function h(n){let{className:a,block:e,selectedValue:c,selectValue:d,tabValues:l}=n;const b=[],{blockElementScrollPositionUntilNextRender:u}=(0,o.o5)(),s=n=>{const a=n.currentTarget,e=b.indexOf(a),t=l[e].value;t!==c&&(u(a),d(t))},m=n=>{let a=null;switch(n.key){case"Enter":s(n);break;case"ArrowRight":{const e=b.indexOf(n.currentTarget)+1;a=b[e]??b[0];break}case"ArrowLeft":{const e=b.indexOf(n.currentTarget)-1;a=b[e]??b[b.length-1];break}}a?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.Z)("tabs",{"tabs--block":e},a)},l.map((n=>{let{value:a,label:e,attributes:o}=n;return r.createElement("li",(0,t.Z)({role:"tab",tabIndex:c===a?0:-1,"aria-selected":c===a,key:a,ref:n=>b.push(n),onKeyDown:m,onClick:s},o,{className:(0,i.Z)("tabs__item",g.tabItem,o?.className,{"tabs__item--active":c===a})}),e??a)})))}function y(n){let{lazy:a,children:e,selectedValue:t}=n;const c=(Array.isArray(e)?e:[e]).filter(Boolean);if(a){const n=c.find((n=>n.props.value===t));return n?(0,r.cloneElement)(n,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},c.map(((n,a)=>(0,r.cloneElement)(n,{key:a,hidden:n.props.value!==t}))))}function C(n){const a=f(n);return r.createElement("div",{className:(0,i.Z)("tabs-container",g.tabList)},r.createElement(h,(0,t.Z)({},n,a)),r.createElement(y,(0,t.Z)({},n,a)))}function T(n){const a=(0,k.Z)();return r.createElement(C,(0,t.Z)({key:String(a)},n))}const x={tabItem:"tabItem_Ymn6"};function O(n){let{children:a,hidden:e,className:t}=n;return r.createElement("div",{role:"tabpanel",className:(0,i.Z)(x.tabItem,t),hidden:e},a)}const R={},V="\u6267\u884c\u6027\u80fd",I={unversionedId:"basic/performance",id:"basic/performance",title:"\u6267\u884c\u6027\u80fd",description:"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002",source:"@site/docs/basic/performance.md",sourceDirName:"basic",slug:"/basic/performance",permalink:"/docs/basic/performance",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5185\u5b58\u4e0eGC",permalink:"/docs/basic/memory"},next:{title:"\u4e0d\u652f\u6301\u7684\u7279\u6027",permalink:"/docs/basic/notsupportedfeatures"}},F={},P=[{value:"\u6d4b\u8bd5\u62a5\u544a",id:"\u6d4b\u8bd5\u62a5\u544a",level:2},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs Mono\u8017\u65f6",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-mono\u8017\u65f6",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/Mono \u6027\u80fd\u500d\u7387",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cmono-\u6027\u80fd\u500d\u7387",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs xlua\u8017\u65f6",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-xlua\u8017\u65f6",level:3},{value:"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/xlua \u6027\u80fd\u500d\u7387",id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cxlua-\u6027\u80fd\u500d\u7387",level:3},{value:"AOT\u8017\u65f6 vs \u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"aot\u8017\u65f6-vs-\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6aot\u8017\u65f6--\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd/\u793e\u533a\u7248\u672c\u6027\u80fd \uff08\u8d8a\u5927\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u793e\u533a\u7248\u672c\u6027\u80fd-\u8d8a\u5927\u8d8a\u597d",level:3},{value:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09",id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d",level:3},{value:"\u539f\u7406",id:"\u539f\u7406",level:2},{value:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93",id:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93",level:3},{value:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6",id:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6",level:3},{value:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808",id:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808",level:3},{value:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316",id:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316",level:3},{value:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e",id:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e",level:3},{value:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548",id:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548",level:3},{value:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\uff0c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5",id:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5",level:3},{value:"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\uff0c\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f",id:"\u5143\u6570\u636e\u7edf\u4e00\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f",level:3},{value:"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\uff0c\u5e76\u4e14\u6ca1\u6709PInvoke\u548cReservePInvoke\u7684\u989d\u5916\u5f00\u9500",id:"\u5143\u6570\u636e\u7edf\u4e00\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\u5e76\u4e14\u6ca1\u6709pinvoke\u548creservepinvoke\u7684\u989d\u5916\u5f00\u9500",level:3},{value:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570",id:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570",level:3},{value:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\uff0c\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c",id:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c",level:3},{value:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f",id:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f",level:3},{value:"\u9644\u5f55\uff1a\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801",id:"\u9644\u5f55\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801",level:2},{value:"\u5546\u4e1a\u5316\u7248\u672c vs xlua",id:"\u5546\u4e1a\u5316\u7248\u672c-vs-xlua",level:3},{value:"AOT vs \u793e\u533a\u7248 vs \u5546\u4e1a\u5316\u7248\u672c vs Mono",id:"aot-vs-\u793e\u533a\u7248-vs-\u5546\u4e1a\u5316\u7248\u672c-vs-mono",level:3}],A={toc:P},_="wrapper";function w(n){let{components:a,...r}=n;return(0,c.kt)(_,(0,t.Z)({},A,r,{components:a,mdxType:"MDXLayout"}),(0,c.kt)("h1",{id:"\u6267\u884c\u6027\u80fd"},"\u6267\u884c\u6027\u80fd"),(0,c.kt)("p",null,"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002"),(0,c.kt)("h2",{id:"\u6d4b\u8bd5\u62a5\u544a"},"\u6d4b\u8bd5\u62a5\u544a"),(0,c.kt)("admonition",{type:"tip"},(0,c.kt)("p",{parentName:"admonition"},"HybridCLR\u662f\u76ee\u524d\u6027\u80fd\u6700\u9ad8\u7684CLR\u89e3\u91ca\u5668\u5b9e\u73b0\uff0c\u4e5f\u662f\u5f53\u524d\u6240\u6709\u70ed\u66f4\u65b0\u65b9\u6848\u4e2d\u6027\u80fd\u6700\u4f18\u5f02\u7684\uff0c\u7efc\u5408\u6027\u80fd\u8d85\u51fa\u5176\u4ed6\u65b9\u6848\u4e00\u4e2a\u6570\u91cf\u7ea7\u4ee5\u4e0a\u3002")),(0,c.kt)("p",null,"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u7684\u7efc\u5408\u6027\u80fd\u5927\u5e45\u4f18\u4e8eMono\u7684mint\u5b9e\u73b0\uff0c\u6570\u503c\u8ba1\u7b97\u6307\u4ee4\u6027\u80fd\u662fMono\u7684140%-330%\u4e4b\u95f4\u3002"),(0,c.kt)("p",null,"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u7684\u6027\u80fd",(0,c.kt)("strong",{parentName:"p"},"\u5168\u9762\u78be\u538b"),"\u4e86xlua\u65b9\u6848\uff0c\u6570\u503c\u8ba1\u7b97\u6307\u4ee4\u6027\u80fd\u662fxlua\u7684651%-720%\uff0c\u5176\u4ed6\u65b9\u9762\u6570\u5341\u500d\u751a\u81f3\u767e\u500d\u4ee5\u4e0a\u5feb\u4e8exlua\u65b9\u6848\u3002"),(0,c.kt)("p",null,"\u793e\u533a\u7248\u672c\u7684HybridCLR\u9664\u4e86",(0,c.kt)("strong",{parentName:"p"},"\u6570\u503c\u8ba1\u7b97"),"\u8ddfAOT\u6709\u8f83\u660e\u663e\u5dee\u8ddd\u5916\uff0c\u5176\u4ed6\u65b9\u9762\u5dee\u8ddd\u4e0d\u5927\u3002\u56e0\u6b64\u5bf9\u4e8e\u5927\u591a\u6570\u9879\u76ee\u6765\u8bf4\uff0c\u6e38\u620f\u7efc\u5408\u6027\u80fd\u8ddf\u5168\u539f\u751f\u7248\u672c\u5dee\u8ddd\u4e0d\u5927\u3002"),(0,c.kt)("p",null,(0,c.kt)("strong",{parentName:"p"},"\u5546\u4e1a\u7248\u672c"),"\u7684HybridCLR\u5927\u5e45\u4f18\u5316\u4e86\u6570\u503c\u8ba1\u7b97\u6027\u80fd\uff0c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684280%-735%\uff0c\u5bf9\u6027\u80fd\u6709\u4e25\u82db\u8981\u6c42\u7684\u5f00\u53d1\u8005\u53ef\u4ee5\u8054\u7cfb\u6211\u4eec",(0,c.kt)("a",{parentName:"p",href:"/docs/business/intro"},"\u5546\u4e1a\u5316\u670d\u52a1"),"\u3002"),(0,c.kt)("p",null,"\u4ee5\u4e0b\u662fOnePlus 9R ArmV8 \u5b9e\u673a\u6d4b\u8bd5\u62a5\u544a\uff0c\u6d4b\u8bd5\u4ee3\u7801\u9644\u5f55\u6700\u540e\u3002"),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-mono\u8017\u65f6"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs Mono\u8017\u65f6"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(7355).Z,width:"880",height:"478"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cmono-\u6027\u80fd\u500d\u7387"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/Mono \u6027\u80fd\u500d\u7387"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(1332).Z,width:"915",height:"551"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-xlua\u8017\u65f6"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs xlua\u8017\u65f6"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(7860).Z,width:"972",height:"558"})),(0,c.kt)("h3",{id:"hybridclr\u5546\u4e1a\u5316\u7248\u672cxlua-\u6027\u80fd\u500d\u7387"},"HybridCLR\u5546\u4e1a\u5316\u7248\u672c/xlua \u6027\u80fd\u500d\u7387"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(1024).Z,width:"972",height:"527"})),(0,c.kt)("h3",{id:"aot\u8017\u65f6-vs-\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d"},"AOT\u8017\u65f6 vs \u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(5108).Z,width:"1361",height:"628"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u8017\u65f6-vs-\u793e\u533a\u7248\u672c\u8017\u65f6aot\u8017\u65f6--\u8d8a\u5c0f\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 vs \u793e\u533a\u7248\u672c\u8017\u65f6/AOT\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"AOT\u7248\u672c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"4.1 - 90"),"\u500d\uff0c\u662f\u5546\u4e1a\u5316\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"1.30 - 12.9"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9446).Z,width:"1283",height:"647"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u793e\u533a\u7248\u672c\u6027\u80fd-\u8d8a\u5927\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd/\u793e\u533a\u7248\u672c\u6027\u80fd \uff08\u8d8a\u5927\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"\u5546\u4e1a\u5316\u7248\u672c\u6027\u80fd\u662f\u793e\u533a\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"2.87-7.35"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9672).Z,width:"1280",height:"527"})),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6aot\u7248\u672c\u8017\u65f6-\u8d8a\u5c0f\u8d8a\u597d"},"\u5546\u4e1a\u5316\u7248\u672c\u8017\u65f6/AOT\u7248\u672c\u8017\u65f6 \uff08\u8d8a\u5c0f\u8d8a\u597d\uff09"),(0,c.kt)("p",null,"AOT\u7248\u672c\u6027\u80fd\u662f\u662f\u5546\u4e1a\u5316\u7248\u672c\u7684",(0,c.kt)("inlineCode",{parentName:"p"},"1.30 - 12.9"),"\u500d\u3002"),(0,c.kt)("p",null,(0,c.kt)("img",{alt:"data",src:e(9999).Z,width:"1280",height:"640"})),(0,c.kt)("h2",{id:"\u539f\u7406"},"\u539f\u7406"),(0,c.kt)("p",null,"\u7531\u4e8eHybridCLR\u7528C++\u5b9e\u73b0\uff0c\u5e76\u4e14\u76f4\u63a5\u4e0eil2cpp\u8fd0\u884c\u65f6\u65e0\u7f1d\u96c6\u6210\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd0\u884c\u65f6\u5e95\u5c42\u7684\u6570\u636e\u548c\u5404\u79cd\u63a5\u53e3\u3002\u76f8\u6bd4\u4e0eILRuntime\u548cXlua\uff0c\u7701\u53bbC#\u5c42\u7684\u989d\u5916\u6210\u672c\uff0c\u4ea4\u4e92\u6210\u672c\u6781\u5927\u964d\u4f4e\u3002"),(0,c.kt)("p",null,"HybridCLR\u6027\u80fd\u4f18\u79c0\u4e3b\u8981\u6765\u81ea\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,c.kt)("h3",{id:"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93"},"\u91cd\u5199\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\u89e3\u6790\u5e93"),(0,c.kt)("p",null,"\u6211\u4eec\u6ca1\u6709\u4f7f\u7528\u73b0\u6210\u7684metadata\u89e3\u6790\u5e93\uff0c\u6309\u7167HybridCLR\u9700\u6c42\u5b9e\u73b0\u4e86\u4e00\u4e2aC++\u7248\u672c\u7684\u7cbe\u7b80\u9ad8\u6548\u7684metadata\n\u89e3\u6790\u5e93\u3002\u800c\u5176\u4ed6C#\u70ed\u66f4\u65b0\u6216\u8005hotfix\u65b9\u6848\u5747\u7528\u4e86Cecil\u4e4b\u7c7b\u7684C#\u5e93\uff0c\u5185\u5b58\u548c\u52a0\u8f7d\u6548\u7387\u5dee\u8ddd\u5de8\u5927\uff01"),(0,c.kt)("h3",{id:"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6"},"\u4f7f\u7528\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6"),(0,c.kt)("p",null,"\u539f\u59cbIL\u5b57\u8282\u7801\u662f\u57fa\u4e8e\u6808\u7684\u6307\u4ee4\u96c6\uff0cHybridCLR\u5c06\u5176\u8f6c\u6210\u5bc4\u5b58\u5668\u6307\u4ee4\u96c6\uff0c\u51cf\u5c11\u4e86\u6808\u7ef4\u62a4\u5f00\u9500\u3002"),(0,c.kt)("h3",{id:"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808"},"\u76f4\u63a5\u8bbf\u95ee\u6570\u636e\u6808\u548c\u6267\u884c\u6808"),(0,c.kt)("p",null,"\u6808\u64cd\u4f5c\u662fCLI\u4e2d\u6700\u5e38\u89c1\u7684\u64cd\u4f5c\uff0c\u51e0\u4e4e\u6240\u6709\u6307\u4ee4\u90fd\u4f1a\u6d89\u53ca\u5230\u6808\u64cd\u4f5c\u3002\u7531\u4e8e\u89e3\u91ca\u5668\u6808\u662f\u81ea\u5df1\u7ef4\u62a4\u7684\u5806\u5185\u5b58\uff0cCLI\u5bf9struct\u7684\u6307\u9488\u64cd\u4f5c\u6709\u9650\u5236\uff0c\u5982\u679c\u7528C#\u5b9e\u73b0\u89e3\u91ca\u5668\uff0c\n\u5219\u65e0\u6cd5\u76f4\u63a5\u5728\u89e3\u91ca\u5668\u6808\u4e0a\u64cd\u4f5c\u6570\u636e\u7c7b\u578b\uff0c\u4e0d\u5f97\u4e0d\u4f7f\u7528\u4f7f\u7528\u5404\u79cd\u6280\u5de7\u95f4\u63a5\u8fbe\u5230\u8fd9\u4e2a\u76ee\u7684\u3002\u800cHybridCLR\u662fC++\u5b9e\u73b0\uff0c\u53ef\u4ee5\u76f4\u63a5\u64cd\u4f5c\u3002"),(0,c.kt)("p",null,"\u64cd\u4f5cstruct\u7c7b\u578b\u6548\u7387\u76f8\u6bd4\u5176\u4ed6\u89e3\u91ca\u5668\u6709\u6570\u500d\u5230\u6570\u5341\u500d\u63d0\u5347\u3002"),(0,c.kt)("h3",{id:"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316"},"\u6307\u4ee4\u9759\u6001\u7279\u4f8b\u5316"),(0,c.kt)("p",null,"\u6709\u4e00\u4e9b\u6307\u4ee4\u5982",(0,c.kt)("inlineCode",{parentName:"p"},"add"),"\u6307\u4ee4\u662f\u591a\u529f\u80fd\u6307\u4ee4\uff0c\u6839\u636e\u5f53\u524d\u6808\u4e0a\u7684\u64cd\u4f5c\u6570\u7c7b\u578b\u6765\u51b3\u5b9a\u6700\u7ec8\u7684\u64cd\u4f5c\u3002HybridCLR\u4e3a\u5b83\u8bbe\u8ba1\u4e86",(0,c.kt)("inlineCode",{parentName:"p"},"add_i4\u3001add_i8\u3001add_r4\u3001add_r8"),"\u8fd94\u6761\u6307\u4ee4\uff0c\u7ffb\u8bd1\u6307\u4ee4\u65f6\n\u8ba1\u7b97\u51fa\u5f53\u524d\u5806\u6808\u7684\u6570\u636e\u7c7b\u578b\uff0c\u7ffb\u8bd1\u4e3a\u5bf9\u5e94\u7684\u7279\u4f8b\u5316\u5316\u6307\u4ee4\u3002\u8282\u7701\u4e86\u8fd0\u884c\u65f6\u5224\u65ad\u7c7b\u578b\u7684\u5f00\u9500\uff0c\u4e5f\u8282\u7701\u4e86\u8fd0\u884c\u65f6\u7ef4\u62a4\u6570\u636e\u7c7b\u578b\u7684\u5f00\u9500\u3002"),(0,c.kt)("h3",{id:"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e"},"\u63d0\u524d\u8ba1\u7b97\u597d\u9700\u8981resolve\u7684\u8fd0\u884c\u65f6\u5143\u6570\u636e"),(0,c.kt)("p",null,"\u6709\u4e9b\u6307\u4ee4\u5982ldtoken\u3001ldstr\u4e4b\u7c7b\u9700\u8981\u8fd0\u884c\u65f6\u5c06\u6307\u4ee4\u4e2d\u7684\u6570\u636e\u8f6c\u6362\u4e3a\u5b9e\u9645\u5730\u8fd0\u884c\u65f6\u6570\u636e\u3002HybridCLR\u5728\u7ffb\u8bd1\u65f6\u76f4\u63a5\u8ba1\u7b97\u51fa\u5bf9\u5e94\u7684\u8fd0\u884c\u65f6\u6570\u636e\uff0c\u4fdd\u5b58\u5230\u8f6c\u6362\u540e\u7684\u6307\u4ee4\u4e2d\uff0c\n\u6781\u5927\u63d0\u5347\u4e86\u6027\u80fd"),(0,c.kt)("h3",{id:"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548"},"\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u5b9e\u73b0\u7b80\u5355\u9ad8\u6548"),(0,c.kt)("p",null,"\u50cf ",(0,c.kt)("inlineCode",{parentName:"p"},"v.x = b;")," \u8fd9\u79cd\u5bf9\u8c61\u6210\u5458\u8bbf\u95ee\u6307\u4ee4\u975e\u5e38\u5e38\u89c1\uff0c\u50cfILRuntime\u548cxlua\u7531\u4e8eC#\u8bed\u8a00\u9650\u5236\uff0c\u4e0d\u5f97\u4e0d\u901a\u8fc7\u4e00\u4e2awrap\u51fd\u6570\u8c03\u7528\u8fdb\u884c\u64cd\u4f5c\u3002\u800cHybridCLR\u7531\u4e8e\u7528C++\u5b9e\u73b0\uff0c\u80fd\u76f4\u63a5\u8bbf\u95ee\n\u5bf9\u8c61\u7684\u5185\u5b58\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u524d\u8ba1\u7b97\u5b57\u6bb5\u5728\u5bf9\u8c61\u4e2d\u7684\u504f\u79fb\uff0c\u76f4\u63a5 ",(0,c.kt)("inlineCode",{parentName:"p"},"*(int32_t*)(obj + offset) = b;")," \u5c31\u80fd\u5b8c\u6210\u8fd9\u4e2a\u8bbf\u95ee\u64cd\u4f5c\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6570\u51e0\u5341\u500d\u5730\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5"},"\u76f4\u63a5\u652f\u6301\u5f15\u7528\u4e0e\u6307\u9488\u64cd\u4f5c\uff0c\u65e0\u9700\u901a\u8fc7\u95f4\u63a5\u65b9\u6cd5"),(0,c.kt)("p",null,"\u7531\u4e8eCLI\u7684\u89c4\u8303\u9650\u5236\uff0c\u5728C#\u4e2d\u5f15\u7528\u53ea\u80fd\u653e\u5230\u6258\u7ba1\u6808\u4e0a\uff0c\u800c\u4e0d\u80fd\u5b58\u653e\u5230\u89e3\u91ca\u5668\u6808\u4e0a(\u56e0\u4e3a\u662f\u5806\u5185\u5b58)\u3002\u4e3a\u4e86\u5904\u7406 ",(0,c.kt)("inlineCode",{parentName:"p"},"ref int a = ref b; a = 5;")," \u4e4b\u7c7b\u7684\u4ee3\u7801\uff0c\u4e0d\u5f97\u4e0d\u4f7f\u7528\u975e\u5e38\u590d\u6742\u7684\n\u6280\u5de7\u95f4\u63a5\u5730\u7ef4\u62a4\u8fd9\u4e2a\u5f15\u7528\u3002\u800cHybridCLR\u4f7f\u7528c++\u5b9e\u73b0\uff0c\u53ef\u4ee5\u76f4\u63a5\u4fdd\u5b58\u548c\u64cd\u4f5c\u8fd9\u4e9b\u6570\u636e\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6548\u7387\u6781\u5927\u63d0\u5347\u3002"),(0,c.kt)("h3",{id:"\u5143\u6570\u636e\u7edf\u4e00\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f"},"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u521b\u5efa\u5bf9\u8c61\u66f4\u9ad8\u6548\uff0c\u5185\u5b58\u5360\u7528\u4e5f\u66f4\u5c0f"),(0,c.kt)("p",null,"\u7531\u4e8e\u5143\u6570\u636e\u7edf\u4e00\uff0c\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528il2cpp::vm::Object::New\u6765\u521b\u5efa\u5bf9\u8c61\uff0c\u6548\u7387\u8ddf\u539f\u751f\u975e\u5e38\u63a5\u8fd1\uff0c\u800c\u4e14\u5185\u5b58\u5b8c\u5168\u76f8\u540c\u3002\u76f8\u6bd4\u4e4b\u4e0b\uff0c\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u4f7f\u7528\u5047\u7c7b\u578b\uff0c\n\u5bf9\u8c61\u81c3\u80bf\uff0c\u521b\u5efa\u5bf9\u8c61\u7684\u8fc7\u7a0b\u66f4\u91cd\u5ea6\u590d\u6742\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6781\u5927\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u5143\u6570\u636e\u7edf\u4e00\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\u5e76\u4e14\u6ca1\u6709pinvoke\u548creservepinvoke\u7684\u989d\u5916\u5f00\u9500"},"\u5143\u6570\u636e\u7edf\u4e00\uff0c\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7edf\u4e00\uff0c\u5e76\u4e14\u6ca1\u6709PInvoke\u548cReservePInvoke\u7684\u989d\u5916\u5f00\u9500"),(0,c.kt)("p",null,"HybridCLR\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528 \u7531IL\u51fd\u6570\u7ffb\u8bd1\u540e\u7684c++\u51fd\u6570\uff0c\u6ca1\u6709\u4efb\u4f55\u4e2d\u95f4\u73af\u8282\uff0c\u800cILRuntime\u548cxlua\u9700\u8981\u5404\u79cd\u590d\u6742\u7684\u5224\u5b9a\u548c\u53c2\u6570\u8f6c\u6362\u4ee5\u53ca\u4e0eC#\u4e4b\u95f4PInvoke\u548cReservePInvoke\u5e26\u6765\u989d\u5916\u5927\u91cf\u5f00\u9500\u3002"),(0,c.kt)("p",null,"HybridCLR\u4e0eil2cpp AOT\u90e8\u5206\u4ea4\u4e92\u6781\u5176\u8f7b\u91cf\u9ad8\u6548\u3002\u4e0d\u518d\u6709\u6027\u80fd\u95ee\u9898\u3002"),(0,c.kt)("h3",{id:"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570"},"\u989d\u5916\u63d0\u4f9b\u5927\u91cfinstinct\u51fd\u6570"),(0,c.kt)("p",null,"\u50cf ",(0,c.kt)("inlineCode",{parentName:"p"},"new Vector{2,3,4}"),"\u3001",(0,c.kt)("inlineCode",{parentName:"p"},"new string()"),"\u3001",(0,c.kt)("inlineCode",{parentName:"p"},"Nullable.Value")," \u7b49\u7b49\u7684\u5e38\u7528\u64cd\u4f5c\uff0c\u6211\u4eec\u76f4\u63a5\u63d0\u4f9b\u4e86\u5bf9\u5e94\u7684\u6307\u4ee4\uff0c\u8fd0\u884c\u5f00\u9500\u751a\u81f3\u4f4e\u4e8eAOT\u7684\u5b9e\u73b0\u3002"),(0,c.kt)("p",null,"\u76f8\u6bd4\u5176\u4ed6\u70ed\u66f4\u65b0\u65b9\u6848\u6570\u51e0\u5341\u500d\u5730\u63d0\u5347\u4e86\u6548\u7387\u3002"),(0,c.kt)("h3",{id:"\u4e25\u683c\u9075\u5faa\u89c4\u8303\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c"},"\u4e25\u683c\u9075\u5faa\u89c4\u8303\uff0c\u4e0d\u5f15\u5165\u989d\u5916\u4e0d\u5fc5\u8981\u6210\u672c"),(0,c.kt)("p",null,"\u7531\u4e8e\u7cbe\u5fc3\u7684\u8bbe\u8ba1\u548c\u4f18\u5316\uff0cHybridCLR\u5c3d\u91cf\u89c4\u907f\u5404\u79cd\u4e0d\u5fc5\u8981\u7684\u5f00\u9500\u3002\u4f8b\u5982\u6267\u884c\u8fc7\u7a0b\u7684GC\u4e0e\u539f\u751fil2cpp\u53camono\u5b8c\u5168\u76f8\u540c\u3002"),(0,c.kt)("h3",{id:"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f"},"\u5176\u4ed6\u6307\u4ee4\u4f18\u5316\u6280\u672f"),(0,c.kt)("p",null,"\u5176\u4ed6\u7684\u4f18\u5316\u6280\u672f"),(0,c.kt)("h2",{id:"\u9644\u5f55\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801"},"\u9644\u5f55\uff1a\u6d4b\u8bd5\u7528\u4f8b\u4ee3\u7801"),(0,c.kt)("h3",{id:"\u5546\u4e1a\u5316\u7248\u672c-vs-xlua"},"\u5546\u4e1a\u5316\u7248\u672c vs xlua"),(0,c.kt)(T,{mdxType:"Tabs"},(0,c.kt)(O,{value:"HybridCLR",label:"HybridCLR",default:!0,mdxType:"TabItem"},(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},'\n public class AOTForCallFunctions\n {\n public void Empty()\n {\n\n }\n\n public int ReturnInt()\n {\n return 0;\n }\n\n public Vector3 ReturnVector3()\n {\n return default;\n }\n\n public void Func1(int a, int b, int c, int d, int e)\n {\n }\n\n public void Func2(Vector3 a, Vector3 b, Vector3 c, Vector3 d)\n {\n\n }\n }\n\npublic class BenchmarkTestCases\n{\n public const int kTestCount = 10000;\n\n /// \n /// \u6d4b\u8bd5\u7b80\u5355\u6570\u503c\u8ba1\u7b97\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public int BinOpAdd(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n /// \n /// \u6d4b\u8bd5\u590d\u6742\u6570\u503c\u8ba1\u7b97\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public void BinOpComplex(int cnt)\n {\n int total = 0;\n for (int i = 0; i < cnt; i++)\n {\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n }\n }\n\n /// \n /// \u6d4b\u8bd5\u6570\u7ec4\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 100)]\n public int ArrayOp(int cnt)\n {\n var arr = new int[100];\n int k = cnt % 100 + 1;\n for (int i = 0; i < cnt; i++)\n {\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n }\n return arr[0];\n }\n\n /// \n /// \u6d4b\u8bd5Vector3\u64cd\u4f5c\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int VectorOp1(int cnt)\n {\n float m = 0f;\n var v = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n }\n return (int)m;\n }\n\n [Benchmark]\n [Params(kTestCount * 10)]\n public int VectorOp2(int cnt)\n {\n Vector3 c = default;\n var a = new Vector3(1, 2, 3);\n var b = new Vector3(4, 5, 6);\n for (var i = 0; i < cnt; i++)\n {\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n }\n return (int)c.x;\n }\n\n /// \n /// \u6d4b\u8bd5Quaternion\u64cd\u4f5c\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int QuaternionOp(int cnt)\n {\n for (var i = 0; i < cnt; i++)\n {\n var q1 = Quaternion.Euler(i, i, i);\n var q2 = Quaternion.Slerp(Quaternion.identity, q1, 0.5f);\n var q3 = q2.normalized;\n var q4 = Quaternion.Lerp(q3, q2, 0.5f);\n }\n return 0;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u9759\u6001\u6210\u5458\u51fd\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTStaticMethod(int cnt)\n {\n float t = 0f;\n for (var i = 0; i < cnt; i++)\n {\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n t = Time.deltaTime;\n }\n\n return (int)t;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570\u4f20int\u7c7b\u578b\u53c2\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodParamInt(int cnt)\n {\n var o = new AOTForCallFunctions();\n int x = 0;\n for (var i = 0; i < cnt; i++)\n {\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n o.Func1(1, 2, 3, 4, 5);\n }\n return x + 1;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570\u4f20Vector3\u7c7b\u578b\u53c2\u6570\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodParamVector3(int cnt)\n {\n var o = new AOTForCallFunctions();\n Vector3 a = Vector3.one;\n Vector3 b = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n o.Func2(a, b, a, b);\n }\n return 0;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570,\u8fd4\u56de\u503c\u4e3aint\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodReturn1(int cnt)\n {\n var o = new AOTForCallFunctions();\n int x = 0;\n for (var i = 0; i < cnt; i++)\n {\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n x = o.ReturnInt();\n }\n return x + 1;\n }\n\n /// \n /// \u6d4b\u8bd5\u8c03\u7528AOT\u5b9e\u4f8b\u6210\u5458\u51fd\u6570,\u8fd4\u56de\u503c\u4e3aVector3\n /// \n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public int CallAOTInstanceMethodReturnVector3(int cnt)\n {\n var o = new AOTForCallFunctions();\n Vector3 x = default;\n for (var i = 0; i < cnt; i++)\n {\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n x = o.ReturnVector3();\n }\n return (int)x.x;\n }\n\n /// \n /// \u6d4b\u8bd5GameObject\u521b\u5efa\u548c\u9500\u6bc1\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount)]\n public void GameObjectCreateAndDestroy(int cnt)\n {\n for (var i = 0; i < cnt; i++)\n {\n var go = new GameObject("t");\n Object.Destroy(go);\n }\n }\n\n /// \n /// \u6d4b\u8bd5 Transform\u64cd\u4f5c\n /// \n /// \n [Benchmark]\n [Params(kTestCount * 10)]\n public void SetTransformPosition(int cnt)\n {\n var go = new GameObject();\n Vector3 v = Vector3.one;\n for (var i = 0; i < cnt; i++)\n {\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n }\n Object.Destroy(go);\n }\n}\n'))),(0,c.kt)(O,{value:"xlua",label:"xlua",mdxType:"TabItem"},(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-lua"},'\nfunction BinOpAdd(cnt)\n local a = 1;\n local b = cnt;\n local c = cnt;\n local d = cnt;\n\n for i = 1, cnt do\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n end\n return a + b + c + d\nend\n\nfunction BinOpComplex(cnt)\n local total = 0;\n for i = 1, cnt do \n \n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n total = total + i - (i - 2) * (i + 3);\n end\n return total\nend\n\nfunction ArrayOp(cnt)\n local arr = {}\n for i = 0, 100 do \n arr[i] = 0\n end\n local k = cnt % 100 + 1;\n\n for i = 1, cnt do\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n arr[k] = arr[k] + i;\n end\n return arr[0]\nend\n\nfunction VectorOp1(cnt)\n local m = 0\n local v = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n m = v.sqrMagnitude;\n end\n return m;\nend\n\nfunction VectorOp2(cnt)\n local c = CS.UnityEngine.Vector3.one;\n local a = CS.UnityEngine.Vector3(1, 2, 3);\n local b = CS.UnityEngine.Vector3(4, 5, 6);\n for i = 1, cnt do\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n\n c = c + b;\n c = c + a;\n c = c + b;\n c = c + a;\n c = c + b;\n end\n return c.x\nend\n\nlocal Quaternion = CS.UnityEngine.Quaternion\n\nfunction QuaternionOp(cnt)\n for i = 1, cnt do\n local q1 = Quaternion.Euler(i, i, i);\n local q2 = Quaternion.Slerp(Quaternion.identity, q1, 0.5);\n local q3 = q2.normalized;\n local q4 = Quaternion.Lerp(q3, q2, 0.5);\n end\n return 0;\nend\n\nfunction CallAOTStaticMethod(cnt)\n local Time = CS.UnityEngine.Time\n local t \n for i = 1, cnt do \n t = Time.deltaTime\n end\n return t\nend\n\nfunction CallAOTInstanceMethodParamInt(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n for i = 1, cnt do\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n \n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n o:Func1(1, 2, 3, 4, 5);\n end\nend\n\nfunction CallAOTInstanceMethodParamVector3(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local a = CS.UnityEngine.Vector3.one;\n local b = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n o:Func2(a, b, a, b)\n end\nend\n\nfunction CallAOTInstanceMethodReturn1(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local x = 0;\n for i = 1, cnt do \n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n x = o:ReturnInt();\n end\n return x + 1;\nend\n\nfunction CallAOTInstanceMethodReturnVector3(cnt)\n local o = CS.AOTTypes.AOTForCallFunctions();\n local x \n for i = 1, cnt do \n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n x = o:ReturnVector3();\n end\n return x;\nend\n\nfunction GameObjectCreateAndDestroy(cnt)\n for i = 1, cnt do \n local go = CS.UnityEngine.GameObject("t")\n CS.UnityEngine.Object.Destroy(go)\n end\nend\n\nfunction SetTransformPosition(cnt)\n local go = CS.UnityEngine.GameObject("t")\n local v = CS.UnityEngine.Vector3.one;\n for i = 1, cnt do \n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n go.transform.position = v;\n end\n CS.UnityEngine.Object.Destroy(go)\nend\n\n')))),(0,c.kt)("h3",{id:"aot-vs-\u793e\u533a\u7248-vs-\u5546\u4e1a\u5316\u7248\u672c-vs-mono"},"AOT vs \u793e\u533a\u7248 vs \u5546\u4e1a\u5316\u7248\u672c vs Mono"),(0,c.kt)("pre",null,(0,c.kt)("code",{parentName:"pre",className:"language-csharp"},"public class LongArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public long add_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n \n for(long i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long add_2(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n long e = 3;\n\n for (long i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long mul_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n\n for (long i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long mul_2(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n long e = 3;\n\n for (long i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public long div_1(long n)\n {\n long a = 1;\n long b = n;\n long c = 2;\n long d = n;\n\n for (long i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n\n\n public class IntArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public int add_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n \n for(int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int add_2(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n int e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int mul_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int mul_2(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n int e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public int div_1(int n)\n {\n int a = 1;\n int b = n;\n int c = 2;\n int d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\npublic class FloatArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public float add_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n \n for(int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float add_2(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n float e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float mul_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float mul_2(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n float e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public float div_1(int n)\n {\n float a = 1;\n float b = n;\n float c = 2;\n float d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\npublic class DoubleArithmetics\n{\n [Benchmark]\n [Params(1000000)]\n public double add_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n a = b + c;\n b = c + d;\n c = d + a;\n d = a + b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double add_2(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n double e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n a = b + c + d + e;\n b = c + d + e + a;\n c = d + e + a + b;\n d = e + a + b + c;\n e = a + b + c + d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double mul_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n a = b * c;\n b = c * d;\n c = d * a;\n d = a * b;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double mul_2(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n double e = 3;\n\n for (int i = 0; i < n; i++)\n {\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n a = b * c * d * e;\n b = c * d * e * a;\n c = d * e * a * b;\n d = e * a * b * c;\n e = a * b * c * d;\n }\n return a + b + c + d;\n }\n\n\n [Benchmark]\n [Params(1000000)]\n public double div_1(int n)\n {\n double a = 1;\n double b = n;\n double c = 2;\n double d = n;\n\n for (int i = 0; i < n; i++)\n {\n b = c / a;\n c = d / a;\n d = b / a;\n\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n b = c / a;\n c = d / a;\n d = b / a;\n a = a / n + 1;\n }\n return a + b + c + d;\n }\n}\n\n")))}w.isMDXComponent=!0},1024:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/full_hybridclr_div_xlua-143177a79ae1387193eb9ccfb6b3cd86.jpg"},7860:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/full_hybridclr_vs_xlua-9d0605aaf28538ae1823e04d7723bd70.jpg"},1332:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/hybridclr_div_mono-1a9330b1df4890c97c1c78d1ad98095f.png"},7355:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/hybridclr_vs_mono-ee3f541d15750f28d09fb5a8c752b5cb.png"},9446:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_business_vs_aot_div_aot-5f9d5d52b2dd791d61ef588be2f6e1e4.jpg"},5108:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_datas-c7e623fb0136033a877678da6376da41.jpg"},9999:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_dialog_business_div_aot-44e9b55446d50bceb8b332085d55387f.jpg"},9672:(n,a,e)=>{e.d(a,{Z:()=>t});const t=e.p+"assets/images/numeric_dialog_business_div_community-e02edc41129f5859b800a362c8b91bc8.jpg"}}]); \ No newline at end of file diff --git a/assets/js/5148d8fe.6f4bc5f5.js b/assets/js/5148d8fe.6f4bc5f5.js new file mode 100644 index 000000000..4ff072765 --- /dev/null +++ b/assets/js/5148d8fe.6f4bc5f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5650],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,f=u["".concat(l,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:a,i[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={},i="\u4e0d\u652f\u6301\u7684\u7279\u6027",p={unversionedId:"basic/notsupportedfeatures",id:"basic/notsupportedfeatures",title:"\u4e0d\u652f\u6301\u7684\u7279\u6027",description:"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002",source:"@site/docs/basic/notsupportedfeatures.md",sourceDirName:"basic",slug:"/basic/notsupportedfeatures",permalink:"/docs/basic/notsupportedfeatures",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u5bf9App\u5305\u4f53\u5f71\u54cd",permalink:"/docs/basic/impactonappsize"},next:{title:"hybridclr Package\u624b\u518c",permalink:"/docs/basic/com.code-philosophy.hybridclr"}},l={},c=[],s={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4e0d\u652f\u6301\u7684\u7279\u6027"},"\u4e0d\u652f\u6301\u7684\u7279\u6027"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6682\u65f6\u4e0d\u652f\u6301\u5728\u70ed\u66f4\u65b0\u811a\u672c\u4e2d\u5b9a\u4e49extern\u51fd\u6570\uff0c\u4f46\u53ef\u4ee5\u8c03\u7528AOT\u4e2dextern\u51fd\u6570\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301",(0,a.kt)("inlineCode",{parentName:"li"},"System.Runtime.InteropServices.Marshal"),"\u4e2d ",(0,a.kt)("inlineCode",{parentName:"li"},"Marshal.StructureToPtr"),"\u4e4b\u7c7b\u5e8f\u5217\u5316\u7ed3\u6784\u7684\u51fd\u6570\uff0c\u4f46\u666e\u901aMarshal\u51fd\u6570\u5982",(0,a.kt)("inlineCode",{parentName:"li"},"Marshal.PtrToStringAnsi"),"\u90fd\u662f\u80fd\u6b63\u5e38\u5de5\u4f5c\u7684\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301","[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.xxx)]","\u3002\u7eaf\u7cb9\u662f\u65f6\u673a\u95ee\u9898\uff0cUnity\u6536\u96c6\u8fd9\u4e9b\u51fd\u6570\u7684\u65f6\u673a\u5f88\u65e9\uff0c\u6b64\u65f6\u70ed\u66f4\u65b0dll\u8fd8\u6ca1\u52a0\u8f7d\u3002\u4e00\u4e2a\u63a8\u8350\u7684\u529e\u6cd5\u662f\u4f60\u4f7f\u7528\u53cd\u5c04\u6536\u96c6\u8fd9\u4e9b\u51fd\u6570\uff0c\u5728\u5408\u9002\u7684\u65f6\u673a\u4e3b\u52a8\u8c03\u7528\u5b83\u4eec\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301\u5bf9\u89e3\u91ca\u4ee3\u7801\u90e8\u5206\u8fdb\u884cC#\u7ea7\u522b\u8c03\u8bd5\uff0c\u56e0\u4e3a\u6ca1\u6682\u65f6\u6ca1\u65f6\u95f4\u5199\u8c03\u8bd5\u5668"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"RequireComponent(typeof(AAA))")," \u8981\u6c42AAA\u5fc5\u987b\u5df2\u7ecf\u5728\u522b\u5904\u8d44\u6e90\u4e2d\u5b9e\u4f8b\u5316\u6216\u8005AddComponent\u8fc7\uff0c\u5426\u5219Unity\u65e0\u6cd5\u8bc6\u522bAAA\u4e3a\u811a\u672c\u800c\u5ffd\u7565\u5904\u7406\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5148d8fe.dc4901be.js b/assets/js/5148d8fe.dc4901be.js deleted file mode 100644 index 4d49e22af..000000000 --- a/assets/js/5148d8fe.dc4901be.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[5650],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=a,f=s["".concat(c,".").concat(m)]||s[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const o={},i="\u4e0d\u652f\u6301\u7684\u7279\u6027",l={unversionedId:"basic/notsupportedfeatures",id:"basic/notsupportedfeatures",title:"\u4e0d\u652f\u6301\u7684\u7279\u6027",description:"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002",source:"@site/docs/basic/notsupportedfeatures.md",sourceDirName:"basic",slug:"/basic/notsupportedfeatures",permalink:"/docs/basic/notsupportedfeatures",draft:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"\u6267\u884c\u6027\u80fd",permalink:"/docs/basic/performance"},next:{title:"hybridclr Package\u624b\u518c",permalink:"/docs/basic/com.code-philosophy.hybridclr"}},c={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4e0d\u652f\u6301\u7684\u7279\u6027"},"\u4e0d\u652f\u6301\u7684\u7279\u6027"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6682\u65f6\u4e0d\u652f\u6301\u5728\u70ed\u66f4\u65b0\u811a\u672c\u4e2d\u5b9a\u4e49extern\u51fd\u6570\uff0c\u4f46\u53ef\u4ee5\u8c03\u7528AOT\u4e2dextern\u51fd\u6570\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301",(0,a.kt)("inlineCode",{parentName:"li"},"System.Runtime.InteropServices.Marshal"),"\u4e2d ",(0,a.kt)("inlineCode",{parentName:"li"},"Marshal.StructureToPtr"),"\u4e4b\u7c7b\u5e8f\u5217\u5316\u7ed3\u6784\u7684\u51fd\u6570\uff0c\u4f46\u666e\u901aMarshal\u51fd\u6570\u5982",(0,a.kt)("inlineCode",{parentName:"li"},"Marshal.PtrToStringAnsi"),"\u90fd\u662f\u80fd\u6b63\u5e38\u5de5\u4f5c\u7684\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301","[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.xxx)]","\u3002\u7eaf\u7cb9\u662f\u65f6\u673a\u95ee\u9898\uff0cUnity\u6536\u96c6\u8fd9\u4e9b\u51fd\u6570\u7684\u65f6\u673a\u5f88\u65e9\uff0c\u6b64\u65f6\u70ed\u66f4\u65b0dll\u8fd8\u6ca1\u52a0\u8f7d\u3002\u4e00\u4e2a\u63a8\u8350\u7684\u529e\u6cd5\u662f\u4f60\u4f7f\u7528\u53cd\u5c04\u6536\u96c6\u8fd9\u4e9b\u51fd\u6570\uff0c\u5728\u5408\u9002\u7684\u65f6\u673a\u4e3b\u52a8\u8c03\u7528\u5b83\u4eec\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u4e0d\u652f\u6301\u5bf9\u89e3\u91ca\u4ee3\u7801\u90e8\u5206\u8fdb\u884cC#\u7ea7\u522b\u8c03\u8bd5\uff0c\u56e0\u4e3a\u6ca1\u6682\u65f6\u6ca1\u65f6\u95f4\u5199\u8c03\u8bd5\u5668"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"RequireComponent(typeof(AAA))")," \u8981\u6c42AAA\u5fc5\u987b\u5df2\u7ecf\u5728\u522b\u5904\u8d44\u6e90\u4e2d\u5b9e\u4f8b\u5316\u6216\u8005AddComponent\u8fc7\uff0c\u5426\u5219Unity\u65e0\u6cd5\u8bc6\u522bAAA\u4e3a\u811a\u672c\u800c\u5ffd\u7565\u5904\u7406\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.37e792bd.js b/assets/js/935f2afb.37e792bd.js deleted file mode 100644 index 5b0f7edc2..000000000 --- a/assets/js/935f2afb.37e792bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/intro","docId":"intro"},{"type":"link","label":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","href":"/docs/other/businesscase","docId":"other/businesscase"},{"type":"category","label":"\u65b0\u624b\u6559\u7a0b","collapsed":false,"items":[{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/beginner/quickstart","docId":"beginner/quickstart"},{"type":"link","label":"\u4f7f\u7528MonoBehaviour","href":"/docs/beginner/monobehaviour","docId":"beginner/monobehaviour"},{"type":"link","label":"\u4f7f\u7528\u6cdb\u578b","href":"/docs/beginner/generic","docId":"beginner/generic"},{"type":"link","label":"\u5176\u4ed6\u8d44\u6599","href":"/docs/beginner/otherhelp","docId":"beginner/otherhelp"}],"collapsible":true,"href":"/docs/beginner"},{"type":"category","label":"\u4f7f\u7528\u6307\u5357","collapsed":true,"items":[{"type":"link","label":"\u652f\u6301\u7684Unity\u7248\u672c\u548c\u5e73\u53f0","href":"/docs/basic/supportedplatformanduniyversion","docId":"basic/supportedplatformanduniyversion"},{"type":"link","label":"\u5b89\u88c5","href":"/docs/basic/install","docId":"basic/install"},{"type":"link","label":"\u914d\u7f6e","href":"/docs/basic/projectsettings","docId":"basic/projectsettings"},{"type":"link","label":"\u914d\u7f6e\u7a0b\u5e8f\u96c6","href":"/docs/basic/hotupdateassemblysetting","docId":"basic/hotupdateassemblysetting"},{"type":"link","label":"\u52a0\u8f7d\u548c\u8fd0\u884c","href":"/docs/basic/runhotupdatecodes","docId":"basic/runhotupdatecodes"},{"type":"link","label":"\u6253\u5305\u5de5\u4f5c\u6d41","href":"/docs/basic/buildpipeline","docId":"basic/buildpipeline"},{"type":"link","label":"\u53d1\u5e03WebGL\u5e73\u53f0","href":"/docs/basic/buildwebgl","docId":"basic/buildwebgl"},{"type":"link","label":"\u4ee3\u7801\u88c1\u526a","href":"/docs/basic/codestriping","docId":"basic/codestriping"},{"type":"link","label":"MonoBehaviour\u652f\u6301","href":"/docs/basic/monobehaviour","docId":"basic/monobehaviour"},{"type":"link","label":"AOT\u6cdb\u578b","href":"/docs/basic/aotgeneric","docId":"basic/aotgeneric"},{"type":"link","label":"\u6865\u63a5\u51fd\u6570","href":"/docs/basic/methodbridge","docId":"basic/methodbridge"},{"type":"link","label":"DOTS\u652f\u6301","href":"/docs/basic/dots","docId":"basic/dots"},{"type":"link","label":"\u5185\u5b58\u4e0eGC","href":"/docs/basic/memory","docId":"basic/memory"},{"type":"link","label":"\u6267\u884c\u6027\u80fd","href":"/docs/basic/performance","docId":"basic/performance"},{"type":"link","label":"\u4e0d\u652f\u6301\u7684\u7279\u6027","href":"/docs/basic/notsupportedfeatures","docId":"basic/notsupportedfeatures"},{"type":"link","label":"hybridclr Package\u624b\u518c","href":"/docs/basic/com.code-philosophy.hybridclr","docId":"basic/com.code-philosophy.hybridclr"},{"type":"link","label":"\u6700\u4f73\u5b9e\u8df5","href":"/docs/basic/bestpractice","docId":"basic/bestpractice"},{"type":"link","label":"\u4ecenetstandard\u8fc1\u79fb\u5230.Net Framework","href":"/docs/basic/migratefromnetstandard","docId":"basic/migratefromnetstandard"},{"type":"link","label":"HybridCLR+lua/js/python","href":"/docs/basic/workwithscriptlanguage","docId":"basic/workwithscriptlanguage"},{"type":"link","label":"\u4ee3\u7801\u7ed3\u6784\u53ca\u7248\u672c","href":"/docs/basic/architecture","docId":"basic/architecture"},{"type":"link","label":"HybridCLR\u6e90\u7801\u7ed3\u6784\u53ca\u8c03\u8bd5","href":"/docs/basic/sourceinspect","docId":"basic/sourceinspect"},{"type":"link","label":"il2cpp bug\u8bb0\u5f55","href":"/docs/basic/il2cppbugs","docId":"basic/il2cppbugs"}],"collapsible":true,"href":"/docs/basic"},{"type":"category","label":"\u5546\u4e1a\u5316\u7248\u672c","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/intro","docId":"business/intro"},{"type":"link","label":"\u5dee\u5206\u6df7\u5408\u6267\u884c","href":"/docs/business/differentialhybridexecution","docId":"business/differentialhybridexecution"},{"type":"link","label":"\u5b8c\u5168\u6cdb\u578b\u5171\u4eab","href":"/docs/business/fullgenericsharing","docId":"business/fullgenericsharing"},{"type":"link","label":"\u5143\u6570\u636e\u4f18\u5316","href":"/docs/business/metadataoptimization","docId":"business/metadataoptimization"},{"type":"link","label":"Assembly::Load\u52a0\u8f7d\u4f18\u5316","href":"/docs/business/assemblyloadoptimization","docId":"business/assemblyloadoptimization"},{"type":"link","label":"\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\u7684\u5d29\u6e83\u65e5\u5fd7","href":"/docs/business/crashreport","docId":"business/crashreport"},{"type":"link","label":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316","href":"/docs/business/basicoptimization","docId":"business/basicoptimization"},{"type":"link","label":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316","href":"/docs/business/advancedoptimization","docId":"business/advancedoptimization"},{"type":"link","label":"\u4ee3\u7801\u52a0\u56fa","href":"/docs/business/basicencryption","docId":"business/basicencryption"},{"type":"link","label":"\u8bbf\u95ee\u63a7\u5236\u7b56\u7565","href":"/docs/business/accesspolicy","docId":"business/accesspolicy"},{"type":"link","label":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","href":"/docs/business/businesscase","docId":"business/businesscase"},{"type":"category","label":"\u4e13\u4e1a\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/pro/intro","docId":"business/pro/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/pro/quickstart","docId":"business/pro/quickstart"},{"type":"link","label":"\u624b\u518c","href":"/docs/business/pro/manual","docId":"business/pro/manual"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/pro/commonerrors","docId":"business/pro/commonerrors"}],"collapsible":true,"href":"/docs/pro"},{"type":"category","label":"\u65d7\u8230\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/ultimate/intro","docId":"business/ultimate/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/ultimate/quickstartunchecked","docId":"business/ultimate/quickstartunchecked"},{"type":"link","label":"\u6784\u5efa\u548c\u70ed\u66f4\u65b0","href":"/docs/business/ultimate/build","docId":"business/ultimate/build"},{"type":"link","label":"DHAO \u6587\u4ef6","href":"/docs/business/ultimate/dhao","docId":"business/ultimate/dhao"},{"type":"link","label":"\u4f7f\u7528\u624b\u518c","href":"/docs/business/ultimate/manual","docId":"business/ultimate/manual"},{"type":"link","label":"\u51fd\u6570\u6ce8\u5165\u7b56\u7565","href":"/docs/business/ultimate/injectrules","docId":"business/ultimate/injectrules"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/ultimate/commonerrors","docId":"business/ultimate/commonerrors"}],"collapsible":true,"href":"/docs/ultimate"},{"type":"category","label":"\u70ed\u91cd\u8f7d\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/reload/intro","docId":"business/reload/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/reload/quickstart","docId":"business/reload/quickstart"},{"type":"link","label":"\u624b\u518c","href":"/docs/business/reload/manual","docId":"business/reload/manual"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/reload/commonerrors","docId":"business/reload/commonerrors"}],"collapsible":true,"href":"/docs/reload"}],"collapsible":true,"href":"/docs/business"},{"type":"category","label":"\u5e2e\u52a9","collapsed":true,"items":[{"type":"link","label":"FAQ","href":"/docs/help/faq","docId":"help/faq"},{"type":"link","label":"\u5e38\u89c1\u9519\u8bef","href":"/docs/help/commonerrors","docId":"help/commonerrors"},{"type":"link","label":"BUG\u53cd\u9988\u6a21\u677f","href":"/docs/help/issue","docId":"help/issue"}],"collapsible":true,"href":"/docs/help"},{"type":"category","label":"\u5176\u4ed6","collapsed":true,"items":[{"type":"link","label":"\u76f8\u5173\u7684\u7b2c\u4e09\u65b9\u9879\u76ee","href":"/docs/other/relativepojects","docId":"other/relativepojects"},{"type":"link","label":"\u540e\u7eed\u5f00\u53d1\u89c4\u5212","href":"/docs/other/roadmap","docId":"other/roadmap"},{"type":"link","label":"\u6539\u52a8\u65e5\u5fd7","href":"/docs/other/changelog","docId":"other/changelog"},{"type":"link","label":"\u81f4\u8c22\u540d\u5355","href":"/docs/other/donate","docId":"other/donate"},{"type":"link","label":"\u652f\u6301\u4e0e\u8054\u7cfb","href":"/docs/other/contactme","docId":"other/contactme"}],"collapsible":true,"href":"/docs/other"}]},"docs":{"basic/aotgeneric":{"id":"basic/aotgeneric","title":"AOT\u6cdb\u578b","description":"CLR\u4e2d\u6709\u4e24\u7c7b\u6cdb\u578b\u7279\u6027\uff1a\u6cdb\u578b\u7c7b\u578b\u548c\u6cdb\u578b\u51fd\u6570\u3002\u6cdb\u578b\u662fc#\u4e2d\u4f7f\u7528\u6781\u5176\u5e7f\u6cdb\u7684\u7279\u6027\uff0c\u5373\u4f7f\u4e00\u4e2a\u6ca1\u6709\u660e\u663e\u5305\u542b\u6cdb\u578b\u7684\u7528\u6cd5\uff0c\u4e5f\u53ef\u80fd\u9690\u542b\u4e86\u6cdb\u578b\u76f8\u5173\u7684\u5b9a\u4e49\u6216\u8005\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"basic/architecture":{"id":"basic/architecture","title":"\u4ee3\u7801\u7ed3\u6784\u53ca\u7248\u672c","description":"\u5b8c\u6574\u7684HybridCLR\u4ee3\u7801\u7531\u4e09\u4e2a\u4ed3\u5e93\u6784\u6210\uff1a","sidebar":"tutorialSidebar"},"basic/bestpractice":{"id":"basic/bestpractice","title":"\u6700\u4f73\u5b9e\u8df5","description":"unity\u7248\u672c\u63a8\u8350","sidebar":"tutorialSidebar"},"basic/buildpipeline":{"id":"basic/buildpipeline","title":"\u6253\u5305\u5de5\u4f5c\u6d41","description":"\u7531\u4e8e\u70ed\u66f4\u65b0\u672c\u8eab\u7684\u8981\u6c42\u4ee5\u53caUnity\u8d44\u6e90\u7ba1\u7406\u7684\u4e00\u4e9b\u9650\u5236\uff0c\u5bf9\u6253\u5305\u5de5\u4f5c\u6d41\u9700\u8981\u4e00\u4e9b\u7279\u6b8a\u5904\u7406\uff0c\u4e3b\u8981\u5206\u4e3a\u51e0\u90e8\u5206\uff1a","sidebar":"tutorialSidebar"},"basic/buildwebgl":{"id":"basic/buildwebgl","title":"\u53d1\u5e03WebGL\u5e73\u53f0","description":"\u7531\u4e8eWebGL\u5e73\u53f0\u6709\u8f83\u591a\u7279\u6b8a\u6027\uff0c\u6545\u7279\u5730\u5355\u72ec\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u53d1\u5e03WebGL\u5e73\u53f0\u3002\u672c\u6587\u6863\u5728 hybridclrtrial\u9879\u76ee\uff08github gitee \uff09\u4e0a\u6f14\u793a\u53d1\u5e03\u8fc7\u7a0b\u3002","sidebar":"tutorialSidebar"},"basic/codestriping":{"id":"basic/codestriping","title":"\u4ee3\u7801\u88c1\u526a","description":"Unity\u4f7f\u7528\u4e86\u4ee3\u7801\u88c1\u526a\u6280\u672f\u6765\u5e2e\u52a9\u51cf\u5c11il2cpp backend\u7684\u5305\u4f53\u5927\u5c0f\u3002\u5982\u679c\u672a\u505a\u9632\u88c1\u526a\u5904\u7406\uff0c\u7531\u4e8eAOT\u4e3b\u5de5\u7a0b\u91cc\u7684\u4ee3\u7801\u4e00\u822c\u4e0d\u591a\uff0c\u5927\u91cf\u7684C#\u7c7b\u578b\u548c\u51fd\u6570\u88ab","sidebar":"tutorialSidebar"},"basic/com.code-philosophy.hybridclr":{"id":"basic/com.code-philosophy.hybridclr","title":"hybridclr Package\u624b\u518c","description":"com.code-philosophy.hybridclr\u662f\u4e00\u4e2aUnity package\uff0c\u5b83\u63d0\u4f9b\u4e86HybridCLR\u6240\u9700\u7684Editor\u5de5\u4f5c\u6d41\u5de5\u5177\u811a\u672c\u53caRuntime\u811a\u672c\u3002\u501f\u52a9","sidebar":"tutorialSidebar"},"basic/compileassembly":{"id":"basic/compileassembly","title":"\u7f16\u8bd1 \u70ed\u66f4\u65b0assembly","description":"\u70ed\u66f4\u65b0\u4ee3\u7801\u4e2d\u6709\u53ef\u80fd\u4f1a\u5305\u542b #if UNITYEDITOR \u3001#if UNITYSTANDALONE_WIN \u8fd9\u6837\u7684\u5b8f\u5f00\u5173\uff0c\u56e0\u6b64\u6bcf\u4e2a\u5e73\u53f0\u9700\u8981\u5355\u72ec"},"basic/dots":{"id":"basic/dots","title":"DOTS\u652f\u6301","description":"DOTS\u7684TypeManager\u521d\u59cb\u5316\u65f6\u673a\u8fc7\u65e9\uff0c\u800c\u4e14\u4e0d\u652f\u6301\u52a8\u6001\u6ce8\u518cComponent\u548cSystem\u7b49\u7c7b\u578b\u3002\u4e3a\u4e86\u8ba9\u70ed\u66f4\u65b0\u6a21\u5757\u80fd\u5728DOTS\u7cfb\u7edf\u4e2d\u6b63\u5e38","sidebar":"tutorialSidebar"},"basic/hotupdateassemblysetting":{"id":"basic/hotupdateassemblysetting","title":"\u914d\u7f6e\u7a0b\u5e8f\u96c6","description":"\u4e00\u822c\u6765\u8bf4\uff0c\u5fc5\u987b\u5c06\u70ed\u66f4\u65b0\u4ee3\u7801\u72ec\u7acb\u4e3aassembly\uff0c\u624d\u80fd\u65b9\u4fbf\u5730\u8fdb\u884c\u70ed\u66f4\u65b0\u3002","sidebar":"tutorialSidebar"},"basic/il2cppbugs":{"id":"basic/il2cppbugs","title":"il2cpp bug\u8bb0\u5f55","description":"\u9006\u53d8\u534f\u53d8\u6cdb\u578b\u63a5\u53e3\u8c03\u7528\u9519\u8bef","sidebar":"tutorialSidebar"},"basic/install":{"id":"basic/install","title":"\u5b89\u88c5","description":"\u5b89\u88c5\u517c\u5bb9\u7684Unity\u7248\u672c","sidebar":"tutorialSidebar"},"basic/memory":{"id":"basic/memory","title":"\u5185\u5b58\u4e0eGC","description":"HybridCLR\u8fd0\u884c\u65f6\u6d88\u8017\u5185\u5b58\u4e3b\u8981\u5206\u4e3a\u51e0\u90e8\u5206\uff1a","sidebar":"tutorialSidebar"},"basic/methodbridge":{"id":"basic/methodbridge","title":"\u6865\u63a5\u51fd\u6570","description":"HybridCLR\u7684interpreter\u4e0eAOT\u4e4b\u95f4\u9700\u8981\u53cc\u5411\u51fd\u6570\u8c03\u7528\u3002\u6bd4\u5982interpreter\u8c03\u7528AOT\u51fd\u6570\uff0c\u6216\u8005AOT\u901a\u8fc7interface\u63a5\u53e3\u6216\u8005delegate\u56de\u8c03interpreter\u3002","sidebar":"tutorialSidebar"},"basic/migratefromnetstandard":{"id":"basic/migratefromnetstandard","title":"\u4ecenetstandard\u8fc1\u79fb\u5230.Net Framework","description":"Unity\u5728\u6253\u5305\u8fc7\u7a0b\u4e2d\uff0c\u4f1a\u628a\u5bf9netstandard.dll\u7684\u5f15\u7528\u5168\u90e8\u8f6c\u6362\u6700\u7ec8\u7684mscorlib.dll\u4e4b\u7c7b\u7684\u5f15\u7528\uff0c\u5bfc\u81f4\u539f\u59cb\u4ee3\u7801","sidebar":"tutorialSidebar"},"basic/monobehaviour":{"id":"basic/monobehaviour","title":"MonoBehaviour\u652f\u6301","description":"HybridCLR\u5b8c\u5168\u652f\u6301\u70ed\u66f4\u65b0MonoBehaviour\u548cScriptableObject\u5de5\u4f5c\u6d41\uff0c\u5373\u53ef\u4ee5\u5728\u4ee3\u7801\u91cc\u5728GameObject\u4e0aAdd\u70ed\u66f4\u65b0\u811a\u672c\u6216\u8005\u5728\u8d44\u6e90\u4e0a\u76f4\u63a5\u6302\u8f7d","sidebar":"tutorialSidebar"},"basic/notsupportedfeatures":{"id":"basic/notsupportedfeatures","title":"\u4e0d\u652f\u6301\u7684\u7279\u6027","description":"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"basic/performance":{"id":"basic/performance","title":"\u6267\u884c\u6027\u80fd","description":"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002","sidebar":"tutorialSidebar"},"basic/projectsettings":{"id":"basic/projectsettings","title":"\u914d\u7f6e","description":"\u5b89\u88c5\u5b8ccom.code-philosophy.hybridclr\u5305\u540e\uff0c\u9700\u8981\u6b63\u786e\u8bbe\u7f6e\u76f8\u5173\u53c2\u6570\u3002\u914d\u7f6e\u76f8\u5173\u8be6\u7ec6\u6587\u6863\u53ef\u89c1 hybridclr_unity\u5305\u4ecb\u7ecd\u3002","sidebar":"tutorialSidebar"},"basic/runhotupdatecodes":{"id":"basic/runhotupdatecodes","title":"\u52a0\u8f7d\u548c\u8fd0\u884c","description":"\u52a0\u8f7d\u66f4\u65b0assembly","sidebar":"tutorialSidebar"},"basic/sourceinspect":{"id":"basic/sourceinspect","title":"HybridCLR\u6e90\u7801\u7ed3\u6784\u53ca\u8c03\u8bd5","description":"HybridCLR\u6a21\u5757\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"basic/supportedplatformanduniyversion":{"id":"basic/supportedplatformanduniyversion","title":"\u652f\u6301\u7684Unity\u7248\u672c\u548c\u5e73\u53f0","description":"HybridCLR\u5df2\u7ecf\u7a33\u5b9a\u652f\u6301\u4e862019.4.x\u30012020.3.x\u30012021.3.x\u30012022.3.x \u7cfb\u5217LTS\u7248\u672c\u53ca2023.2.x\u30016000.0.x\u7b49\u6d4b\u8bd5\u7248\u672c\uff0c\u5e76\u4e14\u652f\u6301\u6240\u6709il2cpp\u652f\u6301\u7684\u5e73\u53f0\u3002","sidebar":"tutorialSidebar"},"basic/workwithscriptlanguage":{"id":"basic/workwithscriptlanguage","title":"HybridCLR+lua/js/python","description":"\u6709\u4e00\u4e9b\u9879\u76ee\u5df2\u7ecf\u4e0a\u7ebf\uff0c\u5b83\u4eec\u7684\u5927\u591a\u6570\u4ee3\u7801\u5df2\u7ecf\u7528lua\u5b9e\u73b0\u4e86\uff1b\u6216\u8005\u4e00\u4e9b\u65b0\u9879\u76ee\u5df2\u7ecf\u7528lua\u5f00\u53d1\u5230\u4e00\u534a\uff0c\u4ed6\u4eec\u65e0\u6cd5\u5b8c\u5168\u5207\u6362\u4e3a\u5168C#\u5f00\u53d1\uff0c\u4f46\u5e0c\u671b","sidebar":"tutorialSidebar"},"beginner/generic":{"id":"beginner/generic","title":"\u4f7f\u7528\u6cdb\u578b","description":"HybridCLR\u5b8c\u6574\u652f\u6301\u6cdb\u578b\u7279\u6027\uff0c\u6ca1\u6709\u4efb\u4f55\u9650\u5236\u3002","sidebar":"tutorialSidebar"},"beginner/monobehaviour":{"id":"beginner/monobehaviour","title":"\u4f7f\u7528MonoBehaviour","description":"HybridCLR\u5b8c\u5168\u652f\u6301MonoBehaviour\u5de5\u4f5c\u6d41\uff0c\u4f60\u65e2\u53ef\u4ee5\u901a\u8fc7AddComponent\u7684\u65b9\u5f0f\u5728\u4ee3\u7801\u91cc\u52a8\u6001\u6302\u8f7d\u70ed\u66f4\u65b0\u811a\u672c\uff0c\u4e5f\u53ef\u4ee5\u5c06\u70ed\u66f4\u65b0\u811a\u672c\u6302\u5230\u8d44\u6e90\u4e0a\uff0c\u518d\u901a\u8fc7\u52a0\u8f7d\u8d44\u6e90\u7684\u65b9\u5f0f\u8fd8\u539f\u811a\u672c\u3002","sidebar":"tutorialSidebar"},"beginner/otherhelp":{"id":"beginner/otherhelp","title":"\u5176\u4ed6\u8d44\u6599","description":"\u5b98\u65b9\u76f8\u5173\u4ed3\u5e93","sidebar":"tutorialSidebar"},"beginner/quickstart":{"id":"beginner/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u672c\u6559\u7a0b\u5f15\u5bfc\u4ece\u7a7a\u9879\u76ee\u5f00\u59cb\u4f53\u9a8cHybridCLR\u70ed\u66f4\u65b0\u3002\u51fa\u4e8e\u7b80\u5316\u8d77\u89c1\uff0c\u53ea\u6f14\u793aBuildTarget\u4e3aWindows\u6216MacOS Standalone\u5e73\u53f0\u7684\u60c5\u51b5\u3002","sidebar":"tutorialSidebar"},"business/accesspolicy":{"id":"business/accesspolicy","title":"\u8bbf\u95ee\u63a7\u5236\u7b56\u7565","description":"\u5bf9\u4e8e\u4e00\u4e9b\u5e73\u53f0\u578b\u7684\u5e94\u7528\uff0c\u5b83\u4eec\u53ef\u80fd\u4f1a\u52a0\u8f7d\u548c\u6267\u884c\u7b2c\u4e09\u65b9\u5f00\u53d1\u7684\u4ee3\u7801\u3002\u5982\u679c\u4e0d\u5bf9\u8fd9\u4e9b\u7b2c\u4e09\u65b9\u4ee3\u7801\u52a0\u4ee5\u9650\u5236\uff0c\u4f1a\u5e26\u6765\u5b89\u5168\u9690\u60a3\u3002","sidebar":"tutorialSidebar"},"business/advancedencryption":{"id":"business/advancedencryption","title":"\u9ad8\u7ea7\u4ee3\u7801\u52a0\u56fa","description":"\u9ad8\u7ea7\u4ee3\u7801\u52a0\u56fa\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u7a0b\u5e8f\u96c6\u7ed3\u6784\u548c\u81ea\u5b9a\u4e49\u7684\u6307\u4ee4\uff0c\u6781\u5927\u63d0\u5347\u4e86App\u5b89\u5168\u6027\u3002"},"business/advancedoptimization":{"id":"business/advancedoptimization","title":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316","description":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316\u6280\u672f\u6b63\u5f00\u53d1\u4e2d\uff0c\u76ee\u524d\u4ec5\u53ef\u4f7f\u7528\u6807\u51c6\u6307\u4ee4\u4f18\u5316\u6280\u672f\u3002","sidebar":"tutorialSidebar"},"business/assemblyloadoptimization":{"id":"business/assemblyloadoptimization","title":"Assembly::Load\u52a0\u8f7d\u4f18\u5316","description":"\u5546\u4e1a\u5316\u7248\u672c\u4ece\u4ee5\u51e0\u4e2a\u65b9\u9762\u4f18\u5316\u4e86Assembly::Load\u65f6\u95f4\u51cf\u5c11\u4e3a\u539f\u6765\u768420%\u3002","sidebar":"tutorialSidebar"},"business/basicencryption":{"id":"business/basicencryption","title":"\u4ee3\u7801\u52a0\u56fa","description":"\u793e\u533a\u7248\u672c\u76f4\u63a5\u52a0\u8f7d\u539f\u59cbdll\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u4e0d\u5f97\u4e0d\u643a\u5e26\u548c\u4e0b\u8f7d\u539f\u59cbdll\u3002\u8fd9\u4e9b\u539f\u59cbdll\u80fd\u591f\u88abILSpy\u4e4b\u7c7b\u7684\u5de5\u5177\u53cd\u7f16\u8bd1","sidebar":"tutorialSidebar"},"business/basicoptimization":{"id":"business/basicoptimization","title":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316","description":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316\u6280\u672f\u4ec5\u5728\u5546\u4e1a\u5316\u7248\u672c\u4e0a\u53ef\u7528\u3002","sidebar":"tutorialSidebar"},"business/businesscase":{"id":"business/businesscase","title":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","description":"\u6211\u4eec\u5df2\u7ecf\u4e0e\u4e1a\u5185\u8bb8\u591a\u516c\u53f8\u8fdb\u884c\u9ad8\u7ea7\u5408\u4f5c\uff0c\u5f88\u597d\u5730\u89e3\u51b3\u4e86\u4ed6\u4eec\u7684\u95ee\u9898\u3002\u51fa\u4e8e\u5546\u4e1a\u4fdd\u5bc6\u539f\u56e0\uff0c\u6211\u4eec\u53ea\u7f57\u5217\u4e86\u6781\u6709\u9650\u7684\u613f\u610f\u516c\u5f00\u4fe1\u606f\u7684\u5546\u4e1a\u5408\u4f5c\u4f19\u4f34\u4fe1\u606f\u3002","sidebar":"tutorialSidebar"},"business/crashreport":{"id":"business/crashreport","title":"\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\u7684\u5d29\u6e83\u65e5\u5fd7","description":"\u793e\u533a\u7248\u672c\u5d29\u6e83\u65f6\u4e0d\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\uff0c\u4f7f\u5f97\u7ebf\u4e0a\u9879\u76ee\u96be\u4ee5\u5b9a\u4f4d\u9519\u8bef\u3002\u5546\u4e1a\u5316\u7684\u7248\u672c\u5728\u5d29\u6e83\u65f6\u6dfb\u52a0\u66f4\u4e30\u5bcc\u7684\u89e3\u91ca\u5668\u6808\u4fe1\u606f\uff0c\u65b9\u4fbf\u5b9a\u4f4d\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"business/differentialhybridexecution":{"id":"business/differentialhybridexecution","title":"\u5dee\u5206\u6df7\u5408\u6267\u884c","description":"HybridCLR\u5f00\u521b\u6027\u5730\u5b9e\u73b0\u4e86 Differential Hybrid Execution(DHE) \u5dee\u5206\u6df7\u5408\u6267\u884c\u6280\u672f\u3002\u5373\u53ef\u4ee5\u5bf9AOT dll\u4efb\u610f\u589e\u5220\u6539\uff0c\u4f1a\u667a\u80fd\u5730\u8ba9\u53d8\u5316\u6216\u8005\u65b0\u589e\u7684\u7c7b\u548c\u51fd\u6570\u4ee5interpreter\u6a21\u5f0f\u8fd0\u884c\uff0c\u4f46\u672a\u6539\u52a8\u7684\u7c7b\u548c\u51fd\u6570\u4ee5AOT\u65b9\u5f0f\u8fd0\u884c\uff0c\u8ba9\u70ed\u66f4\u65b0\u7684\u6e38\u620f\u903b\u8f91\u7684\u8fd0\u884c\u6027\u80fd\u57fa\u672c\u8fbe\u5230\u539f\u751fAOT\u7684\u6c34\u5e73\u3002","sidebar":"tutorialSidebar"},"business/fullgenericsharing":{"id":"business/fullgenericsharing","title":"\u5b8c\u5168\u6cdb\u578b\u5171\u4eab","description":"\u8865\u5145\u5143\u6570\u636e\u867d\u7136\u5f7b\u5e95\u89e3\u51b3\u4e86AOT\u6cdb\u578b\u95ee\u9898\uff0c\u4f46\u8865\u5145\u5143\u6570\u636e\u4f1a\u5bfc\u81f4\u9700\u8981\u968f\u5305\u643a\u5e26\u6216\u8005\u70ed\u66f4\u65b0\u4e0b\u8f7d\u8865\u5145\u5143\u6570\u636edll\uff0c\u5bfc\u81f4\u5305\u4f53\u589e\u5927\u6216\u8005\u589e\u52a0\u4e86\u70ed\u66f4\u65b0\u65f6\u95f4\u3002","sidebar":"tutorialSidebar"},"business/intro":{"id":"business/intro","title":"\u4ecb\u7ecd","description":"\u6211\u4eec\u63d0\u4f9b\u591a\u79cd\u9ad8\u7aef\u5546\u4e1a\u7248\u672c\u53ca\u53ef\u7075\u6d3b\u5b9a\u5236\u7684\u6280\u672f\u670d\u52a1\uff0c\u6ee1\u8db3\u6e38\u620f\u9879\u76ee\u5728\u5404\u79cd\u5e94\u7528\u573a\u666f\u4e0b\u7684\u9700\u6c42\u3002","sidebar":"tutorialSidebar"},"business/metadataoptimization":{"id":"business/metadataoptimization","title":"\u5143\u6570\u636e\u4f18\u5316","description":"HybridCLR\u6267\u884c\u4ee3\u7801\u8fc7\u7a0b\u4e2d\u5e76\u4e0d\u4f1a\u989d\u5916\u591a\u5360\u7528\u5185\u5b58\uff0c\u4f46\u52a0\u8f7dassembly\u7684\u5143\u6570\u636e\u5360\u636e\u4e86\u5927\u91cf\u5185\u5b58\u3002\u5bf9\u4e8e\u4e00\u4e9b\u5185\u5b58\u6709\u8f83\u5927\u538b\u529b\u7684\u573a\u5408\uff08\u5982\u5fae\u4fe1\u5c0f\u6e38\u620f\uff09\uff0c\u8fd9\u53ef\u80fd\u662f\u4e2a\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"business/pro/commonerrors":{"id":"business/pro/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"","sidebar":"tutorialSidebar"},"business/pro/freetrial":{"id":"business/pro/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/pro/intro":{"id":"business/pro/intro","title":"\u4ecb\u7ecd","description":"\u4e13\u4e1a\u7248\u63d0\u4f9b\u4e86\u4e00\u4e9b\u793e\u533a\u7248\u672c\u6240\u4e0d\u652f\u6301\u7684\u9ad8\u7ea7\u7279\u6027\uff0c\u9002\u5408\u5bf9\u5185\u5b58\u548c\u5305\u4f53\u8981\u6c42\u8f83\u9ad8\u6216\u8005\u6709\u4e00\u5b9a\u6027\u80fd\u538b\u529b\u7684\u573a\u5408\uff0c\u5982WebGL\u6e38\u620f\u3002","sidebar":"tutorialSidebar"},"business/pro/manual":{"id":"business/pro/manual","title":"\u624b\u518c","description":"\u5b89\u88c5","sidebar":"tutorialSidebar"},"business/pro/quickstart":{"id":"business/pro/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u4e0e\u793e\u533a\u7248\u672c\u7684\u5feb\u901f\u4e0a\u624b\u51e0\u4e4e\u76f8\u540c\uff0c\u672c\u6587\u6863\u53ea\u4ecb\u7ecd\u4e0d\u540c\u4e4b\u5904\u3002","sidebar":"tutorialSidebar"},"business/reload/commonerrors":{"id":"business/reload/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"[Serializable] \u7c7b\u578b\u6216\u8005Monbehaviour\uff08ScriptableObject)\u4e2d\u5305\u542b\u6cdb\u578b\u53c2\u6570\u4e3a\u88ab\u5378\u8f7d\u7a0b\u5e8f\u96c6\u4e2d\u7c7b\u578b\u7684\u6cdb\u578b\u5b57\u6bb5\u65f6\u5d29\u6e83","sidebar":"tutorialSidebar"},"business/reload/freetrial":{"id":"business/reload/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/reload/hotreloadassembly":{"id":"business/reload/hotreloadassembly","title":"\u70ed\u91cd\u8f7d\u6280\u672f","description":"\u70ed\u91cd\u8f7d\u6280\u672f\u7528\u4e8e\u5b8c\u5168\u5378\u8f7d\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u4e00\u4e2aassembly\uff0c\u9002\u7528\u4e8e\u5c0f\u6e38\u620f\u5408\u96c6\u7c7b\u578b\u7684\u6e38\u620f\u3002\u8be5\u65b9\u6848\u53ea\u63d0\u4f9b\u5546\u4e1a\u5316\u7248\u672c\u3002"},"business/reload/intro":{"id":"business/reload/intro","title":"\u4ecb\u7ecd","description":"\u70ed\u91cd\u8f7d\u7279\u522b\u7248\u63d0\u4f9b\u72ec\u521b\u7684\u70ed\u91cd\u8f7d\u6280\u672f\u7684\u652f\u6301\u3002\u53ef\u4ee5\u8fd0\u884c\u4e2d\u5b8c\u5168\u5378\u8f7d\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u4e00\u4e2aassembly\uff0c\u5c24\u5176\u9002\u7528\u4e8e\u5c0f\u6e38\u620f\u5408\u96c6\u7c7b\u578b\u7684\u6e38\u620f\u3002","sidebar":"tutorialSidebar"},"business/reload/manual":{"id":"business/reload/manual","title":"\u624b\u518c","description":"\u652f\u6301\u7684\u7279\u6027","sidebar":"tutorialSidebar"},"business/reload/modifydll":{"id":"business/reload/modifydll","title":"\u4fee\u6539UnityEngine dll","description":"\u7531\u4e8e\u6709\u4e9b\u7248\u672c\u7684dll\u4e0e\u70ed\u91cd\u8f7d\u5e76\u4e0d\u517c\u5bb9\uff0c\u9700\u8981\u5c0f\u5e45\u4fee\u6539\u4ee3\u7801\u3002"},"business/reload/quickstart":{"id":"business/reload/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u4e0e\u793e\u533a\u7248\u672c\u7684\u5feb\u901f\u4e0a\u624b\u51e0\u4e4e\u5b8c\u5168\u76f8\u540c\uff0c\u672c\u6587\u6863\u53ea\u4ecb\u7ecd\u4e0d\u540c\u4e4b\u5904\u3002","sidebar":"tutorialSidebar"},"business/ultimate/build":{"id":"business/ultimate/build","title":"\u6784\u5efa\u548c\u70ed\u66f4\u65b0","description":"DHE\u6280\u672f\u4e2d\u4e0e\u6784\u5efa\u76f8\u5173\u7684\u6587\u4ef6\u4e3adhe dll\u6587\u4ef6\u548c\u5bf9\u5e94\u7684dhao\u6587\u4ef6\u3002","sidebar":"tutorialSidebar"},"business/ultimate/commonerrors":{"id":"business/ultimate/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"ExecutionEngineException: Could not run the type initializer for origin DHE type \'xxx\'","sidebar":"tutorialSidebar"},"business/ultimate/dhao":{"id":"business/ultimate/dhao","title":"DHAO \u6587\u4ef6","description":"dhao\u6587\u4ef6\u662fDHE\u6280\u672f\u7684\u6838\u5fc3\u6982\u5ff5\u3002dhao\u6587\u4ef6\u4e2d\u5305\u542b\u4e86\u79bb\u7ebf\u8ba1\u7b97\u597d\u7684\u6700\u65b0\u7684\u70ed\u66f4\u65b0dll\u4e2d\u53d8\u5316\u7684\u7c7b\u578b\u548c\u51fd\u6570\u7684\u4fe1\u606f\uff0c\u8fd0\u884c\u65f6\u76f4\u63a5\u6839\u636edhao\u6587\u4ef6\u4e2d\u4fe1\u606f\u51b3\u5b9a\u6267\u884c\u67d0\u4e2a\u70ed\u66f4\u65b0\u51fd\u6570\u65f6\uff0c\u5e94\u8be5\u4f7f\u7528\u6700\u65b0\u7684\u89e3\u91ca\u7248\u672c\u8fd8\u662f\u76f4\u63a5\u8c03\u7528\u539f\u59cb\u7684AOT\u51fd\u6570\u3002","sidebar":"tutorialSidebar"},"business/ultimate/freetrial":{"id":"business/ultimate/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/ultimate/injectrules":{"id":"business/ultimate/injectrules","title":"\u51fd\u6570\u6ce8\u5165\u7b56\u7565","description":"\u4e3a\u4e86\u907f\u514d\u810f\u51fd\u6570\u4f20\u67d3\uff0c\u9ed8\u8ba4\u4f1a\u5728\u6240\u6709\u51fd\u6570\u5934\u90e8\u6ce8\u5165\u4e00\u5c0f\u6bb5\u68c0\u67e5\u8df3\u8f6c\u4ee3\u7801\u3002\u8fd9\u4e2a\u6ce8\u5165\u4ee3\u7801\u5bf9\u77ed\u51fd\u6570\u6027\u80fd\u548c\u6700\u7ec8\u751f\u6210\u7684\u4ee3\u7801\u957f\u5ea6\u7684\u5f71\u54cd\u8f83\u4e3a\u663e\u8457\uff08\u589e\u52a030%\u5de6\u53f3\u4ee3\u7801\uff09\u3002","sidebar":"tutorialSidebar"},"business/ultimate/intro":{"id":"business/ultimate/intro","title":"\u4ecb\u7ecd","description":"\u65d7\u8230\u7248\u4e3b\u8981\u9762\u5411\u6709\u4e25\u683c\u6027\u80fd\u8981\u6c42\u7684\u9879\u76ee\u3002\u65d7\u8230\u7248\u76f8\u5bf9\u793e\u533a\u7248\u5728\u6027\u80fd\u65b9\u9762\u6709\u5de8\u5e45\u63d0\u5347\uff0c\u51e0\u4e4e\uff08\u672a\u6539\u52a8\u65f6\u4e3a100%\uff09\u8fbe\u5230\u539f\u751f\u6027\u80fd\u6c34\u5e73\uff0c\u540c\u65f6\u5728\u5b89\u5168\u6027\u548c\u5185\u5b58\u65b9\u9762\u6709\u8f83\u597d\u7684\u4f18\u5316\u3002","sidebar":"tutorialSidebar"},"business/ultimate/manual":{"id":"business/ultimate/manual","title":"\u4f7f\u7528\u624b\u518c","description":"\u5b89\u88c5","sidebar":"tutorialSidebar"},"business/ultimate/quickstartunchecked":{"id":"business/ultimate/quickstartunchecked","title":"\u5feb\u901f\u4e0a\u624b","description":"\u672c\u6559\u7a0b\u5f15\u5bfc\u4ece\u7a7a\u9879\u76ee\u5f00\u59cb\u4f53\u9a8cHybridCLR\u70ed\u66f4\u65b0\u3002\u51fa\u4e8e\u7b80\u5316\u8d77\u89c1\uff0c\u53ea\u6f14\u793aBuildTarget\u4e3aWindows\u6216MacOS Standalone\u5e73\u53f0\u7684\u60c5\u51b5\u3002","sidebar":"tutorialSidebar"},"business/ultimate/useIncodes":{"id":"business/ultimate/useIncodes","title":"\u4ee3\u7801\u4e2d\u4f7f\u7528","description":"RuntimeApi::LoadOriginalDifferentialHybridAssembly"},"help/commonerrors":{"id":"help/commonerrors","title":"\u5e38\u89c1\u9519\u8bef","description":"\u76ee\u524d\u63d0\u4ea4\u7684\u7248\u672c\u90fd\u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u57fa\u672c\u4e0d\u53ef\u80fd\u51fa\u73b0\u7f16\u8bd1\u9519\u8bef\u53ca\u5d29\u6e83\u6216\u8005\u57fa\u7840\u7684\u8fd0\u884c\u9519\u8bef\u3002\u5982\u679c\u67e5\u770b\u4e86\u5e38\u89c1\u9519\u8bef\uff0c\u8fd8\u672a\u80fd\u89e3\u51b3\u95ee\u9898\uff0c\u8bf7\u5c06com.code-philosophy.hybridclr\u3001hybridclr\u3001il2cpp_plus\u66f4\u65b0\u5230\u6700\u65b0\u7248\u672c\uff0c\u518d\u8bd5\u4e00\u6b21\u3002","sidebar":"tutorialSidebar"},"help/faq":{"id":"help/faq","title":"FAQ","description":"HybridCLR\u652f\u6301\u54ea\u4e9b\u5e73\u53f0?","sidebar":"tutorialSidebar"},"help/issue":{"id":"help/issue","title":"BUG\u53cd\u9988\u6a21\u677f","description":"\u53cd\u9988bug\u524d\uff0c\u8bf7\u786e\u8ba4\u5df2\u7ecf\u5b8c\u6210\u4ee5\u4e0b\u6b65\u9aa4\uff1a","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"HybridCLR","description":"license","sidebar":"tutorialSidebar"},"other/businesscase":{"id":"other/businesscase","title":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","description":"\u76ee\u524d\u4f7f\u7528HybridCLR\u7684\u56fd\u5185\u5916\u5546\u4e1a\u6e38\u620f\u6570\u5343\u6b3e\uff0c\u5176\u4e2d\u5e76\u5df2\u7ecf\u4e0a\u7ebf\uff08AppStore\u6216GooglePlay\uff09\u7684\u5546\u4e1a\u9879\u76ee\u6709\u4e0a\u5343\u6b3e\u4e4b\u591a\u3002","sidebar":"tutorialSidebar"},"other/changelog":{"id":"other/changelog","title":"\u6539\u52a8\u65e5\u5fd7","description":"\u6b64\u6587\u6863\u53ea\u8bb0\u5f55\u5173\u952e\u6027\u4e8b\u4ef6\uff0c\u66f4\u5177\u4f53\u7684\u53d1\u5e03\u65e5\u5fd7\u8bf7\u770b RELEASELOG\u3002","sidebar":"tutorialSidebar"},"other/contactme":{"id":"other/contactme","title":"\u652f\u6301\u4e0e\u8054\u7cfb","description":"- \u5b98\u65b91\u7fa4\uff1a651188171\uff08\u6ee1\uff09","sidebar":"tutorialSidebar"},"other/donate":{"id":"other/donate","title":"\u81f4\u8c22\u540d\u5355","description":"\u611f\u8c22\u8fd9\u4e9b\u670b\u53cb\u7684\u6177\u6168\u8d5e\u52a9\uff01\uff01\uff01","sidebar":"tutorialSidebar"},"other/relativepojects":{"id":"other/relativepojects","title":"\u76f8\u5173\u7684\u7b2c\u4e09\u65b9\u9879\u76ee","description":"- ET\u6846\u67b6 ET","sidebar":"tutorialSidebar"},"other/roadmap":{"id":"other/roadmap","title":"\u540e\u7eed\u5f00\u53d1\u89c4\u5212","description":"- \u652f\u6301extern\u51fd\u6570","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.98cd9060.js b/assets/js/935f2afb.98cd9060.js new file mode 100644 index 000000000..9eb46de5f --- /dev/null +++ b/assets/js/935f2afb.98cd9060.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/intro","docId":"intro"},{"type":"link","label":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","href":"/docs/other/businesscase","docId":"other/businesscase"},{"type":"category","label":"\u65b0\u624b\u6559\u7a0b","collapsed":false,"items":[{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/beginner/quickstart","docId":"beginner/quickstart"},{"type":"link","label":"\u4f7f\u7528MonoBehaviour","href":"/docs/beginner/monobehaviour","docId":"beginner/monobehaviour"},{"type":"link","label":"\u4f7f\u7528\u6cdb\u578b","href":"/docs/beginner/generic","docId":"beginner/generic"},{"type":"link","label":"\u5176\u4ed6\u8d44\u6599","href":"/docs/beginner/otherhelp","docId":"beginner/otherhelp"}],"collapsible":true,"href":"/docs/beginner"},{"type":"category","label":"\u4f7f\u7528\u6307\u5357","collapsed":true,"items":[{"type":"link","label":"\u652f\u6301\u7684Unity\u7248\u672c\u548c\u5e73\u53f0","href":"/docs/basic/supportedplatformanduniyversion","docId":"basic/supportedplatformanduniyversion"},{"type":"link","label":"\u5b89\u88c5","href":"/docs/basic/install","docId":"basic/install"},{"type":"link","label":"\u914d\u7f6e","href":"/docs/basic/projectsettings","docId":"basic/projectsettings"},{"type":"link","label":"\u914d\u7f6e\u7a0b\u5e8f\u96c6","href":"/docs/basic/hotupdateassemblysetting","docId":"basic/hotupdateassemblysetting"},{"type":"link","label":"\u52a0\u8f7d\u548c\u8fd0\u884c","href":"/docs/basic/runhotupdatecodes","docId":"basic/runhotupdatecodes"},{"type":"link","label":"\u6253\u5305\u5de5\u4f5c\u6d41","href":"/docs/basic/buildpipeline","docId":"basic/buildpipeline"},{"type":"link","label":"\u53d1\u5e03WebGL\u5e73\u53f0","href":"/docs/basic/buildwebgl","docId":"basic/buildwebgl"},{"type":"link","label":"\u4ee3\u7801\u88c1\u526a","href":"/docs/basic/codestriping","docId":"basic/codestriping"},{"type":"link","label":"MonoBehaviour\u652f\u6301","href":"/docs/basic/monobehaviour","docId":"basic/monobehaviour"},{"type":"link","label":"AOT\u6cdb\u578b","href":"/docs/basic/aotgeneric","docId":"basic/aotgeneric"},{"type":"link","label":"\u6865\u63a5\u51fd\u6570","href":"/docs/basic/methodbridge","docId":"basic/methodbridge"},{"type":"link","label":"DOTS\u652f\u6301","href":"/docs/basic/dots","docId":"basic/dots"},{"type":"link","label":"\u5185\u5b58\u4e0eGC","href":"/docs/basic/memory","docId":"basic/memory"},{"type":"link","label":"\u6267\u884c\u6027\u80fd","href":"/docs/basic/performance","docId":"basic/performance"},{"type":"link","label":"\u5bf9App\u5305\u4f53\u5f71\u54cd","href":"/docs/basic/impactonappsize","docId":"basic/impactonappsize"},{"type":"link","label":"\u4e0d\u652f\u6301\u7684\u7279\u6027","href":"/docs/basic/notsupportedfeatures","docId":"basic/notsupportedfeatures"},{"type":"link","label":"hybridclr Package\u624b\u518c","href":"/docs/basic/com.code-philosophy.hybridclr","docId":"basic/com.code-philosophy.hybridclr"},{"type":"link","label":"\u6700\u4f73\u5b9e\u8df5","href":"/docs/basic/bestpractice","docId":"basic/bestpractice"},{"type":"link","label":"\u4ecenetstandard\u8fc1\u79fb\u5230.Net Framework","href":"/docs/basic/migratefromnetstandard","docId":"basic/migratefromnetstandard"},{"type":"link","label":"HybridCLR+lua/js/python","href":"/docs/basic/workwithscriptlanguage","docId":"basic/workwithscriptlanguage"},{"type":"link","label":"\u4ee3\u7801\u7ed3\u6784\u53ca\u7248\u672c","href":"/docs/basic/architecture","docId":"basic/architecture"},{"type":"link","label":"HybridCLR\u6e90\u7801\u7ed3\u6784\u53ca\u8c03\u8bd5","href":"/docs/basic/sourceinspect","docId":"basic/sourceinspect"},{"type":"link","label":"il2cpp bug\u8bb0\u5f55","href":"/docs/basic/il2cppbugs","docId":"basic/il2cppbugs"}],"collapsible":true,"href":"/docs/basic"},{"type":"category","label":"\u5546\u4e1a\u5316\u7248\u672c","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/intro","docId":"business/intro"},{"type":"link","label":"\u5dee\u5206\u6df7\u5408\u6267\u884c","href":"/docs/business/differentialhybridexecution","docId":"business/differentialhybridexecution"},{"type":"link","label":"\u5b8c\u5168\u6cdb\u578b\u5171\u4eab","href":"/docs/business/fullgenericsharing","docId":"business/fullgenericsharing"},{"type":"link","label":"\u5143\u6570\u636e\u4f18\u5316","href":"/docs/business/metadataoptimization","docId":"business/metadataoptimization"},{"type":"link","label":"Assembly::Load\u52a0\u8f7d\u4f18\u5316","href":"/docs/business/assemblyloadoptimization","docId":"business/assemblyloadoptimization"},{"type":"link","label":"\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\u7684\u5d29\u6e83\u65e5\u5fd7","href":"/docs/business/crashreport","docId":"business/crashreport"},{"type":"link","label":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316","href":"/docs/business/basicoptimization","docId":"business/basicoptimization"},{"type":"link","label":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316","href":"/docs/business/advancedoptimization","docId":"business/advancedoptimization"},{"type":"link","label":"\u4ee3\u7801\u52a0\u56fa","href":"/docs/business/basicencryption","docId":"business/basicencryption"},{"type":"link","label":"\u8bbf\u95ee\u63a7\u5236\u7b56\u7565","href":"/docs/business/accesspolicy","docId":"business/accesspolicy"},{"type":"link","label":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","href":"/docs/business/businesscase","docId":"business/businesscase"},{"type":"category","label":"\u4e13\u4e1a\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/pro/intro","docId":"business/pro/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/pro/quickstart","docId":"business/pro/quickstart"},{"type":"link","label":"\u624b\u518c","href":"/docs/business/pro/manual","docId":"business/pro/manual"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/pro/commonerrors","docId":"business/pro/commonerrors"}],"collapsible":true,"href":"/docs/pro"},{"type":"category","label":"\u65d7\u8230\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/ultimate/intro","docId":"business/ultimate/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/ultimate/quickstartunchecked","docId":"business/ultimate/quickstartunchecked"},{"type":"link","label":"\u6784\u5efa\u548c\u70ed\u66f4\u65b0","href":"/docs/business/ultimate/build","docId":"business/ultimate/build"},{"type":"link","label":"DHAO \u6587\u4ef6","href":"/docs/business/ultimate/dhao","docId":"business/ultimate/dhao"},{"type":"link","label":"\u4f7f\u7528\u624b\u518c","href":"/docs/business/ultimate/manual","docId":"business/ultimate/manual"},{"type":"link","label":"\u51fd\u6570\u6ce8\u5165\u7b56\u7565","href":"/docs/business/ultimate/injectrules","docId":"business/ultimate/injectrules"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/ultimate/commonerrors","docId":"business/ultimate/commonerrors"}],"collapsible":true,"href":"/docs/ultimate"},{"type":"category","label":"\u70ed\u91cd\u8f7d\u7248","collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/docs/business/reload/intro","docId":"business/reload/intro"},{"type":"link","label":"\u5feb\u901f\u4e0a\u624b","href":"/docs/business/reload/quickstart","docId":"business/reload/quickstart"},{"type":"link","label":"\u624b\u518c","href":"/docs/business/reload/manual","docId":"business/reload/manual"},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/docs/business/reload/commonerrors","docId":"business/reload/commonerrors"}],"collapsible":true,"href":"/docs/reload"}],"collapsible":true,"href":"/docs/business"},{"type":"category","label":"\u5e2e\u52a9","collapsed":true,"items":[{"type":"link","label":"FAQ","href":"/docs/help/faq","docId":"help/faq"},{"type":"link","label":"\u5e38\u89c1\u9519\u8bef","href":"/docs/help/commonerrors","docId":"help/commonerrors"},{"type":"link","label":"BUG\u53cd\u9988\u6a21\u677f","href":"/docs/help/issue","docId":"help/issue"}],"collapsible":true,"href":"/docs/help"},{"type":"category","label":"\u5176\u4ed6","collapsed":true,"items":[{"type":"link","label":"\u76f8\u5173\u7684\u7b2c\u4e09\u65b9\u9879\u76ee","href":"/docs/other/relativepojects","docId":"other/relativepojects"},{"type":"link","label":"\u540e\u7eed\u5f00\u53d1\u89c4\u5212","href":"/docs/other/roadmap","docId":"other/roadmap"},{"type":"link","label":"\u6539\u52a8\u65e5\u5fd7","href":"/docs/other/changelog","docId":"other/changelog"},{"type":"link","label":"\u81f4\u8c22\u540d\u5355","href":"/docs/other/donate","docId":"other/donate"},{"type":"link","label":"\u652f\u6301\u4e0e\u8054\u7cfb","href":"/docs/other/contactme","docId":"other/contactme"}],"collapsible":true,"href":"/docs/other"}]},"docs":{"basic/aotgeneric":{"id":"basic/aotgeneric","title":"AOT\u6cdb\u578b","description":"CLR\u4e2d\u6709\u4e24\u7c7b\u6cdb\u578b\u7279\u6027\uff1a\u6cdb\u578b\u7c7b\u578b\u548c\u6cdb\u578b\u51fd\u6570\u3002\u6cdb\u578b\u662fc#\u4e2d\u4f7f\u7528\u6781\u5176\u5e7f\u6cdb\u7684\u7279\u6027\uff0c\u5373\u4f7f\u4e00\u4e2a\u6ca1\u6709\u660e\u663e\u5305\u542b\u6cdb\u578b\u7684\u7528\u6cd5\uff0c\u4e5f\u53ef\u80fd\u9690\u542b\u4e86\u6cdb\u578b\u76f8\u5173\u7684\u5b9a\u4e49\u6216\u8005\u64cd\u4f5c\u3002","sidebar":"tutorialSidebar"},"basic/architecture":{"id":"basic/architecture","title":"\u4ee3\u7801\u7ed3\u6784\u53ca\u7248\u672c","description":"\u5b8c\u6574\u7684HybridCLR\u4ee3\u7801\u7531\u4e09\u4e2a\u4ed3\u5e93\u6784\u6210\uff1a","sidebar":"tutorialSidebar"},"basic/bestpractice":{"id":"basic/bestpractice","title":"\u6700\u4f73\u5b9e\u8df5","description":"unity\u7248\u672c\u63a8\u8350","sidebar":"tutorialSidebar"},"basic/buildpipeline":{"id":"basic/buildpipeline","title":"\u6253\u5305\u5de5\u4f5c\u6d41","description":"\u7531\u4e8e\u70ed\u66f4\u65b0\u672c\u8eab\u7684\u8981\u6c42\u4ee5\u53caUnity\u8d44\u6e90\u7ba1\u7406\u7684\u4e00\u4e9b\u9650\u5236\uff0c\u5bf9\u6253\u5305\u5de5\u4f5c\u6d41\u9700\u8981\u4e00\u4e9b\u7279\u6b8a\u5904\u7406\uff0c\u4e3b\u8981\u5206\u4e3a\u51e0\u90e8\u5206\uff1a","sidebar":"tutorialSidebar"},"basic/buildwebgl":{"id":"basic/buildwebgl","title":"\u53d1\u5e03WebGL\u5e73\u53f0","description":"\u7531\u4e8eWebGL\u5e73\u53f0\u6709\u8f83\u591a\u7279\u6b8a\u6027\uff0c\u6545\u7279\u5730\u5355\u72ec\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u53d1\u5e03WebGL\u5e73\u53f0\u3002\u672c\u6587\u6863\u5728 hybridclrtrial\u9879\u76ee\uff08github gitee \uff09\u4e0a\u6f14\u793a\u53d1\u5e03\u8fc7\u7a0b\u3002","sidebar":"tutorialSidebar"},"basic/codestriping":{"id":"basic/codestriping","title":"\u4ee3\u7801\u88c1\u526a","description":"Unity\u4f7f\u7528\u4e86\u4ee3\u7801\u88c1\u526a\u6280\u672f\u6765\u5e2e\u52a9\u51cf\u5c11il2cpp backend\u7684\u5305\u4f53\u5927\u5c0f\u3002\u5982\u679c\u672a\u505a\u9632\u88c1\u526a\u5904\u7406\uff0c\u7531\u4e8eAOT\u4e3b\u5de5\u7a0b\u91cc\u7684\u4ee3\u7801\u4e00\u822c\u4e0d\u591a\uff0c\u5927\u91cf\u7684C#\u7c7b\u578b\u548c\u51fd\u6570\u88ab","sidebar":"tutorialSidebar"},"basic/com.code-philosophy.hybridclr":{"id":"basic/com.code-philosophy.hybridclr","title":"hybridclr Package\u624b\u518c","description":"com.code-philosophy.hybridclr\u662f\u4e00\u4e2aUnity package\uff0c\u5b83\u63d0\u4f9b\u4e86HybridCLR\u6240\u9700\u7684Editor\u5de5\u4f5c\u6d41\u5de5\u5177\u811a\u672c\u53caRuntime\u811a\u672c\u3002\u501f\u52a9","sidebar":"tutorialSidebar"},"basic/compileassembly":{"id":"basic/compileassembly","title":"\u7f16\u8bd1 \u70ed\u66f4\u65b0assembly","description":"\u70ed\u66f4\u65b0\u4ee3\u7801\u4e2d\u6709\u53ef\u80fd\u4f1a\u5305\u542b #if UNITYEDITOR \u3001#if UNITYSTANDALONE_WIN \u8fd9\u6837\u7684\u5b8f\u5f00\u5173\uff0c\u56e0\u6b64\u6bcf\u4e2a\u5e73\u53f0\u9700\u8981\u5355\u72ec"},"basic/dots":{"id":"basic/dots","title":"DOTS\u652f\u6301","description":"DOTS\u7684TypeManager\u521d\u59cb\u5316\u65f6\u673a\u8fc7\u65e9\uff0c\u800c\u4e14\u4e0d\u652f\u6301\u52a8\u6001\u6ce8\u518cComponent\u548cSystem\u7b49\u7c7b\u578b\u3002\u4e3a\u4e86\u8ba9\u70ed\u66f4\u65b0\u6a21\u5757\u80fd\u5728DOTS\u7cfb\u7edf\u4e2d\u6b63\u5e38","sidebar":"tutorialSidebar"},"basic/hotupdateassemblysetting":{"id":"basic/hotupdateassemblysetting","title":"\u914d\u7f6e\u7a0b\u5e8f\u96c6","description":"\u4e00\u822c\u6765\u8bf4\uff0c\u5fc5\u987b\u5c06\u70ed\u66f4\u65b0\u4ee3\u7801\u72ec\u7acb\u4e3aassembly\uff0c\u624d\u80fd\u65b9\u4fbf\u5730\u8fdb\u884c\u70ed\u66f4\u65b0\u3002","sidebar":"tutorialSidebar"},"basic/il2cppbugs":{"id":"basic/il2cppbugs","title":"il2cpp bug\u8bb0\u5f55","description":"\u9006\u53d8\u534f\u53d8\u6cdb\u578b\u63a5\u53e3\u8c03\u7528\u9519\u8bef","sidebar":"tutorialSidebar"},"basic/impactonappsize":{"id":"basic/impactonappsize","title":"\u5bf9App\u5305\u4f53\u5f71\u54cd","description":"\u63a5\u5165hybridclr\u540e\uff0c\u4f1a\u8f7b\u5fae\u5730\u589e\u52a0\u5305\u4f53\uff0c\u4e3b\u8981\u7531\u4ee5\u4e0b\u51e0\u90e8\u5206\u6784\u6210\uff1a","sidebar":"tutorialSidebar"},"basic/install":{"id":"basic/install","title":"\u5b89\u88c5","description":"\u5b89\u88c5\u517c\u5bb9\u7684Unity\u7248\u672c","sidebar":"tutorialSidebar"},"basic/memory":{"id":"basic/memory","title":"\u5185\u5b58\u4e0eGC","description":"HybridCLR\u8fd0\u884c\u65f6\u6d88\u8017\u5185\u5b58\u4e3b\u8981\u5206\u4e3a\u51e0\u90e8\u5206\uff1a","sidebar":"tutorialSidebar"},"basic/methodbridge":{"id":"basic/methodbridge","title":"\u6865\u63a5\u51fd\u6570","description":"HybridCLR\u7684interpreter\u4e0eAOT\u4e4b\u95f4\u9700\u8981\u53cc\u5411\u51fd\u6570\u8c03\u7528\u3002\u6bd4\u5982interpreter\u8c03\u7528AOT\u51fd\u6570\uff0c\u6216\u8005AOT\u901a\u8fc7interface\u63a5\u53e3\u6216\u8005delegate\u56de\u8c03interpreter\u3002","sidebar":"tutorialSidebar"},"basic/migratefromnetstandard":{"id":"basic/migratefromnetstandard","title":"\u4ecenetstandard\u8fc1\u79fb\u5230.Net Framework","description":"Unity\u5728\u6253\u5305\u8fc7\u7a0b\u4e2d\uff0c\u4f1a\u628a\u5bf9netstandard.dll\u7684\u5f15\u7528\u5168\u90e8\u8f6c\u6362\u6700\u7ec8\u7684mscorlib.dll\u4e4b\u7c7b\u7684\u5f15\u7528\uff0c\u5bfc\u81f4\u539f\u59cb\u4ee3\u7801","sidebar":"tutorialSidebar"},"basic/monobehaviour":{"id":"basic/monobehaviour","title":"MonoBehaviour\u652f\u6301","description":"HybridCLR\u5b8c\u5168\u652f\u6301\u70ed\u66f4\u65b0MonoBehaviour\u548cScriptableObject\u5de5\u4f5c\u6d41\uff0c\u5373\u53ef\u4ee5\u5728\u4ee3\u7801\u91cc\u5728GameObject\u4e0aAdd\u70ed\u66f4\u65b0\u811a\u672c\u6216\u8005\u5728\u8d44\u6e90\u4e0a\u76f4\u63a5\u6302\u8f7d","sidebar":"tutorialSidebar"},"basic/notsupportedfeatures":{"id":"basic/notsupportedfeatures","title":"\u4e0d\u652f\u6301\u7684\u7279\u6027","description":"\u4e0d\u5728\u9650\u5236\u4e8b\u9879\u4e2d\u7684\u7279\u6027HybridCLR\u90fd\u652f\u6301\uff0c\u8bf7\u4e0d\u8981\u518d\u95eeHybridCLR\u662f\u5426\u652f\u6301\u67d0\u4e2a\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"basic/performance":{"id":"basic/performance","title":"\u6267\u884c\u6027\u80fd","description":"\u867d\u7136HybridCLR\u4e5f\u662f\u89e3\u91ca\u6267\u884c\uff0c\u4f46\u65e0\u8bba\u4ece\u7406\u8bba\u539f\u7406\u8fd8\u662f\u771f\u673a\u6d4b\u8bd5\u6570\u636e\u8868\u660e\uff0cHybridCLR\u76f8\u6bd4\u5f53\u524d\u6d41\u884c\u7684lua\u3001ILRuntime\u4e4b\u7c7b\u7684\u70ed\u66f4\u65b0\u65b9\u6848\uff0c\u6027\u80fd\u6709\u6781\u5927\u7684\u63d0\u5347(\u6570\u500d\u751a\u81f3\u6570\u5341\u500d)\u3002","sidebar":"tutorialSidebar"},"basic/projectsettings":{"id":"basic/projectsettings","title":"\u914d\u7f6e","description":"\u5b89\u88c5\u5b8ccom.code-philosophy.hybridclr\u5305\u540e\uff0c\u9700\u8981\u6b63\u786e\u8bbe\u7f6e\u76f8\u5173\u53c2\u6570\u3002\u914d\u7f6e\u76f8\u5173\u8be6\u7ec6\u6587\u6863\u53ef\u89c1 hybridclr_unity\u5305\u4ecb\u7ecd\u3002","sidebar":"tutorialSidebar"},"basic/runhotupdatecodes":{"id":"basic/runhotupdatecodes","title":"\u52a0\u8f7d\u548c\u8fd0\u884c","description":"\u52a0\u8f7d\u66f4\u65b0assembly","sidebar":"tutorialSidebar"},"basic/sourceinspect":{"id":"basic/sourceinspect","title":"HybridCLR\u6e90\u7801\u7ed3\u6784\u53ca\u8c03\u8bd5","description":"HybridCLR\u6a21\u5757\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"basic/supportedplatformanduniyversion":{"id":"basic/supportedplatformanduniyversion","title":"\u652f\u6301\u7684Unity\u7248\u672c\u548c\u5e73\u53f0","description":"HybridCLR\u5df2\u7ecf\u7a33\u5b9a\u652f\u6301\u4e862019.4.x\u30012020.3.x\u30012021.3.x\u30012022.3.x \u7cfb\u5217LTS\u7248\u672c\u53ca2023.2.x\u30016000.0.x\u7b49\u6d4b\u8bd5\u7248\u672c\uff0c\u5e76\u4e14\u652f\u6301\u6240\u6709il2cpp\u652f\u6301\u7684\u5e73\u53f0\u3002","sidebar":"tutorialSidebar"},"basic/workwithscriptlanguage":{"id":"basic/workwithscriptlanguage","title":"HybridCLR+lua/js/python","description":"\u6709\u4e00\u4e9b\u9879\u76ee\u5df2\u7ecf\u4e0a\u7ebf\uff0c\u5b83\u4eec\u7684\u5927\u591a\u6570\u4ee3\u7801\u5df2\u7ecf\u7528lua\u5b9e\u73b0\u4e86\uff1b\u6216\u8005\u4e00\u4e9b\u65b0\u9879\u76ee\u5df2\u7ecf\u7528lua\u5f00\u53d1\u5230\u4e00\u534a\uff0c\u4ed6\u4eec\u65e0\u6cd5\u5b8c\u5168\u5207\u6362\u4e3a\u5168C#\u5f00\u53d1\uff0c\u4f46\u5e0c\u671b","sidebar":"tutorialSidebar"},"beginner/generic":{"id":"beginner/generic","title":"\u4f7f\u7528\u6cdb\u578b","description":"HybridCLR\u5b8c\u6574\u652f\u6301\u6cdb\u578b\u7279\u6027\uff0c\u6ca1\u6709\u4efb\u4f55\u9650\u5236\u3002","sidebar":"tutorialSidebar"},"beginner/monobehaviour":{"id":"beginner/monobehaviour","title":"\u4f7f\u7528MonoBehaviour","description":"HybridCLR\u5b8c\u5168\u652f\u6301MonoBehaviour\u5de5\u4f5c\u6d41\uff0c\u4f60\u65e2\u53ef\u4ee5\u901a\u8fc7AddComponent\u7684\u65b9\u5f0f\u5728\u4ee3\u7801\u91cc\u52a8\u6001\u6302\u8f7d\u70ed\u66f4\u65b0\u811a\u672c\uff0c\u4e5f\u53ef\u4ee5\u5c06\u70ed\u66f4\u65b0\u811a\u672c\u6302\u5230\u8d44\u6e90\u4e0a\uff0c\u518d\u901a\u8fc7\u52a0\u8f7d\u8d44\u6e90\u7684\u65b9\u5f0f\u8fd8\u539f\u811a\u672c\u3002","sidebar":"tutorialSidebar"},"beginner/otherhelp":{"id":"beginner/otherhelp","title":"\u5176\u4ed6\u8d44\u6599","description":"\u5b98\u65b9\u76f8\u5173\u4ed3\u5e93","sidebar":"tutorialSidebar"},"beginner/quickstart":{"id":"beginner/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u672c\u6559\u7a0b\u5f15\u5bfc\u4ece\u7a7a\u9879\u76ee\u5f00\u59cb\u4f53\u9a8cHybridCLR\u70ed\u66f4\u65b0\u3002\u51fa\u4e8e\u7b80\u5316\u8d77\u89c1\uff0c\u53ea\u6f14\u793aBuildTarget\u4e3aWindows\u6216MacOS Standalone\u5e73\u53f0\u7684\u60c5\u51b5\u3002","sidebar":"tutorialSidebar"},"business/accesspolicy":{"id":"business/accesspolicy","title":"\u8bbf\u95ee\u63a7\u5236\u7b56\u7565","description":"\u5bf9\u4e8e\u4e00\u4e9b\u5e73\u53f0\u578b\u7684\u5e94\u7528\uff0c\u5b83\u4eec\u53ef\u80fd\u4f1a\u52a0\u8f7d\u548c\u6267\u884c\u7b2c\u4e09\u65b9\u5f00\u53d1\u7684\u4ee3\u7801\u3002\u5982\u679c\u4e0d\u5bf9\u8fd9\u4e9b\u7b2c\u4e09\u65b9\u4ee3\u7801\u52a0\u4ee5\u9650\u5236\uff0c\u4f1a\u5e26\u6765\u5b89\u5168\u9690\u60a3\u3002","sidebar":"tutorialSidebar"},"business/advancedencryption":{"id":"business/advancedencryption","title":"\u9ad8\u7ea7\u4ee3\u7801\u52a0\u56fa","description":"\u9ad8\u7ea7\u4ee3\u7801\u52a0\u56fa\u4f7f\u7528\u81ea\u5b9a\u4e49\u7684\u7a0b\u5e8f\u96c6\u7ed3\u6784\u548c\u81ea\u5b9a\u4e49\u7684\u6307\u4ee4\uff0c\u6781\u5927\u63d0\u5347\u4e86App\u5b89\u5168\u6027\u3002"},"business/advancedoptimization":{"id":"business/advancedoptimization","title":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316","description":"\u79bb\u7ebf\u6307\u4ee4\u4f18\u5316\u6280\u672f\u6b63\u5f00\u53d1\u4e2d\uff0c\u76ee\u524d\u4ec5\u53ef\u4f7f\u7528\u6807\u51c6\u6307\u4ee4\u4f18\u5316\u6280\u672f\u3002","sidebar":"tutorialSidebar"},"business/assemblyloadoptimization":{"id":"business/assemblyloadoptimization","title":"Assembly::Load\u52a0\u8f7d\u4f18\u5316","description":"\u5546\u4e1a\u5316\u7248\u672c\u4ece\u4ee5\u51e0\u4e2a\u65b9\u9762\u4f18\u5316\u4e86Assembly::Load\u65f6\u95f4\u51cf\u5c11\u4e3a\u539f\u6765\u768420%\u3002","sidebar":"tutorialSidebar"},"business/basicencryption":{"id":"business/basicencryption","title":"\u4ee3\u7801\u52a0\u56fa","description":"\u793e\u533a\u7248\u672c\u76f4\u63a5\u52a0\u8f7d\u539f\u59cbdll\uff0c\u4f7f\u5f97\u5f00\u53d1\u8005\u4e0d\u5f97\u4e0d\u643a\u5e26\u548c\u4e0b\u8f7d\u539f\u59cbdll\u3002\u8fd9\u4e9b\u539f\u59cbdll\u80fd\u591f\u88abILSpy\u4e4b\u7c7b\u7684\u5de5\u5177\u53cd\u7f16\u8bd1","sidebar":"tutorialSidebar"},"business/basicoptimization":{"id":"business/basicoptimization","title":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316","description":"\u6807\u51c6\u89e3\u91ca\u4f18\u5316\u6280\u672f\u4ec5\u5728\u5546\u4e1a\u5316\u7248\u672c\u4e0a\u53ef\u7528\u3002","sidebar":"tutorialSidebar"},"business/businesscase":{"id":"business/businesscase","title":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","description":"\u6211\u4eec\u5df2\u7ecf\u4e0e\u4e1a\u5185\u8bb8\u591a\u516c\u53f8\u8fdb\u884c\u9ad8\u7ea7\u5408\u4f5c\uff0c\u5f88\u597d\u5730\u89e3\u51b3\u4e86\u4ed6\u4eec\u7684\u95ee\u9898\u3002\u51fa\u4e8e\u5546\u4e1a\u4fdd\u5bc6\u539f\u56e0\uff0c\u6211\u4eec\u53ea\u7f57\u5217\u4e86\u6781\u6709\u9650\u7684\u613f\u610f\u516c\u5f00\u4fe1\u606f\u7684\u5546\u4e1a\u5408\u4f5c\u4f19\u4f34\u4fe1\u606f\u3002","sidebar":"tutorialSidebar"},"business/crashreport":{"id":"business/crashreport","title":"\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\u7684\u5d29\u6e83\u65e5\u5fd7","description":"\u793e\u533a\u7248\u672c\u5d29\u6e83\u65f6\u4e0d\u5305\u542b\u89e3\u91ca\u5668\u6808\u4fe1\u606f\uff0c\u4f7f\u5f97\u7ebf\u4e0a\u9879\u76ee\u96be\u4ee5\u5b9a\u4f4d\u9519\u8bef\u3002\u5546\u4e1a\u5316\u7684\u7248\u672c\u5728\u5d29\u6e83\u65f6\u6dfb\u52a0\u66f4\u4e30\u5bcc\u7684\u89e3\u91ca\u5668\u6808\u4fe1\u606f\uff0c\u65b9\u4fbf\u5b9a\u4f4d\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"business/differentialhybridexecution":{"id":"business/differentialhybridexecution","title":"\u5dee\u5206\u6df7\u5408\u6267\u884c","description":"HybridCLR\u5f00\u521b\u6027\u5730\u5b9e\u73b0\u4e86 Differential Hybrid Execution(DHE) \u5dee\u5206\u6df7\u5408\u6267\u884c\u6280\u672f\u3002\u5373\u53ef\u4ee5\u5bf9AOT dll\u4efb\u610f\u589e\u5220\u6539\uff0c\u4f1a\u667a\u80fd\u5730\u8ba9\u53d8\u5316\u6216\u8005\u65b0\u589e\u7684\u7c7b\u548c\u51fd\u6570\u4ee5interpreter\u6a21\u5f0f\u8fd0\u884c\uff0c\u4f46\u672a\u6539\u52a8\u7684\u7c7b\u548c\u51fd\u6570\u4ee5AOT\u65b9\u5f0f\u8fd0\u884c\uff0c\u8ba9\u70ed\u66f4\u65b0\u7684\u6e38\u620f\u903b\u8f91\u7684\u8fd0\u884c\u6027\u80fd\u57fa\u672c\u8fbe\u5230\u539f\u751fAOT\u7684\u6c34\u5e73\u3002","sidebar":"tutorialSidebar"},"business/fullgenericsharing":{"id":"business/fullgenericsharing","title":"\u5b8c\u5168\u6cdb\u578b\u5171\u4eab","description":"\u8865\u5145\u5143\u6570\u636e\u867d\u7136\u5f7b\u5e95\u89e3\u51b3\u4e86AOT\u6cdb\u578b\u95ee\u9898\uff0c\u4f46\u8865\u5145\u5143\u6570\u636e\u4f1a\u5bfc\u81f4\u9700\u8981\u968f\u5305\u643a\u5e26\u6216\u8005\u70ed\u66f4\u65b0\u4e0b\u8f7d\u8865\u5145\u5143\u6570\u636edll\uff0c\u5bfc\u81f4\u5305\u4f53\u589e\u5927\u6216\u8005\u589e\u52a0\u4e86\u70ed\u66f4\u65b0\u65f6\u95f4\u3002","sidebar":"tutorialSidebar"},"business/intro":{"id":"business/intro","title":"\u4ecb\u7ecd","description":"\u6211\u4eec\u63d0\u4f9b\u591a\u79cd\u9ad8\u7aef\u5546\u4e1a\u7248\u672c\u53ca\u53ef\u7075\u6d3b\u5b9a\u5236\u7684\u6280\u672f\u670d\u52a1\uff0c\u6ee1\u8db3\u6e38\u620f\u9879\u76ee\u5728\u5404\u79cd\u5e94\u7528\u573a\u666f\u4e0b\u7684\u9700\u6c42\u3002","sidebar":"tutorialSidebar"},"business/metadataoptimization":{"id":"business/metadataoptimization","title":"\u5143\u6570\u636e\u4f18\u5316","description":"HybridCLR\u6267\u884c\u4ee3\u7801\u8fc7\u7a0b\u4e2d\u5e76\u4e0d\u4f1a\u989d\u5916\u591a\u5360\u7528\u5185\u5b58\uff0c\u4f46\u52a0\u8f7dassembly\u7684\u5143\u6570\u636e\u5360\u636e\u4e86\u5927\u91cf\u5185\u5b58\u3002\u5bf9\u4e8e\u4e00\u4e9b\u5185\u5b58\u6709\u8f83\u5927\u538b\u529b\u7684\u573a\u5408\uff08\u5982\u5fae\u4fe1\u5c0f\u6e38\u620f\uff09\uff0c\u8fd9\u53ef\u80fd\u662f\u4e2a\u95ee\u9898\u3002","sidebar":"tutorialSidebar"},"business/pro/commonerrors":{"id":"business/pro/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"","sidebar":"tutorialSidebar"},"business/pro/freetrial":{"id":"business/pro/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/pro/intro":{"id":"business/pro/intro","title":"\u4ecb\u7ecd","description":"\u4e13\u4e1a\u7248\u63d0\u4f9b\u4e86\u4e00\u4e9b\u793e\u533a\u7248\u672c\u6240\u4e0d\u652f\u6301\u7684\u9ad8\u7ea7\u7279\u6027\uff0c\u9002\u5408\u5bf9\u5185\u5b58\u548c\u5305\u4f53\u8981\u6c42\u8f83\u9ad8\u6216\u8005\u6709\u4e00\u5b9a\u6027\u80fd\u538b\u529b\u7684\u573a\u5408\uff0c\u5982WebGL\u6e38\u620f\u3002","sidebar":"tutorialSidebar"},"business/pro/manual":{"id":"business/pro/manual","title":"\u624b\u518c","description":"\u5b89\u88c5","sidebar":"tutorialSidebar"},"business/pro/quickstart":{"id":"business/pro/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u4e0e\u793e\u533a\u7248\u672c\u7684\u5feb\u901f\u4e0a\u624b\u51e0\u4e4e\u76f8\u540c\uff0c\u672c\u6587\u6863\u53ea\u4ecb\u7ecd\u4e0d\u540c\u4e4b\u5904\u3002","sidebar":"tutorialSidebar"},"business/reload/commonerrors":{"id":"business/reload/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"[Serializable] \u7c7b\u578b\u6216\u8005Monbehaviour\uff08ScriptableObject)\u4e2d\u5305\u542b\u6cdb\u578b\u53c2\u6570\u4e3a\u88ab\u5378\u8f7d\u7a0b\u5e8f\u96c6\u4e2d\u7c7b\u578b\u7684\u6cdb\u578b\u5b57\u6bb5\u65f6\u5d29\u6e83","sidebar":"tutorialSidebar"},"business/reload/freetrial":{"id":"business/reload/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/reload/hotreloadassembly":{"id":"business/reload/hotreloadassembly","title":"\u70ed\u91cd\u8f7d\u6280\u672f","description":"\u70ed\u91cd\u8f7d\u6280\u672f\u7528\u4e8e\u5b8c\u5168\u5378\u8f7d\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u4e00\u4e2aassembly\uff0c\u9002\u7528\u4e8e\u5c0f\u6e38\u620f\u5408\u96c6\u7c7b\u578b\u7684\u6e38\u620f\u3002\u8be5\u65b9\u6848\u53ea\u63d0\u4f9b\u5546\u4e1a\u5316\u7248\u672c\u3002"},"business/reload/intro":{"id":"business/reload/intro","title":"\u4ecb\u7ecd","description":"\u70ed\u91cd\u8f7d\u7279\u522b\u7248\u63d0\u4f9b\u72ec\u521b\u7684\u70ed\u91cd\u8f7d\u6280\u672f\u7684\u652f\u6301\u3002\u53ef\u4ee5\u8fd0\u884c\u4e2d\u5b8c\u5168\u5378\u8f7d\u6216\u8005\u91cd\u65b0\u52a0\u8f7d\u4e00\u4e2aassembly\uff0c\u5c24\u5176\u9002\u7528\u4e8e\u5c0f\u6e38\u620f\u5408\u96c6\u7c7b\u578b\u7684\u6e38\u620f\u3002","sidebar":"tutorialSidebar"},"business/reload/manual":{"id":"business/reload/manual","title":"\u624b\u518c","description":"\u652f\u6301\u7684\u7279\u6027","sidebar":"tutorialSidebar"},"business/reload/modifydll":{"id":"business/reload/modifydll","title":"\u4fee\u6539UnityEngine dll","description":"\u7531\u4e8e\u6709\u4e9b\u7248\u672c\u7684dll\u4e0e\u70ed\u91cd\u8f7d\u5e76\u4e0d\u517c\u5bb9\uff0c\u9700\u8981\u5c0f\u5e45\u4fee\u6539\u4ee3\u7801\u3002"},"business/reload/quickstart":{"id":"business/reload/quickstart","title":"\u5feb\u901f\u4e0a\u624b","description":"\u4e0e\u793e\u533a\u7248\u672c\u7684\u5feb\u901f\u4e0a\u624b\u51e0\u4e4e\u5b8c\u5168\u76f8\u540c\uff0c\u672c\u6587\u6863\u53ea\u4ecb\u7ecd\u4e0d\u540c\u4e4b\u5904\u3002","sidebar":"tutorialSidebar"},"business/ultimate/build":{"id":"business/ultimate/build","title":"\u6784\u5efa\u548c\u70ed\u66f4\u65b0","description":"DHE\u6280\u672f\u4e2d\u4e0e\u6784\u5efa\u76f8\u5173\u7684\u6587\u4ef6\u4e3adhe dll\u6587\u4ef6\u548c\u5bf9\u5e94\u7684dhao\u6587\u4ef6\u3002","sidebar":"tutorialSidebar"},"business/ultimate/commonerrors":{"id":"business/ultimate/commonerrors","title":"\u5e38\u89c1\u95ee\u9898","description":"ExecutionEngineException: Could not run the type initializer for origin DHE type \'xxx\'","sidebar":"tutorialSidebar"},"business/ultimate/dhao":{"id":"business/ultimate/dhao","title":"DHAO \u6587\u4ef6","description":"dhao\u6587\u4ef6\u662fDHE\u6280\u672f\u7684\u6838\u5fc3\u6982\u5ff5\u3002dhao\u6587\u4ef6\u4e2d\u5305\u542b\u4e86\u79bb\u7ebf\u8ba1\u7b97\u597d\u7684\u6700\u65b0\u7684\u70ed\u66f4\u65b0dll\u4e2d\u53d8\u5316\u7684\u7c7b\u578b\u548c\u51fd\u6570\u7684\u4fe1\u606f\uff0c\u8fd0\u884c\u65f6\u76f4\u63a5\u6839\u636edhao\u6587\u4ef6\u4e2d\u4fe1\u606f\u51b3\u5b9a\u6267\u884c\u67d0\u4e2a\u70ed\u66f4\u65b0\u51fd\u6570\u65f6\uff0c\u5e94\u8be5\u4f7f\u7528\u6700\u65b0\u7684\u89e3\u91ca\u7248\u672c\u8fd8\u662f\u76f4\u63a5\u8c03\u7528\u539f\u59cb\u7684AOT\u51fd\u6570\u3002","sidebar":"tutorialSidebar"},"business/ultimate/freetrial":{"id":"business/ultimate/freetrial","title":"\u514d\u8d39\u8bd5\u7528","description":"\u76f8\u6bd4\u4e8e\u4ed8\u8d39\u8bd5\u7528\u7248\u672c\u548c\u6b63\u5f0f\u8d2d\u4e70\u540e\u7684\u7248\u672c\u90fd\u5305\u542bHybridCLR\u6240\u6709\u8fd0\u884c\u65f6\u53caEditor\u6e90\u7801\uff0c\u514d\u8d39\u8bd5\u7528\u7248\u672c\u53ea\u63d0\u4f9b\u9884\u7f16\u8bd1\u7684"},"business/ultimate/injectrules":{"id":"business/ultimate/injectrules","title":"\u51fd\u6570\u6ce8\u5165\u7b56\u7565","description":"\u4e3a\u4e86\u907f\u514d\u810f\u51fd\u6570\u4f20\u67d3\uff0c\u9ed8\u8ba4\u4f1a\u5728\u6240\u6709\u51fd\u6570\u5934\u90e8\u6ce8\u5165\u4e00\u5c0f\u6bb5\u68c0\u67e5\u8df3\u8f6c\u4ee3\u7801\u3002\u8fd9\u4e2a\u6ce8\u5165\u4ee3\u7801\u5bf9\u77ed\u51fd\u6570\u6027\u80fd\u548c\u6700\u7ec8\u751f\u6210\u7684\u4ee3\u7801\u957f\u5ea6\u7684\u5f71\u54cd\u8f83\u4e3a\u663e\u8457\uff08\u589e\u52a030%\u5de6\u53f3\u4ee3\u7801\uff09\u3002","sidebar":"tutorialSidebar"},"business/ultimate/intro":{"id":"business/ultimate/intro","title":"\u4ecb\u7ecd","description":"\u65d7\u8230\u7248\u4e3b\u8981\u9762\u5411\u6709\u4e25\u683c\u6027\u80fd\u8981\u6c42\u7684\u9879\u76ee\u3002\u65d7\u8230\u7248\u76f8\u5bf9\u793e\u533a\u7248\u5728\u6027\u80fd\u65b9\u9762\u6709\u5de8\u5e45\u63d0\u5347\uff0c\u51e0\u4e4e\uff08\u672a\u6539\u52a8\u65f6\u4e3a100%\uff09\u8fbe\u5230\u539f\u751f\u6027\u80fd\u6c34\u5e73\uff0c\u540c\u65f6\u5728\u5b89\u5168\u6027\u548c\u5185\u5b58\u65b9\u9762\u6709\u8f83\u597d\u7684\u4f18\u5316\u3002","sidebar":"tutorialSidebar"},"business/ultimate/manual":{"id":"business/ultimate/manual","title":"\u4f7f\u7528\u624b\u518c","description":"\u5b89\u88c5","sidebar":"tutorialSidebar"},"business/ultimate/quickstartunchecked":{"id":"business/ultimate/quickstartunchecked","title":"\u5feb\u901f\u4e0a\u624b","description":"\u672c\u6559\u7a0b\u5f15\u5bfc\u4ece\u7a7a\u9879\u76ee\u5f00\u59cb\u4f53\u9a8cHybridCLR\u70ed\u66f4\u65b0\u3002\u51fa\u4e8e\u7b80\u5316\u8d77\u89c1\uff0c\u53ea\u6f14\u793aBuildTarget\u4e3aWindows\u6216MacOS Standalone\u5e73\u53f0\u7684\u60c5\u51b5\u3002","sidebar":"tutorialSidebar"},"business/ultimate/useIncodes":{"id":"business/ultimate/useIncodes","title":"\u4ee3\u7801\u4e2d\u4f7f\u7528","description":"RuntimeApi::LoadOriginalDifferentialHybridAssembly"},"help/commonerrors":{"id":"help/commonerrors","title":"\u5e38\u89c1\u9519\u8bef","description":"\u76ee\u524d\u63d0\u4ea4\u7684\u7248\u672c\u90fd\u7ecf\u8fc7\u6d4b\u8bd5\uff0c\u57fa\u672c\u4e0d\u53ef\u80fd\u51fa\u73b0\u7f16\u8bd1\u9519\u8bef\u53ca\u5d29\u6e83\u6216\u8005\u57fa\u7840\u7684\u8fd0\u884c\u9519\u8bef\u3002\u5982\u679c\u67e5\u770b\u4e86\u5e38\u89c1\u9519\u8bef\uff0c\u8fd8\u672a\u80fd\u89e3\u51b3\u95ee\u9898\uff0c\u8bf7\u5c06com.code-philosophy.hybridclr\u3001hybridclr\u3001il2cpp_plus\u66f4\u65b0\u5230\u6700\u65b0\u7248\u672c\uff0c\u518d\u8bd5\u4e00\u6b21\u3002","sidebar":"tutorialSidebar"},"help/faq":{"id":"help/faq","title":"FAQ","description":"HybridCLR\u652f\u6301\u54ea\u4e9b\u5e73\u53f0?","sidebar":"tutorialSidebar"},"help/issue":{"id":"help/issue","title":"BUG\u53cd\u9988\u6a21\u677f","description":"\u53cd\u9988bug\u524d\uff0c\u8bf7\u786e\u8ba4\u5df2\u7ecf\u5b8c\u6210\u4ee5\u4e0b\u6b65\u9aa4\uff1a","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"HybridCLR","description":"license","sidebar":"tutorialSidebar"},"other/businesscase":{"id":"other/businesscase","title":"\u5546\u4e1a\u9879\u76ee\u6848\u4f8b","description":"\u76ee\u524d\u4f7f\u7528HybridCLR\u7684\u56fd\u5185\u5916\u5546\u4e1a\u6e38\u620f\u6570\u5343\u6b3e\uff0c\u5176\u4e2d\u5e76\u5df2\u7ecf\u4e0a\u7ebf\uff08AppStore\u6216GooglePlay\uff09\u7684\u5546\u4e1a\u9879\u76ee\u6709\u4e0a\u5343\u6b3e\u4e4b\u591a\u3002","sidebar":"tutorialSidebar"},"other/changelog":{"id":"other/changelog","title":"\u6539\u52a8\u65e5\u5fd7","description":"\u6b64\u6587\u6863\u53ea\u8bb0\u5f55\u5173\u952e\u6027\u4e8b\u4ef6\uff0c\u66f4\u5177\u4f53\u7684\u53d1\u5e03\u65e5\u5fd7\u8bf7\u770b RELEASELOG\u3002","sidebar":"tutorialSidebar"},"other/contactme":{"id":"other/contactme","title":"\u652f\u6301\u4e0e\u8054\u7cfb","description":"- \u5b98\u65b91\u7fa4\uff1a651188171\uff08\u6ee1\uff09","sidebar":"tutorialSidebar"},"other/donate":{"id":"other/donate","title":"\u81f4\u8c22\u540d\u5355","description":"\u611f\u8c22\u8fd9\u4e9b\u670b\u53cb\u7684\u6177\u6168\u8d5e\u52a9\uff01\uff01\uff01","sidebar":"tutorialSidebar"},"other/relativepojects":{"id":"other/relativepojects","title":"\u76f8\u5173\u7684\u7b2c\u4e09\u65b9\u9879\u76ee","description":"- ET\u6846\u67b6 ET","sidebar":"tutorialSidebar"},"other/roadmap":{"id":"other/roadmap","title":"\u540e\u7eed\u5f00\u53d1\u89c4\u5212","description":"- \u652f\u6301extern\u51fd\u6570","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/main.1c1c2ce0.js b/assets/js/main.1c1c2ce0.js new file mode 100644 index 000000000..64aeb235f --- /dev/null +++ b/assets/js/main.1c1c2ce0.js @@ -0,0 +1,2 @@ +/*! For license information please see main.1c1c2ce0.js.LICENSE.txt */ +(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},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"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),s=n(6887);const l={"026413ce":[()=>n.e(9888).then(n.bind(n,7383)),"@site/docs/other/contactme.md",7383],"02e2032a":[()=>n.e(4264).then(n.bind(n,3543)),"@site/docs/business/ultimate/build.md",3543],"0328d1af":[()=>n.e(9894).then(n.bind(n,4439)),"@site/docs/business/assemblyloadoptimization.md",4439],"032c34c3":[()=>n.e(5183).then(n.bind(n,2831)),"@site/docs/business/reload/modifydll.md",2831],"04fadddf":[()=>n.e(6191).then(n.bind(n,1566)),"@site/docs/business/pro/freetrial.md",1566],"050a77cc":[()=>n.e(2279).then(n.bind(n,9423)),"@site/docs/business/ultimate/useIncodes.md",9423],"05f46752":[()=>n.e(685).then(n.bind(n,4593)),"@site/docs/beginner/quickstart.md",4593],"099d81ac":[()=>n.e(1977).then(n.bind(n,179)),"@site/docs/business/reload/hotreloadassembly.md",179],"0a31fa0b":[()=>n.e(2505).then(n.bind(n,1977)),"@site/docs/business/basicoptimization.md",1977],"0ccd1bc3":[()=>n.e(7589).then(n.bind(n,2672)),"@site/blog/2022-07-13-principle.md",2672],"0e384e19":[()=>n.e(9671).then(n.bind(n,9256)),"@site/docs/intro.md",9256],"0f4b3ece":[()=>n.e(3892).then(n.bind(n,9114)),"@site/docs/basic/hotupdateassemblysetting.md",9114],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"1566bc1f":[()=>n.e(5936).then(n.bind(n,1943)),"@site/docs/other/roadmap.md",1943],16500542:[()=>n.e(514).then(n.bind(n,5329)),"@site/docs/business/pro/manual.md",5329],17896441:[()=>Promise.all([n.e(532),n.e(6186),n.e(7918)]).then(n.bind(n,5154)),"@theme/DocItem",5154],"1921acbb":[()=>n.e(6492).then(n.bind(n,957)),"@site/docs/basic/impactonappsize.md",957],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,7076)),"@theme/SearchPage",7076],"1b21ecc3":[()=>n.e(7087).then(n.bind(n,5272)),"@site/docs/basic/workwithscriptlanguage.md",5272],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1c517ff1":[()=>n.e(6695).then(n.bind(n,7014)),"@site/docs/business/ultimate/commonerrors.md",7014],"1d92ca72":[()=>n.e(6290).then(n.t.bind(n,5589,19)),"~docs/default/category-docs-tutorialsidebar-category-\u4f7f\u7528\u6307\u5357-b6d.json",5589],20277414:[()=>n.e(866).then(n.bind(n,5653)),"@site/docs/business/ultimate/dhao.md",5653],"21ad55e6":[()=>n.e(2034).then(n.bind(n,1881)),"@site/blog/2022-07-06-catelog.md?truncated=true",1881],"26b576d2":[()=>n.e(5367).then(n.t.bind(n,4591,19)),"~docs/default/category-docs-tutorialsidebar-category-\u4e13\u4e1a\u7248-798.json",4591],"27b4bb7f":[()=>n.e(5659).then(n.bind(n,3306)),"@site/docs/basic/bestpractice.md",3306],"2b2937ed":[()=>n.e(6946).then(n.bind(n,1914)),"@site/docs/business/accesspolicy.md",1914],"2bead8bc":[()=>n.e(1876).then(n.bind(n,3510)),"@site/docs/business/ultimate/freetrial.md",3510],"2e1b2baa":[()=>n.e(7972).then(n.bind(n,9271)),"@site/docs/business/reload/commonerrors.md",9271],"2efe1410":[()=>n.e(90).then(n.bind(n,1344)),"@site/docs/basic/projectsettings.md",1344],"303a7ab0":[()=>n.e(3777).then(n.bind(n,1032)),"@site/blog/2022-07-14-instructions.md",1032],"355d470d":[()=>n.e(9451).then(n.bind(n,5507)),"@site/blog/2022-07-13-principle.md?truncated=true",5507],"39b1bd06":[()=>n.e(4569).then(n.bind(n,4965)),"@site/blog/2022-07-06-catelog.md",4965],"3d291b3d":[()=>Promise.all([n.e(532),n.e(9822)]).then(n.bind(n,9264)),"@site/docs/basic/performance.md",9264],"3d345fd1":[()=>n.e(9106).then(n.bind(n,7968)),"@site/docs/basic/monobehaviour.md",7968],"3d63e4cd":[()=>n.e(5133).then(n.bind(n,337)),"@site/docs/business/pro/commonerrors.md",337],"41bb1898":[()=>n.e(6333).then(n.bind(n,1373)),"@site/docs/basic/il2cppbugs.md",1373],"48d46c19":[()=>n.e(2306).then(n.bind(n,132)),"@site/docs/business/fullgenericsharing.md",132],"4dfc0651":[()=>n.e(6468).then(n.bind(n,1598)),"@site/docs/business/ultimate/intro.md",1598],"5148d8fe":[()=>n.e(5650).then(n.bind(n,4978)),"@site/docs/basic/notsupportedfeatures.md",4978],"59feea3d":[()=>n.e(3851).then(n.bind(n,7538)),"@site/docs/business/reload/manual.md",7538],"5a96aca1":[()=>n.e(5746).then(n.t.bind(n,4469,19)),"/home/runner/work/hybridclr-doc/hybridclr-doc/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"5aff3be2":[()=>n.e(4140).then(n.bind(n,8803)),"@site/docs/business/ultimate/quickstartunchecked.md",8803],"5dd67a5f":[()=>n.e(5649).then(n.bind(n,6858)),"@site/docs/help/commonerrors.md",6858],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5edba3ff":[()=>n.e(1286).then(n.bind(n,7908)),"@site/docs/basic/dots.md",7908],"635e1cda":[()=>n.e(2838).then(n.bind(n,4419)),"@site/docs/basic/runhotupdatecodes.md",4419],"6704bb9d":[()=>n.e(852).then(n.bind(n,3061)),"@site/docs/business/ultimate/manual.md",3061],"6a812547":[()=>n.e(2243).then(n.bind(n,6715)),"@site/docs/business/metadataoptimization.md",6715],"6d0a6812":[()=>n.e(1998).then(n.bind(n,2524)),"@site/docs/other/relativepojects.md",2524],"6ec19757":[()=>n.e(220).then(n.bind(n,8807)),"@site/docs/basic/install.md",8807],"6ecda459":[()=>n.e(3775).then(n.bind(n,6076)),"@site/docs/business/ultimate/injectrules.md",6076],"72413e93":[()=>n.e(1198).then(n.bind(n,9184)),"@site/docs/basic/buildpipeline.md",9184],"733c4d41":[()=>n.e(964).then(n.bind(n,4641)),"@site/docs/business/differentialhybridexecution.md",4641],"744de10c":[()=>n.e(3503).then(n.bind(n,8446)),"@site/docs/basic/migratefromnetstandard.md",8446],"7618167c":[()=>n.e(3764).then(n.bind(n,3060)),"@site/docs/basic/methodbridge.md",3060],"7bef7309":[()=>n.e(1744).then(n.bind(n,7446)),"@site/docs/business/advancedencryption.md",7446],"7d20b2b1":[()=>n.e(3423).then(n.bind(n,4513)),"@site/docs/basic/com.code-philosophy.hybridclr.md",4513],"7faaab83":[()=>n.e(7991).then(n.bind(n,2910)),"@site/docs/business/reload/intro.md",2910],80680481:[()=>n.e(7065).then(n.bind(n,9746)),"@site/docs/other/donate.md",9746],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"84b73551":[()=>n.e(1176).then(n.bind(n,3601)),"@site/docs/basic/aotgeneric.md",3601],"88236a13":[()=>n.e(5080).then(n.t.bind(n,1972,19)),"~docs/default/category-docs-tutorialsidebar-category-\u70ed\u91cd\u8f7d\u7248-9bb.json",1972],"90e3b8d9":[()=>n.e(2e3).then(n.bind(n,9233)),"@site/docs/business/basicencryption.md",9233],"918ca7cd":[()=>n.e(2815).then(n.bind(n,2609)),"@site/docs/basic/architecture.md",2609],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9b588bbf":[()=>n.e(9462).then(n.bind(n,2139)),"@site/docs/business/reload/quickstart.md",2139],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],"9e92f087":[()=>n.e(4369).then(n.bind(n,4855)),"@site/docs/other/changelog.md",4855],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(6186),n.e(6048),n.e(3089)]).then(n.bind(n,3269)),"@theme/BlogListPage",3269],a7626ec9:[()=>n.e(2365).then(n.t.bind(n,3769,19)),"/home/runner/work/hybridclr-doc/hybridclr-doc/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],a99908d5:[()=>n.e(7681).then(n.t.bind(n,2188,19)),"~docs/default/category-docs-tutorialsidebar-category-\u65b0\u624b\u6559\u7a0b-7d5.json",2188],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],b74f6ad3:[()=>n.e(3170).then(n.bind(n,2163)),"@site/docs/basic/compileassembly.md",2163],b7e34b9a:[()=>n.e(8052).then(n.bind(n,2185)),"@site/blog/2022-07-08-mindexperiment.md?truncated=true",2185],b7eeea20:[()=>n.e(2828).then(n.t.bind(n,7085,19)),"/home/runner/work/hybridclr-doc/hybridclr-doc/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],b912795b:[()=>n.e(9604).then(n.bind(n,1053)),"@site/docs/business/crashreport.md",1053],ba76a366:[()=>n.e(7020).then(n.bind(n,2168)),"@site/blog/2022-07-14-instructions.md?truncated=true",2168],bacda3a9:[()=>n.e(4475).then(n.bind(n,3441)),"@site/docs/basic/codestriping.md",3441],bbd26a74:[()=>n.e(5048).then(n.bind(n,916)),"@site/docs/business/advancedoptimization.md",916],bdd7c4d4:[()=>n.e(6729).then(n.bind(n,7942)),"@site/docs/beginner/monobehaviour.md",7942],c4ad3b7e:[()=>n.e(9124).then(n.bind(n,2025)),"@site/docs/basic/buildwebgl.md",2025],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,3261)),"@site/src/pages/index.js",3261],c55163c5:[()=>n.e(8787).then(n.t.bind(n,6793,19)),"~docs/default/category-docs-tutorialsidebar-category-\u65d7\u8230\u7248-ba3.json",6793],c71319a4:[()=>n.e(7884).then(n.bind(n,1277)),"@site/docs/beginner/otherhelp.md",1277],c9aab52f:[()=>n.e(5153).then(n.bind(n,1885)),"@site/docs/business/pro/intro.md",1885],c9dac562:[()=>n.e(2965).then(n.bind(n,4099)),"@site/docs/basic/memory.md",4099],cab0a0b1:[()=>n.e(2857).then(n.bind(n,4872)),"@site/blog/2022-07-08-mindexperiment.md",4872],ccc49370:[()=>Promise.all([n.e(532),n.e(6186),n.e(6048),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],cfa9d267:[()=>n.e(2288).then(n.bind(n,635)),"@site/docs/business/reload/freetrial.md",635],dd53d751:[()=>n.e(1752).then(n.bind(n,8793)),"@site/docs/help/faq.md",8793],e044ccdf:[()=>n.e(688).then(n.bind(n,484)),"@site/docs/business/intro.md",484],e6335e6f:[()=>n.e(1634).then(n.bind(n,5097)),"@site/docs/beginner/generic.md",5097],e9748e8f:[()=>n.e(2616).then(n.t.bind(n,5745,19)),"/home/runner/work/hybridclr-doc/hybridclr-doc/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],ebee79fe:[()=>n.e(5041).then(n.t.bind(n,4817,19)),"~docs/default/category-docs-tutorialsidebar-category-\u5e2e\u52a9-242.json",4817],f160c361:[()=>n.e(12).then(n.bind(n,8964)),"@site/docs/basic/sourceinspect.md",8964],f33e1a49:[()=>n.e(6848).then(n.t.bind(n,6142,19)),"~docs/default/category-docs-tutorialsidebar-category-\u5176\u4ed6-4c7.json",6142],f4f82255:[()=>n.e(7203).then(n.bind(n,9445)),"@site/docs/business/businesscase.md",9445],f739fd9f:[()=>n.e(2182).then(n.t.bind(n,6926,19)),"~docs/default/category-docs-tutorialsidebar-category-\u5546\u4e1a\u5316\u7248\u672c-65f.json",6926],f93d3a31:[()=>n.e(8063).then(n.bind(n,797)),"@site/docs/help/issue.md",797],fbd8196d:[()=>n.e(7040).then(n.bind(n,992)),"@site/docs/other/businesscase.md",992],fe886eaa:[()=>n.e(3131).then(n.bind(n,1575)),"@site/docs/business/pro/quickstart.md",1575],ff8c06e1:[()=>n.e(1433).then(n.bind(n,9642)),"@site/docs/basic/supportedplatformanduniyversion.md",9642]};function c(e){let{error:t,retry:n,pastDelay:a}=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"))):a?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(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=s[`${e}-${t}`],f={},p=[],m=[],h=(0,u.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=l[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)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 a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{o=o[e]})),o[s[s.length-1]]=a}));const s=i.__comp;delete i.__comp;const l=i.__context;return delete i.__context,r.createElement(d.z,{value:l},r.createElement(s,(0,a.Z)({},i,n)))}})}const p=[{path:"/blog",component:f("/blog","121"),exact:!0},{path:"/blog/archive",component:f("/blog/archive","f9e"),exact:!0},{path:"/blog/catelog",component:f("/blog/catelog","7f9"),exact:!0},{path:"/blog/instructions",component:f("/blog/instructions","e30"),exact:!0},{path:"/blog/mindexperiment",component:f("/blog/mindexperiment","381"),exact:!0},{path:"/blog/principle",component:f("/blog/principle","0e4"),exact:!0},{path:"/search",component:f("/search","6e3"),exact:!0},{path:"/docs",component:f("/docs","ff0"),routes:[{path:"/docs/basic",component:f("/docs/basic","efd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/aotgeneric",component:f("/docs/basic/aotgeneric","c0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/architecture",component:f("/docs/basic/architecture","622"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/bestpractice",component:f("/docs/basic/bestpractice","315"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/buildpipeline",component:f("/docs/basic/buildpipeline","705"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/buildwebgl",component:f("/docs/basic/buildwebgl","efc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/codestriping",component:f("/docs/basic/codestriping","54f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/com.code-philosophy.hybridclr",component:f("/docs/basic/com.code-philosophy.hybridclr","6fb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/compileassembly",component:f("/docs/basic/compileassembly","757"),exact:!0},{path:"/docs/basic/dots",component:f("/docs/basic/dots","25e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/hotupdateassemblysetting",component:f("/docs/basic/hotupdateassemblysetting","d23"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/il2cppbugs",component:f("/docs/basic/il2cppbugs","48e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/impactonappsize",component:f("/docs/basic/impactonappsize","d1c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/install",component:f("/docs/basic/install","29c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/memory",component:f("/docs/basic/memory","282"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/methodbridge",component:f("/docs/basic/methodbridge","96e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/migratefromnetstandard",component:f("/docs/basic/migratefromnetstandard","005"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/monobehaviour",component:f("/docs/basic/monobehaviour","e55"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/notsupportedfeatures",component:f("/docs/basic/notsupportedfeatures","d8a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/performance",component:f("/docs/basic/performance","633"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/projectsettings",component:f("/docs/basic/projectsettings","6e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/runhotupdatecodes",component:f("/docs/basic/runhotupdatecodes","49b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/sourceinspect",component:f("/docs/basic/sourceinspect","ac1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/supportedplatformanduniyversion",component:f("/docs/basic/supportedplatformanduniyversion","3c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/basic/workwithscriptlanguage",component:f("/docs/basic/workwithscriptlanguage","8f9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/beginner",component:f("/docs/beginner","dae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/beginner/generic",component:f("/docs/beginner/generic","cf4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/beginner/monobehaviour",component:f("/docs/beginner/monobehaviour","36f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/beginner/otherhelp",component:f("/docs/beginner/otherhelp","374"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/beginner/quickstart",component:f("/docs/beginner/quickstart","ee2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business",component:f("/docs/business","ddc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/accesspolicy",component:f("/docs/business/accesspolicy","4da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/advancedencryption",component:f("/docs/business/advancedencryption","a9c"),exact:!0},{path:"/docs/business/advancedoptimization",component:f("/docs/business/advancedoptimization","730"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/assemblyloadoptimization",component:f("/docs/business/assemblyloadoptimization","6eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/basicencryption",component:f("/docs/business/basicencryption","9fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/basicoptimization",component:f("/docs/business/basicoptimization","1cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/businesscase",component:f("/docs/business/businesscase","6f9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/crashreport",component:f("/docs/business/crashreport","6a1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/differentialhybridexecution",component:f("/docs/business/differentialhybridexecution","0c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/fullgenericsharing",component:f("/docs/business/fullgenericsharing","e18"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/intro",component:f("/docs/business/intro","ebd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/metadataoptimization",component:f("/docs/business/metadataoptimization","267"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/pro/commonerrors",component:f("/docs/business/pro/commonerrors","506"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/pro/freetrial",component:f("/docs/business/pro/freetrial","c39"),exact:!0},{path:"/docs/business/pro/intro",component:f("/docs/business/pro/intro","b43"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/pro/manual",component:f("/docs/business/pro/manual","171"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/pro/quickstart",component:f("/docs/business/pro/quickstart","1aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/reload/commonerrors",component:f("/docs/business/reload/commonerrors","8a1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/reload/freetrial",component:f("/docs/business/reload/freetrial","b86"),exact:!0},{path:"/docs/business/reload/hotreloadassembly",component:f("/docs/business/reload/hotreloadassembly","b68"),exact:!0},{path:"/docs/business/reload/intro",component:f("/docs/business/reload/intro","c91"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/reload/manual",component:f("/docs/business/reload/manual","e13"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/reload/modifydll",component:f("/docs/business/reload/modifydll","ae8"),exact:!0},{path:"/docs/business/reload/quickstart",component:f("/docs/business/reload/quickstart","149"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/build",component:f("/docs/business/ultimate/build","ae5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/commonerrors",component:f("/docs/business/ultimate/commonerrors","75f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/dhao",component:f("/docs/business/ultimate/dhao","470"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/freetrial",component:f("/docs/business/ultimate/freetrial","280"),exact:!0},{path:"/docs/business/ultimate/injectrules",component:f("/docs/business/ultimate/injectrules","a72"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/intro",component:f("/docs/business/ultimate/intro","3fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/manual",component:f("/docs/business/ultimate/manual","2db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/quickstartunchecked",component:f("/docs/business/ultimate/quickstartunchecked","c78"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/business/ultimate/useIncodes",component:f("/docs/business/ultimate/useIncodes","426"),exact:!0},{path:"/docs/help",component:f("/docs/help","103"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/help/commonerrors",component:f("/docs/help/commonerrors","53b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/help/faq",component:f("/docs/help/faq","701"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/help/issue",component:f("/docs/help/issue","c51"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro",component:f("/docs/intro","aed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other",component:f("/docs/other","59e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/businesscase",component:f("/docs/other/businesscase","6d6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/changelog",component:f("/docs/other/changelog","b0a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/contactme",component:f("/docs/other/contactme","44c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/donate",component:f("/docs/other/donate","b6d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/relativepojects",component:f("/docs/other/relativepojects","d88"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/other/roadmap",component:f("/docs/other/roadmap","c68"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/pro",component:f("/docs/pro","53f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/reload",component:f("/docs/reload","ea3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/ultimate",component:f("/docs/ultimate","8e8"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:f("/","b8d"),exact:!0},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),b=n(4996),g=n(6668),v=n(833),y=n(4711),w=n(9727),E=n(3320),k=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,u.TH)();return e+(0,b.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,g.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(k.Z,{tag:E.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),A=n(8940);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),N("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?N("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=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(P,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const R=I,M="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[F]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:M}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement($,null):null}function j(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,b.Z)(e),{htmlLang:s,direction:l}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:s,dir:l}),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 Z=n(4763);function H(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(Z.Z,null,r.createElement(A.M,null,r.createElement(L.t,null,r.createElement(f,null,r.createElement(j,null),r.createElement(_,null),r.createElement(U,null),r.createElement(R,{location:T(t)},e)))))}var V=n(6887);const q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var G=n(9670);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,X={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(V).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,G.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),O(e))},Q=Object.freeze(X);if(s.Z.canUseDOM){window.docusaurus=Q;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"basic/aotgeneric","path":"/docs/basic/aotgeneric","sidebar":"tutorialSidebar"},{"id":"basic/architecture","path":"/docs/basic/architecture","sidebar":"tutorialSidebar"},{"id":"basic/bestpractice","path":"/docs/basic/bestpractice","sidebar":"tutorialSidebar"},{"id":"basic/buildpipeline","path":"/docs/basic/buildpipeline","sidebar":"tutorialSidebar"},{"id":"basic/buildwebgl","path":"/docs/basic/buildwebgl","sidebar":"tutorialSidebar"},{"id":"basic/codestriping","path":"/docs/basic/codestriping","sidebar":"tutorialSidebar"},{"id":"basic/com.code-philosophy.hybridclr","path":"/docs/basic/com.code-philosophy.hybridclr","sidebar":"tutorialSidebar"},{"id":"basic/compileassembly","path":"/docs/basic/compileassembly"},{"id":"basic/dots","path":"/docs/basic/dots","sidebar":"tutorialSidebar"},{"id":"basic/hotupdateassemblysetting","path":"/docs/basic/hotupdateassemblysetting","sidebar":"tutorialSidebar"},{"id":"basic/il2cppbugs","path":"/docs/basic/il2cppbugs","sidebar":"tutorialSidebar"},{"id":"basic/impactonappsize","path":"/docs/basic/impactonappsize","sidebar":"tutorialSidebar"},{"id":"basic/install","path":"/docs/basic/install","sidebar":"tutorialSidebar"},{"id":"basic/memory","path":"/docs/basic/memory","sidebar":"tutorialSidebar"},{"id":"basic/methodbridge","path":"/docs/basic/methodbridge","sidebar":"tutorialSidebar"},{"id":"basic/migratefromnetstandard","path":"/docs/basic/migratefromnetstandard","sidebar":"tutorialSidebar"},{"id":"basic/monobehaviour","path":"/docs/basic/monobehaviour","sidebar":"tutorialSidebar"},{"id":"basic/notsupportedfeatures","path":"/docs/basic/notsupportedfeatures","sidebar":"tutorialSidebar"},{"id":"basic/performance","path":"/docs/basic/performance","sidebar":"tutorialSidebar"},{"id":"basic/projectsettings","path":"/docs/basic/projectsettings","sidebar":"tutorialSidebar"},{"id":"basic/runhotupdatecodes","path":"/docs/basic/runhotupdatecodes","sidebar":"tutorialSidebar"},{"id":"basic/sourceinspect","path":"/docs/basic/sourceinspect","sidebar":"tutorialSidebar"},{"id":"basic/supportedplatformanduniyversion","path":"/docs/basic/supportedplatformanduniyversion","sidebar":"tutorialSidebar"},{"id":"basic/workwithscriptlanguage","path":"/docs/basic/workwithscriptlanguage","sidebar":"tutorialSidebar"},{"id":"beginner/generic","path":"/docs/beginner/generic","sidebar":"tutorialSidebar"},{"id":"beginner/monobehaviour","path":"/docs/beginner/monobehaviour","sidebar":"tutorialSidebar"},{"id":"beginner/otherhelp","path":"/docs/beginner/otherhelp","sidebar":"tutorialSidebar"},{"id":"beginner/quickstart","path":"/docs/beginner/quickstart","sidebar":"tutorialSidebar"},{"id":"business/accesspolicy","path":"/docs/business/accesspolicy","sidebar":"tutorialSidebar"},{"id":"business/advancedencryption","path":"/docs/business/advancedencryption"},{"id":"business/advancedoptimization","path":"/docs/business/advancedoptimization","sidebar":"tutorialSidebar"},{"id":"business/assemblyloadoptimization","path":"/docs/business/assemblyloadoptimization","sidebar":"tutorialSidebar"},{"id":"business/basicencryption","path":"/docs/business/basicencryption","sidebar":"tutorialSidebar"},{"id":"business/basicoptimization","path":"/docs/business/basicoptimization","sidebar":"tutorialSidebar"},{"id":"business/businesscase","path":"/docs/business/businesscase","sidebar":"tutorialSidebar"},{"id":"business/crashreport","path":"/docs/business/crashreport","sidebar":"tutorialSidebar"},{"id":"business/differentialhybridexecution","path":"/docs/business/differentialhybridexecution","sidebar":"tutorialSidebar"},{"id":"business/fullgenericsharing","path":"/docs/business/fullgenericsharing","sidebar":"tutorialSidebar"},{"id":"business/intro","path":"/docs/business/intro","sidebar":"tutorialSidebar"},{"id":"business/metadataoptimization","path":"/docs/business/metadataoptimization","sidebar":"tutorialSidebar"},{"id":"business/pro/commonerrors","path":"/docs/business/pro/commonerrors","sidebar":"tutorialSidebar"},{"id":"business/pro/freetrial","path":"/docs/business/pro/freetrial"},{"id":"business/pro/intro","path":"/docs/business/pro/intro","sidebar":"tutorialSidebar"},{"id":"business/pro/manual","path":"/docs/business/pro/manual","sidebar":"tutorialSidebar"},{"id":"business/pro/quickstart","path":"/docs/business/pro/quickstart","sidebar":"tutorialSidebar"},{"id":"business/reload/commonerrors","path":"/docs/business/reload/commonerrors","sidebar":"tutorialSidebar"},{"id":"business/reload/freetrial","path":"/docs/business/reload/freetrial"},{"id":"business/reload/hotreloadassembly","path":"/docs/business/reload/hotreloadassembly"},{"id":"business/reload/intro","path":"/docs/business/reload/intro","sidebar":"tutorialSidebar"},{"id":"business/reload/manual","path":"/docs/business/reload/manual","sidebar":"tutorialSidebar"},{"id":"business/reload/modifydll","path":"/docs/business/reload/modifydll"},{"id":"business/reload/quickstart","path":"/docs/business/reload/quickstart","sidebar":"tutorialSidebar"},{"id":"business/ultimate/build","path":"/docs/business/ultimate/build","sidebar":"tutorialSidebar"},{"id":"business/ultimate/commonerrors","path":"/docs/business/ultimate/commonerrors","sidebar":"tutorialSidebar"},{"id":"business/ultimate/dhao","path":"/docs/business/ultimate/dhao","sidebar":"tutorialSidebar"},{"id":"business/ultimate/freetrial","path":"/docs/business/ultimate/freetrial"},{"id":"business/ultimate/injectrules","path":"/docs/business/ultimate/injectrules","sidebar":"tutorialSidebar"},{"id":"business/ultimate/intro","path":"/docs/business/ultimate/intro","sidebar":"tutorialSidebar"},{"id":"business/ultimate/manual","path":"/docs/business/ultimate/manual","sidebar":"tutorialSidebar"},{"id":"business/ultimate/quickstartunchecked","path":"/docs/business/ultimate/quickstartunchecked","sidebar":"tutorialSidebar"},{"id":"business/ultimate/useIncodes","path":"/docs/business/ultimate/useIncodes"},{"id":"help/commonerrors","path":"/docs/help/commonerrors","sidebar":"tutorialSidebar"},{"id":"help/faq","path":"/docs/help/faq","sidebar":"tutorialSidebar"},{"id":"help/issue","path":"/docs/help/issue","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/intro","sidebar":"tutorialSidebar"},{"id":"other/businesscase","path":"/docs/other/businesscase","sidebar":"tutorialSidebar"},{"id":"other/changelog","path":"/docs/other/changelog","sidebar":"tutorialSidebar"},{"id":"other/contactme","path":"/docs/other/contactme","sidebar":"tutorialSidebar"},{"id":"other/donate","path":"/docs/other/donate","sidebar":"tutorialSidebar"},{"id":"other/relativepojects","path":"/docs/other/relativepojects","sidebar":"tutorialSidebar"},{"id":"other/roadmap","path":"/docs/other/roadmap","sidebar":"tutorialSidebar"},{"id":"/beginner","path":"/docs/beginner","sidebar":"tutorialSidebar"},{"id":"/basic","path":"/docs/basic","sidebar":"tutorialSidebar"},{"id":"/business","path":"/docs/business","sidebar":"tutorialSidebar"},{"id":"/pro","path":"/docs/pro","sidebar":"tutorialSidebar"},{"id":"/ultimate","path":"/docs/ultimate","sidebar":"tutorialSidebar"},{"id":"/reload","path":"/docs/reload","sidebar":"tutorialSidebar"},{"id":"/help","path":"/docs/help","sidebar":"tutorialSidebar"},{"id":"/other","path":"/docs/other","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/intro","label":"\u4ecb\u7ecd"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"zh","locales":["zh","en"],"path":"i18n","currentLocale":"zh","localeConfigs":{"zh":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh-cn","calendar":"gregory","path":"zh"},"en":{"label":"English","direction":"ltr","htmlLang":"en-us","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"}}}'),c={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(7452);function l(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(c,{error:t}))}function c(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(f,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(s.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.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}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),s=n(2263),l=n(3919),c=n(412);const u=a.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":b,autoAddBaseUrl:g=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,s.Z)(),{withBaseUrl:E}=(0,d.C)(),k=(0,a.useContext)(u),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const x=f||p;const _=(0,l.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(L=C,g&&(e=>e.startsWith("/"))(L)?E(L):L):void 0;var L;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const A=(0,a.useRef)(!1),N=n?o.OL:o.rU,P=c.Z.canUseIntersectionObserver,O=(0,a.useRef)(),I=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&O.current&&O.current.disconnect()})),[O,T,P,_]);const R=T?.startsWith("#")??!1,M=!T||!_||R;return M||b||k.collectLink(T),M?a.createElement("a",(0,r.Z)({ref:S,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(N,(0,r.Z)({},v,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,P&&e&&_&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),O.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,I:()=>s});var r=n(7294);function a(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 o=n(7529);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 o[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function l(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=i({message:t,id:n});return r.createElement(r.Fragment,null,a(s,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)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)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>o,eZ:()=>i});var r=n(2263),a=n(9935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),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:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(2011)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(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:a.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"}))}},7452:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Nt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),s=n(7462),l=n(6550),c=n(5999),u=n(5936);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({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:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,s.Z)({},e,{href:`#${d}`,onClick:a}),t))}var b=n(5281),g=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6668),E=n(9689);function k(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...l}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(k,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,E.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var A=n(3163),N=n(2466);var P=n(902),O=n(3102);const I=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(I.Provider,{value:n},t)}function M(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function D(){const e=(0,r.useContext)(I);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:M(o)})),[a,o,t])}function B(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=D();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("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"},o)))}var F=n(2949),z=n(2389);function $(e){return r.createElement("svg",(0,s.Z)({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 U(e){return r.createElement("svg",(0,s.Z)({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 j={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Z(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const s=(0,z.Z)(),l=(0,c.I)({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"===o?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(j.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",j.toggleButton,!s&&j.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!s,title:l,"aria-label":l,"aria-live":"polite"},r.createElement($,{className:(0,a.Z)(j.toggleIcon,j.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)(j.toggleIcon,j.darkToggleIcon)})))}const H=r.memo(Z),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function q(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,F.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var G=n(1327);function W(){return r.createElement(G.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,A.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({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(k,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(q,{className:"margin-right--md"}),r.createElement(K,null))}var X=n(9960),Q=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:l,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const f=(0,Q.Z)(a),p=(0,Q.Z)(t),m=(0,Q.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),b=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,c&&{width:12,height:12}))};return o?r.createElement(X.Z,(0,s.Z)({href:u?m:o},d,b)):r.createElement(X.Z,(0,s.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,b))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,s.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,s.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,s.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),se=n(8596),le=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.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)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,s.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),l.children??l.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Ze,(0,s.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,s.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),p()}}),c.children??c.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(Ze,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ue;return r.createElement(a,n)}var pe=n(4711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),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 be(){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 ge=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Se="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=ke(e,ve),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=we((0,r.useState)(null),2),d=u[0],f=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Se))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ge.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("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(be,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(5742),Ce=n(6177),Te=n(239),Le=n(3320);var Ae=n(3935);const Ne={button:{buttonText:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,c.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,c.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,c.I)({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,c.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,c.I)({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,c.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,c.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,c.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,c.I)({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,c.I)({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,c.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,c.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Oe(e){let{hit:t,children:n}=e;return r.createElement(X.Z,{to:t.url},n)}function Ie(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(X.Z,{to:a(t.query),onClick:n},r.createElement(c.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Re(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),c=(0,Te.l)(),u=function(){const{locale:e,tags:t}=(0,Le._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(u,d):d,p={...o.searchParameters,facetFilters:f},m=(0,l.k6)(),h=(0,r.useRef)(null),b=(0,r.useRef)(null),[g,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),E=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),k=(0,r.useCallback)((()=>{E().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[E,v]),S=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{E().then((()=>{v(!0),w(e.key)}))}),[E,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:c(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Ie,(0,s.Z)({},e,{onClose:S}))),[S]),L=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=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?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:g,onOpen:k,onClose:S,onInput:x,searchButtonRef:b}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:E,onFocus:E,onMouseOver:E,onClick:k,ref:b,translations:Ne.button}),g&&Pe&&h.current&&(0,Ae.createPortal)(r.createElement(Pe,(0,s.Z)({onClose:S,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Oe,transformSearchClient:L},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Ne.placeholder,translations:Ne.modal})),h.current))}function Me(){const{siteConfig:e}=(0,le.Z)();return r.createElement(Re,e.themeConfig.algolia)}const De={searchBox:"searchBox_ZlJk"};function Be(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,De.searchBox)},t)}var Fe=n(1640),ze=n(3438);var $e=n(373);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const je={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,le.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,l.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${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":""}})),...a],b=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,s.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),b),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Be,{className:n},r.createElement(Me,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),l=(0,ze.vY)(t,a);return null===l?null:r.createElement(oe,(0,s.Z)({exact:!0},o,{isActive:()=>i?.path===l.path||!!i?.sidebar&&i.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),l=(0,ze.oz)(t,a).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,s.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,ze.lO)(a)[0],l=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,s.Z)({},o,{label:l,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:f}=(0,l.TH)(),p=(0,Fe.Iw)(n),m=(0,Fe.gB)(n),{savePreferredVersionName:h}=(0,$e.J)(n),b=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],g=(0,ze.lO)(n)[0],v=t&&b.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&b.length>1?void 0:Ue(g).path;return b.length<=1?r.createElement(oe,(0,s.Z)({},u,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,s.Z)({},u,{mobile:t,label:v,to:y,items:b,isActive:a?()=>!1:void 0}))}};function Ze(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=je[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function He(){const e=(0,A.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Ze,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ve(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{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 qe(){const e=0===(0,w.L)().navbar.items.length,t=D();return r.createElement(r.Fragment,null,!e&&r.createElement(Ve,{onClick:()=>t.hide()}),t.content)}function Ge(){const e=(0,A.e)();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(B,{header:r.createElement(Y,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(qe,null)}):null}const We={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,A.e)(),{navbarRef:s,isNavbarVisible:l}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,N.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[We.navbarHideable,!l&&We.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ke,{onClick:i.toggle}),r.createElement(Ge,null))}var Xe=n(8780);const Qe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,s.Z)({type:"button"},e),r.createElement(c.Z,{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 et(e){let{error:t}=e;const n=(0,Xe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Qe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,s.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,A.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({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(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{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(Ze,e)))))}function st(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,A.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(st,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(W,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(q,{className:ot.colorModeToggle}),!o&&r.createElement(Be,null,r.createElement(Me,null)))})}function ct(){return r.createElement(Ye,null,r.createElement(lt,null))}function ut(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...l}=t,c=(0,Q.Z)(n),u=(0,Q.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(X.Z,(0,s.Z)({className:"footer__link-item"},a?{href:i?u:a}:{to:c},l),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(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(ut,{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(dt,{key:t,item:e})))))}function pt(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 mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ut,{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(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function gt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(bt,{links:t})}var vt=n(941);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Et(e){let{logo:t}=e;return t.href?r.createElement(X.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function kt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function St(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(St,{style:o,links:n&&n.length>0&&r.createElement(gt,{links:n}),logo:a&&r.createElement(Et,{logo:a}),copyright:t&&r.createElement(kt,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([F.S,E.pl,N.OC,$e.L5,i.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(A.M,null,r.createElement(R,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function Lt(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(c.Z,{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(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const At={mainWrapper:"mainWrapper_z2l0"};function Nt(e){const{children:t,noFooter:n,wrapperClassName:s,title:l,description:c}=e;return(0,g.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:l,description:c}),r.createElement(y,null),r.createElement(L,null),r.createElement(ct,null),r.createElement("div",{id:d,className:(0,a.Z)(b.k.wrapper.main,At.mainWrapper,s)},r.createElement(o.Z,{fallback:e=>r.createElement(Lt,e)},t)),!n&&r.createElement(_t,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),s=n(2263),l=n(6668),c=n(941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},s=a.createElement(c.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:c}}=(0,l.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(c?.href||"/"),h=n?"":t,b=c?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,c?.target&&{target:c.target}),c&&a.createElement(u,{logo:c,alt:b,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),s=n(2949);const l={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,s.I)(),{sources:c,className:u,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,o.Z)(l.themedImage,l[`themedImage--${e}`],u)},f)))))}},1640:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>f,gA:()=>u,Jo:()=>p,gB:()=>d});var r=n(6550),a=n(8084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=function(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},l=()=>(0,a.OD)("docusaurus-plugin-content-docs")??s,c=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function u(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function d(e){return c(e).versions}function f(e){const t=c(e),{pathname:n}=(0,r.TH)();return i(t,n)}function p(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=o(e);return{latestDocSuggestion:i(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>b});var r=n(7462),a=n(7294),o=n(412),i=n(1442);const s="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())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 l(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?c:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:l}=e;const c=(0,a.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),a.createElement(t,{ref:c,style:l?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),i?.(n))},className:s},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[s,l]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&l(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:s})):null}function b(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668);const l=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),u=()=>"true"===l.get(),d=e=>l.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{o(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668);const l=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{u.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(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||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(l.Provider,{value:n},t)}function b(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b,Oh:()=>y});var r=n(7294),a=n(6031),o=n(9935),i=n(6668),s=n(3438),l=n(902),c=n(12);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(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,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(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(p.Provider,{value:n},t)}function b(e){let{children:t}=e;return s.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function g(){const e=(0,r.useContext)(p);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=g(),{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,a._r)(),[t]=g();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,b:()=>s});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function s(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function l(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),s=n(6668),l=n(902);const c=r.createContext(void 0);function u(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function d(e){let{children:t}=e;const n=u();return r.createElement(c.Provider,{value:n},t)}function f(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>l,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function l(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),a=n(2263),o=n(1980);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const l=!1;function c(){const[e,t]=(0,r.useState)((()=>l?"ssr":s()));return(0,r.useEffect)((()=>{function e(){t(s())}const n=l?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>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:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>f,hI:()=>x,jA:()=>h,lO:()=>E,oz:()=>k,s1:()=>w,vY:()=>S,xz:()=>p});var r=n(7294),a=n(6550),o=n(8790),i=n(6031),s=n(373),l=n(4477),c=n(1116),u=n(7392),d=n(8596);const f=!!i._r;function p(e){const t=(0,l.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(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=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,a.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const b=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),g=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||g(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function E(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function k(e,t){const n=E(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=E(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,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,s=i.find((e=>(0,a.LX)(r.pathname,e)));if(!s)return null;const l=s.sidebar,c=l?n.docsSidebars[l]:void 0;return{docElement:(0,o.H)(i),sidebarName:l,sidebarItems:c}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>s,_X:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function s(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function l(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=l(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},7392:(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 a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>u,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128);function u(e){let{title:t,description:n,keywords:a,image:i,children:s}=e;const u=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,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}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),s)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(o.Z,null,r.createElement("html",{className:s})),n)}function p(e){let{children:t}=e;const n=s(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>l,i6:()=>s,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function l(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8022:(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,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>l,RF:()=>d,o5:()=>f});var r=n(7294),a=n(412),o=n(2389),i=n(902);const s=r.createContext(void 0);function l(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 c(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(u()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=c(),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),a=(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:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(6031),a=n(2263),o=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function s(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,l||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),l=!0),null}var t}let l=!1;const c={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?c:{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?c:u(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),s=o===n?e:e.replace(`/${o}/`,"/"),l=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${l}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6031:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>d,WS:()=>f,_r:()=>c,zh:()=>u,yW:()=>p});var r=n(6550),a=n(8084);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function s(e,t){const n=i(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const l={},c=()=>(0,a.OD)("docusaurus-plugin-content-docs")??l,u=e=>(0,a.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function f(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function p(e){const t=u(e);return o(t)}function m(e){const t=u(e),{pathname:n}=(0,r.TH)();return s(t,n)}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(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[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,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(a,o)}},4143:(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]}},8780: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 a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>L,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(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 f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),b=0;b{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{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)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.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&&p(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()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418: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(a){return!1}}()?Object.assign:function(e,a){for(var o,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(i,p),i=p+d.length,f)s+=f[1];else{var m=e[i],h=n[2],b=n[3],g=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var E=null!=h&&null!=m&&m!==h,k="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||u,_=g||v;r.push({name:b||o++,prefix:h||"",delimiter:x,optional:S,repeat:k,partial:E,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=k.value.length,k=k.next){var x=k.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(E,S,e,g))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,A=S;for(A+=k.value.length;T>=A;)A+=(k=k.next).value.length;if(S=A-=k.value.length,k.value instanceof a)continue;for(var N=k;N!==t.tail&&(Ad.reach&&(d.reach=R);var M=k.prev;if(O&&(M=l(t,M,O),S+=O.length),c(t,M,C),k=l(t,M,new a(f,b?r.tokenize(P,b):P,y,P)),I&&l(t,k,I),C>1){var D={cause:f+","+m,reach:R};i(e,t,n,k.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.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 l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\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://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]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,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 a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,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(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//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+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),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"))}(a),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},a={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:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\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:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\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(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.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",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=f(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l=0&&p(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=l(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=a,n})).join(""),n,r),f=Object.keys(u);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,s=o.indexOf(a);if(-1!==s){++i;var l=o.substring(0,s),d=c(u[a]),p=o.substring(s+a.length),m=[];if(l&&m.push(l),m.push(d),p){var h=[p];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 b=r.content;Array.isArray(b)?e(b):e([b])}}}(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 f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//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*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\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*)#?/.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*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.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;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),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],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,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})}(a),a.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},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),b=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(b),g&&v.push.apply(v,i([g])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(a),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}(a),a.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"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.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:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.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:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.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/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){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}})}(a),a.languages.scss=a.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]+\}/}}}),a.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}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.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}}),a.languages.scss.atrule.inside.rest=a.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:/[{}()\[\];:.]/}}(a),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}(a),a.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 o=a},2731:()=>{!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(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//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+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//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"])}(Prism)},9016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var a="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",o="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(o),u=RegExp(l(a+" "+o+" "+i+" "+s)),d=l(o+" "+i+" "+s),f=l(a+" "+o+" "+s),p=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),m=r(/\((?:[^()]|<>)*\)/.source,2),h=/@?\b[A-Za-z_]\w*\b/.source,b=t(/<<0>>(?:\s*<<1>>)?/.source,[h,p]),g=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,b]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[g,v]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[p,m,v]),E=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[E,g,v]),S={keyword:u,punctuation:/[<>()?,.:[\]]/},x=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,_=/"(?:\\.|[^\\"\r\n])*"/.source,C=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[C]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[g]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[h,k]),lookbehind:!0,inside:S},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[h]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,b]),lookbehind:!0,inside:S},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[g]),lookbehind:!0,inside:S},{pattern:n(/(\bwhere\s+)<<0>>/.source,[h]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:S},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,f,h]),inside:S}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[h]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[m]),lookbehind:!0,alias:"class-name",inside:S},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,g]),inside:S,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:S,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[h,p]),inside:{function:n(/^<<0>>/.source,[h]),generic:{pattern:RegExp(p),alias:"class-name",inside:S}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,b,h,k,u.source,m,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[b,m]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(k),greedy:!0,inside:S},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var T=_+"|"+x,L=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[T]),A=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[L]),2),N=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,P=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[g,A]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[N,P]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[N]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[A]),inside:e.languages.csharp},"class-name":{pattern:RegExp(g),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var O=/:[^}\r\n]+/.source,I=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[L]),2),R=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,O]),M=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[T]),2),D=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[M,O]);function B(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,O]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[R]),lookbehind:!0,greedy:!0,inside:B(R,I)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[D]),lookbehind:!0,greedy:!0,inside:B(D,M)}],char:{pattern:RegExp(x),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},2011:(e,t,n)=>{var r={"./prism-cpp":2731,"./prism-csharp":9016};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=2011},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,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:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n