From 4a37aac61fcd0e7d196bc5a039f5a167a14d5021 Mon Sep 17 00:00:00 2001 From: Gabriel Pizarro Date: Mon, 29 Apr 2024 23:22:59 -0700 Subject: [PATCH] Deploy website - based on 99580929b52b37824ded4c612e7a511872f11b40 --- 404.html | 6 ++-- assets/js/4edc808e.02d7e34c.js | 1 + assets/js/4edc808e.ba626f45.js | 1 - assets/js/6ff4166c.4eda693d.js | 1 + assets/js/935f2afb.303a3a5a.js | 1 - assets/js/935f2afb.9508010a.js | 1 + assets/js/a8c31fc1.556cdc05.js | 1 - assets/js/main.53bdc75c.js | 2 -- assets/js/main.ca0bb045.js | 2 ++ ...CENSE.txt => main.ca0bb045.js.LICENSE.txt} | 0 assets/js/runtime~main.aa5a99ca.js | 1 + assets/js/runtime~main.bef00624.js | 1 - index.html | 6 ++-- setup/index.html | 32 +++++++++++++++++++ setup/installation/index.html | 13 -------- sitemap.xml | 2 +- writeups/ai-calculator/exploit.py/index.html | 6 ++-- writeups/ai-calculator/index.html | 6 ++-- writeups/ai-cryptic-game/index.html | 6 ++-- writeups/ai-lock/exploit.txt/index.html | 6 ++-- writeups/ai-lock/index.html | 6 ++-- .../castle_domain.pddl/index.html | 6 ++-- .../castle_problem.pddl/index.html | 6 ++-- .../castle_problem_poem.pddl/index.html | 6 ++-- writeups/ai-mystical-castle/index.html | 6 ++-- writeups/aimazing/exploit.py/index.html | 6 ++-- writeups/aimazing/index.html | 6 ++-- writeups/aipi-escape/index.html | 6 ++-- writeups/broken-words/cipher.py/index.html | 6 ++-- writeups/broken-words/index.html | 6 ++-- writeups/broken-words/solution.py/index.html | 6 ++-- writeups/bugdget/exploit.py/index.html | 6 ++-- writeups/bugdget/index.html | 6 ++-- writeups/bytes-in-pairs/exploit.py/index.html | 6 ++-- writeups/bytes-in-pairs/index.html | 6 ++-- writeups/ci-ninja-2/exploit.py/index.html | 6 ++-- writeups/ci-ninja-2/index.html | 6 ++-- .../exploit_escape_chroot.py/index.html | 6 ++-- .../ci-ninja/exploit_prompt.py/index.html | 6 ++-- writeups/ci-ninja/index.html | 6 ++-- writeups/deepfakes/index.html | 6 ++-- writeups/deepfakes/solution.py/index.html | 6 ++-- .../escape-from-markov/exploit.py/index.html | 6 ++-- writeups/escape-from-markov/index.html | 6 ++-- .../ghost-in-the-stack/exploit.py/index.html | 6 ++-- writeups/ghost-in-the-stack/index.html | 6 ++-- writeups/guesstimate/exploit.py/index.html | 6 ++-- writeups/guesstimate/index.html | 6 ++-- writeups/island-party/index.html | 6 ++-- writeups/island-party/solution.py/index.html | 6 ++-- writeups/lost-album/index.html | 6 ++-- writeups/lost-album/solution.py/index.html | 6 ++-- writeups/lost-in-translation/index.html | 6 ++-- writeups/max-64/index.html | 6 ++-- writeups/parakeet-v2/index.html | 6 ++-- writeups/parakeet/index.html | 6 ++-- .../pixel-mirage-2/attack_util.py/index.html | 6 ++-- .../pixel-mirage-2/data_util.py/index.html | 6 ++-- writeups/pixel-mirage-2/index.html | 6 ++-- .../pixel-mirage-2/interact.py/index.html | 6 ++-- .../pixel-mirage-2/model_util.py/index.html | 6 ++-- .../pixel-mirage-2/solution.py/index.html | 6 ++-- .../pixel-mirage/attack_util.py/index.html | 6 ++-- writeups/pixel-mirage/data_util.py/index.html | 6 ++-- writeups/pixel-mirage/index.html | 6 ++-- writeups/pixel-mirage/interact.py/index.html | 6 ++-- .../pixel-mirage/model_util.py/index.html | 6 ++-- writeups/pixel-mirage/solution.py/index.html | 6 ++-- writeups/printbof/exploit.py/index.html | 6 ++-- writeups/printbof/index.html | 6 ++-- writeups/rustyneurone/index.html | 6 ++-- writeups/snake-game/check.c/index.html | 6 ++-- writeups/snake-game/index.html | 6 ++-- writeups/snake-game/solution.c/index.html | 6 ++-- writeups/stop-the-model-thief/index.html | 6 ++-- .../solution.py/index.html | 6 ++-- writeups/stop-the-spammer/index.html | 6 ++-- .../stop-the-spammer/solution.py/index.html | 6 ++-- writeups/supermart/exploit.py/index.html | 6 ++-- writeups/supermart/index.html | 6 ++-- writeups/tensormania/index.html | 6 ++-- writeups/tensormania/solution.py/index.html | 6 ++-- writeups/trendy/index.html | 6 ++-- writeups/who-is-waldo/index.html | 6 ++-- writeups/who-is-waldo/solution.py/index.html | 6 ++-- 85 files changed, 252 insertions(+), 233 deletions(-) create mode 100755 assets/js/4edc808e.02d7e34c.js delete mode 100755 assets/js/4edc808e.ba626f45.js create mode 100755 assets/js/6ff4166c.4eda693d.js delete mode 100755 assets/js/935f2afb.303a3a5a.js create mode 100755 assets/js/935f2afb.9508010a.js delete mode 100755 assets/js/a8c31fc1.556cdc05.js delete mode 100755 assets/js/main.53bdc75c.js create mode 100755 assets/js/main.ca0bb045.js rename assets/js/{main.53bdc75c.js.LICENSE.txt => main.ca0bb045.js.LICENSE.txt} (100%) create mode 100755 assets/js/runtime~main.aa5a99ca.js delete mode 100755 assets/js/runtime~main.bef00624.js create mode 100755 setup/index.html delete mode 100755 setup/installation/index.html diff --git a/404.html b/404.html index fbf2a86..7f4385e 100755 --- a/404.html +++ b/404.html @@ -4,10 +4,10 @@ iCTF Docs - - + + -
Skip to main content

Page Not Found

We could not find what you were looking for.

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

+
Skip to main content

Page Not Found

We could not find what you were looking for.

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

\ No newline at end of file diff --git a/assets/js/4edc808e.02d7e34c.js b/assets/js/4edc808e.02d7e34c.js new file mode 100755 index 0000000..7cdd661 --- /dev/null +++ b/assets/js/4edc808e.02d7e34c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[308],{5660:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>m,contentTitle:()=>d,default:()=>b,frontMatter:()=>u,metadata:()=>p,toc:()=>f});var s=n(4848),i=n(8453),c=(n(6540),n(4164)),o=n(8774);function a(t){const{permalink:e,title:n,subLabel:i}=t;return(0,s.jsxs)(o.A,{className:(0,c.A)("pagination-nav__link"),to:e,children:[(0,s.jsx)("div",{className:"pagination-nav__label",style:{marginBottom:".4em"},children:n}),i&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:i})]})}const r=[{title:"Setup",subLabel:"Run iCTF locally",permalink:"/ictf-docs/setup"},{title:"Writeups",subLabel:"Read challenge solutions",permalink:"/ictf-docs/writeups/ai-calculator"}];function l(){return(0,s.jsx)("nav",{className:"pagination-nav docusaurus-mt-lg",children:r.map((t=>(0,s.jsx)(a,{...t})))})}const u={title:"iCTF Docs"},d=void 0,p={id:"index",title:"iCTF Docs",description:"",source:"@site/docs/index.mdx",sourceDirName:".",slug:"/",permalink:"/ictf-docs/",draft:!1,unlisted:!1,editUrl:"https://github.com/ucsb-seclab/ictf-docs/tree/main/docs/index.mdx",tags:[],version:"current",frontMatter:{title:"iCTF Docs"}},m={},f=[];function x(t){return(0,s.jsx)(l,{})}function b(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(x,{...t})}):x()}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>a});var s=n(6540);const i={},c=s.createContext(i);function o(t){const e=s.useContext(c);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),s.createElement(c.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/4edc808e.ba626f45.js b/assets/js/4edc808e.ba626f45.js deleted file mode 100755 index 5918ed6..0000000 --- a/assets/js/4edc808e.ba626f45.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[308],{5660:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>m,contentTitle:()=>d,default:()=>b,frontMatter:()=>u,metadata:()=>p,toc:()=>f});var s=n(4848),i=n(8453),c=(n(6540),n(4164)),o=n(8774);function a(t){const{permalink:e,title:n,subLabel:i}=t;return(0,s.jsxs)(o.A,{className:(0,c.A)("pagination-nav__link"),to:e,children:[(0,s.jsx)("div",{className:"pagination-nav__label",style:{marginBottom:".4em"},children:n}),i&&(0,s.jsx)("div",{className:"pagination-nav__sublabel",children:i})]})}const r=[{title:"Setup",subLabel:"Run iCTF locally",permalink:"/ictf-docs/setup/installation"},{title:"Writeups",subLabel:"Read challenge solutions",permalink:"/ictf-docs/writeups/ai-calculator"}];function l(){return(0,s.jsx)("nav",{className:"pagination-nav docusaurus-mt-lg",children:r.map((t=>(0,s.jsx)(a,{...t})))})}const u={title:"iCTF Docs"},d=void 0,p={id:"index",title:"iCTF Docs",description:"",source:"@site/docs/index.mdx",sourceDirName:".",slug:"/",permalink:"/ictf-docs/",draft:!1,unlisted:!1,editUrl:"https://github.com/ucsb-seclab/ictf-docs/tree/main/docs/index.mdx",tags:[],version:"current",frontMatter:{title:"iCTF Docs"}},m={},f=[];function x(t){return(0,s.jsx)(l,{})}function b(t={}){const{wrapper:e}={...(0,i.R)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(x,{...t})}):x()}},8453:(t,e,n)=>{n.d(e,{R:()=>o,x:()=>a});var s=n(6540);const i={},c=s.createContext(i);function o(t){const e=s.useContext(c);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),s.createElement(c.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/6ff4166c.4eda693d.js b/assets/js/6ff4166c.4eda693d.js new file mode 100755 index 0000000..10151ad --- /dev/null +++ b/assets/js/6ff4166c.4eda693d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[2509],{5848:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>c,metadata:()=>l,toc:()=>r});var s=t(4848),i=t(8453);const c={title:"Setup"},o=void 0,l={id:"setup/index",title:"Setup",description:"Configure CTFd",source:"@site/docs/setup/index.md",sourceDirName:"setup",slug:"/setup/",permalink:"/ictf-docs/setup/",draft:!1,unlisted:!1,editUrl:"https://github.com/ucsb-seclab/ictf-docs/tree/main/docs/setup/index.md",tags:[],version:"current",frontMatter:{title:"Setup"},sidebar:"setup"},d={},r=[{value:"Configure CTFd",id:"configure-ctfd",level:2},{value:"Option 1: Docker",id:"option-1-docker",level:3},{value:"Option 2: Paid CTFd",id:"option-2-paid-ctfd",level:3},{value:"Deploy iCTF challenges",id:"deploy-ictf-challenges",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"configure-ctfd",children:"Configure CTFd"}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Note"}),": Most challenges were written using Dockerfiles, which are unsupported on Option 1 (self-hosted CTFd). Use Option 2 (paid CTFd) if you need access to all the challenges."]}),"\n",(0,s.jsx)(n.h3,{id:"option-1-docker",children:"Option 1: Docker"}),"\n",(0,s.jsx)(n.p,{children:"Install docker and docker-compose:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.docker.com/engine/install",children:"https://docs.docker.com/engine/install"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.docker.com/compose/install",children:"https://docs.docker.com/compose/install"})}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Download and start CTFd:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"git clone https://github.com/CTFd/CTFd\r\npushd CTFd\r\ndocker compose up\r\npopd\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Configure the instance at ",(0,s.jsx)(n.a,{href:"http://localhost:8000",children:"http://localhost:8000"}),":"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Set the instance name and team configurations however you'd like"}),"\n",(0,s.jsx)(n.li,{children:"Don't create any challenges"}),"\n",(0,s.jsx)(n.li,{children:"Create an access token in the admin settings"}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"option-2-paid-ctfd",children:"Option 2: Paid CTFd"}),"\n",(0,s.jsxs)(n.p,{children:["Use the website to configure your instance: ",(0,s.jsx)(n.a,{href:"https://ctfd.io/pricing/",children:"https://ctfd.io/pricing/"})]}),"\n",(0,s.jsx)(n.h2,{id:"deploy-ictf-challenges",children:"Deploy iCTF challenges"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"pipx install ctfcli\r\nmkdir ictf23-instance\r\npushd ictf23-instance\r\nctf init\r\ngit submodule add https://github.com/shellphish/ictf23-challenges-public\r\n./ictf23-challenges-public/deploy.sh\r\npopd\n"})})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var s=t(6540);const i={},c=s.createContext(i);function o(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.303a3a5a.js b/assets/js/935f2afb.303a3a5a.js deleted file mode 100755 index d1c1b0f..0000000 --- a/assets/js/935f2afb.303a3a5a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"setup":[{"type":"link","label":"Installation","href":"/ictf-docs/setup/installation","docId":"setup/installation","unlisted":false}],"writeups":[{"type":"category","label":"AI Calculator","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ai-calculator/exploit.py","docId":"writeups/ai-calculator/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ai-calculator/"},{"type":"link","label":"AI Cryptic Game","href":"/ictf-docs/writeups/ai-cryptic-game/","customProps":{"levels":["HS"]},"docId":"writeups/ai-cryptic-game/index","unlisted":false},{"type":"category","label":"ai_lock","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.txt","href":"/ictf-docs/writeups/ai-lock/exploit.txt","docId":"writeups/ai-lock/exploit.txt","unlisted":false}],"href":"/ictf-docs/writeups/ai-lock/"},{"type":"category","label":"AI Mystical Castle","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"castle_domain.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_domain.pddl","docId":"writeups/ai-mystical-castle/castle_domain.pddl","unlisted":false},{"type":"link","label":"castle_problem.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_problem.pddl","docId":"writeups/ai-mystical-castle/castle_problem.pddl","unlisted":false},{"type":"link","label":"castle_problem_poem.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_problem_poem.pddl","docId":"writeups/ai-mystical-castle/castle_problem_poem.pddl","unlisted":false}],"href":"/ictf-docs/writeups/ai-mystical-castle/"},{"type":"category","label":"aimazing","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/aimazing/exploit.py","docId":"writeups/aimazing/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/aimazing/"},{"type":"link","label":"A(I)PI Escape","href":"/ictf-docs/writeups/aipi-escape/","customProps":{"levels":["UG"]},"docId":"writeups/aipi-escape/index","unlisted":false},{"type":"category","label":"BrokenWords","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"cipher.py","href":"/ictf-docs/writeups/broken-words/cipher.py","docId":"writeups/broken-words/cipher.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/broken-words/solution.py","docId":"writeups/broken-words/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/broken-words/"},{"type":"category","label":"bugdget","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/bugdget/exploit.py","docId":"writeups/bugdget/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/bugdget/"},{"type":"category","label":"bytes_in_pairs","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/bytes-in-pairs/exploit.py","docId":"writeups/bytes-in-pairs/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/bytes-in-pairs/"},{"type":"category","label":"CI Ninja","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit_escape_chroot.py","href":"/ictf-docs/writeups/ci-ninja/exploit_escape_chroot.py","docId":"writeups/ci-ninja/exploit_escape_chroot.py","unlisted":false},{"type":"link","label":"exploit_prompt.py","href":"/ictf-docs/writeups/ci-ninja/exploit_prompt.py","docId":"writeups/ci-ninja/exploit_prompt.py","unlisted":false}],"href":"/ictf-docs/writeups/ci-ninja/"},{"type":"category","label":"CI Ninja 2","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ci-ninja-2/exploit.py","docId":"writeups/ci-ninja-2/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ci-ninja-2/"},{"type":"category","label":"Find the Deep Faker!","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/deepfakes/solution.py","docId":"writeups/deepfakes/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/deepfakes/"},{"type":"category","label":"escape_from_markov","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/escape-from-markov/exploit.py","docId":"writeups/escape-from-markov/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/escape-from-markov/"},{"type":"category","label":"ghostinthestack","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ghost-in-the-stack/exploit.py","docId":"writeups/ghost-in-the-stack/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ghost-in-the-stack/"},{"type":"category","label":"guesstimate","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/guesstimate/exploit.py","docId":"writeups/guesstimate/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/guesstimate/"},{"type":"category","label":"IslandParty","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/island-party/solution.py","docId":"writeups/island-party/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/island-party/"},{"type":"category","label":"Lost Album","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/lost-album/solution.py","docId":"writeups/lost-album/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/lost-album/"},{"type":"link","label":"Lost in Translation","href":"/ictf-docs/writeups/lost-in-translation/","customProps":{"levels":["HS"]},"docId":"writeups/lost-in-translation/index","unlisted":false},{"type":"link","label":"max_64","href":"/ictf-docs/writeups/max-64/","customProps":{"levels":["HS"]},"docId":"writeups/max-64/index","unlisted":false},{"type":"link","label":"parakeet","href":"/ictf-docs/writeups/parakeet/","customProps":{"levels":["HS"]},"docId":"writeups/parakeet/index","unlisted":false},{"type":"link","label":"parakeet_v2","href":"/ictf-docs/writeups/parakeet-v2/","customProps":{"levels":["HS"]},"docId":"writeups/parakeet-v2/index","unlisted":false},{"type":"category","label":"Pixel Mirage (part 1)","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"attack_util.py","href":"/ictf-docs/writeups/pixel-mirage/attack_util.py","docId":"writeups/pixel-mirage/attack_util.py","unlisted":false},{"type":"link","label":"data_util.py","href":"/ictf-docs/writeups/pixel-mirage/data_util.py","docId":"writeups/pixel-mirage/data_util.py","unlisted":false},{"type":"link","label":"interact.py","href":"/ictf-docs/writeups/pixel-mirage/interact.py","docId":"writeups/pixel-mirage/interact.py","unlisted":false},{"type":"link","label":"model_util.py","href":"/ictf-docs/writeups/pixel-mirage/model_util.py","docId":"writeups/pixel-mirage/model_util.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/pixel-mirage/solution.py","docId":"writeups/pixel-mirage/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/pixel-mirage/"},{"type":"category","label":"Pixel Mirage (part 2)","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"attack_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/attack_util.py","docId":"writeups/pixel-mirage-2/attack_util.py","unlisted":false},{"type":"link","label":"data_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/data_util.py","docId":"writeups/pixel-mirage-2/data_util.py","unlisted":false},{"type":"link","label":"interact.py","href":"/ictf-docs/writeups/pixel-mirage-2/interact.py","docId":"writeups/pixel-mirage-2/interact.py","unlisted":false},{"type":"link","label":"model_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/model_util.py","docId":"writeups/pixel-mirage-2/model_util.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/pixel-mirage-2/solution.py","docId":"writeups/pixel-mirage-2/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/pixel-mirage-2/"},{"type":"category","label":"printbof","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/printbof/exploit.py","docId":"writeups/printbof/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/printbof/"},{"type":"link","label":"rustyneurone","href":"/ictf-docs/writeups/rustyneurone/","customProps":{"levels":["UG"]},"docId":"writeups/rustyneurone/index","unlisted":false},{"type":"category","label":"Snake Game","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"check.c","href":"/ictf-docs/writeups/snake-game/check.c","docId":"writeups/snake-game/check.c","unlisted":false},{"type":"link","label":"solution.c","href":"/ictf-docs/writeups/snake-game/solution.c","docId":"writeups/snake-game/solution.c","unlisted":false}],"href":"/ictf-docs/writeups/snake-game/"},{"type":"category","label":"Stop the model thief!","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/stop-the-model-thief/solution.py","docId":"writeups/stop-the-model-thief/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/stop-the-model-thief/"},{"type":"category","label":"Stop the spammer!","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/stop-the-spammer/solution.py","docId":"writeups/stop-the-spammer/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/stop-the-spammer/"},{"type":"category","label":"supermart","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/supermart/exploit.py","docId":"writeups/supermart/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/supermart/"},{"type":"category","label":"Tensormania","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/tensormania/solution.py","docId":"writeups/tensormania/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/tensormania/"},{"type":"link","label":"Trendy","href":"/ictf-docs/writeups/trendy/","customProps":{"levels":["HS"]},"docId":"writeups/trendy/index","unlisted":false},{"type":"category","label":"Who is Waldo?","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/who-is-waldo/solution.py","docId":"writeups/who-is-waldo/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/who-is-waldo/"}]},"docs":{"index":{"id":"index","title":"iCTF Docs","description":""},"setup/installation":{"id":"setup/installation","title":"Installation","description":"Todo: guide to locally run iCTF using ctfd","sidebar":"setup"},"writeups/ai-calculator/exploit.py":{"id":"writeups/ai-calculator/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ai-calculator/index":{"id":"writeups/ai-calculator/index","title":"AI Calculator","description":"This challenge can be solved via prompt injection (exploit.py).","sidebar":"writeups"},"writeups/ai-cryptic-game/index":{"id":"writeups/ai-cryptic-game/index","title":"AI Cryptic Game","description":"In this case, ChatGPT is able to solve the puzzle on its own.","sidebar":"writeups"},"writeups/ai-lock/exploit.txt":{"id":"writeups/ai-lock/exploit.txt","title":"exploit.txt","description":"","sidebar":"writeups"},"writeups/ai-lock/index":{"id":"writeups/ai-lock/index","title":"ai_lock","description":"In order to solve the challenge, figure out the employee pin through initial check.","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_domain.pddl":{"id":"writeups/ai-mystical-castle/castle_domain.pddl","title":"castle_domain.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_problem_poem.pddl":{"id":"writeups/ai-mystical-castle/castle_problem_poem.pddl","title":"castle_problem_poem.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_problem.pddl":{"id":"writeups/ai-mystical-castle/castle_problem.pddl","title":"castle_problem.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/index":{"id":"writeups/ai-mystical-castle/index","title":"AI Mystical Castle","description":"This challenge relies on PDDL, a language to describe planning problems (i.e. problems that can be solved by applying operations to a state).","sidebar":"writeups"},"writeups/aimazing/exploit.py":{"id":"writeups/aimazing/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/aimazing/index":{"id":"writeups/aimazing/index","title":"aimazing","description":"See exploit.py","sidebar":"writeups"},"writeups/aipi-escape/index":{"id":"writeups/aipi-escape/index","title":"A(I)PI Escape","description":"Working prompt","sidebar":"writeups"},"writeups/broken-words/cipher.py":{"id":"writeups/broken-words/cipher.py","title":"cipher.py","description":"","sidebar":"writeups"},"writeups/broken-words/index":{"id":"writeups/broken-words/index","title":"BrokenWords","description":"See cipher.py, solution.py","sidebar":"writeups"},"writeups/broken-words/solution.py":{"id":"writeups/broken-words/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/bugdget/exploit.py":{"id":"writeups/bugdget/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/bugdget/index":{"id":"writeups/bugdget/index","title":"bugdget","description":"This challenge presents a user with a budget planning application.","sidebar":"writeups"},"writeups/bytes-in-pairs/exploit.py":{"id":"writeups/bytes-in-pairs/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/bytes-in-pairs/index":{"id":"writeups/bytes-in-pairs/index","title":"bytes_in_pairs","description":"This challenge uses byte-pair-encoding on the user-input together with some other text containing the flag. By injecting the right bytes, the flag can be extracted piece by piece via the resulting tokens. If a matching flag piece is injected, the resulting text will be counted as appearing multiple times and will be added as a separate token. This can be used to extract the flag.","sidebar":"writeups"},"writeups/ci-ninja-2/exploit.py":{"id":"writeups/ci-ninja-2/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ci-ninja-2/index":{"id":"writeups/ci-ninja-2/index","title":"CI Ninja 2","description":"Prompt (1/2):","sidebar":"writeups"},"writeups/ci-ninja/exploit_escape_chroot.py":{"id":"writeups/ci-ninja/exploit_escape_chroot.py","title":"exploit_escape_chroot.py","description":"","sidebar":"writeups"},"writeups/ci-ninja/exploit_prompt.py":{"id":"writeups/ci-ninja/exploit_prompt.py","title":"exploit_prompt.py","description":"","sidebar":"writeups"},"writeups/ci-ninja/index":{"id":"writeups/ci-ninja/index","title":"CI Ninja","description":"Prompt:","sidebar":"writeups"},"writeups/deepfakes/index":{"id":"writeups/deepfakes/index","title":"Find the Deep Faker!","description":"We must train a model to filter the transformed images. See solution.py","sidebar":"writeups"},"writeups/deepfakes/solution.py":{"id":"writeups/deepfakes/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/escape-from-markov/exploit.py":{"id":"writeups/escape-from-markov/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/escape-from-markov/index":{"id":"writeups/escape-from-markov/index","title":"escape_from_markov","description":"Simple charactor-based markov-model implementation. By requesting a large number of flags, the player can learn the transition probabilities of the markov model and recover the flag as sequences of most-likely character pairs.","sidebar":"writeups"},"writeups/ghost-in-the-stack/exploit.py":{"id":"writeups/ghost-in-the-stack/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ghost-in-the-stack/index":{"id":"writeups/ghost-in-the-stack/index","title":"ghostinthestack","description":"This is a ret2dlresolve challenge.","sidebar":"writeups"},"writeups/guesstimate/exploit.py":{"id":"writeups/guesstimate/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/guesstimate/index":{"id":"writeups/guesstimate/index","title":"guesstimate","description":"The challenge can be solved by connecting twice and using one instance against the other.","sidebar":"writeups"},"writeups/island-party/index":{"id":"writeups/island-party/index","title":"IslandParty","description":"We can use numpy to implement an image filter and extract a watermark.","sidebar":"writeups"},"writeups/island-party/solution.py":{"id":"writeups/island-party/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/lost-album/index":{"id":"writeups/lost-album/index","title":"Lost Album","description":"Given that a 3-character string was overlaid on most images in the training of a model, recover what the string was.","sidebar":"writeups"},"writeups/lost-album/solution.py":{"id":"writeups/lost-album/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/lost-in-translation/index":{"id":"writeups/lost-in-translation/index","title":"Lost in Translation","description":"If you translate the challenge, it says to concatenate the first letter of each word of the challenge. Put it in the format: ictf","sidebar":"writeups"},"writeups/max-64/index":{"id":"writeups/max-64/index","title":"max_64","description":"To solve the challenge apply maxpooling (either manually or by creating a model with a maxpooling layer) with a stride of 64. Then reshape your array to 1x27 array and feed it to the max_64.py. You will want to use numpy to do so. This will give you the flag!","sidebar":"writeups"},"writeups/parakeet-v2/index":{"id":"writeups/parakeet-v2/index","title":"parakeet_v2","description":"The flag is in the creator field metadata, but this time it is not in plain text.","sidebar":"writeups"},"writeups/parakeet/index":{"id":"writeups/parakeet/index","title":"parakeet","description":"The flag is in the creator field metadata and it is readily accessible with the strings command.","sidebar":"writeups"},"writeups/pixel-mirage-2/attack_util.py":{"id":"writeups/pixel-mirage-2/attack_util.py","title":"attack_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/data_util.py":{"id":"writeups/pixel-mirage-2/data_util.py","title":"data_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/index":{"id":"writeups/pixel-mirage-2/index","title":"Pixel Mirage (part 2)","description":"Run solution.py to perform a 10-step PGD attack. PGD attack is implemented in attackutil.py.","sidebar":"writeups"},"writeups/pixel-mirage-2/interact.py":{"id":"writeups/pixel-mirage-2/interact.py","title":"interact.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/model_util.py":{"id":"writeups/pixel-mirage-2/model_util.py","title":"model_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/solution.py":{"id":"writeups/pixel-mirage-2/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/attack_util.py":{"id":"writeups/pixel-mirage/attack_util.py","title":"attack_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/data_util.py":{"id":"writeups/pixel-mirage/data_util.py","title":"data_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/index":{"id":"writeups/pixel-mirage/index","title":"Pixel Mirage (part 1)","description":"Run solution.py to perform a 10-step PGD attack. PGD attack is implemented in attackutil.py.","sidebar":"writeups"},"writeups/pixel-mirage/interact.py":{"id":"writeups/pixel-mirage/interact.py","title":"interact.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/model_util.py":{"id":"writeups/pixel-mirage/model_util.py","title":"model_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/solution.py":{"id":"writeups/pixel-mirage/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/printbof/exploit.py":{"id":"writeups/printbof/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/printbof/index":{"id":"writeups/printbof/index","title":"printbof","description":"To run this locally, you may need to:","sidebar":"writeups"},"writeups/rustyneurone/index":{"id":"writeups/rustyneurone/index","title":"rustyneurone","description":"Introduction","sidebar":"writeups"},"writeups/snake-game/check.c":{"id":"writeups/snake-game/check.c","title":"check.c","description":"","sidebar":"writeups"},"writeups/snake-game/index":{"id":"writeups/snake-game/index","title":"Snake Game","description":"This snake game has an easter egg, which can be triggered by pressing certain arrow keys and pausing the game.","sidebar":"writeups"},"writeups/snake-game/solution.c":{"id":"writeups/snake-game/solution.c","title":"solution.c","description":"","sidebar":"writeups"},"writeups/stop-the-model-thief/index":{"id":"writeups/stop-the-model-thief/index","title":"Stop the model thief!","description":"This is a fun little data science challenge.","sidebar":"writeups"},"writeups/stop-the-model-thief/solution.py":{"id":"writeups/stop-the-model-thief/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/stop-the-spammer/index":{"id":"writeups/stop-the-spammer/index","title":"Stop the spammer!","description":"See solution.py","sidebar":"writeups"},"writeups/stop-the-spammer/solution.py":{"id":"writeups/stop-the-spammer/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/supermart/exploit.py":{"id":"writeups/supermart/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/supermart/index":{"id":"writeups/supermart/index","title":"supermart","description":"See exploit.py","sidebar":"writeups"},"writeups/tensormania/index":{"id":"writeups/tensormania/index","title":"Tensormania","description":"In the context of image representation, most image formats like JPEG use an 8-bit color depth for each channel (red, green, blue),","sidebar":"writeups"},"writeups/tensormania/solution.py":{"id":"writeups/tensormania/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/trendy/index":{"id":"writeups/trendy/index","title":"Trendy","description":"Plot the data in a chart","sidebar":"writeups"},"writeups/who-is-waldo/index":{"id":"writeups/who-is-waldo/index","title":"Who is Waldo?","description":"See solution.py","sidebar":"writeups"},"writeups/who-is-waldo/solution.py":{"id":"writeups/who-is-waldo/solution.py","title":"solution.py","description":"","sidebar":"writeups"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.9508010a.js b/assets/js/935f2afb.9508010a.js new file mode 100755 index 0000000..ad987e6 --- /dev/null +++ b/assets/js/935f2afb.9508010a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[8581],{5610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"setup":[{"type":"link","label":"Setup","href":"/ictf-docs/setup/","docId":"setup/index","unlisted":false}],"writeups":[{"type":"category","label":"AI Calculator","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ai-calculator/exploit.py","docId":"writeups/ai-calculator/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ai-calculator/"},{"type":"link","label":"AI Cryptic Game","href":"/ictf-docs/writeups/ai-cryptic-game/","customProps":{"levels":["HS"]},"docId":"writeups/ai-cryptic-game/index","unlisted":false},{"type":"category","label":"ai_lock","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.txt","href":"/ictf-docs/writeups/ai-lock/exploit.txt","docId":"writeups/ai-lock/exploit.txt","unlisted":false}],"href":"/ictf-docs/writeups/ai-lock/"},{"type":"category","label":"AI Mystical Castle","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"castle_domain.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_domain.pddl","docId":"writeups/ai-mystical-castle/castle_domain.pddl","unlisted":false},{"type":"link","label":"castle_problem.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_problem.pddl","docId":"writeups/ai-mystical-castle/castle_problem.pddl","unlisted":false},{"type":"link","label":"castle_problem_poem.pddl","href":"/ictf-docs/writeups/ai-mystical-castle/castle_problem_poem.pddl","docId":"writeups/ai-mystical-castle/castle_problem_poem.pddl","unlisted":false}],"href":"/ictf-docs/writeups/ai-mystical-castle/"},{"type":"category","label":"aimazing","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/aimazing/exploit.py","docId":"writeups/aimazing/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/aimazing/"},{"type":"link","label":"A(I)PI Escape","href":"/ictf-docs/writeups/aipi-escape/","customProps":{"levels":["UG"]},"docId":"writeups/aipi-escape/index","unlisted":false},{"type":"category","label":"BrokenWords","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"cipher.py","href":"/ictf-docs/writeups/broken-words/cipher.py","docId":"writeups/broken-words/cipher.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/broken-words/solution.py","docId":"writeups/broken-words/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/broken-words/"},{"type":"category","label":"bugdget","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/bugdget/exploit.py","docId":"writeups/bugdget/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/bugdget/"},{"type":"category","label":"bytes_in_pairs","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/bytes-in-pairs/exploit.py","docId":"writeups/bytes-in-pairs/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/bytes-in-pairs/"},{"type":"category","label":"CI Ninja","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit_escape_chroot.py","href":"/ictf-docs/writeups/ci-ninja/exploit_escape_chroot.py","docId":"writeups/ci-ninja/exploit_escape_chroot.py","unlisted":false},{"type":"link","label":"exploit_prompt.py","href":"/ictf-docs/writeups/ci-ninja/exploit_prompt.py","docId":"writeups/ci-ninja/exploit_prompt.py","unlisted":false}],"href":"/ictf-docs/writeups/ci-ninja/"},{"type":"category","label":"CI Ninja 2","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ci-ninja-2/exploit.py","docId":"writeups/ci-ninja-2/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ci-ninja-2/"},{"type":"category","label":"Find the Deep Faker!","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/deepfakes/solution.py","docId":"writeups/deepfakes/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/deepfakes/"},{"type":"category","label":"escape_from_markov","collapsible":true,"collapsed":true,"customProps":{"levels":["HS","UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/escape-from-markov/exploit.py","docId":"writeups/escape-from-markov/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/escape-from-markov/"},{"type":"category","label":"ghostinthestack","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/ghost-in-the-stack/exploit.py","docId":"writeups/ghost-in-the-stack/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/ghost-in-the-stack/"},{"type":"category","label":"guesstimate","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/guesstimate/exploit.py","docId":"writeups/guesstimate/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/guesstimate/"},{"type":"category","label":"IslandParty","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/island-party/solution.py","docId":"writeups/island-party/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/island-party/"},{"type":"category","label":"Lost Album","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/lost-album/solution.py","docId":"writeups/lost-album/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/lost-album/"},{"type":"link","label":"Lost in Translation","href":"/ictf-docs/writeups/lost-in-translation/","customProps":{"levels":["HS"]},"docId":"writeups/lost-in-translation/index","unlisted":false},{"type":"link","label":"max_64","href":"/ictf-docs/writeups/max-64/","customProps":{"levels":["HS"]},"docId":"writeups/max-64/index","unlisted":false},{"type":"link","label":"parakeet","href":"/ictf-docs/writeups/parakeet/","customProps":{"levels":["HS"]},"docId":"writeups/parakeet/index","unlisted":false},{"type":"link","label":"parakeet_v2","href":"/ictf-docs/writeups/parakeet-v2/","customProps":{"levels":["HS"]},"docId":"writeups/parakeet-v2/index","unlisted":false},{"type":"category","label":"Pixel Mirage (part 1)","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"attack_util.py","href":"/ictf-docs/writeups/pixel-mirage/attack_util.py","docId":"writeups/pixel-mirage/attack_util.py","unlisted":false},{"type":"link","label":"data_util.py","href":"/ictf-docs/writeups/pixel-mirage/data_util.py","docId":"writeups/pixel-mirage/data_util.py","unlisted":false},{"type":"link","label":"interact.py","href":"/ictf-docs/writeups/pixel-mirage/interact.py","docId":"writeups/pixel-mirage/interact.py","unlisted":false},{"type":"link","label":"model_util.py","href":"/ictf-docs/writeups/pixel-mirage/model_util.py","docId":"writeups/pixel-mirage/model_util.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/pixel-mirage/solution.py","docId":"writeups/pixel-mirage/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/pixel-mirage/"},{"type":"category","label":"Pixel Mirage (part 2)","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"attack_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/attack_util.py","docId":"writeups/pixel-mirage-2/attack_util.py","unlisted":false},{"type":"link","label":"data_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/data_util.py","docId":"writeups/pixel-mirage-2/data_util.py","unlisted":false},{"type":"link","label":"interact.py","href":"/ictf-docs/writeups/pixel-mirage-2/interact.py","docId":"writeups/pixel-mirage-2/interact.py","unlisted":false},{"type":"link","label":"model_util.py","href":"/ictf-docs/writeups/pixel-mirage-2/model_util.py","docId":"writeups/pixel-mirage-2/model_util.py","unlisted":false},{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/pixel-mirage-2/solution.py","docId":"writeups/pixel-mirage-2/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/pixel-mirage-2/"},{"type":"category","label":"printbof","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/printbof/exploit.py","docId":"writeups/printbof/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/printbof/"},{"type":"link","label":"rustyneurone","href":"/ictf-docs/writeups/rustyneurone/","customProps":{"levels":["UG"]},"docId":"writeups/rustyneurone/index","unlisted":false},{"type":"category","label":"Snake Game","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"check.c","href":"/ictf-docs/writeups/snake-game/check.c","docId":"writeups/snake-game/check.c","unlisted":false},{"type":"link","label":"solution.c","href":"/ictf-docs/writeups/snake-game/solution.c","docId":"writeups/snake-game/solution.c","unlisted":false}],"href":"/ictf-docs/writeups/snake-game/"},{"type":"category","label":"Stop the model thief!","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/stop-the-model-thief/solution.py","docId":"writeups/stop-the-model-thief/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/stop-the-model-thief/"},{"type":"category","label":"Stop the spammer!","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/stop-the-spammer/solution.py","docId":"writeups/stop-the-spammer/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/stop-the-spammer/"},{"type":"category","label":"supermart","collapsible":true,"collapsed":true,"customProps":{"levels":["UG"]},"items":[{"type":"link","label":"exploit.py","href":"/ictf-docs/writeups/supermart/exploit.py","docId":"writeups/supermart/exploit.py","unlisted":false}],"href":"/ictf-docs/writeups/supermart/"},{"type":"category","label":"Tensormania","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/tensormania/solution.py","docId":"writeups/tensormania/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/tensormania/"},{"type":"link","label":"Trendy","href":"/ictf-docs/writeups/trendy/","customProps":{"levels":["HS"]},"docId":"writeups/trendy/index","unlisted":false},{"type":"category","label":"Who is Waldo?","collapsible":true,"collapsed":true,"customProps":{"levels":["HS"]},"items":[{"type":"link","label":"solution.py","href":"/ictf-docs/writeups/who-is-waldo/solution.py","docId":"writeups/who-is-waldo/solution.py","unlisted":false}],"href":"/ictf-docs/writeups/who-is-waldo/"}]},"docs":{"index":{"id":"index","title":"iCTF Docs","description":""},"setup/index":{"id":"setup/index","title":"Setup","description":"Configure CTFd","sidebar":"setup"},"writeups/ai-calculator/exploit.py":{"id":"writeups/ai-calculator/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ai-calculator/index":{"id":"writeups/ai-calculator/index","title":"AI Calculator","description":"This challenge can be solved via prompt injection (exploit.py).","sidebar":"writeups"},"writeups/ai-cryptic-game/index":{"id":"writeups/ai-cryptic-game/index","title":"AI Cryptic Game","description":"In this case, ChatGPT is able to solve the puzzle on its own.","sidebar":"writeups"},"writeups/ai-lock/exploit.txt":{"id":"writeups/ai-lock/exploit.txt","title":"exploit.txt","description":"","sidebar":"writeups"},"writeups/ai-lock/index":{"id":"writeups/ai-lock/index","title":"ai_lock","description":"In order to solve the challenge, figure out the employee pin through initial check.","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_domain.pddl":{"id":"writeups/ai-mystical-castle/castle_domain.pddl","title":"castle_domain.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_problem_poem.pddl":{"id":"writeups/ai-mystical-castle/castle_problem_poem.pddl","title":"castle_problem_poem.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/castle_problem.pddl":{"id":"writeups/ai-mystical-castle/castle_problem.pddl","title":"castle_problem.pddl","description":"","sidebar":"writeups"},"writeups/ai-mystical-castle/index":{"id":"writeups/ai-mystical-castle/index","title":"AI Mystical Castle","description":"This challenge relies on PDDL, a language to describe planning problems (i.e. problems that can be solved by applying operations to a state).","sidebar":"writeups"},"writeups/aimazing/exploit.py":{"id":"writeups/aimazing/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/aimazing/index":{"id":"writeups/aimazing/index","title":"aimazing","description":"See exploit.py","sidebar":"writeups"},"writeups/aipi-escape/index":{"id":"writeups/aipi-escape/index","title":"A(I)PI Escape","description":"Working prompt","sidebar":"writeups"},"writeups/broken-words/cipher.py":{"id":"writeups/broken-words/cipher.py","title":"cipher.py","description":"","sidebar":"writeups"},"writeups/broken-words/index":{"id":"writeups/broken-words/index","title":"BrokenWords","description":"See cipher.py, solution.py","sidebar":"writeups"},"writeups/broken-words/solution.py":{"id":"writeups/broken-words/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/bugdget/exploit.py":{"id":"writeups/bugdget/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/bugdget/index":{"id":"writeups/bugdget/index","title":"bugdget","description":"This challenge presents a user with a budget planning application.","sidebar":"writeups"},"writeups/bytes-in-pairs/exploit.py":{"id":"writeups/bytes-in-pairs/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/bytes-in-pairs/index":{"id":"writeups/bytes-in-pairs/index","title":"bytes_in_pairs","description":"This challenge uses byte-pair-encoding on the user-input together with some other text containing the flag. By injecting the right bytes, the flag can be extracted piece by piece via the resulting tokens. If a matching flag piece is injected, the resulting text will be counted as appearing multiple times and will be added as a separate token. This can be used to extract the flag.","sidebar":"writeups"},"writeups/ci-ninja-2/exploit.py":{"id":"writeups/ci-ninja-2/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ci-ninja-2/index":{"id":"writeups/ci-ninja-2/index","title":"CI Ninja 2","description":"Prompt (1/2):","sidebar":"writeups"},"writeups/ci-ninja/exploit_escape_chroot.py":{"id":"writeups/ci-ninja/exploit_escape_chroot.py","title":"exploit_escape_chroot.py","description":"","sidebar":"writeups"},"writeups/ci-ninja/exploit_prompt.py":{"id":"writeups/ci-ninja/exploit_prompt.py","title":"exploit_prompt.py","description":"","sidebar":"writeups"},"writeups/ci-ninja/index":{"id":"writeups/ci-ninja/index","title":"CI Ninja","description":"Prompt:","sidebar":"writeups"},"writeups/deepfakes/index":{"id":"writeups/deepfakes/index","title":"Find the Deep Faker!","description":"We must train a model to filter the transformed images. See solution.py","sidebar":"writeups"},"writeups/deepfakes/solution.py":{"id":"writeups/deepfakes/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/escape-from-markov/exploit.py":{"id":"writeups/escape-from-markov/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/escape-from-markov/index":{"id":"writeups/escape-from-markov/index","title":"escape_from_markov","description":"Simple charactor-based markov-model implementation. By requesting a large number of flags, the player can learn the transition probabilities of the markov model and recover the flag as sequences of most-likely character pairs.","sidebar":"writeups"},"writeups/ghost-in-the-stack/exploit.py":{"id":"writeups/ghost-in-the-stack/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/ghost-in-the-stack/index":{"id":"writeups/ghost-in-the-stack/index","title":"ghostinthestack","description":"This is a ret2dlresolve challenge.","sidebar":"writeups"},"writeups/guesstimate/exploit.py":{"id":"writeups/guesstimate/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/guesstimate/index":{"id":"writeups/guesstimate/index","title":"guesstimate","description":"The challenge can be solved by connecting twice and using one instance against the other.","sidebar":"writeups"},"writeups/island-party/index":{"id":"writeups/island-party/index","title":"IslandParty","description":"We can use numpy to implement an image filter and extract a watermark.","sidebar":"writeups"},"writeups/island-party/solution.py":{"id":"writeups/island-party/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/lost-album/index":{"id":"writeups/lost-album/index","title":"Lost Album","description":"Given that a 3-character string was overlaid on most images in the training of a model, recover what the string was.","sidebar":"writeups"},"writeups/lost-album/solution.py":{"id":"writeups/lost-album/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/lost-in-translation/index":{"id":"writeups/lost-in-translation/index","title":"Lost in Translation","description":"If you translate the challenge, it says to concatenate the first letter of each word of the challenge. Put it in the format: ictf","sidebar":"writeups"},"writeups/max-64/index":{"id":"writeups/max-64/index","title":"max_64","description":"To solve the challenge apply maxpooling (either manually or by creating a model with a maxpooling layer) with a stride of 64. Then reshape your array to 1x27 array and feed it to the max_64.py. You will want to use numpy to do so. This will give you the flag!","sidebar":"writeups"},"writeups/parakeet-v2/index":{"id":"writeups/parakeet-v2/index","title":"parakeet_v2","description":"The flag is in the creator field metadata, but this time it is not in plain text.","sidebar":"writeups"},"writeups/parakeet/index":{"id":"writeups/parakeet/index","title":"parakeet","description":"The flag is in the creator field metadata and it is readily accessible with the strings command.","sidebar":"writeups"},"writeups/pixel-mirage-2/attack_util.py":{"id":"writeups/pixel-mirage-2/attack_util.py","title":"attack_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/data_util.py":{"id":"writeups/pixel-mirage-2/data_util.py","title":"data_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/index":{"id":"writeups/pixel-mirage-2/index","title":"Pixel Mirage (part 2)","description":"Run solution.py to perform a 10-step PGD attack. PGD attack is implemented in attackutil.py.","sidebar":"writeups"},"writeups/pixel-mirage-2/interact.py":{"id":"writeups/pixel-mirage-2/interact.py","title":"interact.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/model_util.py":{"id":"writeups/pixel-mirage-2/model_util.py","title":"model_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage-2/solution.py":{"id":"writeups/pixel-mirage-2/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/attack_util.py":{"id":"writeups/pixel-mirage/attack_util.py","title":"attack_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/data_util.py":{"id":"writeups/pixel-mirage/data_util.py","title":"data_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/index":{"id":"writeups/pixel-mirage/index","title":"Pixel Mirage (part 1)","description":"Run solution.py to perform a 10-step PGD attack. PGD attack is implemented in attackutil.py.","sidebar":"writeups"},"writeups/pixel-mirage/interact.py":{"id":"writeups/pixel-mirage/interact.py","title":"interact.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/model_util.py":{"id":"writeups/pixel-mirage/model_util.py","title":"model_util.py","description":"","sidebar":"writeups"},"writeups/pixel-mirage/solution.py":{"id":"writeups/pixel-mirage/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/printbof/exploit.py":{"id":"writeups/printbof/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/printbof/index":{"id":"writeups/printbof/index","title":"printbof","description":"To run this locally, you may need to:","sidebar":"writeups"},"writeups/rustyneurone/index":{"id":"writeups/rustyneurone/index","title":"rustyneurone","description":"Introduction","sidebar":"writeups"},"writeups/snake-game/check.c":{"id":"writeups/snake-game/check.c","title":"check.c","description":"","sidebar":"writeups"},"writeups/snake-game/index":{"id":"writeups/snake-game/index","title":"Snake Game","description":"This snake game has an easter egg, which can be triggered by pressing certain arrow keys and pausing the game.","sidebar":"writeups"},"writeups/snake-game/solution.c":{"id":"writeups/snake-game/solution.c","title":"solution.c","description":"","sidebar":"writeups"},"writeups/stop-the-model-thief/index":{"id":"writeups/stop-the-model-thief/index","title":"Stop the model thief!","description":"This is a fun little data science challenge.","sidebar":"writeups"},"writeups/stop-the-model-thief/solution.py":{"id":"writeups/stop-the-model-thief/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/stop-the-spammer/index":{"id":"writeups/stop-the-spammer/index","title":"Stop the spammer!","description":"See solution.py","sidebar":"writeups"},"writeups/stop-the-spammer/solution.py":{"id":"writeups/stop-the-spammer/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/supermart/exploit.py":{"id":"writeups/supermart/exploit.py","title":"exploit.py","description":"","sidebar":"writeups"},"writeups/supermart/index":{"id":"writeups/supermart/index","title":"supermart","description":"See exploit.py","sidebar":"writeups"},"writeups/tensormania/index":{"id":"writeups/tensormania/index","title":"Tensormania","description":"In the context of image representation, most image formats like JPEG use an 8-bit color depth for each channel (red, green, blue),","sidebar":"writeups"},"writeups/tensormania/solution.py":{"id":"writeups/tensormania/solution.py","title":"solution.py","description":"","sidebar":"writeups"},"writeups/trendy/index":{"id":"writeups/trendy/index","title":"Trendy","description":"Plot the data in a chart","sidebar":"writeups"},"writeups/who-is-waldo/index":{"id":"writeups/who-is-waldo/index","title":"Who is Waldo?","description":"See solution.py","sidebar":"writeups"},"writeups/who-is-waldo/solution.py":{"id":"writeups/who-is-waldo/solution.py","title":"solution.py","description":"","sidebar":"writeups"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a8c31fc1.556cdc05.js b/assets/js/a8c31fc1.556cdc05.js deleted file mode 100755 index 5354a0c..0000000 --- a/assets/js/a8c31fc1.556cdc05.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[1099],{8686:(t,n,e)=>{e.r(n),e.d(n,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var o=e(4848),s=e(8453);const i={title:"Installation"},c=void 0,a={id:"setup/installation",title:"Installation",description:"Todo: guide to locally run iCTF using ctfd",source:"@site/docs/setup/installation.md",sourceDirName:"setup",slug:"/setup/installation",permalink:"/ictf-docs/setup/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/ucsb-seclab/ictf-docs/tree/main/docs/setup/installation.md",tags:[],version:"current",frontMatter:{title:"Installation"},sidebar:"setup"},r={},l=[];function u(t){const n={p:"p",...(0,s.R)(),...t.components};return(0,o.jsx)(n.p,{children:"Todo: guide to locally run iCTF using ctfd"})}function d(t={}){const{wrapper:n}={...(0,s.R)(),...t.components};return n?(0,o.jsx)(n,{...t,children:(0,o.jsx)(u,{...t})}):u(t)}},8453:(t,n,e)=>{e.d(n,{R:()=>c,x:()=>a});var o=e(6540);const s={},i=o.createContext(s);function c(t){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(n):{...n,...t}}),[n,t])}function a(t){let n;return n=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:c(t.components),o.createElement(i.Provider,{value:n},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.53bdc75c.js b/assets/js/main.53bdc75c.js deleted file mode 100755 index 5382a74..0000000 --- a/assets/js/main.53bdc75c.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.53bdc75c.js.LICENSE.txt */ -(self.webpackChunkictf_docs=self.webpackChunkictf_docs||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"0252aeb6":[()=>n.e(7642).then(n.bind(n,1118)),"@site/docs/writeups/who-is-waldo/solution.py.md",1118],"0278b6ca":[()=>n.e(4896).then(n.bind(n,3357)),"@site/docs/writeups/stop-the-spammer/solution.py.md",3357],"096dd6a4":[()=>n.e(1081).then(n.bind(n,5195)),"@site/docs/writeups/pixel-mirage/data_util.py.md",5195],"0aef4d4d":[()=>n.e(8643).then(n.bind(n,1366)),"@site/docs/writeups/pixel-mirage-2/data_util.py.md",1366],"0c2f06cc":[()=>n.e(6668).then(n.bind(n,9504)),"@site/docs/writeups/aipi-escape/index.md",9504],"0ffb05f2":[()=>n.e(3624).then(n.bind(n,1998)),"@site/docs/writeups/max-64/index.md",1998],"1020cf3f":[()=>n.e(2334).then(n.bind(n,3524)),"@site/docs/writeups/rustyneurone/index.md",3524],"13038fa3":[()=>n.e(1982).then(n.bind(n,506)),"@site/docs/writeups/tensormania/index.md",506],"142dea70":[()=>n.e(5309).then(n.bind(n,6121)),"@site/docs/writeups/lost-album/solution.py.md",6121],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,1152)),"@theme/DocItem",1152],"17cee13e":[()=>n.e(5161).then(n.bind(n,9385)),"@site/docs/writeups/pixel-mirage/index.md",9385],"186ebd56":[()=>n.e(5264).then(n.bind(n,9564)),"@site/docs/writeups/guesstimate/index.md",9564],"1efbbb4a":[()=>n.e(2128).then(n.bind(n,1623)),"@site/docs/writeups/snake-game/check.c.md",1623],"20893edb":[()=>n.e(5278).then(n.bind(n,5298)),"@site/docs/writeups/pixel-mirage/model_util.py.md",5298],"2203f502":[()=>n.e(2081).then(n.bind(n,2114)),"@site/docs/writeups/stop-the-model-thief/solution.py.md",2114],"2289acdd":[()=>n.e(7682).then(n.bind(n,1841)),"@site/docs/writeups/stop-the-spammer/index.md",1841],"2e264390":[()=>n.e(3932).then(n.bind(n,4896)),"@site/docs/writeups/ai-lock/exploit.txt.md",4896],"2e7a2302":[()=>n.e(331).then(n.t.bind(n,1966,19)),"/mnt/d/Dev/ictf-docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",1966],"2edadad1":[()=>n.e(2925).then(n.bind(n,4579)),"@site/docs/writeups/aimazing/index.md",4579],"2f72e790":[()=>n.e(2275).then(n.bind(n,7759)),"@site/docs/writeups/trendy/index.md",7759],"34ec43ee":[()=>n.e(8095).then(n.bind(n,4267)),"@site/docs/writeups/deepfakes/index.md",4267],"3500edc0":[()=>n.e(6829).then(n.bind(n,8575)),"@site/docs/writeups/ghost-in-the-stack/exploit.py.md",8575],"3667e835":[()=>n.e(5642).then(n.bind(n,1682)),"@site/docs/writeups/pixel-mirage-2/index.md",1682],"3f76594e":[()=>n.e(2776).then(n.bind(n,4981)),"@site/docs/writeups/ai-mystical-castle/index.md",4981],"4646420d":[()=>n.e(7925).then(n.bind(n,6418)),"@site/docs/writeups/parakeet/index.md",6418],"484a4c8c":[()=>n.e(4570).then(n.bind(n,3900)),"@site/docs/writeups/broken-words/index.md",3900],"4aa5f6a1":[()=>n.e(1350).then(n.bind(n,9599)),"@site/docs/writeups/pixel-mirage/attack_util.py.md",9599],"4edc808e":[()=>n.e(308).then(n.bind(n,5660)),"@site/docs/index.mdx",5660],"533addda":[()=>n.e(6874).then(n.bind(n,7641)),"@site/docs/writeups/pixel-mirage-2/interact.py.md",7641],"55b0b178":[()=>n.e(2529).then(n.bind(n,8259)),"@site/docs/writeups/ci-ninja-2/exploit.py.md",8259],"5b2b5f76":[()=>n.e(8836).then(n.bind(n,4343)),"@site/docs/writeups/printbof/index.md",4343],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"605cc6ad":[()=>n.e(1981).then(n.bind(n,1726)),"@site/docs/writeups/who-is-waldo/index.md",1726],"621e9f5e":[()=>n.e(4174).then(n.bind(n,9366)),"@site/docs/writeups/guesstimate/exploit.py.md",9366],"64df10ed":[()=>n.e(9063).then(n.bind(n,2965)),"@site/docs/writeups/island-party/solution.py.md",2965],"65b4ab9d":[()=>n.e(5676).then(n.bind(n,7288)),"@site/docs/writeups/ai-calculator/exploit.py.md",7288],"6ec0729b":[()=>n.e(9807).then(n.bind(n,3933)),"@site/docs/writeups/bugdget/index.md",3933],"701366da":[()=>n.e(8275).then(n.bind(n,5617)),"@site/docs/writeups/parakeet-v2/index.md",5617],"71fb3a29":[()=>n.e(8348).then(n.bind(n,2319)),"@site/docs/writeups/aimazing/exploit.py.md",2319],"743aea8a":[()=>n.e(2317).then(n.bind(n,5976)),"@site/docs/writeups/broken-words/cipher.py.md",5976],"7f91ab52":[()=>n.e(4010).then(n.bind(n,8831)),"@site/docs/writeups/deepfakes/solution.py.md",8831],"81c65aea":[()=>n.e(3825).then(n.bind(n,2960)),"@site/docs/writeups/supermart/index.md",2960],"85e4b57e":[()=>n.e(1054).then(n.bind(n,1006)),"@site/docs/writeups/ai-calculator/index.md",1006],"865a6ff8":[()=>n.e(1461).then(n.bind(n,6789)),"@site/docs/writeups/pixel-mirage/solution.py.md",6789],89935908:[()=>n.e(5072).then(n.bind(n,5099)),"@site/docs/writeups/printbof/exploit.py.md",5099],"8ff0bccd":[()=>n.e(7175).then(n.bind(n,4082)),"@site/docs/writeups/supermart/exploit.py.md",4082],"92bf9f49":[()=>n.e(1322).then(n.bind(n,9330)),"@site/docs/writeups/snake-game/solution.c.md",9330],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"9c1c9dd4":[()=>n.e(7088).then(n.bind(n,1342)),"@site/docs/writeups/escape-from-markov/exploit.py.md",1342],"9f2ce897":[()=>n.e(3132).then(n.bind(n,7330)),"@site/docs/writeups/bytes-in-pairs/exploit.py.md",7330],a2a8719c:[()=>n.e(921).then(n.bind(n,5650)),"@site/docs/writeups/stop-the-model-thief/index.md",5650],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a87458b7:[()=>n.e(1375).then(n.bind(n,2151)),"@site/docs/writeups/ci-ninja/exploit_prompt.py.md",2151],a8c31fc1:[()=>n.e(1099).then(n.bind(n,8686)),"@site/docs/setup/installation.md",8686],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,4330)),"@theme/DocRoot",4330],ab3769e0:[()=>n.e(8088).then(n.bind(n,1720)),"@site/docs/writeups/ai-mystical-castle/castle_domain.pddl.md",1720],abd4fe10:[()=>n.e(7158).then(n.bind(n,862)),"@site/docs/writeups/pixel-mirage-2/attack_util.py.md",862],ac83b836:[()=>n.e(2217).then(n.bind(n,134)),"@site/docs/writeups/pixel-mirage/interact.py.md",134],b4354c6c:[()=>n.e(75).then(n.bind(n,6373)),"@site/docs/writeups/ai-mystical-castle/castle_problem_poem.pddl.md",6373],b7f221f0:[()=>n.e(8955).then(n.bind(n,6368)),"@site/docs/writeups/bytes-in-pairs/index.md",6368],beb5e197:[()=>n.e(7325).then(n.bind(n,1562)),"@site/docs/writeups/tensormania/solution.py.md",1562],c30a30e6:[()=>n.e(4180).then(n.bind(n,4943)),"@site/docs/writeups/ai-cryptic-game/index.md",4943],c5caff6c:[()=>n.e(230).then(n.bind(n,1642)),"@site/docs/writeups/ci-ninja/exploit_escape_chroot.py.md",1642],cccd3b6b:[()=>n.e(1259).then(n.bind(n,9357)),"@site/docs/writeups/lost-album/index.md",9357],cd621f02:[()=>n.e(2309).then(n.bind(n,2824)),"@site/docs/writeups/ci-ninja/index.md",2824],ce67b3c7:[()=>n.e(8969).then(n.bind(n,5220)),"@site/docs/writeups/escape-from-markov/index.md",5220],dd5d06bf:[()=>n.e(2858).then(n.bind(n,2323)),"@site/docs/writeups/lost-in-translation/index.md",2323],e2c4ae03:[()=>n.e(9390).then(n.bind(n,5827)),"@site/docs/writeups/ghost-in-the-stack/index.md",5827],e3dfff28:[()=>n.e(9883).then(n.bind(n,5172)),"@site/docs/writeups/broken-words/solution.py.md",5172],e6189f1a:[()=>n.e(970).then(n.bind(n,6427)),"@site/docs/writeups/ai-mystical-castle/castle_problem.pddl.md",6427],e68d8a0f:[()=>n.e(8485).then(n.bind(n,5730)),"@site/docs/writeups/pixel-mirage-2/solution.py.md",5730],eb7e3188:[()=>n.e(6162).then(n.bind(n,2201)),"@site/docs/writeups/bugdget/exploit.py.md",2201],f70dfb9c:[()=>n.e(8230).then(n.bind(n,2041)),"@site/docs/writeups/island-party/index.md",2041],f890c2f8:[()=>n.e(9207).then(n.bind(n,6961)),"@site/docs/writeups/ai-lock/index.md",6961],f9e01f69:[()=>n.e(321).then(n.bind(n,4317)),"@site/docs/writeups/pixel-mirage-2/model_util.py.md",4317],fd273e6c:[()=>n.e(1285).then(n.bind(n,7823)),"@site/docs/writeups/ci-ninja-2/index.md",7823],ff5c562b:[()=>n.e(7510).then(n.bind(n,4536)),"@site/docs/writeups/snake-game/index.md",4536]};var s=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));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 i=o;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const p=[{path:"/ictf-docs/",component:d("/ictf-docs/","102"),routes:[{path:"/ictf-docs/",component:d("/ictf-docs/","3f8"),routes:[{path:"/ictf-docs/",component:d("/ictf-docs/","405"),routes:[{path:"/ictf-docs/setup/installation/",component:d("/ictf-docs/setup/installation/","fa6"),exact:!0,sidebar:"setup"},{path:"/ictf-docs/writeups/ai-calculator/",component:d("/ictf-docs/writeups/ai-calculator/","673"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-calculator/exploit.py/",component:d("/ictf-docs/writeups/ai-calculator/exploit.py/","e37"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-cryptic-game/",component:d("/ictf-docs/writeups/ai-cryptic-game/","7ee"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-lock/",component:d("/ictf-docs/writeups/ai-lock/","ccc"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-lock/exploit.txt/",component:d("/ictf-docs/writeups/ai-lock/exploit.txt/","048"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-mystical-castle/",component:d("/ictf-docs/writeups/ai-mystical-castle/","edb"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-mystical-castle/castle_domain.pddl/",component:d("/ictf-docs/writeups/ai-mystical-castle/castle_domain.pddl/","0b1"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-mystical-castle/castle_problem_poem.pddl/",component:d("/ictf-docs/writeups/ai-mystical-castle/castle_problem_poem.pddl/","363"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ai-mystical-castle/castle_problem.pddl/",component:d("/ictf-docs/writeups/ai-mystical-castle/castle_problem.pddl/","c86"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/aimazing/",component:d("/ictf-docs/writeups/aimazing/","d0b"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/aimazing/exploit.py/",component:d("/ictf-docs/writeups/aimazing/exploit.py/","ee6"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/aipi-escape/",component:d("/ictf-docs/writeups/aipi-escape/","136"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/broken-words/",component:d("/ictf-docs/writeups/broken-words/","02e"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/broken-words/cipher.py/",component:d("/ictf-docs/writeups/broken-words/cipher.py/","8f1"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/broken-words/solution.py/",component:d("/ictf-docs/writeups/broken-words/solution.py/","b2a"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/bugdget/",component:d("/ictf-docs/writeups/bugdget/","d22"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/bugdget/exploit.py/",component:d("/ictf-docs/writeups/bugdget/exploit.py/","37f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/bytes-in-pairs/",component:d("/ictf-docs/writeups/bytes-in-pairs/","cdb"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/bytes-in-pairs/exploit.py/",component:d("/ictf-docs/writeups/bytes-in-pairs/exploit.py/","e45"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ci-ninja-2/",component:d("/ictf-docs/writeups/ci-ninja-2/","c6f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ci-ninja-2/exploit.py/",component:d("/ictf-docs/writeups/ci-ninja-2/exploit.py/","537"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ci-ninja/",component:d("/ictf-docs/writeups/ci-ninja/","a47"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ci-ninja/exploit_escape_chroot.py/",component:d("/ictf-docs/writeups/ci-ninja/exploit_escape_chroot.py/","276"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ci-ninja/exploit_prompt.py/",component:d("/ictf-docs/writeups/ci-ninja/exploit_prompt.py/","33c"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/deepfakes/",component:d("/ictf-docs/writeups/deepfakes/","f97"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/deepfakes/solution.py/",component:d("/ictf-docs/writeups/deepfakes/solution.py/","0fc"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/escape-from-markov/",component:d("/ictf-docs/writeups/escape-from-markov/","f93"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/escape-from-markov/exploit.py/",component:d("/ictf-docs/writeups/escape-from-markov/exploit.py/","33f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ghost-in-the-stack/",component:d("/ictf-docs/writeups/ghost-in-the-stack/","91f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/ghost-in-the-stack/exploit.py/",component:d("/ictf-docs/writeups/ghost-in-the-stack/exploit.py/","78a"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/guesstimate/",component:d("/ictf-docs/writeups/guesstimate/","bfa"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/guesstimate/exploit.py/",component:d("/ictf-docs/writeups/guesstimate/exploit.py/","a31"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/island-party/",component:d("/ictf-docs/writeups/island-party/","b54"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/island-party/solution.py/",component:d("/ictf-docs/writeups/island-party/solution.py/","5fa"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/lost-album/",component:d("/ictf-docs/writeups/lost-album/","9d4"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/lost-album/solution.py/",component:d("/ictf-docs/writeups/lost-album/solution.py/","c7b"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/lost-in-translation/",component:d("/ictf-docs/writeups/lost-in-translation/","d76"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/max-64/",component:d("/ictf-docs/writeups/max-64/","374"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/parakeet-v2/",component:d("/ictf-docs/writeups/parakeet-v2/","3e5"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/parakeet/",component:d("/ictf-docs/writeups/parakeet/","726"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/",component:d("/ictf-docs/writeups/pixel-mirage-2/","5cc"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/attack_util.py/",component:d("/ictf-docs/writeups/pixel-mirage-2/attack_util.py/","506"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/data_util.py/",component:d("/ictf-docs/writeups/pixel-mirage-2/data_util.py/","7e0"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/interact.py/",component:d("/ictf-docs/writeups/pixel-mirage-2/interact.py/","298"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/model_util.py/",component:d("/ictf-docs/writeups/pixel-mirage-2/model_util.py/","8fd"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage-2/solution.py/",component:d("/ictf-docs/writeups/pixel-mirage-2/solution.py/","063"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/",component:d("/ictf-docs/writeups/pixel-mirage/","4cb"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/attack_util.py/",component:d("/ictf-docs/writeups/pixel-mirage/attack_util.py/","233"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/data_util.py/",component:d("/ictf-docs/writeups/pixel-mirage/data_util.py/","e95"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/interact.py/",component:d("/ictf-docs/writeups/pixel-mirage/interact.py/","6b8"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/model_util.py/",component:d("/ictf-docs/writeups/pixel-mirage/model_util.py/","52d"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/pixel-mirage/solution.py/",component:d("/ictf-docs/writeups/pixel-mirage/solution.py/","b45"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/printbof/",component:d("/ictf-docs/writeups/printbof/","0cf"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/printbof/exploit.py/",component:d("/ictf-docs/writeups/printbof/exploit.py/","541"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/rustyneurone/",component:d("/ictf-docs/writeups/rustyneurone/","ed0"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/snake-game/",component:d("/ictf-docs/writeups/snake-game/","0b9"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/snake-game/check.c/",component:d("/ictf-docs/writeups/snake-game/check.c/","71f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/snake-game/solution.c/",component:d("/ictf-docs/writeups/snake-game/solution.c/","a65"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/stop-the-model-thief/",component:d("/ictf-docs/writeups/stop-the-model-thief/","ce2"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/stop-the-model-thief/solution.py/",component:d("/ictf-docs/writeups/stop-the-model-thief/solution.py/","3e7"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/stop-the-spammer/",component:d("/ictf-docs/writeups/stop-the-spammer/","cd3"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/stop-the-spammer/solution.py/",component:d("/ictf-docs/writeups/stop-the-spammer/solution.py/","3db"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/supermart/",component:d("/ictf-docs/writeups/supermart/","96f"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/supermart/exploit.py/",component:d("/ictf-docs/writeups/supermart/exploit.py/","f15"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/tensormania/",component:d("/ictf-docs/writeups/tensormania/","0e0"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/tensormania/solution.py/",component:d("/ictf-docs/writeups/tensormania/solution.py/","f7d"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/trendy/",component:d("/ictf-docs/writeups/trendy/","25d"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/who-is-waldo/",component:d("/ictf-docs/writeups/who-is-waldo/","048"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/writeups/who-is-waldo/solution.py/",component:d("/ictf-docs/writeups/who-is-waldo/solution.py/","b2a"),exact:!0,sidebar:"writeups"},{path:"/ictf-docs/",component:d("/ictf-docs/","7e3"),exact:!0}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),i=n(545),s=n(8193);const l=[n(119),n(6134),n(6294),n(1043)];var c=n(8328),u=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),h=n(4586),g=n(6025),y=n(6342),b=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),S=n(1463);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,u.zy)();return e+(0,x.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,y.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(b.be,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const A=new Map;function T(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var j=n(6125),N=n(6988),L=n(205);function R(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()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const I=D,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\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(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(6921);const Z=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};O(window.location.pathname).then(s)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/ictf-docs/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/ictf-docs/","mainDocId":"index","docs":[{"id":"index","path":"/ictf-docs/"},{"id":"setup/installation","path":"/ictf-docs/setup/installation","sidebar":"setup"},{"id":"writeups/ai-calculator/exploit.py","path":"/ictf-docs/writeups/ai-calculator/exploit.py","sidebar":"writeups"},{"id":"writeups/ai-calculator/index","path":"/ictf-docs/writeups/ai-calculator/","sidebar":"writeups"},{"id":"writeups/ai-cryptic-game/index","path":"/ictf-docs/writeups/ai-cryptic-game/","sidebar":"writeups"},{"id":"writeups/ai-lock/exploit.txt","path":"/ictf-docs/writeups/ai-lock/exploit.txt","sidebar":"writeups"},{"id":"writeups/ai-lock/index","path":"/ictf-docs/writeups/ai-lock/","sidebar":"writeups"},{"id":"writeups/ai-mystical-castle/castle_domain.pddl","path":"/ictf-docs/writeups/ai-mystical-castle/castle_domain.pddl","sidebar":"writeups"},{"id":"writeups/ai-mystical-castle/castle_problem_poem.pddl","path":"/ictf-docs/writeups/ai-mystical-castle/castle_problem_poem.pddl","sidebar":"writeups"},{"id":"writeups/ai-mystical-castle/castle_problem.pddl","path":"/ictf-docs/writeups/ai-mystical-castle/castle_problem.pddl","sidebar":"writeups"},{"id":"writeups/ai-mystical-castle/index","path":"/ictf-docs/writeups/ai-mystical-castle/","sidebar":"writeups"},{"id":"writeups/aimazing/exploit.py","path":"/ictf-docs/writeups/aimazing/exploit.py","sidebar":"writeups"},{"id":"writeups/aimazing/index","path":"/ictf-docs/writeups/aimazing/","sidebar":"writeups"},{"id":"writeups/aipi-escape/index","path":"/ictf-docs/writeups/aipi-escape/","sidebar":"writeups"},{"id":"writeups/broken-words/cipher.py","path":"/ictf-docs/writeups/broken-words/cipher.py","sidebar":"writeups"},{"id":"writeups/broken-words/index","path":"/ictf-docs/writeups/broken-words/","sidebar":"writeups"},{"id":"writeups/broken-words/solution.py","path":"/ictf-docs/writeups/broken-words/solution.py","sidebar":"writeups"},{"id":"writeups/bugdget/exploit.py","path":"/ictf-docs/writeups/bugdget/exploit.py","sidebar":"writeups"},{"id":"writeups/bugdget/index","path":"/ictf-docs/writeups/bugdget/","sidebar":"writeups"},{"id":"writeups/bytes-in-pairs/exploit.py","path":"/ictf-docs/writeups/bytes-in-pairs/exploit.py","sidebar":"writeups"},{"id":"writeups/bytes-in-pairs/index","path":"/ictf-docs/writeups/bytes-in-pairs/","sidebar":"writeups"},{"id":"writeups/ci-ninja-2/exploit.py","path":"/ictf-docs/writeups/ci-ninja-2/exploit.py","sidebar":"writeups"},{"id":"writeups/ci-ninja-2/index","path":"/ictf-docs/writeups/ci-ninja-2/","sidebar":"writeups"},{"id":"writeups/ci-ninja/exploit_escape_chroot.py","path":"/ictf-docs/writeups/ci-ninja/exploit_escape_chroot.py","sidebar":"writeups"},{"id":"writeups/ci-ninja/exploit_prompt.py","path":"/ictf-docs/writeups/ci-ninja/exploit_prompt.py","sidebar":"writeups"},{"id":"writeups/ci-ninja/index","path":"/ictf-docs/writeups/ci-ninja/","sidebar":"writeups"},{"id":"writeups/deepfakes/index","path":"/ictf-docs/writeups/deepfakes/","sidebar":"writeups"},{"id":"writeups/deepfakes/solution.py","path":"/ictf-docs/writeups/deepfakes/solution.py","sidebar":"writeups"},{"id":"writeups/escape-from-markov/exploit.py","path":"/ictf-docs/writeups/escape-from-markov/exploit.py","sidebar":"writeups"},{"id":"writeups/escape-from-markov/index","path":"/ictf-docs/writeups/escape-from-markov/","sidebar":"writeups"},{"id":"writeups/ghost-in-the-stack/exploit.py","path":"/ictf-docs/writeups/ghost-in-the-stack/exploit.py","sidebar":"writeups"},{"id":"writeups/ghost-in-the-stack/index","path":"/ictf-docs/writeups/ghost-in-the-stack/","sidebar":"writeups"},{"id":"writeups/guesstimate/exploit.py","path":"/ictf-docs/writeups/guesstimate/exploit.py","sidebar":"writeups"},{"id":"writeups/guesstimate/index","path":"/ictf-docs/writeups/guesstimate/","sidebar":"writeups"},{"id":"writeups/island-party/index","path":"/ictf-docs/writeups/island-party/","sidebar":"writeups"},{"id":"writeups/island-party/solution.py","path":"/ictf-docs/writeups/island-party/solution.py","sidebar":"writeups"},{"id":"writeups/lost-album/index","path":"/ictf-docs/writeups/lost-album/","sidebar":"writeups"},{"id":"writeups/lost-album/solution.py","path":"/ictf-docs/writeups/lost-album/solution.py","sidebar":"writeups"},{"id":"writeups/lost-in-translation/index","path":"/ictf-docs/writeups/lost-in-translation/","sidebar":"writeups"},{"id":"writeups/max-64/index","path":"/ictf-docs/writeups/max-64/","sidebar":"writeups"},{"id":"writeups/parakeet-v2/index","path":"/ictf-docs/writeups/parakeet-v2/","sidebar":"writeups"},{"id":"writeups/parakeet/index","path":"/ictf-docs/writeups/parakeet/","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/attack_util.py","path":"/ictf-docs/writeups/pixel-mirage-2/attack_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/data_util.py","path":"/ictf-docs/writeups/pixel-mirage-2/data_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/index","path":"/ictf-docs/writeups/pixel-mirage-2/","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/interact.py","path":"/ictf-docs/writeups/pixel-mirage-2/interact.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/model_util.py","path":"/ictf-docs/writeups/pixel-mirage-2/model_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage-2/solution.py","path":"/ictf-docs/writeups/pixel-mirage-2/solution.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage/attack_util.py","path":"/ictf-docs/writeups/pixel-mirage/attack_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage/data_util.py","path":"/ictf-docs/writeups/pixel-mirage/data_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage/index","path":"/ictf-docs/writeups/pixel-mirage/","sidebar":"writeups"},{"id":"writeups/pixel-mirage/interact.py","path":"/ictf-docs/writeups/pixel-mirage/interact.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage/model_util.py","path":"/ictf-docs/writeups/pixel-mirage/model_util.py","sidebar":"writeups"},{"id":"writeups/pixel-mirage/solution.py","path":"/ictf-docs/writeups/pixel-mirage/solution.py","sidebar":"writeups"},{"id":"writeups/printbof/exploit.py","path":"/ictf-docs/writeups/printbof/exploit.py","sidebar":"writeups"},{"id":"writeups/printbof/index","path":"/ictf-docs/writeups/printbof/","sidebar":"writeups"},{"id":"writeups/rustyneurone/index","path":"/ictf-docs/writeups/rustyneurone/","sidebar":"writeups"},{"id":"writeups/snake-game/check.c","path":"/ictf-docs/writeups/snake-game/check.c","sidebar":"writeups"},{"id":"writeups/snake-game/index","path":"/ictf-docs/writeups/snake-game/","sidebar":"writeups"},{"id":"writeups/snake-game/solution.c","path":"/ictf-docs/writeups/snake-game/solution.c","sidebar":"writeups"},{"id":"writeups/stop-the-model-thief/index","path":"/ictf-docs/writeups/stop-the-model-thief/","sidebar":"writeups"},{"id":"writeups/stop-the-model-thief/solution.py","path":"/ictf-docs/writeups/stop-the-model-thief/solution.py","sidebar":"writeups"},{"id":"writeups/stop-the-spammer/index","path":"/ictf-docs/writeups/stop-the-spammer/","sidebar":"writeups"},{"id":"writeups/stop-the-spammer/solution.py","path":"/ictf-docs/writeups/stop-the-spammer/solution.py","sidebar":"writeups"},{"id":"writeups/supermart/exploit.py","path":"/ictf-docs/writeups/supermart/exploit.py","sidebar":"writeups"},{"id":"writeups/supermart/index","path":"/ictf-docs/writeups/supermart/","sidebar":"writeups"},{"id":"writeups/tensormania/index","path":"/ictf-docs/writeups/tensormania/","sidebar":"writeups"},{"id":"writeups/tensormania/solution.py","path":"/ictf-docs/writeups/tensormania/solution.py","sidebar":"writeups"},{"id":"writeups/trendy/index","path":"/ictf-docs/writeups/trendy/","sidebar":"writeups"},{"id":"writeups/who-is-waldo/index","path":"/ictf-docs/writeups/who-is-waldo/","sidebar":"writeups"},{"id":"writeups/who-is-waldo/solution.py","path":"/ictf-docs/writeups/who-is-waldo/solution.py","sidebar":"writeups"}],"draftIds":[],"sidebars":{"setup":{"link":{"path":"/ictf-docs/setup/installation","label":"setup/installation"}},"writeups":{"link":{"path":"/ictf-docs/writeups/ai-calculator/","label":"AI Calculator"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"}}}');var c=n(4848);const u={siteConfig:o.A,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(8193),a=n(5260),i=n(440),s=n(781),l=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.A,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.A,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(440),i=n(4586),s=n(6654),l=n(8193),c=n(3427),u=n(6025),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),x=(0,c.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,s.A)(_),C=_?.replace("pathname://","");let A=void 0!==C?(T=C,y&&(e=>e.startsWith("/"))(T)?k(T):T):void 0;var T;A&&E&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),N=n?o.k2:o.N_,L=l.A.canUseIntersectionObserver,R=(0,r.useRef)(),P=()=>{j.current||null==A||(window.docusaurus.preload(A),j.current=!0)};(0,r.useEffect)((()=>(!L&&E&&null!=A&&window.docusaurus.prefetch(A),()=>{L&&R.current&&R.current.disconnect()})),[R,A,L,E]);const O=A?.startsWith("#")??!1,D=!b.target||"_self"===b.target,I=!A||!E||!D||O;return g||!O&&I||x.collectLink(A),b.id&&x.collectAnchor(b.id),I?(0,d.jsx)("a",{ref:S,href:A,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,d.jsx)(N,{...b,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,L&&e&&E&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),R.current.observe(e))},to:A,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540),o=n(4848);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 i=n(2654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:s,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>p,Gy:()=>u,HW:()=>g,ht:()=>d,r7:()=>m,jh:()=>f});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return s(t)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return l(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.A,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(8692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),s=n(3427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},781:(e,t,n)=>{"use strict";n.d(t,{A:()=>ft});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),s=n(6347),l=n(1312),c=n(5062),u=n(4848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(7559),y=n(4090);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:b.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(C,{className:A.announcementBarContent}),a&&(0,u.jsx)(_,{onClick:n,className:A.announcementBarClose})]})}var j=n(9876),N=n(3104);var L=n(9532),R=n(5600);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,R.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,L.ZC)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(P);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(5293),z=n(2303);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.G)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(3465);function Q(){return(0,u.jsx)(W.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Q,{}),(0,u.jsx)(V,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Z.A,{href:l?f:o,...c,...h}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),se=n(9169),le=n(4586);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ee,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ee,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(2131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(418);const be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,be.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const _e={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,s.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ve,{className:n,children:(0,u.jsx)(ye.A,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ke.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,we.zK)(n),f=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),h=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],g=(0,ke.Vd)(n)[0],y=t&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&h.length>1?void 0:Se(g).path;return h.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:y,to:b,items:h,isActive:r?()=>!1:void 0})}};function Ee(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=_e[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ce(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ee,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Te(){const e=0===(0,w.p)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function je(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ce,{}),secondaryMenu:(0,u.jsx)(Te,{})}):null}const Ne={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Le(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,j.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((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 o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Ne.navbarHideable,!d&&Ne.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Le,{onClick:i.toggle}),(0,u.jsx)(je,{})]})}var Pe=n(440);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Pe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function ze(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,j.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ee,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function He(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(qe,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Be,{}),(0,u.jsx)(Q,{}),(0,u.jsx)(Ue,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ue,{items:r}),(0,u.jsx)(V,{className:$e.colorModeToggle}),!o&&(0,u.jsx)(ve,{children:(0,u.jsx)(ye.A,{})})]})})}function Ge(){return(0,u.jsx)(Re,{children:(0,u.jsx)(He,{})})}function Ve(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.A)(n),l=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function We(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ve,{item:t})},t.href??t.to)}function Qe(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(We,{item:e},t)))})]})}function Ke(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Qe,{column:e},t)))})}function Ye(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ve,{item:t})}function Xe(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ze,{item:e}),t.length!==n+1&&(0,u.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ke,{columns:t}):(0,u.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(at,{style:o,links:n&&n.length>0&&(0,u.jsx)(Je,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(ot,{copyright:t})})}const st=r.memo(it),lt=(0,L.fM)([M.a,k.oq,N.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(R.y_,{children:(0,u.jsx)(j.e,{children:(0,u.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,u.jsx)(lt,{children:t})}var ut=n(1107);function dt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ut.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(De,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Ie,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.J)(),(0,u.jsxs)(ct,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(T,{}),(0,u.jsx)(Ge,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(g.G.wrapper.main,pt.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(dt,{...e}),children:t})}),!n&&(0,u.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),s=n(1122),l=n(4848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.A)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(4848);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>y,u:()=>c});var r=n(6540),o=n(8193),a=n(205),i=n(3109),s=n(4848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(h,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>m});var r=n(6540),o=n(2303),a=n(9466),i=n(9532),s=n(6342),l=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>y,a:()=>g});var r=n(6540),o=n(8193),a=n(9532),i=n(9466),s=n(6342),l=n(4848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.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:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>y,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),s=n(1754),l=n(9532),c=n(9466),u=n(4848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return s.C5?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function b(){const e=(0,r.useContext)(m);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>m});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),s=n(9532);function l(e){!function(e){const t=(0,i.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6342),u=n(4848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>g,C5:()=>p,B5:()=>_,Vd:()=>k,QB:()=>S,fW:()=>x,OF:()=>w,Y:()=>b});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),s=n(5597),l=n(2252),c=n(6588);function u(e){return Array.from(new Set(e))}var d=n(9169);const p=!!i.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.ys)(e,t),h=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||h(e.items,t))}function y(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>y(e,t)));case"link":return!e.unlisted||g(e,t);default:return!0}}function b(e,t){return(0,r.useMemo)((()=>e.filter((e=>y(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function w(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function _(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:u}}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(6025),c=n(4586);var u=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,o.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l 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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),s=n(4848);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(4586);const r="default";function o(e,t){return`docs-${e}-${t}`}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>l});n(6540);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"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,i||(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),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(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=a(t?.persistence);return null===n?s:{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),o({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),o({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),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>T,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(1561);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 p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,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,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),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&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),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,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},5302:(e,t,n)=>{var r=n(4634);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],y=n[4],b=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,_=n[2]||u,E=y||b;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":"[^"+l(_)+"]+?"})}}return i{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),o=n(8380),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(3157).resolve(t)],delete Prism.languages[e],n(3157)(t),a.add(e)}))}i.silent=!1,e.exports=i},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(m+f.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof c?s.splice.apply(s,[l,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},8692:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8692},3157:(e,t,n)=>{var r={"./":8722};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=3157},8380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in o(t,a),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;o(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var y in d)if(!(y in u))for(var b in f(y))if(b in u){p[y]=!0;break}for(var v in m=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return s[e]=o}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n