diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml index ba61a8a97..0381fb96e 100644 --- a/.github/workflows/build_docker.yml +++ b/.github/workflows/build_docker.yml @@ -34,7 +34,7 @@ jobs: uses: actions/cache@v3 id: cache-frontend-dist with: - path: frontend_vue/dist + path: dist key: frontend-dist-${{ hashFiles('frontend_vue/**') }} - uses: actions/setup-node@v3.5.1 @@ -81,7 +81,7 @@ jobs: run: | git config --global user.name "Frontend Github Action" git config --global user.email "max@thinkst.com" - git add -f frontend_vue/dist + git add -f dist git commit -am "Add Frontend Dist" git push diff --git a/frontend/app.py b/frontend/app.py index 958ae613f..8e808f651 100644 --- a/frontend/app.py +++ b/frontend/app.py @@ -202,7 +202,7 @@ version=canarytokens.__version__, ) -vue_index = Jinja2Templates(directory="../frontend_vue/dist/") +vue_index = Jinja2Templates(directory="../dist/") if frontend_settings.NEW_UI: @@ -242,7 +242,7 @@ def index(request: Request): try: app.mount( "/nest", - StaticFiles(directory="../frontend_vue/dist/", html=True), + StaticFiles(directory="../dist/", html=True), name="Vue Frontend Dist", ) except RuntimeError: diff --git a/frontend_vue/dist/assets/ActivatedToken-10ESZM19.js b/frontend_vue/dist/assets/ActivatedToken-10ESZM19.js deleted file mode 100644 index 5906dedef..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-10ESZM19.js +++ /dev/null @@ -1 +0,0 @@ -import{d as m,r as c,a as i,c as l,i as e,f as t,h as p,I as _,p as f}from"./index-CmeDvX2u.js";import{_ as u}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-DwEwsBfD.js";import{_ as d}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const h={class:"mt-16 text-sm"},k=t("p",{class:"mt-24 text-sm"},null,-1),$=m({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const a=c(o.tokenData.hostname||"");return(n,s)=>{const r=f;return i(),l(_,null,[e(u,{"token-url":a.value},null,8,["token-url"]),t("p",h,[p(" Remember, it gets triggered whenever someone performs a DNS lookup of the hostname. "),e(d,{onHowToUse:s[0]||(s[0]=v=>n.$emit("howToUse"))})]),e(r,{class:"mt-24",variant:"info",message:"The source IP address shown in the alert is the DNS server, not the end user."},null,8,["message"]),k],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-1UF_3fPl.js b/frontend_vue/dist/assets/ActivatedToken-1UF_3fPl.js deleted file mode 100644 index 282a1f551..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-1UF_3fPl.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as r}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-DO-k8A3U.js";import{_ as n}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import{d as i,r as m,a as l,c,i as t,f as p,h as d,I as k}from"./index-CmeDvX2u.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const _={class:"mt-16 text-sm"},U=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const s=m(o.tokenData.token_url);return(a,e)=>(l(),c(k,null,[t(r,{"token-url":s.value},null,8,["token-url"]),p("p",_,[d(" The token is similar to the Web token, however, when the link is loaded the view will be immediately redirected to the specified redirect URL. "),t(n,{onHowToUse:e[0]||(e[0]=h=>a.$emit("howToUse"))})])],64))}});export{U as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-BQJXLfUA.js b/frontend_vue/dist/assets/ActivatedToken-BQJXLfUA.js deleted file mode 100644 index e9e6bdafa..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-BQJXLfUA.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i}from"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";import{d as _,r as d,C as p,a as l,c as f,i as e,f as s,h,I as u,p as g}from"./index-CmeDvX2u.js";import{g as k,_ as v}from"./generateSVNToken-oLvhxRFU.js";import{_ as w}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const T=s("p",{class:"mt-16 text-sm"}," Remember, it gets triggered whenever someone clones the SVN repo. ",-1),N={class:"mt-24 text-sm"},D=_({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const t=d(a.tokenData.hostname),n=p(()=>t.value?k(t.value):"");return(r,o)=>{const m=g,c=i;return l(),f(u,null,[e(v,{"token-data":n.value},null,8,["token-data"]),T,e(m,{class:"mt-24",variant:"warning",message:"Don't forget to run the following command after you've added the token:"}),e(c,{class:"mt-16",lang:"bash",code:"svn commit"}),s("p",N,[h(" The source IP address shown in the alert is the DNS server, not the end user. "),e(w,{onHowToUse:o[0]||(o[0]=x=>r.$emit("howToUse"))})])],64)}}});export{D as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-BT9Iyuju.js b/frontend_vue/dist/assets/ActivatedToken-BT9Iyuju.js deleted file mode 100644 index 373c9f7fb..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-BT9Iyuju.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as r}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-D7BU5NrC.js";import{_ as m}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import{d as c,r as i,a as p,c as l,i as o,f as u,h as k,I as _}from"./index-CmeDvX2u.js";const f={class:"mt-24 text-sm text-center"},x=c({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const e=a,n=i({token:e.tokenData.token||"",auth:e.tokenData.auth_token||""});return(s,t)=>(p(),l(_,null,[o(r,{"token-data":n.value},null,8,["token-data"]),u("p",f,[k(" You'll get an alert when someone tries to use your Kubeconfig. "),o(m,{onHowToUse:t[0]||(t[0]=d=>s.$emit("howToUse"))})])],64))}});export{x as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-Bnpkbx4I.js b/frontend_vue/dist/assets/ActivatedToken-Bnpkbx4I.js deleted file mode 100644 index 7275baf39..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-Bnpkbx4I.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,r as m,a as c,c as p,i as e,f as _,h as f,I as d,p as l}from"./index-CmeDvX2u.js";import{_ as u}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-B1kpmTF-.js";import{_ as k}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const h={class:"mt-24 text-sm"},$=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const t=a,n=m({token:t.tokenData.token||"",auth:t.tokenData.auth_token||""});return(s,o)=>{const r=l;return c(),p(d,null,[e(u,{"token-data":n.value},null,8,["token-data"]),_("p",h,[f(" You'll get an alert whenever this document is opened in Microsoft Office, on Windows or macOS. "),e(k,{onHowToUse:o[0]||(o[0]=w=>s.$emit("howToUse"))})]),e(r,{class:"mt-24",variant:"info",message:"You can rename the document without affecting its operation."})],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-BzWNH92V.js b/frontend_vue/dist/assets/ActivatedToken-BzWNH92V.js deleted file mode 100644 index d7f567c9e..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-BzWNH92V.js +++ /dev/null @@ -1 +0,0 @@ -import{d as m,r,a as d,c as f,i as c,j as k,h as u,E as h,q as D,f as w,I as v}from"./index-CmeDvX2u.js";import{_ as x}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const $={class:"flex justify-center"},T=m({__name:"TokenDisplay",props:{tokenData:{}},setup(a){var s,_;const e=a,t=r(`${(s=e.tokenData)==null?void 0:s.file_name}`),n=r((_=e.tokenData)==null?void 0:_.file_contents);function o(){var i,l;n.value=`${(i=e.tokenData)==null?void 0:i.file_name}`,t.value=(l=e.tokenData)==null?void 0:l.file_contents}return(i,l)=>{const p=D;return d(),f("div",$,[c(p,{class:"mt-16",href:t.value,download:n.value,onClick:o},{default:k(()=>[u("Download "+h(e.tokenData.file_name),1)]),_:1},8,["href","download"])])}}}),g={class:"mt-16 text-sm"},b=m({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const e=a,t=r({file_name:e.tokenData.file_name||"",file_contents:e.tokenData.file_contents||""});return(n,o)=>(d(),f(v,null,[c(T,{"token-data":t.value},null,8,["token-data"]),w("p",g,[u(" Remember, this token is triggered whenever the binary file is executed. For EXEs, this means direct execution and for DLLs, it means they were loaded. "),c(x,{onHowToUse:o[0]||(o[0]=s=>n.$emit("howToUse"))})])],64))}});export{b as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-CCWp0YQu.js b/frontend_vue/dist/assets/ActivatedToken-CCWp0YQu.js deleted file mode 100644 index d95df8f6c..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-CCWp0YQu.js +++ /dev/null @@ -1 +0,0 @@ -import{d as p,r as d,a as m,c as _,i as a,f as e,u as o,g as n,I as g,p as h}from"./index-CmeDvX2u.js";import{_ as f}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-CsLtnQpk.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const u=e("p",{class:"mt-24 text-sm"}," Whenever someone tries to use this WireGuard VPN config to see what access it gets them, an alert is triggered. ",-1),k=e("p",{class:"mt-24 text-center"},"Don't have the WireGuard app?",-1),w={class:"flex flex-row items-center justify-center gap-16 mt-16"},v={href:"https://apps.apple.com/us/app/wireguard/id1441195209?itsct=apps_box_badge&itscg=30200",target:"_blank"},x=["src"],b={href:"https://play.google.com/store/apps/details?id=com.wireguard.android",target:"_blank"},D=["src"],T=p({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(r){const t=r,i=d({qr_code:t.tokenData.qr_code||"",wg_conf:t.tokenData.wg_conf||""});return(c,s)=>{const l=h;return m(),_(g,null,[a(f,{"token-data":i.value},null,8,["token-data"]),u,a(l,{class:"mt-24",variant:"info",message:"This WireGuard config can be installed anywhere WireGuard is used, such as on phones, laptops and servers.","text-link":"More tips?",onClick:s[0]||(s[0]=()=>c.$emit("howToUse"))}),k,e("div",w,[e("a",v,[e("img",{src:o(n)("app-store.svg"),alt:"Download form Apple store",class:"h-[3rem]"},null,8,x)]),e("a",b,[e("img",{src:o(n)("google-play.png"),alt:"Download form Google Play store",class:"h-[3rem]"},null,8,D)])])],64)}}});export{T as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-CydnN99P.js b/frontend_vue/dist/assets/ActivatedToken-CydnN99P.js deleted file mode 100644 index d91be09c5..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-CydnN99P.js +++ /dev/null @@ -1 +0,0 @@ -import{d as c,r as m,a as _,c as p,i as t,I as l,f as s,p as d}from"./index-CmeDvX2u.js";import{_ as h}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-DuHrjJNJ.js";import{_ as k}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const f=s("p",{class:"mt-16 text-sm"}," This token is triggered when someone uses this Service Principal Login to access Azure programmatically (through the API). ",-1),u=s("p",{class:"mt-16 text-sm"}," The Service Principal Login is unique. i.e. there is no chance of somebody guessing these credentials. ",-1),$=c({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const e=o,n=m({token:e.tokenData.token||"",auth:e.tokenData.auth_token||"",appId:e.tokenData.app_id||"",displayName:e.tokenData.cert_name||"",fileWithCertAndPrivateKey:e.tokenData.cert_file_name||"",tenant:e.tokenData.tenant_id||""});return(i,a)=>{const r=d;return _(),p(l,null,[t(h,{"token-data":n.value},null,8,["token-data"]),f,u,t(k,{onHowToUse:a[0]||(a[0]=g=>i.$emit("howToUse"))}),t(r,{class:"mt-24",variant:"info",message:"If this token fires, it is a clear indication that this set of keys has 'leaked'"})],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-D8p5SB0x.js b/frontend_vue/dist/assets/ActivatedToken-D8p5SB0x.js deleted file mode 100644 index 1a4eac212..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-D8p5SB0x.js +++ /dev/null @@ -1,3 +0,0 @@ -import{d as r,r as i,a as c,c as p,i as t,I as m,f as l,p as h}from"./index-CmeDvX2u.js";import{_ as d}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-DuPHZK0u.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const f=l("p",{class:"mt-16 text-sm"}," Use this CSS to detect when someone has cloned a webpage. ",-1),g=r({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const s=i(o.tokenData.css||"");return(n,e)=>{const a=h;return c(),p(m,null,[t(d,{"token-snippet":s.value},null,8,["token-snippet"]),f,t(a,{class:"mt-24",variant:"info",message:`When someone clones your site, they'll load the token, which will check - whether the referrer domain is expected. If not, it fires the token and you - get an alert.`,"text-link":"More tips?",onClick:e[0]||(e[0]=()=>n.$emit("howToUse"))})],64)}}});export{g as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DHrcq8mV.js b/frontend_vue/dist/assets/ActivatedToken-DHrcq8mV.js deleted file mode 100644 index f9c26c666..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DHrcq8mV.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,r as m,a as c,c as p,i as e,f as _,h as f,I as d,p as l}from"./index-CmeDvX2u.js";import{_ as u}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-BgrUG5RI.js";import{_ as k}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const h={class:"mt-24 text-sm"},$=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const t=a,n=m({token:t.tokenData.token||"",auth:t.tokenData.auth_token||""});return(s,o)=>{const r=l;return c(),p(d,null,[e(u,{"token-data":n.value},null,8,["token-data"]),_("p",h,[f(" You'll get an alert whenever this document is opened in Microsoft Office, on Windows or macOS. "),e(k,{onHowToUse:o[0]||(o[0]=w=>s.$emit("howToUse"))})]),e(r,{class:"mt-24",variant:"info",message:"You can rename the document without affecting its operation."})],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DPlirmdh.js b/frontend_vue/dist/assets/ActivatedToken-DPlirmdh.js deleted file mode 100644 index 4bfa8829b..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DPlirmdh.js +++ /dev/null @@ -1 +0,0 @@ -import{d as m,r,a as i,c as l,i as t,I as p,f as c,p as _}from"./index-CmeDvX2u.js";import{_ as d}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-D99FN_5f.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const u=c("p",{class:"mt-24 text-sm"},null,-1),v=m({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(s){const a=r(s.tokenData.unique_email||"");return(o,e)=>{const n=_;return i(),l(p,null,[t(d,{"token-data":a.value},null,8,["token-data"]),t(n,{class:"mt-24",variant:"info",message:"Remember, it gets triggered whenever someone sends an email to the address.","text-link":"More tips?",onClick:e[0]||(e[0]=()=>o.$emit("howToUse"))},null,8,["message"]),u],64)}}});export{v as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DQ-BnltK.js b/frontend_vue/dist/assets/ActivatedToken-DQ-BnltK.js deleted file mode 100644 index f689187b0..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DQ-BnltK.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as m}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-DwhT2JIV.js";import{_ as i}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import{d as l,r as c,a as d,c as p,i as s,f as n,h as k,I as u}from"./index-CmeDvX2u.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const f=n("p",{class:"mt-16 text-sm"}," When the actions are run, your Canarytoken will be triggered. ",-1),v={class:"mt-16 text-sm"},b=l({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){var t;const e=o,r=c({hostname:e.tokenData.hostname||"",sql_table_name:e.tokenData.sql_server_table_name||"",sql_trigger_name:e.tokenData.sql_server_trigger_name||"",sql_function_name:((t=e.tokenData)==null?void 0:t.sql_server_function_name)||"",sql_server_view_name:e.tokenData.sql_server_view_name||"",sql_action:e.tokenData.sql_server_sql_action||""});return(_,a)=>(d(),p(u,null,[s(m,{"token-data":r.value},null,8,["token-data"]),f,n("p",v,[k(" Since DNS is used as the underlying transport, the Source IP will be that of a DNS server, not the database server. "),s(i,{onHowToUse:a[0]||(a[0]=h=>_.$emit("howToUse"))})])],64))}});export{b as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DQ-sYD00.js b/frontend_vue/dist/assets/ActivatedToken-DQ-sYD00.js deleted file mode 100644 index 8e908c9cb..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DQ-sYD00.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,r as m,a as c,c as l,i as a,I as p,f as _,p as k}from"./index-CmeDvX2u.js";import{_ as d}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-CbzmeP3B.js";const u=_("p",{class:"mt-24 text-sm"},null,-1),h=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const e=o,n=m({qrcode_png:e.tokenData.qrcode_png||"",token:e.tokenData.token||"",auth:e.tokenData.auth_token||""});return(s,t)=>{const r=k;return c(),l(p,null,[a(d,{"token-data":n.value},null,8,["token-data"]),a(r,{class:"mt-24",variant:"info",message:"When someone scans the QR Code with a reader, it will trigger the URL tied to your token and fire an alert.","text-link":"More tips?",onClick:t[0]||(t[0]=()=>s.$emit("howToUse"))},null,8,["message"]),u],64)}}});export{h as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DYkXJjlU.js b/frontend_vue/dist/assets/ActivatedToken-DYkXJjlU.js deleted file mode 100644 index 3bd1046f2..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DYkXJjlU.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-kxENydl1.js";import{_ as n}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import{d as i,r as m,a as l,c as p,i as t,f as c,h as u,I as d}from"./index-CmeDvX2u.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const k={class:"mt-16 text-sm"},U=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const s=m(o.tokenData.token_url);return(r,e)=>(l(),p(d,null,[t(a,{"token-url":s.value},null,8,["token-url"]),c("p",k,[u(" The token is similar to the Fast redirect token, however, when the link is loaded the user's browser / browser plugin information is captured. "),t(n,{onHowToUse:e[0]||(e[0]=f=>r.$emit("howToUse"))})])],64))}});export{U as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DmX7MTpL.js b/frontend_vue/dist/assets/ActivatedToken-DmX7MTpL.js deleted file mode 100644 index ba8eac556..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DmX7MTpL.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-sBQdntOW.js";import{d as s,r as n,a as r,c as l,i as c,I as i,f as e}from"./index-CmeDvX2u.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const m=e("p",{class:"mt-16 text-sm"}," If the log line is consumed by a vulnerable log4j library, it will generate an alert on this token. ",-1),p=e("p",{class:"mt-16 text-sm"}," If this works, you will also obtain the hostname of the vulnerable server. ",-1),g=s({__name:"ActivatedToken",props:{tokenData:{}},setup(t){const a=n(t.tokenData.token_usage);return(_,f)=>(r(),l(i,null,[c(o,{"token-usage":a.value},null,8,["token-usage"]),m,p],64))}});export{g as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DrE0vz5u.js b/frontend_vue/dist/assets/ActivatedToken-DrE0vz5u.js deleted file mode 100644 index f0ce9548c..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DrE0vz5u.js +++ /dev/null @@ -1 +0,0 @@ -import{d as r,r as c,a as i,c as l,i as t,I as m,f as a,p as d}from"./index-CmeDvX2u.js";import{_}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-C04SHUOc.js";const h=a("h3",{class:"mb-16 text-lg font-semibold leading-10 text-center text-grey-800"}," How do you want to deploy it? ",-1),u=a("p",{class:"mt-16 text-sm"}," When someone clones your site, they'll load the token, which will check whether the referrer domain is expected. If not, it fires the token and you get an alert. ",-1),x=r({__name:"ActivatedToken",props:{tokenData:{}},setup(o){const e=o,n=c({token:e.tokenData.token||"",auth:e.tokenData.auth_token||"",client_id:e.tokenData.client_id||"",css:e.tokenData.css||""});return(k,p)=>{const s=d;return i(),l(m,null,[h,t(_,{"token-data":n.value},null,8,["token-data"]),u,t(s,{class:"mt-24",variant:"info",message:"Upload it as a custom branding stylesheet for your Azure Entra ID login portal (requires a P1 or P2 subscription)","text-link":"How?",href:"https://learn.microsoft.com/en-us/entra/fundamentals/how-to-customize-branding",target:"_blank"})],64)}}});export{x as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DtG5cmlN.js b/frontend_vue/dist/assets/ActivatedToken-DtG5cmlN.js deleted file mode 100644 index d4b6de2cf..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DtG5cmlN.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,r,a as p,c,i as t,I as m,f as l,p as _}from"./index-CmeDvX2u.js";import{_ as h}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-tQccwW3C.js";import"./BaseSwitch-6ZVOAnMu.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const d=l("p",{class:"mt-16 text-sm"}," Use this Javascript to detect when someone has cloned a webpage. ",-1),v=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const s=r(o.tokenData.clonedsite_js||"");return(n,e)=>{const a=_;return p(),c(m,null,[t(h,{"token-snippet":s.value},null,8,["token-snippet"]),d,t(a,{class:"mt-24",variant:"info",message:"When someone clones your site, they’ll grab this JavaScript too. When the script runs on their cloned site, it triggers an alert to let you know what’s going on.","text-link":"More tips?",onClick:e[0]||(e[0]=()=>n.$emit("howToUse"))})],64)}}});export{v as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-DyTKJWDs.js b/frontend_vue/dist/assets/ActivatedToken-DyTKJWDs.js deleted file mode 100644 index 325773849..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-DyTKJWDs.js +++ /dev/null @@ -1 +0,0 @@ -import{d as r,r as _,a as m,c as k,i as s,I as l,f as a,p}from"./index-CmeDvX2u.js";import{_ as d}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-CgH3eY9G.js";import{_ as h}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const u=a("p",{class:"mt-16 text-sm"}," This token is triggered when someone uses this credential pair to access AWS programmatically (through the API). The key is unique. i.e. There is no chance of somebody guessing these credentials. ",-1),f=a("p",{class:"mt-24 text-sm"},null,-1),$=r({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const e=o,n=_({aws_access_key_id:e.tokenData.aws_access_key_id||"",aws_secret_access_key:e.tokenData.aws_secret_access_key||"",output:e.tokenData.output||"",region:e.tokenData.region||""});return(i,t)=>{const c=p;return m(),k(l,null,[s(d,{"token-data":n.value},null,8,["token-data"]),u,s(h,{onHowToUse:t[0]||(t[0]=g=>i.$emit("howToUse"))}),s(c,{class:"mt-24",variant:"info",message:"If this token fires, it is a clear indication that this set of keys has 'leaked'"}),f],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-P6Bmw1ap.js b/frontend_vue/dist/assets/ActivatedToken-P6Bmw1ap.js deleted file mode 100644 index 616a39e22..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-P6Bmw1ap.js +++ /dev/null @@ -1,4 +0,0 @@ -import{d as l,r as m,a as d,c,i as e,f as n,h as f,I as p,p as h}from"./index-CmeDvX2u.js";import{_ as u}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-BoYAt9tP.js";import{_}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const w={class:"mt-16 text-sm"},k=n("p",{class:"mt-24 text-sm"},null,-1),x=l({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(a){const o=a,i=m({token:o.tokenData.token||"",auth:o.tokenData.auth_token||""});return(r,t)=>{const s=h;return d(),c(p,null,[e(u,{"token-data":i.value},null,8,["token-data"]),n("p",w,[f(" Unzip this file in a folder, and get notified when someone browses the folder in Windows Explorer. It will even trigger if someone is browsing the folder via a network share! "),e(_,{onHowToUse:t[0]||(t[0]=g=>r.$emit("howToUse"))})]),e(s,{class:"mt-32",variant:"warning",message:`This token only works on Windows 10 systems and lower. It does - not work on Windows 11 or higher. This is because a recent group policy update to - some versions of Windows defaults to disabling functionality that this token - relies on to fire.`},null,8,["message"]),e(s,{class:"mt-24",variant:"info",message:"The alert will include the network domain and username of the browsing user, if present."},null,8,["message"]),k],64)}}});export{x as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-aPmFtK8f.js b/frontend_vue/dist/assets/ActivatedToken-aPmFtK8f.js deleted file mode 100644 index d8fefdd42..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-aPmFtK8f.js +++ /dev/null @@ -1 +0,0 @@ -import{d as c,r as i,a as m,c as p,i as e,f as _,h as d,I as f,p as u}from"./index-CmeDvX2u.js";import{_ as l}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-5gpWbeOr.js";import{_ as k}from"./ButtonActivateTokenTips.vue_vue_type_script_setup_true_lang-CFIVJpEi.js";const h={class:"mt-24 text-sm"},$=c({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const t=o,s=i({token:t.tokenData.token||"",auth:t.tokenData.auth_token||""});return(n,a)=>{const r=u;return m(),p(f,null,[e(l,{"token-data":s.value},null,8,["token-data"]),_("p",h,[d(" You'll get an alert whenever this document is opened with Acrobat Reader, regardless of the user's security preferences in Reader. "),e(k,{onHowToUse:a[0]||(a[0]=g=>n.$emit("howToUse"))})]),e(r,{class:"mt-24",variant:"info",message:"You can rename the document without affecting its operation."})],64)}}});export{$ as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-adTLnbJ6.js b/frontend_vue/dist/assets/ActivatedToken-adTLnbJ6.js deleted file mode 100644 index 77d852af7..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-adTLnbJ6.js +++ /dev/null @@ -1,4 +0,0 @@ -import{_ as i}from"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";import{d as l,r as a,a as d,c as _,i as e,I as p,f as o,p as u}from"./index-CmeDvX2u.js";import{_ as g}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-D9yUIZP2.js";const h=o("p",{class:"mt-24 text-sm"}," It will automatically provide the command used, computer the command ran on, and the user invoking the command. ",-1),f=o("p",{class:"mt-16 text-sm"},null,-1),E=l({__name:"ActivatedToken",props:{tokenData:{}},setup(s){const t=s,r=a({token:t.tokenData.token||"",auth:t.tokenData.auth_token||""}),m=a(`reg import FILENAME /reg:64 -reg import FILENAME /reg:32`);return(k,v)=>{const n=u,c=i;return d(),_(p,null,[e(g,{"token-data":r.value},null,8,["token-data"]),e(n,{class:"mt-24",variant:"info",message:`Once installed (with admin permissions) you'll get an alert whenever someone - (or someone's code) runs your sensitive process.`}),h,f,e(n,{class:"mt-24",variant:"warning",message:`In order to ensure that the token fires for both 32-bit and 64-bit - executables, we suggest installing by running the following commands:`}),e(c,{class:"mt-16",lang:"bash",code:m.value},null,8,["code"])],64)}}});export{E as default}; diff --git a/frontend_vue/dist/assets/ActivatedToken-skKKud6i.js b/frontend_vue/dist/assets/ActivatedToken-skKKud6i.js deleted file mode 100644 index d6ddacf27..000000000 --- a/frontend_vue/dist/assets/ActivatedToken-skKKud6i.js +++ /dev/null @@ -1 +0,0 @@ -import{d as i,r as m,a as c,c as p,i as a,I as k,f as l,p as u}from"./index-CmeDvX2u.js";import{_}from"./TokenDisplay.vue_vue_type_script_setup_true_lang-CqNFpXZz.js";import"./BaseSwitch-6ZVOAnMu.js";import"./BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js";const d=l("p",null,"There are two ways you can use this token:",-1),y=i({__name:"ActivatedToken",props:{tokenData:{}},emits:["howToUse"],setup(o){const e=o,n=m({hostname:e.tokenData.hostname||"",token:e.tokenData.token||"",auth:e.tokenData.auth_token||"",encoded:!0});return(s,t)=>{const r=u;return c(),p(k,null,[d,a(_,{"token-data":n.value},null,8,["token-data"]),a(r,{class:"mt-24",variant:"info",message:"When the MySQL statements are run, your Canarytoken will be triggered.","text-link":"More tips?",onClick:t[0]||(t[0]=()=>s.$emit("howToUse"))})],64)}}});export{y as default}; diff --git a/frontend_vue/dist/assets/AppLayoutOneColumn-DqSm8m27.js b/frontend_vue/dist/assets/AppLayoutOneColumn-DqSm8m27.js deleted file mode 100644 index 1460d67d3..000000000 --- a/frontend_vue/dist/assets/AppLayoutOneColumn-DqSm8m27.js +++ /dev/null @@ -1 +0,0 @@ -import{y as t,a as s,c,A as o}from"./index-CmeDvX2u.js";const n={},r={class:"flex flex-col items-center justify-center w-full"};function l(e,a){return s(),c("div",r,[o(e.$slots,"default")])}const _=t(n,[["render",l]]);export{_ as A}; diff --git a/frontend_vue/dist/assets/BannerDeviceCanarytools-B9HrAYOX.css b/frontend_vue/dist/assets/BannerDeviceCanarytools-B9HrAYOX.css deleted file mode 100644 index aa55139f4..000000000 --- a/frontend_vue/dist/assets/BannerDeviceCanarytools-B9HrAYOX.css +++ /dev/null @@ -1 +0,0 @@ -.banner-bg[data-v-27a67cb3]{background-image:url(/nest/assets/banner_visual-2yUx2Tjd.png),linear-gradient(90deg,#5ee49a -1.7%,#0dab7b);background-repeat:no-repeat}@media screen and (max-width: 761px){.banner-bg[data-v-27a67cb3]{background-image:url(/nest/assets/banner_visual-2yUx2Tjd.png),linear-gradient(90deg,#5ee49a -1.7%,#0dab7b);background-repeat:no-repeat}} diff --git a/frontend_vue/dist/assets/BannerDeviceCanarytools-COjZxO2u.js b/frontend_vue/dist/assets/BannerDeviceCanarytools-COjZxO2u.js deleted file mode 100644 index 1db03f5f4..000000000 --- a/frontend_vue/dist/assets/BannerDeviceCanarytools-COjZxO2u.js +++ /dev/null @@ -1 +0,0 @@ -import{y as a,a as e,c as o,f as s,i as n,j as c,h as r,a7 as i,q as d}from"./index-CmeDvX2u.js";const p={},l={class:"@container"},_={class:"w-full gap-16 p-16 mt-16 rounded-2xl banner-bg grid @sm:justify-center @sm:items-center @sm:grid-cols-[2fr_3fr_1fr] @sm:grid-rows-[2fr] @sm:aspect-[4/1] @md:h-[180px] @sm:bg-[position:-200px_-100px,0] @sm:bg-[size:550px,cover] grid-rows-[3fr_1fr] px-16 h-[280px] aspect-[1/2] bg-[position:-250px_0px,0] bg-[size:550px,cover]"},f=i('
#AdDid you know some of the best security teams in the world run Thinkst Canary?
',2),x={class:"flex self-end justify-end m-w-[0px]"};function h(m,b){const t=d;return e(),o("div",l,[s("div",_,[f,s("div",x,[n(t,{class:"whitespace-nowrap",variant:"text-light","icon-position":"right",icon:"arrow-right",href:"https://canary.tools/",target:"_blank"},{default:c(()=>[r("Find out")]),_:1})])])])}const u=a(p,[["render",h],["__scopeId","data-v-27a67cb3"]]);export{u as B}; diff --git a/frontend_vue/dist/assets/BaseCodeSnippet-BD9YfSrM.css b/frontend_vue/dist/assets/BaseCodeSnippet-BD9YfSrM.css deleted file mode 100644 index 1fb23a2c2..000000000 --- a/frontend_vue/dist/assets/BaseCodeSnippet-BD9YfSrM.css +++ /dev/null @@ -1,10 +0,0 @@ -@keyframes bounce-34b88550{40%{transform:scale(1.2)}80%{transform:scale(.8)}to{transform:scale(1)}}.fade-enter-active[data-v-34b88550],.fade-leave-active[data-v-34b88550]{animation:bounce-34b88550 .35s}.fade-enter[data-v-34b88550],.fade-leave-to[data-v-34b88550]{transform:scale(1)}@keyframes bounce-79c1aca7{40%{transform:scale(1.2)}80%{transform:scale(.8)}to{transform:scale(1)}}.fade-enter-active[data-v-79c1aca7],.fade-leave-active[data-v-79c1aca7]{animation:bounce-79c1aca7 .35s}.fade-enter[data-v-79c1aca7],.fade-leave-to[data-v-79c1aca7]{transform:scale(1)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! - Theme: GitHub - Description: Light theme as seen on github.com - Author: github.com - Maintainer: @Hirse - Updated: 2021-05-15 - - Outdated base version: https://github.com/primer/github-syntax-light - Current colors taken from GitHub's CSS -*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0} diff --git a/frontend_vue/dist/assets/BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js b/frontend_vue/dist/assets/BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js deleted file mode 100644 index 3e48a5209..000000000 --- a/frontend_vue/dist/assets/BaseCodeSnippet.vue_vue_type_script_setup_true_lang-CXc-4akO.js +++ /dev/null @@ -1,4 +0,0 @@ -import{d as Le,ab as Gt,r as ue,z as vt,ac as Tt,a8 as St,a as oe,c as _e,i as xe,j as wt,u as Sn,b as we,a3 as Ot,e as Se,y as Rt,ad as Ht,D as Wt,C as Te,ae as Mn,E as Cn,f as In,n as Yt,af as Zt}from"./index-CmeDvX2u.js";const Xt={key:0,class:"fa-sr-only"},Vt=Le({__name:"BaseCopyButton",props:{content:{default:""}},setup(n){const e=n,{isSupported:t,copy:s,copied:l}=Gt({content:e.content}),c=ue("Copy to clipboard"),i=ue(!1),a=ue(["hover","focus"]);function r(u){return new Promise(b=>setTimeout(b,u))}async function o(){if(!t)return c.value="Copy not supported";await r(150),a.value=[],i.value=!0,c.value="Copied!",await r(1500),i.value=!1,a.value=["hover","focus"],await r(150),c.value="Copy to clipboard"}function d(){s(e.content),o()}return(u,b)=>{const p=vt("font-awesome-icon"),m=Tt("tooltip");return St((oe(),_e("button",{class:"h-[2rem] w-[2rem] font-semibold text-white rounded-full bg-green hover:bg-green-300 transition duration-100","aria-label":"Copy to clipboard",onClick:d},[xe(Ot,{name:"fade",mode:"out-in"},{default:wt(()=>[Sn(l)?(oe(),we(p,{key:1,"aria-hidden":"true",icon:"check"})):(oe(),we(p,{key:0,"aria-hidden":"true",icon:"copy"}))]),_:1}),Sn(l)?(oe(),_e("span",Xt,"Copied content")):Se("",!0)])),[[m,{content:c.value,shown:i.value,triggers:a.value}]])}}}),Qt=Rt(Vt,[["__scopeId","data-v-34b88550"]]),Jt={key:0,class:"fa-sr-only"},jt=Le({__name:"BaseRefreshButton",emits:["refresh-token"],setup(n,{emit:e}){const t=e,s=ue("Refresh token"),l=ue(!1),c=ue(["hover","focus"]);function i(o){return new Promise(d=>setTimeout(d,o))}async function a(){await i(150),c.value=[],l.value=!0,s.value="Refreshed!",await i(1500),l.value=!1,c.value=["hover","focus"],await i(150),s.value="Refresh token"}function r(){a(),t("refresh-token")}return(o,d)=>{const u=vt("font-awesome-icon"),b=Tt("tooltip");return St((oe(),_e("button",{class:"refresh-token h-[2rem] w-[2rem] font-semibold rounded-full bg-white hover:bg-green-50 hover:text-green-500 focus:text-green-500 focus-visible:outline-0 focus:bg-green-100 focus:border-green-200 focus:outline-0 text-green-600 border border-green-200","aria-label":"Refresh token",onClick:r},[xe(Ot,{name:"fade",mode:"out-in"},{default:wt(()=>[l.value?(oe(),we(u,{key:1,"aria-hidden":"true",icon:"check"})):(oe(),we(u,{key:0,"aria-hidden":"true",icon:"rotate-right"}))]),_:1}),l.value?(oe(),_e("span",Jt,"Token Refreshed")):Se("",!0)])),[[b,{content:s.value,shown:l.value,triggers:c.value}]])}}}),ea=Rt(jt,[["__scopeId","data-v-79c1aca7"]]);function At(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(e=>{const t=n[e],s=typeof t;(s==="object"||s==="function")&&!Object.isFrozen(t)&&At(t)}),n}class kn{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Mt(n){return n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function be(n,...e){const t=Object.create(null);for(const s in n)t[s]=n[s];return e.forEach(function(s){for(const l in s)t[l]=s[l]}),t}const na="",xn=n=>!!n.scope,ta=(n,{prefix:e})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((s,l)=>`${s}${"_".repeat(l+1)}`)].join(" ")}return`${e}${n}`};class aa{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=Mt(e)}openNode(e){if(!xn(e))return;const t=ta(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){xn(e)&&(this.buffer+=na)}value(){return this.buffer}span(e){this.buffer+=``}}const Dn=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class wn{constructor(){this.rootNode=Dn(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=Dn({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(s=>this._walk(e,s)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{wn._collapse(t)}))}}class ra extends wn{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const s=e.root;t&&(s.scope=`language:${t}`),this.add(s)}toHTML(){return new aa(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Oe(n){return n?typeof n=="string"?n:n.source:null}function Ct(n){return Ee("(?=",n,")")}function ia(n){return Ee("(?:",n,")*")}function sa(n){return Ee("(?:",n,")?")}function Ee(...n){return n.map(t=>Oe(t)).join("")}function oa(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function On(...n){return"("+(oa(n).capture?"":"?:")+n.map(s=>Oe(s)).join("|")+")"}function It(n){return new RegExp(n.toString()+"|").exec("").length-1}function ca(n,e){const t=n&&n.exec(e);return t&&t.index===0}const la=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Rn(n,{joinWith:e}){let t=0;return n.map(s=>{t+=1;const l=t;let c=Oe(s),i="";for(;c.length>0;){const a=la.exec(c);if(!a){i+=c;break}i+=c.substring(0,a.index),c=c.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?i+="\\"+String(Number(a[1])+l):(i+=a[0],a[0]==="("&&t++)}return i}).map(s=>`(${s})`).join(e)}const da=/\b\B/,kt="[a-zA-Z]\\w*",An="[a-zA-Z_]\\w*",xt="\\b\\d+(\\.\\d+)?",Dt="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Lt="\\b(0b[01]+)",ua="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",ga=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=Ee(e,/.*\b/,n.binary,/\b.*/)),be({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,s)=>{t.index!==0&&s.ignoreMatch()}},n)},Re={begin:"\\\\[\\s\\S]",relevance:0},ba={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[Re]},pa={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[Re]},_a={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Be=function(n,e,t={}){const s=be({scope:"comment",begin:n,end:e,contains:[]},t);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const l=On("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return s.contains.push({begin:Ee(/[ ]+/,"(",l,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},ma=Be("//","$"),Ea=Be("/\\*","\\*/"),fa=Be("#","$"),ha={scope:"number",begin:xt,relevance:0},Na={scope:"number",begin:Dt,relevance:0},ya={scope:"number",begin:Lt,relevance:0},va={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[Re,{begin:/\[/,end:/\]/,relevance:0,contains:[Re]}]},Ta={scope:"title",begin:kt,relevance:0},Sa={scope:"title",begin:An,relevance:0},wa={begin:"\\.\\s*"+An,relevance:0},Oa=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var ke=Object.freeze({__proto__:null,APOS_STRING_MODE:ba,BACKSLASH_ESCAPE:Re,BINARY_NUMBER_MODE:ya,BINARY_NUMBER_RE:Lt,COMMENT:Be,C_BLOCK_COMMENT_MODE:Ea,C_LINE_COMMENT_MODE:ma,C_NUMBER_MODE:Na,C_NUMBER_RE:Dt,END_SAME_AS_BEGIN:Oa,HASH_COMMENT_MODE:fa,IDENT_RE:kt,MATCH_NOTHING_RE:da,METHOD_GUARD:wa,NUMBER_MODE:ha,NUMBER_RE:xt,PHRASAL_WORDS_MODE:_a,QUOTE_STRING_MODE:pa,REGEXP_MODE:va,RE_STARTERS_RE:ua,SHEBANG:ga,TITLE_MODE:Ta,UNDERSCORE_IDENT_RE:An,UNDERSCORE_TITLE_MODE:Sa});function Ra(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function Aa(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function Ma(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=Ra,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function Ca(n,e){Array.isArray(n.illegal)&&(n.illegal=On(...n.illegal))}function Ia(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function ka(n,e){n.relevance===void 0&&(n.relevance=1)}const xa=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(s=>{delete n[s]}),n.keywords=t.keywords,n.begin=Ee(t.beforeMatch,Ct(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},Da=["of","and","for","in","not","or","if","then","parent","list","value"],La="keyword";function Bt(n,e,t=La){const s=Object.create(null);return typeof n=="string"?l(t,n.split(" ")):Array.isArray(n)?l(t,n):Object.keys(n).forEach(function(c){Object.assign(s,Bt(n[c],e,c))}),s;function l(c,i){e&&(i=i.map(a=>a.toLowerCase())),i.forEach(function(a){const r=a.split("|");s[r[0]]=[c,Ba(r[0],r[1])]})}}function Ba(n,e){return e?Number(e):Ua(n)?0:1}function Ua(n){return Da.includes(n.toLowerCase())}const Ln={},me=n=>{console.error(n)},Bn=(n,...e)=>{console.log(`WARN: ${n}`,...e)},Ne=(n,e)=>{Ln[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Ln[`${n}/${e}`]=!0)},De=new Error;function Ut(n,e,{key:t}){let s=0;const l=n[t],c={},i={};for(let a=1;a<=e.length;a++)i[a+s]=l[a],c[a+s]=!0,s+=It(e[a-1]);n[t]=i,n[t]._emit=c,n[t]._multi=!0}function Pa(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw me("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),De;if(typeof n.beginScope!="object"||n.beginScope===null)throw me("beginScope must be object"),De;Ut(n,n.begin,{key:"beginScope"}),n.begin=Rn(n.begin,{joinWith:""})}}function Fa(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw me("skip, excludeEnd, returnEnd not compatible with endScope: {}"),De;if(typeof n.endScope!="object"||n.endScope===null)throw me("endScope must be object"),De;Ut(n,n.end,{key:"endScope"}),n.end=Rn(n.end,{joinWith:""})}}function $a(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function za(n){$a(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),Pa(n),Fa(n)}function Ka(n){function e(i,a){return new RegExp(Oe(i),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(a?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,r){r.position=this.position++,this.matchIndexes[this.matchAt]=r,this.regexes.push([r,a]),this.matchAt+=It(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const a=this.regexes.map(r=>r[1]);this.matcherRe=e(Rn(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;const r=this.matcherRe.exec(a);if(!r)return null;const o=r.findIndex((u,b)=>b>0&&u!==void 0),d=this.matchIndexes[o];return r.splice(0,o),Object.assign(r,d)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];const r=new t;return this.rules.slice(a).forEach(([o,d])=>r.addRule(o,d)),r.compile(),this.multiRegexes[a]=r,r}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,r){this.rules.push([a,r]),r.type==="begin"&&this.count++}exec(a){const r=this.getMatcher(this.regexIndex);r.lastIndex=this.lastIndex;let o=r.exec(a);if(this.resumingScanAtSamePosition()&&!(o&&o.index===this.lastIndex)){const d=this.getMatcher(0);d.lastIndex=this.lastIndex+1,o=d.exec(a)}return o&&(this.regexIndex+=o.position+1,this.regexIndex===this.count&&this.considerAll()),o}}function l(i){const a=new s;return i.contains.forEach(r=>a.addRule(r.begin,{rule:r,type:"begin"})),i.terminatorEnd&&a.addRule(i.terminatorEnd,{type:"end"}),i.illegal&&a.addRule(i.illegal,{type:"illegal"}),a}function c(i,a){const r=i;if(i.isCompiled)return r;[Aa,Ia,za,xa].forEach(d=>d(i,a)),n.compilerExtensions.forEach(d=>d(i,a)),i.__beforeBegin=null,[Ma,Ca,ka].forEach(d=>d(i,a)),i.isCompiled=!0;let o=null;return typeof i.keywords=="object"&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),o=i.keywords.$pattern,delete i.keywords.$pattern),o=o||/\w+/,i.keywords&&(i.keywords=Bt(i.keywords,n.case_insensitive)),r.keywordPatternRe=e(o,!0),a&&(i.begin||(i.begin=/\B|\b/),r.beginRe=e(r.begin),!i.end&&!i.endsWithParent&&(i.end=/\B|\b/),i.end&&(r.endRe=e(r.end)),r.terminatorEnd=Oe(r.end)||"",i.endsWithParent&&a.terminatorEnd&&(r.terminatorEnd+=(i.end?"|":"")+a.terminatorEnd)),i.illegal&&(r.illegalRe=e(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map(function(d){return qa(d==="self"?i:d)})),i.contains.forEach(function(d){c(d,r)}),i.starts&&c(i.starts,a),r.matcher=l(r),r}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=be(n.classNameAliases||{}),c(n)}function Pt(n){return n?n.endsWithParent||Pt(n.starts):!1}function qa(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return be(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:Pt(n)?be(n,{starts:n.starts?be(n.starts):null}):Object.isFrozen(n)?be(n):n}var Ga="11.9.0";class Ha extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Fe=Mt,Un=be,Pn=Symbol("nomatch"),Wa=7,Ft=function(n){const e=Object.create(null),t=Object.create(null),s=[];let l=!0;const c="Could not find the language '{}', did you forget to load/include a language module?",i={disableAutodetect:!0,name:"Plain text",contains:[]};let a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:ra};function r(g){return a.noHighlightRe.test(g)}function o(g){let f=g.className+" ";f+=g.parentNode?g.parentNode.className:"";const O=a.languageDetectRe.exec(f);if(O){const k=I(O[1]);return k||(Bn(c.replace("{}",O[1])),Bn("Falling back to no-highlight mode for this block.",g)),k?O[1]:"no-highlight"}return f.split(/\s+/).find(k=>r(k)||I(k))}function d(g,f,O){let k="",U="";typeof f=="object"?(k=g,O=f.ignoreIllegals,U=f.language):(Ne("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ne("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),U=g,k=f),O===void 0&&(O=!0);const Y={code:k,language:U};B("before:highlight",Y);const ne=Y.result?Y.result:u(Y.language,Y.code,O);return ne.code=Y.code,B("after:highlight",ne),ne}function u(g,f,O,k){const U=Object.create(null);function Y(_,y){return _.keywords[y]}function ne(){if(!T.keywords){G.addText(P);return}let _=0;T.keywordPatternRe.lastIndex=0;let y=T.keywordPatternRe.exec(P),S="";for(;y;){S+=P.substring(_,y.index);const x=ae.case_insensitive?y[0].toLowerCase():y[0],X=Y(T,x);if(X){const[se,Ue]=X;if(G.addText(S),S="",U[x]=(U[x]||0)+1,U[x]<=Wa&&(he+=Ue),se.startsWith("_"))S+=y[0];else{const Pe=ae.classNameAliases[se]||se;Z(y[0],Pe)}}else S+=y[0];_=T.keywordPatternRe.lastIndex,y=T.keywordPatternRe.exec(P)}S+=P.substring(_),G.addText(S)}function te(){if(P==="")return;let _=null;if(typeof T.subLanguage=="string"){if(!e[T.subLanguage]){G.addText(P);return}_=u(T.subLanguage,P,!0,Ce[T.subLanguage]),Ce[T.subLanguage]=_._top}else _=p(P,T.subLanguage.length?T.subLanguage:null);T.relevance>0&&(he+=_.relevance),G.__addSublanguage(_._emitter,_.language)}function z(){T.subLanguage!=null?te():ne(),P=""}function Z(_,y){_!==""&&(G.startScope(y),G.addText(_),G.endScope())}function q(_,y){let S=1;const x=y.length-1;for(;S<=x;){if(!_._emit[S]){S++;continue}const X=ae.classNameAliases[_[S]]||_[S],se=y[S];X?Z(se,X):(P=se,ne(),P=""),S++}}function K(_,y){return _.scope&&typeof _.scope=="string"&&G.openNode(ae.classNameAliases[_.scope]||_.scope),_.beginScope&&(_.beginScope._wrap?(Z(P,ae.classNameAliases[_.beginScope._wrap]||_.beginScope._wrap),P=""):_.beginScope._multi&&(q(_.beginScope,y),P="")),T=Object.create(_,{parent:{value:T}}),T}function Q(_,y,S){let x=ca(_.endRe,S);if(x){if(_["on:end"]){const X=new kn(_);_["on:end"](y,X),X.isMatchIgnored&&(x=!1)}if(x){for(;_.endsParent&&_.parent;)_=_.parent;return _}}if(_.endsWithParent)return Q(_.parent,y,S)}function j(_){return T.matcher.regexIndex===0?(P+=_[0],1):(le=!0,0)}function ee(_){const y=_[0],S=_.rule,x=new kn(S),X=[S.__beforeBegin,S["on:begin"]];for(const se of X)if(se&&(se(_,x),x.isMatchIgnored))return j(y);return S.skip?P+=y:(S.excludeBegin&&(P+=y),z(),!S.returnBegin&&!S.excludeBegin&&(P=y)),K(S,_),S.returnBegin?0:y.length}function ie(_){const y=_[0],S=f.substring(_.index),x=Q(T,_,S);if(!x)return Pn;const X=T;T.endScope&&T.endScope._wrap?(z(),Z(y,T.endScope._wrap)):T.endScope&&T.endScope._multi?(z(),q(T.endScope,_)):X.skip?P+=y:(X.returnEnd||X.excludeEnd||(P+=y),z(),X.excludeEnd&&(P=y));do T.scope&&G.closeNode(),!T.skip&&!T.subLanguage&&(he+=T.relevance),T=T.parent;while(T!==x.parent);return x.starts&&K(x.starts,_),X.returnEnd?0:y.length}function ce(){const _=[];for(let y=T;y!==ae;y=y.parent)y.scope&&_.unshift(y.scope);_.forEach(y=>G.openNode(y))}let pe={};function Ae(_,y){const S=y&&y[0];if(P+=_,S==null)return z(),0;if(pe.type==="begin"&&y.type==="end"&&pe.index===y.index&&S===""){if(P+=f.slice(y.index,y.index+1),!l){const x=new Error(`0 width match regex (${g})`);throw x.languageName=g,x.badRule=pe.rule,x}return 1}if(pe=y,y.type==="begin")return ee(y);if(y.type==="illegal"&&!O){const x=new Error('Illegal lexeme "'+S+'" for mode "'+(T.scope||"~/.kube/config
on a host, tempting an attacker to use it.","Place the tokenized file in private code repositories. If the token is triggered, it means that someone is accessing that repo without permission."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-BClYx3TG.js b/frontend_vue/dist/assets/howToUse-BClYx3TG.js
deleted file mode 100644
index 2255061d0..000000000
--- a/frontend_vue/dist/assets/howToUse-BClYx3TG.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["From the provided snippet, only the url() portion is required. You can change the selector and add display: hidden if you want to style an invisible element.","Put the CSS style inline on an HTML element on a site you aren't allowed to add Javascript to (e.g., Wordpress)."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-BH2MeBJ7.js b/frontend_vue/dist/assets/howToUse-BH2MeBJ7.js
deleted file mode 100644
index 6109c1dbd..000000000
--- a/frontend_vue/dist/assets/howToUse-BH2MeBJ7.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Replace links with the provided ones to capture user information before user is redirected to where they want to go.","Embed token in documents.","Insert token into canary webpages that are only found through brute-force.","The provided URL is just an example. Apart from the hostname and the actual token (the random string), you can change all other parts of the URL."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-Bbkn_7Td.js b/frontend_vue/dist/assets/howToUse-Bbkn_7Td.js
deleted file mode 100644
index 725645f63..000000000
--- a/frontend_vue/dist/assets/howToUse-Bbkn_7Td.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Drop the file on a Windows network share.","Leave the file on a web server in an inaccessible directory, to detect webserver breaches.","Attach to an email with a tempting subject line."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-ByMsMwwI.js b/frontend_vue/dist/assets/howToUse-ByMsMwwI.js
deleted file mode 100644
index 275dcc12a..000000000
--- a/frontend_vue/dist/assets/howToUse-ByMsMwwI.js
+++ /dev/null
@@ -1 +0,0 @@
-const t=["Add it to an email with a juicy subject line.","Embed it in documents.","Insert it into canary webpages that are only found through brute-force.","The provided URL is just an example. Apart from the hostname and the actual token (the random string), you can change all other parts of the URL."];export{t as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-CA__cwFK.js b/frontend_vue/dist/assets/howToUse-CA__cwFK.js
deleted file mode 100644
index 3f64f7d3c..000000000
--- a/frontend_vue/dist/assets/howToUse-CA__cwFK.js
+++ /dev/null
@@ -1 +0,0 @@
-const t=["Attackers who find MySQL dump files will usually throw them into a temporary database to query the data. When a dump file with the provided snippet is ingested, it will let you know."];export{t as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-COVAbDpU.js b/frontend_vue/dist/assets/howToUse-COVAbDpU.js
deleted file mode 100644
index e3321c30a..000000000
--- a/frontend_vue/dist/assets/howToUse-COVAbDpU.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Most systems have a ~/.azure
folder (much like the ~/.aws
or ~/.ssh
). Create a config file with the config details from the token and place it near the certificate (ensuring that the config value has a path to the certificate).","Place the credentials in private code repositories. If the token is triggered, it means that someone is accessing that repo without permission."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-C_2fSMnl.js b/frontend_vue/dist/assets/howToUse-C_2fSMnl.js
deleted file mode 100644
index ac5c91be2..000000000
--- a/frontend_vue/dist/assets/howToUse-C_2fSMnl.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["The provided AWS credentials are often stored in a file called ~/.aws/credentials
on linux/OSX systems. Generate a fake credential pair for your senior developers and sysadmins and keep it on their machines. If someone tries to access AWS with the pair you generated for Bob, chances are that Bob`s been compromised.","Place the provided credentials in private code repositories. If the token is triggered, it means that someone is accessing that repo without permission"];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-CttcXLef.js b/frontend_vue/dist/assets/howToUse-CttcXLef.js
deleted file mode 100644
index 22bf784b3..000000000
--- a/frontend_vue/dist/assets/howToUse-CttcXLef.js
+++ /dev/null
@@ -1 +0,0 @@
-const t=["Add it to an email with a juicy subject line.","Embed it in documents.","The provided URL is just an example. Apart from the hostname and the actual token (the random string), you can change all other parts of the URL."];export{t as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-CxhIZsqk.js b/frontend_vue/dist/assets/howToUse-CxhIZsqk.js
deleted file mode 100644
index 471a023d0..000000000
--- a/frontend_vue/dist/assets/howToUse-CxhIZsqk.js
+++ /dev/null
@@ -1 +0,0 @@
-const o=["Save the provided CSS file and upload it as a custom branding stylesheet for your Azure Entra ID login portal (requires a P1 or P2 subscription)."];export{o as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DDFQ_Y9w.js b/frontend_vue/dist/assets/howToUse-DDFQ_Y9w.js
deleted file mode 100644
index 5b1a297c4..000000000
--- a/frontend_vue/dist/assets/howToUse-DDFQ_Y9w.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Include the snipept in a PTR entry for dark IP space of your internal network. Quick way to determine if someone is walking your internal DNS without configuring DNS logging and monitoring.","Leave it in a .bash_history
, or .ssh/config
, or ~/servers.txt
",'Use the snippet as an extremely simple bridge between a detection and notification action. Many possibilities, here\'s one that tails a logfile and triggers the token when someone logs in: tail -f /var/log/auth.log | awk `/Accepted publickey for/ { system("host k5198sfh3cw64rhdpm29oo4ga.canarytokens.com") }`
',"Use the snippet as the domain part of an email address."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DH03DjD9.js b/frontend_vue/dist/assets/howToUse-DH03DjD9.js
deleted file mode 100644
index 1d6a2c3fe..000000000
--- a/frontend_vue/dist/assets/howToUse-DH03DjD9.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Drop the provided file on a Windows network share.","Leave the file on a web server in an inaccessible directory, to detect webserver breaches.","Attach the file to an email with a tempting subject line."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DSC87O8J.js b/frontend_vue/dist/assets/howToUse-DSC87O8J.js
deleted file mode 100644
index d595ab992..000000000
--- a/frontend_vue/dist/assets/howToUse-DSC87O8J.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Ideal candidates for the token are executables often used by attackers but seldom used by regular users (e.g., whoami.exe, net.exe, wmic.exe, etc.).","You can use the provided tokenized file for attacker tools that are not present on your system (e.g., mimikatz.exe), and if they are ever downloaded and run, you'll get an alert!","Use a network management tool to deploy the file across your organization."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DeIcwzV8.js b/frontend_vue/dist/assets/howToUse-DeIcwzV8.js
deleted file mode 100644
index 82b6c21b6..000000000
--- a/frontend_vue/dist/assets/howToUse-DeIcwzV8.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Pre-configure the Wireguard VPN credential sets in Wireguard on all company-issued hardware, or share the QR Code the token generates in the company's instant messaging platform (not in a channel where your employees are likely to come across it).","Include the Wireguard credentials in text documents, emails, or other documents, and leave them in locations where attackers would discover them. "];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DrbKluN1.js b/frontend_vue/dist/assets/howToUse-DrbKluN1.js
deleted file mode 100644
index c2425928e..000000000
--- a/frontend_vue/dist/assets/howToUse-DrbKluN1.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Leave the provided QR code on containers left in secure locations.","Add the QR code underneath your phone battery when crossing international borders.","Place the QR code on your desk."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-DysU-AtA.js b/frontend_vue/dist/assets/howToUse-DysU-AtA.js
deleted file mode 100644
index 6f1a25ed5..000000000
--- a/frontend_vue/dist/assets/howToUse-DysU-AtA.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Enter the provided string into web based search boxes and fields that will be parsed by your logging libraries.","Add the provided string to HTTP Request Headers.","Use the provided string in automated scanners."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-IYYb5n_2.js b/frontend_vue/dist/assets/howToUse-IYYb5n_2.js
deleted file mode 100644
index cd541a361..000000000
--- a/frontend_vue/dist/assets/howToUse-IYYb5n_2.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Place the token in a database with a USERS table, drop a fake record in there with this email address. If it gets triggered you know someone has accessed your data."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-P0riMjym.js b/frontend_vue/dist/assets/howToUse-P0riMjym.js
deleted file mode 100644
index d51a385fa..000000000
--- a/frontend_vue/dist/assets/howToUse-P0riMjym.js
+++ /dev/null
@@ -1 +0,0 @@
-const o=["Unzip the provided file on a juicely named Windows network share.","Unzip the provided file on a folder on your CEO's laptop."];export{o as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-ai-6V4l5.js b/frontend_vue/dist/assets/howToUse-ai-6V4l5.js
deleted file mode 100644
index d1d276a07..000000000
--- a/frontend_vue/dist/assets/howToUse-ai-6V4l5.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Deploy a SELECT token with a tempting VIEW name such as USER_DETAILS."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-spFFdYkI.js b/frontend_vue/dist/assets/howToUse-spFFdYkI.js
deleted file mode 100644
index abb74dd5e..000000000
--- a/frontend_vue/dist/assets/howToUse-spFFdYkI.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Token a dummy SVN repo to detect when attackers are enumerating repos.","Token an old repo which shouldn't be touched any longer."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-vXNmiySV.js b/frontend_vue/dist/assets/howToUse-vXNmiySV.js
deleted file mode 100644
index a773c6390..000000000
--- a/frontend_vue/dist/assets/howToUse-vXNmiySV.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Deploy the provided snippet on the login pages of your sensitive sites, such as OWA or tender systems."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-vlxeUa1X.js b/frontend_vue/dist/assets/howToUse-vlxeUa1X.js
deleted file mode 100644
index 2c4e7be97..000000000
--- a/frontend_vue/dist/assets/howToUse-vlxeUa1X.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Replace links with the provided token to capture user information before user is redirected to where they want to go.","Embed the token in documents.","Insert the token into canary webpages that are only found through brute-force.","The provided URL is just an example. Apart from the hostname and the actual token (the random string), you can change all other parts of the URL."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-w4lwjHoW.js b/frontend_vue/dist/assets/howToUse-w4lwjHoW.js
deleted file mode 100644
index 1d6a2c3fe..000000000
--- a/frontend_vue/dist/assets/howToUse-w4lwjHoW.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Drop the provided file on a Windows network share.","Leave the file on a web server in an inaccessible directory, to detect webserver breaches.","Attach the file to an email with a tempting subject line."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howToUse-wwJiJWpy.js b/frontend_vue/dist/assets/howToUse-wwJiJWpy.js
deleted file mode 100644
index 56f86a7f8..000000000
--- a/frontend_vue/dist/assets/howToUse-wwJiJWpy.js
+++ /dev/null
@@ -1 +0,0 @@
-const e=["Decide on a few default binaries commonly used by attackers, and token them."];export{e as howToUse};
diff --git a/frontend_vue/dist/assets/howitworks_arrow_1-edVyhE4T.png b/frontend_vue/dist/assets/howitworks_arrow_1-edVyhE4T.png
deleted file mode 100644
index 3ac2f1347..000000000
Binary files a/frontend_vue/dist/assets/howitworks_arrow_1-edVyhE4T.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/howitworks_arrow_2-0fxnRv8P.png b/frontend_vue/dist/assets/howitworks_arrow_2-0fxnRv8P.png
deleted file mode 100644
index 120ad5411..000000000
Binary files a/frontend_vue/dist/assets/howitworks_arrow_2-0fxnRv8P.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/howitworks_step_1-DDPYcUMo.png b/frontend_vue/dist/assets/howitworks_step_1-DDPYcUMo.png
deleted file mode 100644
index ff7534556..000000000
Binary files a/frontend_vue/dist/assets/howitworks_step_1-DDPYcUMo.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/howitworks_step_2-DSyYnQy-.png b/frontend_vue/dist/assets/howitworks_step_2-DSyYnQy-.png
deleted file mode 100644
index df3ac39e6..000000000
Binary files a/frontend_vue/dist/assets/howitworks_step_2-DSyYnQy-.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/howitworks_step_3-DFBooN9c.png b/frontend_vue/dist/assets/howitworks_step_3-DFBooN9c.png
deleted file mode 100644
index be7b2da80..000000000
Binary files a/frontend_vue/dist/assets/howitworks_step_3-DFBooN9c.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/index-SPBg3b0g.css b/frontend_vue/dist/assets/index-SPBg3b0g.css
deleted file mode 100644
index 5cd4e41bd..000000000
--- a/frontend_vue/dist/assets/index-SPBg3b0g.css
+++ /dev/null
@@ -1 +0,0 @@
-.desktop-link.router-link-active[data-v-8dab11c5]{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.mobile-link.router-link-active[data-v-8dab11c5]{--tw-text-opacity: 1;color:hsl(162 86% 36% / var(--tw-text-opacity))}.v-enter-to[data-v-cea08e91],.v-leave-from[data-v-cea08e91]{right:0}.v-enter-from[data-v-cea08e91],.v-leave-to[data-v-cea08e91]{right:-765px}.icon-enter-to[data-v-cea08e91],.icon-leave-from[data-v-cea08e91]{margin-right:0}.icon-enter-from[data-v-cea08e91]{margin-right:-15px}.icon-leave-to[data-v-cea08e91]{margin-left:-15px}.icon-enter-active[data-v-cea08e91],.icon-leave-active[data-v-cea08e91]{opacity:0}.header-bg[data-v-8e11560d]:after{content:"";background:linear-gradient(360deg,#38ff7f -43.49%,#387f7ff0 118%);position:absolute;top:0;left:0;height:15rem;width:100%;z-index:-1}.main-height[data-v-8e11560d]{min-height:calc(100svh - 275px)}h1[data-v-8e11560d]{font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.layout-grid[data-v-c68c9562]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.2rem}.blur-bg{background:#95959540!important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.base-button[data-v-fff9400e]{position:relative;width:-moz-fit-content;width:fit-content;border-radius:9999px;padding:.5rem 1rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.base-button[data-v-fff9400e]:disabled{pointer-events:none}.primary[data-v-fff9400e]{border-width:1px;--tw-border-opacity: 1;border-color:hsl(169 80% 26% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(152 59% 48% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));--tw-shadow: 0px .15rem 0px 0px hsl(166, 86%, 30%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.primary[data-v-fff9400e]:hover{--tw-bg-opacity: 1;background-color:hsl(147 71% 63% / var(--tw-bg-opacity))}.primary[data-v-fff9400e]:focus{--tw-border-opacity: 1;border-color:hsl(169 80% 26% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(147 71% 63% / var(--tw-bg-opacity));outline-width:0px}.primary[data-v-fff9400e]:focus-visible{--tw-border-opacity: 1;border-color:hsl(169 80% 26% / var(--tw-border-opacity));outline-width:0px}.primary[data-v-fff9400e]:active{top:.15rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.primary[data-v-fff9400e]:disabled{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(153 9% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.secondary[data-v-fff9400e]{border-width:1px;--tw-border-opacity: 1;border-color:hsl(141 75% 76% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(162 86% 36% / var(--tw-text-opacity));--tw-shadow: 0px .15rem 0px 0px hsl(147, 71%, 63%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.secondary[data-v-fff9400e]:hover{--tw-bg-opacity: 1;background-color:hsl(142 65% 97% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.secondary[data-v-fff9400e]:focus{--tw-border-opacity: 1;border-color:hsl(141 75% 76% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(148 68% 93% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity));outline-width:0px}.secondary[data-v-fff9400e]:focus-visible{outline-width:0px}.secondary[data-v-fff9400e]:active{top:.15rem;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.secondary[data-v-fff9400e]:disabled{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(153 9% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.text[data-v-fff9400e]{--tw-text-opacity: 1;color:hsl(157 9% 40% / var(--tw-text-opacity))}.text[data-v-fff9400e]:hover{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.text[data-v-fff9400e]:focus{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.text-light[data-v-fff9400e]{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.text-light[data-v-fff9400e]:hover{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.text-light[data-v-fff9400e]:focus{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.danger[data-v-fff9400e]{--tw-text-opacity: 1;color:hsl(351 65% 24% / var(--tw-text-opacity))}.danger[data-v-fff9400e]:hover{--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity))}.danger[data-v-fff9400e]:focus{--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity))}.with-border.danger[data-v-fff9400e]{border-width:1px;--tw-border-opacity: 1;border-color:hsl(351 85% 44% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity));--tw-shadow: 0px .15rem 0px 0px hsl(351, 85%, 44%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.with-border.danger[data-v-fff9400e]:hover{--tw-bg-opacity: 1;background-color:hsl(351 100% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.with-border.danger[data-v-fff9400e]:focus{--tw-border-opacity: 1;border-color:hsl(351 85% 44% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(351 100% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));outline-width:0px}.with-border.danger[data-v-fff9400e]:focus-visible{outline-width:0px}.with-border.danger[data-v-fff9400e]:active{top:.15rem;--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.with-border.danger[data-v-fff9400e]:disabled{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(153 9% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grey[data-v-fff9400e]{border-width:1px;--tw-border-opacity: 1;border-color:hsl(155 7% 50% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(157 9% 40% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(155, 7%, 50%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grey[data-v-fff9400e]:hover{--tw-bg-opacity: 1;background-color:hsl(154 9% 64% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.grey[data-v-fff9400e]:focus{--tw-border-opacity: 1;border-color:hsl(157 9% 40% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(155 7% 50% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));outline-width:0px}.grey[data-v-fff9400e]:focus-visible{outline-width:0px}.grey[data-v-fff9400e]:active{top:.15rem;--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.grey[data-v-fff9400e]:disabled{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(153 9% 81% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.warning[data-v-fff9400e]{--tw-text-opacity: 1;color:hsl(36 100% 30% / var(--tw-text-opacity))}.warning[data-v-fff9400e]:hover{--tw-text-opacity: 1;color:hsl(36 100% 50% / var(--tw-text-opacity))}.warning[data-v-fff9400e]:focus{--tw-text-opacity: 1;color:hsl(36 100% 50% / var(--tw-text-opacity))}.info[data-v-fff9400e]{--tw-text-opacity: 1;color:hsl(199 64% 23% / var(--tw-text-opacity))}.info[data-v-fff9400e]:hover{--tw-text-opacity: 1;color:hsl(191 96% 36% / var(--tw-text-opacity))}.info[data-v-fff9400e]:focus{--tw-text-opacity: 1;color:hsl(191 96% 36% / var(--tw-text-opacity))}.shimmer[data-v-7b6ebf1b]{transform:translate(-100%);animation:shimmer-7b6ebf1b 1.4s infinite}@keyframes shimmer-7b6ebf1b{to{transform:translate(100%)}}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:400;src:url(/nest/assets/open-sans-v40-latin-regular-Cjao0ETp.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:500;src:url(/nest/assets/open-sans-v40-latin-500-CDvJACdq.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:600;src:url(/nest/assets/open-sans-v40-latin-600-Dhnuc7ye.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:700;src:url(/nest/assets/open-sans-v40-latin-700-C2okHfb_.woff2) format("woff2")}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/nest/assets/fa-solid-900-DAI24fNt.woff2) format("woff2"),url(/nest/assets/fa-solid-900-DM0teJdg.ttf) format("truetype")}.arrow[data-v-523078de]{transform:scale(3.5)}li[data-v-91707fa3]:before{font-family:"Font Awesome 6 Free";content:"";--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}p[data-v-91707fa3] code{margin-top:.25rem;border-radius:.375rem;--tw-bg-opacity: 1;background-color:hsl(148 68% 93% / var(--tw-bg-opacity));padding-left:.5rem;padding-right:.5rem;padding-top:2px;padding-bottom:2px;overflow-wrap:anywhere}.token-icon-shadow[data-v-d12a4713]:after{content:"";position:absolute;display:inline-block;left:50%;width:3rem;height:.5rem;border-radius:50%;--tw-bg-opacity: 1;background-color:hsl(156 9% 89% / var(--tw-bg-opacity));filter:blur(.1rem);transform:translate(-50%,.2rem)}.token-icon-interacted[data-v-d12a4713]:after{width:2.8rem}@keyframes shadow-pulse-d12a4713{0%,to{width:3rem}50%{width:2.5rem}}.token-icon-animated[data-v-d12a4713]:after{animation:shadow-pulse-d12a4713 2s infinite}@keyframes float-d12a4713{0%,to{transform:translateY(0);animation-timing-function:cubic-bezier(.645,.045,.355,1)}50%{transform:translateY(-.3rem);animation-timing-function:cubic-bezier(.645,.045,.355,1)}}.animate-float[data-v-d12a4713]{animation:float-d12a4713 2s ease-in-out infinite}.banner-bg[data-v-b6e0fd67]{background-image:linear-gradient(45deg,#5ee49a -1.7%,#0dab7b)}.token-card[data-v-d45cc947]:hover,.token-card[data-v-d45cc947]:focus,.token-card[data-v-d45cc947]:focus-within{--tw-border-opacity: 1;border-color:hsl(162 86% 36% / var(--tw-border-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(162, 86%, 36%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.token-card:hover .card-button[data-v-d45cc947],.token-card:focus .card-button[data-v-d45cc947],.token-card:focus-within .card-button[data-v-d45cc947]{--tw-border-opacity: 1;border-bottom-color:hsl(162 86% 36% / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:hsl(157 77% 45% / var(--tw-bg-opacity));--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity));--tw-shadow: 0px .2rem 0px 0px hsl(162, 86%, 36%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}#search-canarytoken:focus+.search-icon[data-v-eda4e4ec]{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}@keyframes shake-62ca8eda{0%{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-3px)}to{transform:translate(0)}}.stress[data-v-62ca8eda]{animation:shake-62ca8eda .15s infinite}.love[data-v-62ca8eda]:before{content:"";font-family:"Font Awesome 6 Free";font-weight:900;display:inline-block;position:absolute;top:.5rem;left:-2rem;color:pink}@keyframes ping-62ca8eda{75%,to{transform:scale(2);opacity:0}}.love[data-v-62ca8eda]:before{animation:ping-62ca8eda 1s cubic-bezier(0,0,.2,1) infinite}.move-grid-enter[data-v-39b333ac]{opacity:0}.move-grid-enter-active[data-v-39b333ac]{transition:all 1s}.move-grid-leave[data-v-39b333ac]{opacity:0}.move-grid-leave-active[data-v-39b333ac]{transition:all .3s;opacity:0;transform:translateY(0);position:absolute}.move-grid-move[data-v-39b333ac]{transition:all .3s cubic-bezier(.55,0,.1,1)}.fade-move[data-v-39b333ac],.fade-enter-active[data-v-39b333ac],.fade-leave-active[data-v-39b333ac]{transition:all 1s cubic-bezier(.55,0,.1,1)}.fade-enter-from[data-v-39b333ac],.fade-leave-to[data-v-39b333ac]{opacity:0;transform:translate(30px)}.fade-leave-active[data-v-39b333ac]{opacity:0;transition:all .2s cubic-bezier(.55,0,.1,1);transform:translate(30px);position:absolute}.vue-map{width:100%;height:100%;min-height:2rem}.vfm--fixed{position:fixed}.vfm--absolute{position:absolute}.vfm--inset{top:0;right:0;bottom:0;left:0}.vfm--overlay{z-index:-1;background-color:#00000080}.vfm--prevent-none{pointer-events:none}.vfm--prevent-auto{pointer-events:auto}.vfm--outline-none:focus{outline:none}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.vfm-fade-enter-active{animation:fade-in .3s ease}.vfm-fade-leave-active{animation:fade-out .3s ease}.vfm-bounce-back{transition-property:transform;transition-duration:.3s}.vfm-slide-up-enter-active,.vfm-slide-up-leave-active,.vfm-slide-down-enter-active,.vfm-slide-down-leave-active{transition:transform .3s ease}.vfm-slide-down-enter-from,.vfm-slide-down-leave-to{transform:translateY(100vh)!important}.vfm-slide-up-enter-from,.vfm-slide-up-leave-to{transform:translateY(-100vh)!important}.vfm-slide-right-enter-active,.vfm-slide-right-leave-active,.vfm-slide-left-enter-active,.vfm-slide-left-leave-active{transition:transform .3s ease}.vfm-slide-right-enter-from,.vfm-slide-right-leave-to{transform:translate(100vw)!important}.vfm-slide-left-enter-from,.vfm-slide-left-leave-to{transform:translate(-100vw)!important}.vfm-swipe-banner-back,.vfm-swipe-banner-forward{position:fixed;top:0;bottom:0;width:27px;z-index:10}.vfm-swipe-banner-back{left:0}.vfm-swipe-banner-forward{right:0}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:#000c;color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:400;src:url(/nest/assets/open-sans-v40-latin-regular-Cjao0ETp.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:500;src:url(/nest/assets/open-sans-v40-latin-500-CDvJACdq.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:600;src:url(/nest/assets/open-sans-v40-latin-600-Dhnuc7ye.woff2) format("woff2")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:700;src:url(/nest/assets/open-sans-v40-latin-700-C2okHfb_.woff2) format("woff2")}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(/nest/assets/fa-solid-900-DAI24fNt.woff2) format("woff2"),url(/nest/assets/fa-solid-900-DM0teJdg.ttf) format("truetype")}:root{--vs-colors--lightest: rgba(60, 60, 60, .26);--vs-colors--light: rgba(60, 60, 60, .5);--vs-colors--dark: #333;--vs-colors--darkest: rgba(0, 0, 0, .15);--vs-search-input-color: inherit;--vs-search-input-placeholder-color: inherit;--vs-font-size: 1rem;--vs-line-height: 1.4;--vs-state-disabled-bg: rgb(248, 248, 248);--vs-state-disabled-color: var(--vs-colors--light);--vs-state-disabled-controls-color: var(--vs-colors--light);--vs-state-disabled-cursor: not-allowed;--vs-border-color: var(--vs-colors--lightest);--vs-border-width: 1px;--vs-border-style: solid;--vs-border-radius: 4px;--vs-actions-padding: 4px 6px 0 3px;--vs-controls-color: var(--vs-colors--light);--vs-controls-size: 1;--vs-controls--deselect-text-shadow: 0 1px 0 #fff;--vs-selected-bg: #f0f0f0;--vs-selected-color: var(--vs-colors--dark);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: #fff;--vs-dropdown-color: inherit;--vs-dropdown-z-index: 1000;--vs-dropdown-min-width: 160px;--vs-dropdown-max-height: 350px;--vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg: #000;--vs-dropdown-option-color: var(--vs-dropdown-color);--vs-dropdown-option-padding: 3px 20px;--vs-dropdown-option--active-bg: #5897fb;--vs-dropdown-option--active-color: #fff;--vs-dropdown-option--deselect-bg: #fb5858;--vs-dropdown-option--deselect-color: #fff;--vs-transition-timing-function: cubic-bezier(1, -.115, .975, .855);--vs-transition-duration: .15s}.v-select{position:relative;font-family:inherit}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function: cubic-bezier(1, .5, .8, 1);--vs-transition-duration: .15s}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg: var(--vs-state-disabled-bg);--vs-disabled-color: var(--vs-state-disabled-color);--vs-disabled-cursor: var(--vs-state-disabled-cursor)}.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__clear,.vs--disabled .vs__search,.vs--disabled .vs__selected,.vs--disabled .vs__open-indicator{cursor:var(--vs-disabled-cursor);background-color:var(--vs-disabled-bg)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;padding:0 0 4px;background:none;border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;padding:0 2px;position:relative}.vs__actions{display:flex;align-items:center;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);padding:0;border:0;background-color:transparent;cursor:pointer;margin-right:8px}.vs__dropdown-menu{display:block;box-sizing:border-box;position:absolute;top:calc(100% - var(--vs-border-width));left:0;z-index:var(--vs-dropdown-z-index);padding:5px 0;margin:0;width:100%;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;box-shadow:var(--vs-dropdown-box-shadow);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-top-style:none;border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);text-align:left;list-style:none;background:var(--vs-dropdown-bg);color:var(--vs-dropdown-color)}.vs__no-options{text-align:center}.vs__dropdown-option{line-height:1.42857143;display:block;padding:var(--vs-dropdown-option-padding);clear:both;color:var(--vs-dropdown-option-color);white-space:nowrap;cursor:pointer}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{display:flex;align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);line-height:var(--vs-line-height);margin:4px 2px 0;padding:0 .25em;z-index:0}.vs__deselect{display:inline-flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:4px;padding:0;border:0;cursor:pointer;background:none;fill:var(--vs-controls-color);text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--open .vs__selected,.vs--single.vs--loading .vs__selected{position:absolute;opacity:.4}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration,.vs__search::-ms-clear{display:none}.vs__search,.vs__search:focus{color:var(--vs-search-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:var(--vs-line-height);font-size:var(--vs-font-size);border:1px solid transparent;border-left:none;outline:none;margin:4px 0 0;padding:0 7px;background:none;box-shadow:none;width:0;max-width:100%;flex-grow:1;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;opacity:0;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid rgba(100,100,100,.1);border-right:.9em solid rgba(100,100,100,.1);border-bottom:.9em solid rgba(100,100,100,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;width:5em;height:5em;transform:scale(var(--vs-controls--spinner-size, var(--vs-controls-size)))}.vs--loading .vs__spinner{opacity:1}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Open Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-\[0px\]{top:0;right:0;bottom:0;left:0}.bottom-16{bottom:1rem}.bottom-8,.bottom-\[\.5rem\]{bottom:.5rem}.left-0{left:0}.left-8{left:.5rem}.left-\[0\]{left:0}.right-0{right:0}.right-16{right:1rem}.right-8{right:.5rem}.right-\[\.3rem\]{right:.3rem}.right-\[0\.6rem\]{right:.6rem}.right-\[1rem\]{right:1rem}.top-4{top:.25rem}.top-8{top:.5rem}.top-\[\.25rem\]{top:.25rem}.top-\[\.5rem\]{top:.5rem}.top-\[\.8rem\]{top:.8rem}.top-\[0\.2rem\]{top:.2rem}.top-\[0\.7rem\]{top:.7rem}.top-\[0px\]{top:0}.top-\[120px\]{top:120px}.top-\[93px\]{top:93px}.top-\[9px\]{top:9px}.z-10{z-index:10}.z-50{z-index:50}.m-24{margin:1.5rem}.m-auto{margin:auto}.mx-16{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-top:1rem;margin-bottom:1rem}.my-24{margin-top:1.5rem;margin-bottom:1.5rem}.my-32{margin-top:2rem;margin-bottom:2rem}.my-8{margin-top:.5rem;margin-bottom:.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.mb-16{margin-bottom:1rem}.mb-24{margin-bottom:1.5rem}.mb-32{margin-bottom:2rem}.mb-4{margin-bottom:.25rem}.mb-40{margin-bottom:2.25rem}.mb-8{margin-bottom:.5rem}.mb-\[16px\]{margin-bottom:16px}.ml-16{margin-left:1rem}.ml-24{margin-left:1.5rem}.ml-4{margin-left:.25rem}.ml-\[4px\]{margin-left:4px}.ml-auto{margin-left:auto}.mr-8{margin-right:.5rem}.mr-\[3\.5rem\]{margin-right:3.5rem}.mr-\[6rem\]{margin-right:6rem}.mr-auto{margin-right:auto}.mt-16{margin-top:1rem}.mt-24{margin-top:1.5rem}.mt-32{margin-top:2rem}.mt-4{margin-top:.25rem}.mt-40{margin-top:2.25rem}.mt-8{margin-top:.5rem}.mt-\[4rem\]{margin-top:4rem}.mt-\[60px\]{margin-top:60px}.mt-\[8px\]{margin-top:8px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[1\/2\]{aspect-ratio:1/2}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.h-16{height:1rem}.h-24{height:1.5rem}.h-32{height:2rem}.h-\[0\.5rem\]{height:.5rem}.h-\[1\.1rem\]{height:1.1rem}.h-\[100px\]{height:100px}.h-\[10vh\]{height:10vh}.h-\[150px\]{height:150px}.h-\[16px\]{height:16px}.h-\[20svh\]{height:20svh}.h-\[250px\]{height:250px}.h-\[280px\]{height:280px}.h-\[2rem\]{height:2rem}.h-\[300px\]{height:300px}.h-\[30svh\]{height:30svh}.h-\[32px\]{height:32px}.h-\[3rem\]{height:3rem}.h-\[4\.2rem\]{height:4.2rem}.h-\[40px\]{height:40px}.h-\[4rem\]{height:4rem}.h-\[50px\]{height:50px}.h-\[50svh\]{height:50svh}.h-\[5rem\]{height:5rem}.h-\[60px\]{height:60px}.h-\[6rem\]{height:6rem}.h-\[7rem\]{height:7rem}.h-\[80px\]{height:80px}.h-auto{height:auto}.h-full{height:100%}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[3rem\]{min-height:3rem}.min-h-\[60vh\]{min-height:60vh}.min-h-screen{min-height:100vh}.w-24{width:1.5rem}.w-\[0\.5rem\]{width:.5rem}.w-\[0\.8rem\]{width:.8rem}.w-\[1\.1rem\]{width:1.1rem}.w-\[1\.3rem\]{width:1.3rem}.w-\[1\.5rem\]{width:1.5rem}.w-\[100px\]{width:100px}.w-\[130px\]{width:130px}.w-\[15rem\]{width:15rem}.w-\[200px\]{width:200px}.w-\[2rem\]{width:2rem}.w-\[3\.5rem\]{width:3.5rem}.w-\[300px\]{width:300px}.w-\[4\.2rem\]{width:4.2rem}.w-\[4rem\]{width:4rem}.w-\[50\%\]{width:50%}.w-\[5rem\]{width:5rem}.w-\[60px\]{width:60px}.w-\[6rem\]{width:6rem}.w-\[7rem\]{width:7rem}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[80vw\]{width:80vw}.w-\[90\%\]{width:90%}.w-\[90vw\]{width:90vw}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[12rem\]{min-width:12rem}.min-w-\[30px\]{min-width:30px}.min-w-\[40px\]{min-width:40px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-\[400px\]{max-width:400px}.max-w-\[8rem\]{max-width:8rem}.max-w-screen-lg{max-width:1024px}.flex-1{flex:1 1 0%}.flex-grow{flex-grow:1}.grow-0{flex-grow:0}.translate-y-\[-0\.2rem\]{--tw-translate-y: -.2rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-1rem\]{--tw-translate-y: -1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.grid-flow-col{grid-auto-flow:column}.grid-rows-\[3fr_1fr\]{grid-template-rows:3fr 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-16{gap:1rem}.gap-24{gap:1.5rem}.gap-32{gap:2rem}.gap-4{gap:.25rem}.gap-8{gap:.5rem}.gap-\[16px\]{gap:16px}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.border{border-width:1px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-green-200{--tw-border-opacity: 1;border-color:hsl(141 75% 76% / var(--tw-border-opacity))}.border-green-300{--tw-border-opacity: 1;border-color:hsl(147 71% 63% / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:hsl(157 77% 45% / var(--tw-border-opacity))}.border-green-600{--tw-border-opacity: 1;border-color:hsl(162 86% 36% / var(--tw-border-opacity))}.border-grey-100{--tw-border-opacity: 1;border-color:hsl(156 9% 89% / var(--tw-border-opacity))}.border-grey-200{--tw-border-opacity: 1;border-color:hsl(153 9% 81% / var(--tw-border-opacity))}.border-grey-300{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity))}.border-grey-400{--tw-border-opacity: 1;border-color:hsl(155 7% 50% / var(--tw-border-opacity))}.border-grey-50{--tw-border-opacity: 1;border-color:hsl(180 6% 97% / var(--tw-border-opacity))}.border-red{--tw-border-opacity: 1;border-color:hsl(351 85% 44% / var(--tw-border-opacity))}.border-red-300{--tw-border-opacity: 1;border-color:hsl(351 100% 81% / var(--tw-border-opacity))}.border-white{--tw-border-opacity: 1;border-color:hsl(0 0% 100% / var(--tw-border-opacity))}.border-b-green-600{--tw-border-opacity: 1;border-bottom-color:hsl(162 86% 36% / var(--tw-border-opacity))}.border-l-\[transparent\]{border-left-color:transparent}.bg-blue-300{--tw-bg-opacity: 1;background-color:hsl(193 78% 83% / var(--tw-bg-opacity))}.bg-green{--tw-bg-opacity: 1;background-color:hsl(152 59% 48% / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:hsl(148 68% 93% / var(--tw-bg-opacity))}.bg-green-200{--tw-bg-opacity: 1;background-color:hsl(141 75% 76% / var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity: 1;background-color:hsl(142 65% 97% / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity: 1;background-color:hsl(157 77% 45% / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:hsl(162 86% 36% / var(--tw-bg-opacity))}.bg-grey-100{--tw-bg-opacity: 1;background-color:hsl(156 9% 89% / var(--tw-bg-opacity))}.bg-grey-50{--tw-bg-opacity: 1;background-color:hsl(180 6% 97% / var(--tw-bg-opacity))}.bg-red{--tw-bg-opacity: 1;background-color:hsl(351 85% 44% / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity: 1;background-color:hsl(351 66% 93% / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:hsl(0 0% 100% / var(--tw-bg-opacity))}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-300{--tw-bg-opacity: 1;background-color:hsl(36 100% 91% / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-grey-100{--tw-gradient-from: hsl(156, 9%, 89%) var(--tw-gradient-from-position);--tw-gradient-to: hsl(156 9% 89% / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-grey-50{--tw-gradient-to: hsl(180 6% 97% / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(180, 6%, 97%) var(--tw-gradient-via-position), var(--tw-gradient-to)}.bg-\[size\:550px\,cover\]{background-size:550px,cover}.bg-\[position\:-250px_0px\,0\]{background-position:-250px 0px,0}.fill-blue{fill:#0494b4}.fill-green-700{fill:#0b8e70}.fill-grey-700{fill:#3d4844}.fill-red{fill:#d0112d}.fill-yellow{fill:#f90}.p-16{padding:1rem}.p-32{padding:2rem}.p-8{padding:.5rem}.px-16{padding-left:1rem;padding-right:1rem}.px-24{padding-left:1.5rem;padding-right:1.5rem}.px-32{padding-left:2rem;padding-right:2rem}.px-40{padding-left:2.25rem;padding-right:2.25rem}.px-8{padding-left:.5rem;padding-right:.5rem}.px-\[2rem\]{padding-left:2rem;padding-right:2rem}.py-16{padding-top:1rem;padding-bottom:1rem}.py-24{padding-top:1.5rem;padding-bottom:1.5rem}.py-32{padding-top:2rem;padding-bottom:2rem}.py-4{padding-top:.25rem;padding-bottom:.25rem}.py-8{padding-top:.5rem;padding-bottom:.5rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-16{padding-bottom:1rem}.pb-24{padding-bottom:1.5rem}.pb-32{padding-bottom:2rem}.pb-8{padding-bottom:.5rem}.pl-16{padding-left:1rem}.pl-8{padding-left:.5rem}.pr-32{padding-right:2rem}.pr-8{padding-right:.5rem}.pr-\[3rem\]{padding-right:3rem}.pt-16{padding-top:1rem}.pt-4{padding-top:.25rem}.pt-8{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-10{line-height:2.5rem}.leading-3{line-height:.75rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-\[0px\]{line-height:0px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-blue-700{--tw-text-opacity: 1;color:hsl(199 64% 23% / var(--tw-text-opacity))}.text-green{--tw-text-opacity: 1;color:hsl(152 59% 48% / var(--tw-text-opacity))}.text-green-100{--tw-text-opacity: 1;color:hsl(148 68% 93% / var(--tw-text-opacity))}.text-green-200{--tw-text-opacity: 1;color:hsl(141 75% 76% / var(--tw-text-opacity))}.text-green-50{--tw-text-opacity: 1;color:hsl(142 65% 97% / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.text-green-600{--tw-text-opacity: 1;color:hsl(162 86% 36% / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.text-grey{--tw-text-opacity: 1;color:hsl(160 9% 32% / var(--tw-text-opacity))}.text-grey-200{--tw-text-opacity: 1;color:hsl(153 9% 81% / var(--tw-text-opacity))}.text-grey-300{--tw-text-opacity: 1;color:hsl(154 9% 64% / var(--tw-text-opacity))}.text-grey-400{--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity))}.text-grey-500{--tw-text-opacity: 1;color:hsl(157 9% 40% / var(--tw-text-opacity))}.text-grey-700{--tw-text-opacity: 1;color:hsl(158 8% 26% / var(--tw-text-opacity))}.text-grey-800{--tw-text-opacity: 1;color:hsl(160 8% 22% / var(--tw-text-opacity))}.text-grey-900{--tw-text-opacity: 1;color:hsl(154 7% 19% / var(--tw-text-opacity))}.text-red{--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:hsl(351 66% 93% / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:hsl(351 65% 24% / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity: 1;color:hsl(36 100% 30% / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner-shadow-grey{--tw-shadow: inset 0px .25rem 0px 0px hsl(180, 6%, 97%);--tw-shadow-colored: inset 0px .25rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-green{--tw-shadow: 0px .15rem 0px 0px hsl(166, 86%, 30%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-green-300{--tw-shadow: 0px .15rem 0px 0px hsl(147, 71%, 63%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-green-600-sm{--tw-shadow: 0px .2rem 0px 0px hsl(162, 86%, 36%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-grey{--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-grey-400{--tw-shadow: 0px .2rem 0px 0px hsl(155, 7%, 50%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-solid-shadow-red{--tw-shadow: 0px .15rem 0px 0px hsl(351, 85%, 44%);--tw-shadow-colored: 0px .15rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-grey-200\/40{--tw-shadow-color: hsl(153 9% 81% / .4);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: hsl(0 0% 100% / var(--tw-ring-opacity))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\@container{container-type:inline-size}@view-transition{navigation: auto; types: slide,forwards;}*,*:before,*:after{box-sizing:border-box}*{margin:0}*:focus-visible{outline:2px solid hsl(162,86%,36%)}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:pretty}p{line-height:1.5}#root,#__next{isolation:isolate}:root,:host{--fa-style-family-classic: "Font Awesome 6 Free";--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free"}.fas,.fa-solid{font-weight:900}.v-popper--theme-tooltip .v-popper__inner{border-radius:9px;font-size:14px}::-moz-selection{background-color:#50ce8d;color:#fff}::selection{background-color:#50ce8d;color:#fff}@media (prefers-reduced-motion: reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}*{animation:none!important;transition:none!important}}.placeholder\:font-thin::-moz-placeholder{font-weight:100}.placeholder\:font-thin::placeholder{font-weight:100}.hover\:top-\[-0\.2em\]:hover{top:-.2em}.hover\:border-green:hover{--tw-border-opacity: 1;border-color:hsl(152 59% 48% / var(--tw-border-opacity))}.hover\:border-green-300:hover{--tw-border-opacity: 1;border-color:hsl(147 71% 63% / var(--tw-border-opacity))}.hover\:border-green-500:hover{--tw-border-opacity: 1;border-color:hsl(157 77% 45% / var(--tw-border-opacity))}.hover\:border-red-300:hover{--tw-border-opacity: 1;border-color:hsl(351 100% 81% / var(--tw-border-opacity))}.hover\:bg-green-300:hover{--tw-bg-opacity: 1;background-color:hsl(147 71% 63% / var(--tw-bg-opacity))}.hover\:bg-green-50:hover{--tw-bg-opacity: 1;background-color:hsl(142 65% 97% / var(--tw-bg-opacity))}.hover\:bg-green-600:hover{--tw-bg-opacity: 1;background-color:hsl(162 86% 36% / var(--tw-bg-opacity))}.hover\:bg-grey-300:hover{--tw-bg-opacity: 1;background-color:hsl(154 9% 64% / var(--tw-bg-opacity))}.hover\:bg-red-300:hover{--tw-bg-opacity: 1;background-color:hsl(351 100% 81% / var(--tw-bg-opacity))}.hover\:text-blue:hover{--tw-text-opacity: 1;color:hsl(191 96% 36% / var(--tw-text-opacity))}.hover\:text-green:hover{--tw-text-opacity: 1;color:hsl(152 59% 48% / var(--tw-text-opacity))}.hover\:text-green-500:hover{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.hover\:text-green-600:hover{--tw-text-opacity: 1;color:hsl(162 86% 36% / var(--tw-text-opacity))}.hover\:text-green-800:hover{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.hover\:text-grey-200:hover{--tw-text-opacity: 1;color:hsl(153 9% 81% / var(--tw-text-opacity))}.hover\:text-grey-400:hover{--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity))}.hover\:text-red:hover{--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.hover\:text-yellow:hover{--tw-text-opacity: 1;color:hsl(36 100% 50% / var(--tw-text-opacity))}.hover\:shadow-solid-shadow-green-500-md:hover{--tw-shadow: 0px .45rem 0px 0px hsl(157, 77%, 45%);--tw-shadow-colored: 0px .45rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-green-200:focus{--tw-border-opacity: 1;border-color:hsl(141 75% 76% / var(--tw-border-opacity))}.focus\:border-green-800:focus{--tw-border-opacity: 1;border-color:hsl(169 80% 26% / var(--tw-border-opacity))}.focus\:border-grey-500:focus{--tw-border-opacity: 1;border-color:hsl(157 9% 40% / var(--tw-border-opacity))}.focus\:border-red:focus{--tw-border-opacity: 1;border-color:hsl(351 85% 44% / var(--tw-border-opacity))}.focus\:bg-green-100:focus{--tw-bg-opacity: 1;background-color:hsl(148 68% 93% / var(--tw-bg-opacity))}.focus\:bg-green-300:focus{--tw-bg-opacity: 1;background-color:hsl(147 71% 63% / var(--tw-bg-opacity))}.focus\:bg-grey-400:focus{--tw-bg-opacity: 1;background-color:hsl(155 7% 50% / var(--tw-bg-opacity))}.focus\:bg-red-300:focus{--tw-bg-opacity: 1;background-color:hsl(351 100% 81% / var(--tw-bg-opacity))}.focus\:text-blue:focus{--tw-text-opacity: 1;color:hsl(191 96% 36% / var(--tw-text-opacity))}.focus\:text-green-500:focus{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.focus\:text-green-800:focus{--tw-text-opacity: 1;color:hsl(169 80% 26% / var(--tw-text-opacity))}.focus\:text-red:focus{--tw-text-opacity: 1;color:hsl(351 85% 44% / var(--tw-text-opacity))}.focus\:text-white:focus{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.focus\:text-yellow:focus{--tw-text-opacity: 1;color:hsl(36 100% 50% / var(--tw-text-opacity))}.focus\:outline-0:focus{outline-width:0px}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: hsl(157 77% 45% / var(--tw-ring-opacity))}.focus\:ring-green-600:focus{--tw-ring-opacity: 1;--tw-ring-color: hsl(162 86% 36% / var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:border-none:focus-visible{border-style:none}.focus-visible\:border-green-800:focus-visible{--tw-border-opacity: 1;border-color:hsl(169 80% 26% / var(--tw-border-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-0:focus-visible{outline-width:0px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-green-800:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: hsl(169 80% 26% / var(--tw-ring-opacity))}.active\:top-\[0\.15rem\]:active{top:.15rem}.active\:border-green-500:active{--tw-border-opacity: 1;border-color:hsl(157 77% 45% / var(--tw-border-opacity))}.active\:text-white:active{--tw-text-opacity: 1;color:hsl(0 0% 100% / var(--tw-text-opacity))}.active\:shadow-none:active{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:border-grey-300:disabled{--tw-border-opacity: 1;border-color:hsl(154 9% 64% / var(--tw-border-opacity))}.disabled\:bg-grey-200:disabled{--tw-bg-opacity: 1;background-color:hsl(153 9% 81% / var(--tw-bg-opacity))}.disabled\:text-grey-400:disabled{--tw-text-opacity: 1;color:hsl(155 7% 50% / var(--tw-text-opacity))}.disabled\:shadow-solid-shadow-grey:disabled{--tw-shadow: 0px .2rem 0px 0px hsl(153, 9%, 81%);--tw-shadow-colored: 0px .2rem 0px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:fill-red{fill:#d0112d}.group:hover .group-hover\:text-green-500{--tw-text-opacity: 1;color:hsl(157 77% 45% / var(--tw-text-opacity))}.group:hover .group-hover\:opacity-100{opacity:1}.group:focus .group-focus\:fill-red{fill:#d0112d}.group:active .group-active\:fill-red{fill:#d0112d}@container (min-width: 20rem){.\@xs\:block{display:block}}@container (min-width: 24rem){.\@sm\:block{display:block}.\@sm\:aspect-\[4\/1\]{aspect-ratio:4/1}.\@sm\:grid-cols-\[2fr_3fr_1fr\]{grid-template-columns:2fr 3fr 1fr}.\@sm\:grid-rows-\[2fr\]{grid-template-rows:2fr}.\@sm\:items-center{align-items:center}.\@sm\:justify-center{justify-content:center}.\@sm\:self-center{align-self:center}.\@sm\:bg-\[size\:550px\,cover\]{background-size:550px,cover}.\@sm\:bg-\[position\:-200px_-100px\,0\]{background-position:-200px -100px,0}}@container (min-width: 28rem){.\@md\:relative{position:relative}.\@md\:h-\[180px\]{height:180px}}@media (prefers-reduced-motion: reduce){.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:hover\:transform-none:hover{transform:none}}@media (min-width: 640px){.sm\:m-8{margin:.5rem}.sm\:ml-0{margin-left:0}.sm\:mt-0{margin-top:0}.sm\:mt-16{margin-top:1rem}.sm\:mt-40{margin-top:2.25rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-16{height:1rem}.sm\:h-40{height:2.25rem}.sm\:h-\[5rem\]{height:5rem}.sm\:w-16{width:1rem}.sm\:w-\[5rem\]{width:5rem}.sm\:w-\[8rem\]{width:8rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-\[50vw\]{max-width:50vw}.sm\:max-w-full{max-width:100%}.sm\:grid-cols-\[1fr_1fr_1fr\]{grid-template-columns:1fr 1fr 1fr}.sm\:grid-cols-\[1fr_5fr\]{grid-template-columns:1fr 5fr}.sm\:grid-cols-\[3fr_1fr_3fr_1fr_3fr\]{grid-template-columns:3fr 1fr 3fr 1fr 3fr}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-center{justify-content:center}.sm\:self-center{align-self:center}.sm\:p-16{padding:1rem}.sm\:px-16{padding-left:1rem;padding-right:1rem}.sm\:px-24{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-32{padding-left:2rem;padding-right:2rem}.sm\:px-40{padding-left:2.25rem;padding-right:2.25rem}.sm\:px-8{padding-left:.5rem;padding-right:.5rem}.sm\:py-40{padding-top:2.25rem;padding-bottom:2.25rem}.sm\:text-center{text-align:center}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:relative{position:relative}.md\:left-\[0px\]{left:0}.md\:top-\[0px\]{top:0}.md\:mx-32{margin-left:2rem;margin-right:2rem}.md\:mx-\[10svw\]{margin-left:10svw;margin-right:10svw}.md\:ml-32{margin-left:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\[40svh\]{height:40svh}.md\:h-\[45svh\]{height:45svh}.md\:max-h-\[70svh\]{max-height:70svh}.md\:w-\[100\%\]{width:100%}.md\:w-\[15vw\]{width:15vw}.md\:w-\[60vw\]{width:60vw}.md\:w-\[90\%\]{width:90%}.md\:max-w-\[50vw\]{max-width:50vw}.md\:max-w-\[80svw\]{max-width:80svw}.md\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.md\:flex-row{flex-direction:row}.md\:gap-16{gap:1rem}.md\:self-center{align-self:center}.md\:overflow-scroll{overflow:scroll}.md\:rounded-3xl{border-radius:1.5rem}.md\:bg-grey-50{--tw-bg-opacity: 1;background-color:hsl(180 6% 97% / var(--tw-bg-opacity))}.md\:p-16{padding:1rem}.md\:p-32{padding:2rem}.md\:px-32{padding-left:2rem;padding-right:2rem}}@media (min-width: 1024px){.lg\:w-\[50vw\]{width:50vw}.lg\:w-\[70\%\]{width:70%}.lg\:w-\[80\%\]{width:80%}.lg\:max-w-screen-2xl{max-width:1536px}.lg\:gap-x-32{-moz-column-gap:2rem;column-gap:2rem}.lg\:px-32{padding-left:2rem;padding-right:2rem}}@media (min-width: 1280px){.xl\:w-\[80\%\]{width:80%}}.\[\&\:not\(\:last-child\)\]\:border-b:not(:last-child){border-bottom-width:1px}
diff --git a/frontend_vue/dist/assets/inyoni-DJS06UAU.gif b/frontend_vue/dist/assets/inyoni-DJS06UAU.gif
deleted file mode 100644
index 506ebae7b..000000000
Binary files a/frontend_vue/dist/assets/inyoni-DJS06UAU.gif and /dev/null differ
diff --git a/frontend_vue/dist/assets/kubeconfig-C2qGaIas.png b/frontend_vue/dist/assets/kubeconfig-C2qGaIas.png
deleted file mode 100644
index a50bf3425..000000000
Binary files a/frontend_vue/dist/assets/kubeconfig-C2qGaIas.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/log4shell-C3-pc2E5.png b/frontend_vue/dist/assets/log4shell-C3-pc2E5.png
deleted file mode 100644
index fca02b4b1..000000000
Binary files a/frontend_vue/dist/assets/log4shell-C3-pc2E5.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/logo_footer-7rrKhBnT.svg b/frontend_vue/dist/assets/logo_footer-7rrKhBnT.svg
deleted file mode 100644
index d324e9cf5..000000000
Binary files a/frontend_vue/dist/assets/logo_footer-7rrKhBnT.svg and /dev/null differ
diff --git a/frontend_vue/dist/assets/map-cluster-pin-CyvZXkJ2.png b/frontend_vue/dist/assets/map-cluster-pin-CyvZXkJ2.png
deleted file mode 100644
index fc521bea8..000000000
Binary files a/frontend_vue/dist/assets/map-cluster-pin-CyvZXkJ2.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/map-pin-C8ux4V4Q.png b/frontend_vue/dist/assets/map-pin-C8ux4V4Q.png
deleted file mode 100644
index 00bb9c395..000000000
Binary files a/frontend_vue/dist/assets/map-pin-C8ux4V4Q.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/map_placeholder-Bdhyrldc.png b/frontend_vue/dist/assets/map_placeholder-Bdhyrldc.png
deleted file mode 100644
index 630c650e6..000000000
Binary files a/frontend_vue/dist/assets/map_placeholder-Bdhyrldc.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/ms_excel-B3nPS8aN.png b/frontend_vue/dist/assets/ms_excel-B3nPS8aN.png
deleted file mode 100644
index 9c00c0779..000000000
Binary files a/frontend_vue/dist/assets/ms_excel-B3nPS8aN.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/ms_word-D59G20XS.png b/frontend_vue/dist/assets/ms_word-D59G20XS.png
deleted file mode 100644
index 7c39db5fa..000000000
Binary files a/frontend_vue/dist/assets/ms_word-D59G20XS.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/my_sql-Dsaj1Kic.png b/frontend_vue/dist/assets/my_sql-Dsaj1Kic.png
deleted file mode 100644
index 8f693af50..000000000
Binary files a/frontend_vue/dist/assets/my_sql-Dsaj1Kic.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/open-sans-v40-latin-500-CDvJACdq.woff2 b/frontend_vue/dist/assets/open-sans-v40-latin-500-CDvJACdq.woff2
deleted file mode 100644
index a35be30df..000000000
Binary files a/frontend_vue/dist/assets/open-sans-v40-latin-500-CDvJACdq.woff2 and /dev/null differ
diff --git a/frontend_vue/dist/assets/open-sans-v40-latin-600-Dhnuc7ye.woff2 b/frontend_vue/dist/assets/open-sans-v40-latin-600-Dhnuc7ye.woff2
deleted file mode 100644
index f67ef002a..000000000
Binary files a/frontend_vue/dist/assets/open-sans-v40-latin-600-Dhnuc7ye.woff2 and /dev/null differ
diff --git a/frontend_vue/dist/assets/open-sans-v40-latin-700-C2okHfb_.woff2 b/frontend_vue/dist/assets/open-sans-v40-latin-700-C2okHfb_.woff2
deleted file mode 100644
index 7e3b8b0da..000000000
Binary files a/frontend_vue/dist/assets/open-sans-v40-latin-700-C2okHfb_.woff2 and /dev/null differ
diff --git a/frontend_vue/dist/assets/open-sans-v40-latin-regular-Cjao0ETp.woff2 b/frontend_vue/dist/assets/open-sans-v40-latin-regular-Cjao0ETp.woff2
deleted file mode 100644
index eaae94217..000000000
Binary files a/frontend_vue/dist/assets/open-sans-v40-latin-regular-Cjao0ETp.woff2 and /dev/null differ
diff --git a/frontend_vue/dist/assets/qr_code-CbHbRrRX.png b/frontend_vue/dist/assets/qr_code-CbHbRrRX.png
deleted file mode 100644
index 9f76daf21..000000000
Binary files a/frontend_vue/dist/assets/qr_code-CbHbRrRX.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/s3_bucket-D3VWektt.png b/frontend_vue/dist/assets/s3_bucket-D3VWektt.png
deleted file mode 100644
index 4306f994f..000000000
Binary files a/frontend_vue/dist/assets/s3_bucket-D3VWektt.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/signed_exe-DyxGM-j3.png b/frontend_vue/dist/assets/signed_exe-DyxGM-j3.png
deleted file mode 100644
index f67f45bb4..000000000
Binary files a/frontend_vue/dist/assets/signed_exe-DyxGM-j3.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/slow_redirect-Ci7pxVc7.png b/frontend_vue/dist/assets/slow_redirect-Ci7pxVc7.png
deleted file mode 100644
index 35ba7a80e..000000000
Binary files a/frontend_vue/dist/assets/slow_redirect-Ci7pxVc7.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/smtp-CA6Wsb0_.png b/frontend_vue/dist/assets/smtp-CA6Wsb0_.png
deleted file mode 100644
index bea728df1..000000000
Binary files a/frontend_vue/dist/assets/smtp-CA6Wsb0_.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/sql_server-R7yHcuyG.png b/frontend_vue/dist/assets/sql_server-R7yHcuyG.png
deleted file mode 100644
index 4c916f7e4..000000000
Binary files a/frontend_vue/dist/assets/sql_server-R7yHcuyG.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/svn-D5r4JXEw.png b/frontend_vue/dist/assets/svn-D5r4JXEw.png
deleted file mode 100644
index ff7fa3ebb..000000000
Binary files a/frontend_vue/dist/assets/svn-D5r4JXEw.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/thinkst_canary_logo-BqFSwnuO.png b/frontend_vue/dist/assets/thinkst_canary_logo-BqFSwnuO.png
deleted file mode 100644
index 59ae89294..000000000
Binary files a/frontend_vue/dist/assets/thinkst_canary_logo-BqFSwnuO.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/web-CYHNWdqG.png b/frontend_vue/dist/assets/web-CYHNWdqG.png
deleted file mode 100644
index 09482f217..000000000
Binary files a/frontend_vue/dist/assets/web-CYHNWdqG.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/web_image-Dc89Wt4u.png b/frontend_vue/dist/assets/web_image-Dc89Wt4u.png
deleted file mode 100644
index 7e50227c8..000000000
Binary files a/frontend_vue/dist/assets/web_image-Dc89Wt4u.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/windows_dir-CJYoELo3.png b/frontend_vue/dist/assets/windows_dir-CJYoELo3.png
deleted file mode 100644
index ecd884ec1..000000000
Binary files a/frontend_vue/dist/assets/windows_dir-CJYoELo3.png and /dev/null differ
diff --git a/frontend_vue/dist/assets/wireguard-D6oolZ74.png b/frontend_vue/dist/assets/wireguard-D6oolZ74.png
deleted file mode 100644
index 8541d8681..000000000
Binary files a/frontend_vue/dist/assets/wireguard-D6oolZ74.png and /dev/null differ
diff --git a/frontend_vue/dist/favicon.ico b/frontend_vue/dist/favicon.ico
deleted file mode 100644
index 43c487c61..000000000
Binary files a/frontend_vue/dist/favicon.ico and /dev/null differ
diff --git a/frontend_vue/dist/index.html b/frontend_vue/dist/index.html
deleted file mode 100644
index 3d3e11e88..000000000
--- a/frontend_vue/dist/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-