From 2ec5eb419c01157811eb7ce0c478c9435241c506 Mon Sep 17 00:00:00 2001 From: sguruvar Date: Mon, 11 Nov 2024 17:02:47 +0000 Subject: [PATCH] deploy: b735f026db5456fb09605b5400f6e92c645dfb90 --- 404.html | 4 ++-- assets/js/443ce032.7b6a1510.js | 1 - assets/js/443ce032.eabb9af2.js | 1 + assets/js/{main.eb82ccfd.js => main.c3658655.js} | 4 ++-- ...eb82ccfd.js.LICENSE.txt => main.c3658655.js.LICENSE.txt} | 0 .../{runtime~main.4bafbd72.js => runtime~main.4215ee0f.js} | 2 +- blog/archive/index.html | 4 ++-- blog/index.html | 4 ++-- blog/welcome/index.html | 4 ++-- contributors/index.html | 4 ++-- faq/adot/index.html | 4 ++-- faq/amg/index.html | 4 ++-- faq/amp/index.html | 4 ++-- faq/cloudwatch/index.html | 4 ++-- faq/index.html | 4 ++-- faq/x-ray/index.html | 4 ++-- guides/apm/index.html | 4 ++-- guides/choosing-a-tracing-agent/index.html | 4 ++-- .../ecs/best-practices-metrics-collection-1/index.html | 4 ++-- .../ecs/best-practices-metrics-collection-2/index.html | 4 ++-- .../containers/aws-native/ecs/cost-optimization/index.html | 4 ++-- .../aws-native/ecs/resource-optimization/index.html | 4 ++-- .../eks/amazon-cloudwatch-container-insights/index.html | 4 ++-- .../eks/container-tracing-with-aws-xray/index.html | 4 ++-- .../aws-native/eks/eks-api-server-monitoring/index.html | 4 ++-- guides/containers/aws-native/eks/log-aggregation/index.html | 4 ++-- .../oss/ecs/best-practices-metrics-collection-1/index.html | 4 ++-- .../oss/ecs/best-practices-metrics-collection-2/index.html | 4 ++-- .../oss/ecs/best-practices-metrics-collection/index.html | 4 ++-- .../oss/eks/best-practices-metrics-collection/index.html | 4 ++-- guides/containers/oss/eks/cost-optimization/index.html | 4 ++-- guides/containers/oss/eks/keda-amp-eks/index.html | 4 ++-- guides/containers/oss/eks/resource-optimization/index.html | 4 ++-- guides/cost/OLA-EC2-righsizing/index.html | 4 ++-- .../AmazonManagedServiceforPrometheus/index.html | 4 ++-- guides/cost/cost-visualization/amazon-cloudwatch/index.html | 4 ++-- guides/cost/cost-visualization/amazon-grafana/index.html | 4 ++-- guides/cost/cost-visualization/amazon-prometheus/index.html | 4 ++-- guides/cost/cost-visualization/aws-xray/index.html | 4 ++-- guides/cost/cost-visualization/cost/index.html | 4 ++-- guides/cost/cost-visualization/reducing-cw-cost/index.html | 4 ++-- guides/cost/kubecost/index.html | 4 ++-- guides/dashboards/index.html | 4 ++-- guides/databases/rds-and-aurora/index.html | 4 ++-- guides/ec2-monitoring/index.html | 4 ++-- guides/full-stack/index.html | 4 ++-- guides/hybrid-and-multicloud/index.html | 4 ++-- guides/index.html | 4 ++-- guides/observability-maturity-model/index.html | 4 ++-- .../operational/adot-at-scale/adot-java-spring/index.html | 4 ++-- .../adot-at-scale/operating-adot-collector/index.html | 4 ++-- guides/operational/alerting/amp-alertmgr/index.html | 4 ++-- guides/operational/alerts/amg-alerts/index.html | 4 ++-- guides/operational/alerts/cw-alarms/index.html | 4 ++-- guides/operational/alerts/prometheus-alerts/index.html | 4 ++-- .../business/key-performance-indicators/index.html | 4 ++-- .../business/monitoring-for-business-outcomes/index.html | 4 ++-- guides/operational/business/sla-percentile/index.html | 4 ++-- guides/operational/gitops-with-amg/index.html | 4 ++-- guides/operational/observability-driven-dev/index.html | 4 ++-- guides/partners/databricks/index.html | 4 ++-- guides/rust-custom-metrics/index.html | 4 ++-- .../aws-native/lambda-based-observability/index.html | 4 ++-- .../oss/lambda-based-observability-adot/index.html | 6 +++--- guides/signal-collection/emf/index.html | 4 ++-- guides/signal-correlation/how-does-it-work/index.html | 4 ++-- guides/strategy/index.html | 4 ++-- home/index.html | 4 ++-- index.html | 4 ++-- intro/index.html | 4 ++-- ja/404.html | 2 +- ja/assets/js/{main.ca3648d3.js => main.483e479a.js} | 4 ++-- ...ca3648d3.js.LICENSE.txt => main.483e479a.js.LICENSE.txt} | 0 ja/blog/archive/index.html | 2 +- ja/blog/index.html | 2 +- ja/blog/welcome/index.html | 2 +- ja/contributors/index.html | 2 +- ja/faq/adot/index.html | 2 +- ja/faq/amg/index.html | 2 +- ja/faq/amp/index.html | 2 +- ja/faq/cloudwatch/index.html | 2 +- ja/faq/index.html | 2 +- ja/faq/x-ray/index.html | 2 +- ja/guides/apm/index.html | 2 +- ja/guides/choosing-a-tracing-agent/index.html | 2 +- .../ecs/best-practices-metrics-collection-1/index.html | 2 +- .../ecs/best-practices-metrics-collection-2/index.html | 2 +- .../containers/aws-native/ecs/cost-optimization/index.html | 2 +- .../aws-native/ecs/resource-optimization/index.html | 2 +- .../eks/amazon-cloudwatch-container-insights/index.html | 2 +- .../eks/container-tracing-with-aws-xray/index.html | 2 +- .../aws-native/eks/eks-api-server-monitoring/index.html | 2 +- .../containers/aws-native/eks/log-aggregation/index.html | 2 +- .../oss/ecs/best-practices-metrics-collection-1/index.html | 2 +- .../oss/ecs/best-practices-metrics-collection-2/index.html | 2 +- .../oss/ecs/best-practices-metrics-collection/index.html | 2 +- .../oss/eks/best-practices-metrics-collection/index.html | 2 +- ja/guides/containers/oss/eks/cost-optimization/index.html | 2 +- ja/guides/containers/oss/eks/keda-amp-eks/index.html | 2 +- .../containers/oss/eks/resource-optimization/index.html | 2 +- ja/guides/cost/OLA-EC2-righsizing/index.html | 2 +- .../AmazonManagedServiceforPrometheus/index.html | 2 +- .../cost/cost-visualization/amazon-cloudwatch/index.html | 2 +- ja/guides/cost/cost-visualization/amazon-grafana/index.html | 2 +- .../cost/cost-visualization/amazon-prometheus/index.html | 2 +- ja/guides/cost/cost-visualization/aws-xray/index.html | 2 +- ja/guides/cost/cost-visualization/cost/index.html | 2 +- .../cost/cost-visualization/reducing-cw-cost/index.html | 2 +- ja/guides/cost/kubecost/index.html | 2 +- ja/guides/dashboards/index.html | 2 +- ja/guides/databases/rds-and-aurora/index.html | 2 +- ja/guides/ec2-monitoring/index.html | 2 +- ja/guides/full-stack/index.html | 2 +- ja/guides/hybrid-and-multicloud/index.html | 2 +- ja/guides/index.html | 2 +- ja/guides/observability-maturity-model/index.html | 2 +- .../operational/adot-at-scale/adot-java-spring/index.html | 2 +- .../adot-at-scale/operating-adot-collector/index.html | 2 +- ja/guides/operational/alerting/amp-alertmgr/index.html | 2 +- ja/guides/operational/alerts/amg-alerts/index.html | 2 +- ja/guides/operational/alerts/cw-alarms/index.html | 2 +- ja/guides/operational/alerts/prometheus-alerts/index.html | 2 +- .../business/key-performance-indicators/index.html | 2 +- .../business/monitoring-for-business-outcomes/index.html | 2 +- ja/guides/operational/business/sla-percentile/index.html | 2 +- ja/guides/operational/gitops-with-amg/index.html | 2 +- ja/guides/operational/observability-driven-dev/index.html | 2 +- ja/guides/partners/databricks/index.html | 2 +- ja/guides/rust-custom-metrics/index.html | 2 +- .../aws-native/lambda-based-observability/index.html | 2 +- .../oss/lambda-based-observability-adot/index.html | 2 +- ja/guides/signal-collection/emf/index.html | 2 +- ja/guides/signal-correlation/how-does-it-work/index.html | 2 +- ja/guides/strategy/index.html | 2 +- ja/home/index.html | 2 +- ja/index.html | 2 +- ja/intro/index.html | 2 +- ja/markdown-page/index.html | 2 +- ja/patterns/Tracing/xrayec2/index.html | 2 +- ja/patterns/Tracing/xrayecs/index.html | 2 +- ja/patterns/Tracing/xrayeks/index.html | 2 +- ja/patterns/Tracing/xraylambda/index.html | 2 +- ja/patterns/adoteksfargate/index.html | 2 +- ja/patterns/ampagentless/index.html | 2 +- ja/patterns/apmappsignals/index.html | 2 +- ja/patterns/ecsampamg/index.html | 2 +- ja/patterns/eksampamg/index.html | 2 +- ja/patterns/lambdalogging/index.html | 2 +- ja/patterns/multiaccount/index.html | 2 +- ja/patterns/multiaccountoss/index.html | 2 +- ja/patterns/o11ypipeline/index.html | 2 +- ja/patterns/opensearch/index.html | 2 +- ja/patterns/otel/index.html | 2 +- ja/patterns/sparkbigdata/index.html | 2 +- ja/patterns/vpcflowlogs/index.html | 2 +- ja/recipes/aes/index.html | 2 +- ja/recipes/alerting/index.html | 2 +- ja/recipes/amg/index.html | 2 +- ja/recipes/amp/index.html | 2 +- ja/recipes/anomaly-detection/index.html | 2 +- ja/recipes/apprunner/index.html | 2 +- ja/recipes/cw/index.html | 2 +- ja/recipes/dimensions/index.html | 2 +- ja/recipes/dynamodb/index.html | 2 +- ja/recipes/ecs/index.html | 2 +- ja/recipes/eks/index.html | 2 +- ja/recipes/index.html | 2 +- ja/recipes/infra/index.html | 2 +- ja/recipes/java/index.html | 2 +- ja/recipes/lambda/index.html | 2 +- ja/recipes/msk/index.html | 2 +- ja/recipes/nodejs/index.html | 2 +- ja/recipes/rds/index.html | 2 +- ja/recipes/recipes/Workspaces-Monitoring-AMP-AMG/index.html | 2 +- ja/recipes/recipes/amg-athena-plugin/index.html | 2 +- ja/recipes/recipes/amg-automation-tf/index.html | 2 +- ja/recipes/recipes/amg-google-auth-saml/index.html | 2 +- ja/recipes/recipes/amg-redshift-plugin/index.html | 2 +- ja/recipes/recipes/amp-alertmanager-terraform/index.html | 2 +- ja/recipes/recipes/amp-mixin-dashboards/index.html | 2 +- .../recipes/as-ec2-using-amp-and-alertmanager/index.html | 2 +- .../recipes/ec2-eks-metrics-go-adot-ampamg/index.html | 2 +- .../recipes/fargate-eks-metrics-go-adot-ampamg/index.html | 2 +- ja/recipes/recipes/fargate-eks-xray-go-adot-amg/index.html | 2 +- ja/recipes/recipes/lambda-cw-metrics-go-amp/index.html | 2 +- .../recipes/metrics-explorer-filter-by-tags/index.html | 2 +- ja/recipes/recipes/monitoring-hybridenv-amg/index.html | 2 +- ja/recipes/recipes/servicemesh-monitoring-ampamg/index.html | 2 +- ja/recipes/telemetry/index.html | 2 +- ja/recipes/troubleshooting/index.html | 2 +- ja/recipes/workshops/index.html | 2 +- ja/search-index.json | 2 +- ja/search/index.html | 2 +- ja/signals/alarms/index.html | 2 +- ja/signals/anomalies/index.html | 2 +- ja/signals/events/index.html | 2 +- ja/signals/logs/index.html | 2 +- ja/signals/metrics/index.html | 2 +- ja/signals/traces/index.html | 2 +- ja/tools/adot-traces/index.html | 2 +- ja/tools/alarms/index.html | 2 +- ja/tools/alerting_and_incident_management/index.html | 2 +- ja/tools/amp/index.html | 2 +- ja/tools/application-signals/kotlin-signals/index.html | 2 +- ja/tools/cloudwatch-dashboard/index.html | 2 +- ja/tools/cloudwatch_agent/index.html | 2 +- ja/tools/collector-arch/index.html | 2 +- ja/tools/dashboards/index.html | 2 +- ja/tools/emf/index.html | 2 +- ja/tools/internet_monitor/index.html | 2 +- .../logs/dataprotection/data-protection-policies/index.html | 2 +- ja/tools/logs/index.html | 2 +- ja/tools/logs/logs-insights-examples/index.html | 2 +- ja/tools/metrics/index.html | 2 +- ja/tools/observability_accelerator/index.html | 2 +- ja/tools/rum/index.html | 2 +- ja/tools/slos/index.html | 2 +- ja/tools/synthetics/index.html | 2 +- ja/tools/xray/index.html | 2 +- ja/tutorial-basics/congratulations/index.html | 2 +- ja/tutorial-basics/create-a-blog-post/index.html | 2 +- ja/tutorial-basics/create-a-document/index.html | 2 +- ja/tutorial-basics/create-a-page/index.html | 2 +- ja/tutorial-basics/deploy-your-site/index.html | 2 +- ja/tutorial-extras/manage-docs-versions/index.html | 2 +- ja/tutorial-extras/translate-your-site/index.html | 2 +- markdown-page/index.html | 4 ++-- patterns/Tracing/xrayec2/index.html | 4 ++-- patterns/Tracing/xrayecs/index.html | 4 ++-- patterns/Tracing/xrayeks/index.html | 4 ++-- patterns/Tracing/xraylambda/index.html | 4 ++-- patterns/adoteksfargate/index.html | 4 ++-- patterns/ampagentless/index.html | 4 ++-- patterns/apmappsignals/index.html | 4 ++-- patterns/ecsampamg/index.html | 4 ++-- patterns/eksampamg/index.html | 4 ++-- patterns/lambdalogging/index.html | 4 ++-- patterns/multiaccount/index.html | 4 ++-- patterns/multiaccountoss/index.html | 4 ++-- patterns/o11ypipeline/index.html | 4 ++-- patterns/opensearch/index.html | 4 ++-- patterns/otel/index.html | 4 ++-- patterns/sparkbigdata/index.html | 4 ++-- patterns/vpcflowlogs/index.html | 4 ++-- recipes/aes/index.html | 4 ++-- recipes/alerting/index.html | 4 ++-- recipes/amg/index.html | 4 ++-- recipes/amp/index.html | 4 ++-- recipes/anomaly-detection/index.html | 4 ++-- recipes/apprunner/index.html | 4 ++-- recipes/cw/index.html | 4 ++-- recipes/dimensions/index.html | 4 ++-- recipes/dynamodb/index.html | 4 ++-- recipes/ecs/index.html | 4 ++-- recipes/eks/index.html | 4 ++-- recipes/index.html | 4 ++-- recipes/infra/index.html | 4 ++-- recipes/java/index.html | 4 ++-- recipes/lambda/index.html | 4 ++-- recipes/msk/index.html | 4 ++-- recipes/nodejs/index.html | 4 ++-- recipes/rds/index.html | 4 ++-- recipes/recipes/Workspaces-Monitoring-AMP-AMG/index.html | 4 ++-- recipes/recipes/amg-athena-plugin/index.html | 4 ++-- recipes/recipes/amg-automation-tf/index.html | 4 ++-- recipes/recipes/amg-google-auth-saml/index.html | 4 ++-- recipes/recipes/amg-redshift-plugin/index.html | 4 ++-- recipes/recipes/amp-alertmanager-terraform/index.html | 4 ++-- recipes/recipes/amp-mixin-dashboards/index.html | 4 ++-- .../recipes/as-ec2-using-amp-and-alertmanager/index.html | 4 ++-- recipes/recipes/ec2-eks-metrics-go-adot-ampamg/index.html | 4 ++-- .../recipes/fargate-eks-metrics-go-adot-ampamg/index.html | 4 ++-- recipes/recipes/fargate-eks-xray-go-adot-amg/index.html | 4 ++-- recipes/recipes/lambda-cw-metrics-go-amp/index.html | 4 ++-- recipes/recipes/metrics-explorer-filter-by-tags/index.html | 4 ++-- recipes/recipes/monitoring-hybridenv-amg/index.html | 4 ++-- recipes/recipes/servicemesh-monitoring-ampamg/index.html | 4 ++-- recipes/telemetry/index.html | 4 ++-- recipes/troubleshooting/index.html | 4 ++-- recipes/workshops/index.html | 4 ++-- search-index.json | 2 +- search/index.html | 4 ++-- signals/alarms/index.html | 4 ++-- signals/anomalies/index.html | 4 ++-- signals/events/index.html | 4 ++-- signals/logs/index.html | 4 ++-- signals/metrics/index.html | 4 ++-- signals/traces/index.html | 4 ++-- tools/adot-traces/index.html | 4 ++-- tools/alarms/index.html | 4 ++-- tools/alerting_and_incident_management/index.html | 4 ++-- tools/amp/index.html | 4 ++-- tools/application-signals/kotlin-signals/index.html | 4 ++-- tools/cloudwatch-dashboard/index.html | 4 ++-- tools/cloudwatch_agent/index.html | 4 ++-- tools/collector-arch/index.html | 4 ++-- tools/dashboards/index.html | 4 ++-- tools/emf/index.html | 4 ++-- tools/internet_monitor/index.html | 4 ++-- .../logs/dataprotection/data-protection-policies/index.html | 4 ++-- tools/logs/index.html | 4 ++-- tools/logs/logs-insights-examples/index.html | 4 ++-- tools/metrics/index.html | 4 ++-- tools/observability_accelerator/index.html | 4 ++-- tools/rum/index.html | 4 ++-- tools/slos/index.html | 4 ++-- tools/synthetics/index.html | 4 ++-- tools/xray/index.html | 4 ++-- tutorial-basics/congratulations/index.html | 4 ++-- tutorial-basics/create-a-blog-post/index.html | 4 ++-- tutorial-basics/create-a-document/index.html | 4 ++-- tutorial-basics/create-a-page/index.html | 4 ++-- tutorial-basics/deploy-your-site/index.html | 4 ++-- tutorial-extras/manage-docs-versions/index.html | 4 ++-- tutorial-extras/translate-your-site/index.html | 4 ++-- 315 files changed, 468 insertions(+), 468 deletions(-) delete mode 100644 assets/js/443ce032.7b6a1510.js create mode 100644 assets/js/443ce032.eabb9af2.js rename assets/js/{main.eb82ccfd.js => main.c3658655.js} (99%) rename assets/js/{main.eb82ccfd.js.LICENSE.txt => main.c3658655.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.4bafbd72.js => runtime~main.4215ee0f.js} (99%) rename ja/assets/js/{main.ca3648d3.js => main.483e479a.js} (99%) rename ja/assets/js/{main.ca3648d3.js.LICENSE.txt => main.483e479a.js.LICENSE.txt} (100%) diff --git a/404.html b/404.html index 65e6cbf61..e3699345b 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ AWS Observability Best Practices - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

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

diff --git a/assets/js/443ce032.7b6a1510.js b/assets/js/443ce032.7b6a1510.js deleted file mode 100644 index 73873ab05..000000000 --- a/assets/js/443ce032.7b6a1510.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkobservability_best_practices=self.webpackChunkobservability_best_practices||[]).push([[5109],{53212:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var o=n(74848),a=n(28453);const r={},s="AWS Lambda based Serverless Observability with OpenTelemetry",i={id:"guides/serverless/oss/lambda-based-observability-adot",title:"AWS Lambda based Serverless Observability with OpenTelemetry",description:"This guide covers the best practices on configuring observability for Lambda based serverless applications using managed open-source tools and technologies together with the native AWS monitoring services such as AWS X-Ray, and Amazon CloudWatch. We will cover tools such as AWS Distro for OpenTelemetry (ADOT), AWS X-Ray, and Amazon Managed Service for Prometheus (AMP) and how you can use these tools to gain actionable insights into your serverless applications, troubleshoot issues, and optimize application performance.",source:"@site/docs/guides/serverless/oss/lambda-based-observability-adot.md",sourceDirName:"guides/serverless/oss",slug:"/guides/serverless/oss/lambda-based-observability-adot",permalink:"/observability-best-practices/guides/serverless/oss/lambda-based-observability-adot",draft:!1,unlisted:!1,editUrl:"https://github.com/aws-observability/observability-best-practices/blob/main/docusaurus/docs/guides/serverless/oss/lambda-based-observability-adot.md",tags:[],version:"current",frontMatter:{},sidebar:"guides",previous:{title:"AWS Lambda based Serverless Observability",permalink:"/observability-best-practices/guides/serverless/aws-native/lambda-based-observability"},next:{title:"Best practices for hybrid and multicloud",permalink:"/observability-best-practices/guides/hybrid-and-multicloud"}},l={},c=[{value:"Key topics covered",id:"key-topics-covered",level:2},{value:"Introduction to AWS Distro for OpenTelemetry (ADOT)",id:"introduction-to-aws-distro-for-opentelemetry-adot",level:2},{value:"Auto-instrumentation using ADOT Lambda Layer with AWS Lambda",id:"auto-instrumentation-using-adot-lambda-layer-with-aws-lambda",level:2},{value:"Custom configuration support for ADOT Collector",id:"custom-configuration-support-for-adot-collector",level:2},{value:"Integration with Amazon Managed Service for Prometheus (AMP)",id:"integration-with-amazon-managed-service-for-prometheus-amp",level:2},{value:"Pros and Cons of using ADOT Lambda Layer",id:"pros-and-cons-of-using-adot-lambda-layer",level:2},{value:"Managing cold start latency when using ADOT",id:"managing-cold-start-latency-when-using-adot",level:2},{value:"Additional Resources",id:"additional-resources",level:2},{value:"Summary",id:"summary",level:2}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"aws-lambda-based-serverless-observability-with-opentelemetry",children:"AWS Lambda based Serverless Observability with OpenTelemetry"}),"\n",(0,o.jsxs)(t.p,{children:["This guide covers the best practices on configuring observability for Lambda based serverless applications using managed open-source tools and technologies together with the native AWS monitoring services such as AWS X-Ray, and Amazon CloudWatch. We will cover tools such as ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"}),", ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/xray",children:"AWS X-Ray"}),", and ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/prometheus/",children:"Amazon Managed Service for Prometheus (AMP)"})," and how you can use these tools to gain actionable insights into your serverless applications, troubleshoot issues, and optimize application performance."]}),"\n",(0,o.jsx)(t.h2,{id:"key-topics-covered",children:(0,o.jsx)(t.strong,{children:"Key topics covered"})}),"\n",(0,o.jsx)(t.p,{children:"In this section of the observability best practices guide, we will deep dive on to following topics:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Introduction to AWS Distro for OpenTelemetry (ADOT) and ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Auto-instrumentation Lambda function using ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Custom configuration support for ADOT Collector"}),"\n",(0,o.jsx)(t.li,{children:"Integration with Amazon Managed Service for Prometheus (AMP)"}),"\n",(0,o.jsx)(t.li,{children:"Pros and cons of using ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Managing cold start latency when using ADOT"}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"introduction-to-aws-distro-for-opentelemetry-adot",children:(0,o.jsx)(t.strong,{children:"Introduction to AWS Distro for OpenTelemetry (ADOT)"})}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"})," is a secure, production-ready, AWS-supported distribution of the Cloud Native Computing Foundation (CNCF) ",(0,o.jsx)(t.a,{href:"https://opentelemetry.io/",children:"OpenTelemetry (OTel)"})," project. Using ADOT, you can instrument your applications just once and send correlated metrics and traces to multiple monitoring solutions."]}),"\n",(0,o.jsxs)(t.p,{children:["AWS's managed ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"OpenTelemetry Lambda Layer"})," utilizes ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-lambda",children:"OpenTelemetry Lambda Layer"})," to export telemetry data asynchronously from AWS Lambda. It provides plug-and-play user experience by wrapping an AWS Lambda function, and by packaging the OpenTelemetry runtime specific SDK, trimmed down version of ADOT collector together with an out-of-the-box configuration for auto-instrumenting AWS Lambda functions. ADOT Lambda Layer collector components, such as Receivers, Exporters, and Extensions support integration with Amazon CloudWatch, Amazon OpenSearch Service, Amazon Managed Service for Prometheus, AWS X-Ray, and others. Find the complete list ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda",children:"here"}),". ADOT also supports integrations with ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/otel/partners",children:"partner solutions"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["ADOT Lambda Layer supports both auto-instrumentation (for Python, NodeJS, and Java) as well as custom instrumentation for any specific set of libraries and SDKs. With auto-instrumentation, by default, the Lambda Layer is configured to export traces to AWS X-Ray. For custom instrumentation, you will need to include the corresponding library instrumentation from the respective ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry",children:"OpenTelemetry runtime instrumentation repository"})," and modify your code to initialize it in your function."]}),"\n",(0,o.jsx)(t.h2,{id:"auto-instrumentation-using-adot-lambda-layer-with-aws-lambda",children:(0,o.jsx)(t.strong,{children:"Auto-instrumentation using ADOT Lambda Layer with AWS Lambda"})}),"\n",(0,o.jsx)(t.p,{children:"You can easily enable auto-instrumentation of Lambda function using ADOT Lambda Layer without any code changes. Let\u2019s take an example of adding ADOT Lambda layer to your existing Java based Lambda function and view execution logs and traces in CloudWatch."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Choose the ARN of the Lambda Layer based on the ",(0,o.jsx)(t.code,{children:"runtime"}),", ",(0,o.jsx)(t.code,{children:"region"})," and the ",(0,o.jsx)(t.code,{children:"arch type"})," as per the ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"documentation"}),". Make sure you use the Lambda Layer in the same region as your Lambda function. For example, Lambda Layer for java auto-instrumentation would be ",(0,o.jsx)(t.code,{children:"arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-java-agent-x86_64-ver-1-28-1:1"})]}),"\n",(0,o.jsxs)(t.li,{children:["Add Layer to your Lambda function either via Console of IaC of your choice.","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["With AWS Console, follow the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/adding-layers.html",children:"instructions"})," to add Layer to your Lambda function. Under Specify an ARN paste the layer ARN selected above."]}),"\n",(0,o.jsx)(t.li,{children:"With IaC option, SAM template for Lambda function would look like this:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Layers:\n- !Sub arn:aws:lambda:${AWS::Region}:901920570463:layer:aws-otel-java-agent-arm64-ver-1-28-1:1\n"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["Add an environment variable ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler"})," for Node.js or Java, and ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument"})," for Python to your Lambda function."]}),"\n",(0,o.jsxs)(t.li,{children:["Enable Active Tracing for your Lambda function. ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.code,{children:"Note"})})," that by default, the layer is configured to export traces to AWS X-Ray. Make sure your Lambda function\u2019s execution role has the required AWS X-Ray permissions. For more on AWS X-Ray permissions for AWS Lambda, see the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html#services-xray-permissions",children:"AWS Lambda documentation"}),".","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.code,{children:"Tracing: Active"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.li,{children:"Example SAM template with Lambda Layer configuration, Environment Variable, and X-Ray tracing would look something like this:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Resources:\n ListBucketsFunction:\n Type: AWS::Serverless::Function\n Properties:\n Handler: com.example.App::handleRequest\n ...\n ProvisionedConcurrencyConfig:\n ProvisionedConcurrentExecutions: 1\n Policies:\n - AWSXrayWriteOnlyAccess\n - AmazonS3ReadOnlyAccess\n Environment:\n Variables:\n AWS_LAMBDA_EXEC_WRAPPER: /opt/otel-handler\n Tracing: Active\n Layers:\n - !Sub arn:aws:lambda:${AWS::Region}:901920570463:layer:aws-otel-java-agent-amd64-ver-1-28-1:1\n Events:\n HelloWorld:\n Type: Api\n Properties:\n Path: /listBuckets\n Method: get\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"6",children:["\n",(0,o.jsxs)(t.li,{children:["Testing and Visualizing traces in AWS X-Ray\nInvoke your Lambda function either directly or via an API (if an API is configured as a trigger). For example, invoking Lambda function via API (using ",(0,o.jsx)(t.code,{children:"curl"}),") would generate logs as below:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"curl -X GET https://XXXXXX.execute-api.us-east-1.amazonaws.com/Prod/listBuckets\n"})}),"\n",(0,o.jsx)(t.p,{children:"Lambda function logs:"}),"\n",(0,o.jsx)("pre",{children:(0,o.jsx)("code",{children:(0,o.jsxs)(t.p,{children:["OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended\n[otel.javaagent 2023-09-24 15:28:16:862 +0000] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 1.28.0-adot-lambda1-aws\nEXTENSION Name: collector State: Ready Events: [INVOKE, SHUTDOWN]\nSTART RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940 Version: 3\n...\nEND RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940\nREPORT RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940 Duration: 5144.38 ms Billed Duration: 5145 ms Memory Size: 1024 MB Max Memory Used: 345 MB Init Duration: 27769.64 ms\n",(0,o.jsx)("b",{children:"XRAY TraceId: 1-65105691-384f7da75714148655fa631b SegmentId: 2c52a147021ebd20 Sampled: true"})]})})}),"\n",(0,o.jsx)(t.p,{children:"As you can see from the logs, OpenTelemetry Lambda extension starts listening and instrumenting Lambda functions using opentelemetry-javaagent and generates traces in AWS X-Ray."}),"\n",(0,o.jsxs)(t.p,{children:["To view the traces from the above Lambda function invocation, navigate to the AWS X-Ray console and select the trace id under Traces. You should see a Trace Map along with Segments Timeline as below:\n",(0,o.jsx)(t.img,{alt:"Lambda Insights",src:n(31913).A+"",width:"2491",height:"1174"})]}),"\n",(0,o.jsx)(t.h2,{id:"custom-configuration-support-for-adot-collector",children:(0,o.jsx)(t.strong,{children:"Custom configuration support for ADOT Collector"})}),"\n",(0,o.jsxs)(t.p,{children:["The ADOT Lambda Layer combines both OpenTelemetry SDK and the ADOT Collector components. The configuration of the ADOT Collector follows the OpenTelemetry standard. By default, the ADOT Lambda Layer uses ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda/blob/main/adot/collector/config.yaml",children:"config.yaml"}),", which exports telemetry data to AWS X-Ray. However, ADOT Lambda Layer also supports other exporters, which enables you to send metrics and traces to other destinations. Find the complete list of available components supported for custom configuration ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda/blob/main/README.md#adot-lambda-layer-available-components",children:"here"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"integration-with-amazon-managed-service-for-prometheus-amp",children:(0,o.jsx)(t.strong,{children:"Integration with Amazon Managed Service for Prometheus (AMP)"})}),"\n",(0,o.jsx)(t.p,{children:"You can use custom collector configuration to export metrics from your Lambda function to Amazon Managed Prometheus (AMP)."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Follow the steps from auto-instrumentation above, to configure Lambda Layer, set Environment variable ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Follow the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html",children:"instructions"})," to create Amazon Manager Prometheus workspace in your AWS account, where your Lambda function will be sending metrics to. Make a note of the ",(0,o.jsx)(t.code,{children:"Endpoint - remote write URL"})," from the AMP workspace. You would need that to be configured on ADOT collector configuration."]}),"\n",(0,o.jsxs)(t.li,{children:["Create a custom ADOT collector configuration file (say ",(0,o.jsx)(t.code,{children:"collector.yaml"}),") in your Lambda function's root directory with details of AMP endpoint remote write URL from previous step. You can also load the configuration file from S3 bucket.\nSample ADOT collector configuration file:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:'#collector.yaml in the root directory\n#Set an environemnt variable \'OPENTELEMETRY_COLLECTOR_CONFIG_FILE\' to \'/var/task/collector.yaml\'\n\nextensions:\n sigv4auth:\n service: "aps"\n region: ""\n\nreceivers:\n otlp:\n protocols:\n grpc:\n http:\n\nexporters:\n logging:\n prometheusremotewrite:\n endpoint: ""\n namespace: test\n auth:\n authenticator: sigv4auth\n\nservice:\n extensions: [sigv4auth]\n pipelines:\n traces:\n receivers: [otlp]\n exporters: [awsxray]\n metrics:\n receivers: [otlp]\n exporters: [logging, prometheusremotewrite]\n'})}),"\n",(0,o.jsxs)(t.p,{children:["Prometheus Remote Write Exporter can also be configured with retry, and timeout settings. For more information see the ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/prometheusremotewriteexporter/README.md",children:"documentation"}),". ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.code,{children:"Note"})})," Service value for ",(0,o.jsx)(t.code,{children:"sigv4auth"})," extension should be ",(0,o.jsx)(t.code,{children:"aps"})," (amazon prometheus service). Also, Make sure your Lambda function execution role has the required AMP permissions. For more information on permissions and policies required on AMP for AWS Lambda, see the AWS Managed Service for Prometheus ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-and-IAM.html#AMP-IAM-policies-built-in",children:"documentation"}),"."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["Add an environment variable ",(0,o.jsx)(t.code,{children:"OPENTELEMETRY_COLLECTOR_CONFIG_FILE"})," and set value to the path of configuration file. E.g. /var/task/",(0,o.jsx)(t.code,{children:""}),".yaml. This will tell the Lambda Layer extension where to find the collector configuration."]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Function:\n Type: AWS::Serverless::Function\n Properties:\n ...\n Environment:\n Variables:\n OPENTELEMETRY_COLLECTOR_CONFIG_FILE: /var/task/collector.yaml\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsx)(t.li,{children:"Update your Lambda function code to add metrics using OpenTelemetry Metrics API. Check out examples here."}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:'// get meter\nMeter meter = GlobalOpenTelemetry.getMeterProvider()\n .meterBuilder("aws-otel")\n .setInstrumentationVersion("1.0")\n .build();\n\n// Build counter e.g. LongCounter\nLongCounter counter = meter\n .counterBuilder("processed_jobs")\n .setDescription("Processed jobs")\n .setUnit("1")\n .build();\n\n// It is recommended that the API user keep a reference to Attributes they will record against\nAttributes attributes = Attributes.of(stringKey("Key"), "SomeWork");\n\n// Record data\ncounter.add(123, attributes);\n'})}),"\n",(0,o.jsx)(t.h2,{id:"pros-and-cons-of-using-adot-lambda-layer",children:(0,o.jsx)(t.strong,{children:"Pros and Cons of using ADOT Lambda Layer"})}),"\n",(0,o.jsxs)(t.p,{children:["If you intend to send traces to AWS X-Ray from Lambda function, you can either use ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-nodejs.html",children:"X-Ray SDK"})," or ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"AWS Distro for OpenTelemetry (ADOT) Lambda Layer"}),". While X-Ray SDK supports easy instrumentation of various AWS services, it can only send traces to X-Ray. Whereas, ADOT collector, which is included as part of the Lambda Layer supports large number of library instrumentations for each language. You can use it to collect and send metrics and traces to AWS X-Ray and other monitoring solutions, such as Amazon CloudWatch, Amazon OpenSearch Service, Amazon Managed Service for Prometheus and other ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/components/otlp-exporter#appdynamics",children:"partner"})," solutions."]}),"\n",(0,o.jsxs)(t.p,{children:["However, due to the flexibility ADOT offers, your Lambda function may require additional memory and can experience notable impact on cold start latency. So, if you are optimizing your Lambda function for low-latency and do not need advanced features of OpenTelemetry, using AWS X-Ray SDK over ADOT might be more suitable. For detailed comparison and guidance on choosing the right tracing tool, refer to AWS docs on ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html#xray-instrumenting-choosing",children:"choosing between ADOT and X-Ray SDK"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"managing-cold-start-latency-when-using-adot",children:(0,o.jsx)(t.strong,{children:"Managing cold start latency when using ADOT"})}),"\n",(0,o.jsxs)(t.p,{children:["ADOT Lambda Layer for Java is agent-based, which means that when you enable auto-instrumentation, Java Agent will try to instrument all the OTel ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation",children:"supported"})," libraries. This will increase the Lambda function cold start latency significantly. So, we recommend that you only enable auto-instrumentation for the libraries/frameworks that are used by your application."]}),"\n",(0,o.jsx)(t.p,{children:"To enable only specific instrumentations, you can use the following environment variables:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED"}),": when set to false, disables auto-instrumentation in the Layer, requiring each instrumentation to be enabled individually."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION__ENABLED"}),': set to true to enable auto-instrumentation for a specific library or framework. Replace "NAME" by the instrumentation that you want to enable. For the list of available instrumentations, see Suppressing specific agent instrumentation.']}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"For example, to only enable auto-instrumentation for Lambda and the AWS SDK, you would set the following environment variables:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=false\nOTEL_INSTRUMENTATION_AWS_LAMBDA_ENABLED=true\nOTEL_INSTRUMENTATION_AWS_SDK_ENABLED=true\n"})}),"\n",(0,o.jsx)(t.h2,{id:"additional-resources",children:(0,o.jsx)(t.strong,{children:"Additional Resources"})}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://opentelemetry.io",children:"OpenTelemetry"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"ADOT Lambda Layer"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"summary",children:(0,o.jsx)(t.strong,{children:"Summary"})}),"\n",(0,o.jsx)(t.p,{children:"In this observability best practice guide for AWS Lambda based serverless application using Open Source technologies, we covered AWS Distro for OpenTelemetry (ADOT) and Lambda Layer and how you can use it instrument your AWS Lambda functions. We covered how you can easily enable auto-instrumentation as well as customize the ADOT collector with simple configuration to send observability signals to multiple destinations. We highlighted pros and cons of using ADOT and how it can impact cold start latency for your Lambda function and also recommended best practices to manage cold-start times. By adopting these best practices, you can instrument your applications just once to send logs, metrics and traces to multiple monitoring solutions in a vendor agnostic way."}),"\n",(0,o.jsxs)(t.p,{children:["For further deep dive, we would highly recommend you to practice AWS managed open-source Observability module of ",(0,o.jsx)(t.a,{href:"https://catalog.workshops.aws/observability/en-US",children:"AWS One Observability Workshop"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},31913:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/xray-trace-67990b791cb455e28b42e1716556a32a.png"},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>i});var o=n(96540);const a={},r=o.createContext(a);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/443ce032.eabb9af2.js b/assets/js/443ce032.eabb9af2.js new file mode 100644 index 000000000..250761abc --- /dev/null +++ b/assets/js/443ce032.eabb9af2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkobservability_best_practices=self.webpackChunkobservability_best_practices||[]).push([[5109],{53212:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var o=n(74848),a=n(28453);const r={},s="AWS Lambda based Serverless Observability with OpenTelemetry",i={id:"guides/serverless/oss/lambda-based-observability-adot",title:"AWS Lambda based Serverless Observability with OpenTelemetry",description:"This guide covers the best practices on configuring observability for Lambda based serverless applications using managed open-source tools and technologies together with the native AWS monitoring services such as AWS X-Ray, and Amazon CloudWatch. We will cover tools such as AWS Distro for OpenTelemetry (ADOT), AWS X-Ray, and Amazon Managed Service for Prometheus (AMP) and how you can use these tools to gain actionable insights into your serverless applications, troubleshoot issues, and optimize application performance.",source:"@site/docs/guides/serverless/oss/lambda-based-observability-adot.md",sourceDirName:"guides/serverless/oss",slug:"/guides/serverless/oss/lambda-based-observability-adot",permalink:"/observability-best-practices/guides/serverless/oss/lambda-based-observability-adot",draft:!1,unlisted:!1,editUrl:"https://github.com/aws-observability/observability-best-practices/blob/main/docusaurus/docs/guides/serverless/oss/lambda-based-observability-adot.md",tags:[],version:"current",frontMatter:{},sidebar:"guides",previous:{title:"AWS Lambda based Serverless Observability",permalink:"/observability-best-practices/guides/serverless/aws-native/lambda-based-observability"},next:{title:"Best practices for hybrid and multicloud",permalink:"/observability-best-practices/guides/hybrid-and-multicloud"}},l={},c=[{value:"Key topics covered",id:"key-topics-covered",level:2},{value:"Introduction to AWS Distro for OpenTelemetry (ADOT)",id:"introduction-to-aws-distro-for-opentelemetry-adot",level:2},{value:"Auto-instrumentation using ADOT Lambda Layer with AWS Lambda",id:"auto-instrumentation-using-adot-lambda-layer-with-aws-lambda",level:2},{value:"Custom configuration support for ADOT Collector",id:"custom-configuration-support-for-adot-collector",level:2},{value:"Integration with Amazon Managed Service for Prometheus (AMP)",id:"integration-with-amazon-managed-service-for-prometheus-amp",level:2},{value:"Pros and Cons of using ADOT Lambda Layer",id:"pros-and-cons-of-using-adot-lambda-layer",level:2},{value:"Managing cold start latency when using ADOT",id:"managing-cold-start-latency-when-using-adot",level:2},{value:"Additional Resources",id:"additional-resources",level:2},{value:"Summary",id:"summary",level:2}];function d(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"aws-lambda-based-serverless-observability-with-opentelemetry",children:"AWS Lambda based Serverless Observability with OpenTelemetry"}),"\n",(0,o.jsxs)(t.p,{children:["This guide covers the best practices on configuring observability for Lambda based serverless applications using managed open-source tools and technologies together with the native AWS monitoring services such as AWS X-Ray, and Amazon CloudWatch. We will cover tools such as ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"}),", ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/xray",children:"AWS X-Ray"}),", and ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/prometheus/",children:"Amazon Managed Service for Prometheus (AMP)"})," and how you can use these tools to gain actionable insights into your serverless applications, troubleshoot issues, and optimize application performance."]}),"\n",(0,o.jsx)(t.h2,{id:"key-topics-covered",children:(0,o.jsx)(t.strong,{children:"Key topics covered"})}),"\n",(0,o.jsx)(t.p,{children:"In this section of the observability best practices guide, we will deep dive on to following topics:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Introduction to AWS Distro for OpenTelemetry (ADOT) and ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Auto-instrumentation Lambda function using ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Custom configuration support for ADOT Collector"}),"\n",(0,o.jsx)(t.li,{children:"Integration with Amazon Managed Service for Prometheus (AMP)"}),"\n",(0,o.jsx)(t.li,{children:"Pros and cons of using ADOT Lambda Layer"}),"\n",(0,o.jsx)(t.li,{children:"Managing cold start latency when using ADOT"}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"introduction-to-aws-distro-for-opentelemetry-adot",children:(0,o.jsx)(t.strong,{children:"Introduction to AWS Distro for OpenTelemetry (ADOT)"})}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"})," is a secure, production-ready, AWS-supported distribution of the Cloud Native Computing Foundation (CNCF) ",(0,o.jsx)(t.a,{href:"https://opentelemetry.io/",children:"OpenTelemetry (OTel)"})," project. Using ADOT, you can instrument your applications just once and send correlated metrics and traces to multiple monitoring solutions."]}),"\n",(0,o.jsxs)(t.p,{children:["AWS's managed ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"OpenTelemetry Lambda Layer"})," utilizes ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-lambda",children:"OpenTelemetry Lambda Layer"})," to export telemetry data. It provides plug-and-play user experience by wrapping an AWS Lambda function, and by packaging the OpenTelemetry runtime specific SDK, trimmed down version of ADOT collector together with an out-of-the-box configuration for auto-instrumenting AWS Lambda functions. ADOT Lambda Layer collector components, such as Receivers, Exporters, and Extensions support integration with Amazon CloudWatch, Amazon OpenSearch Service, Amazon Managed Service for Prometheus, AWS X-Ray, and others. Find the complete list ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda",children:"here"}),". ADOT also supports integrations with ",(0,o.jsx)(t.a,{href:"https://aws.amazon.com/otel/partners",children:"partner solutions"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["ADOT Lambda Layer supports both auto-instrumentation (for Python, NodeJS, and Java) as well as custom instrumentation for any specific set of libraries and SDKs. With auto-instrumentation, by default, the Lambda Layer is configured to export traces to AWS X-Ray. For custom instrumentation, you will need to include the corresponding library instrumentation from the respective ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry",children:"OpenTelemetry runtime instrumentation repository"})," and modify your code to initialize it in your function."]}),"\n",(0,o.jsx)(t.h2,{id:"auto-instrumentation-using-adot-lambda-layer-with-aws-lambda",children:(0,o.jsx)(t.strong,{children:"Auto-instrumentation using ADOT Lambda Layer with AWS Lambda"})}),"\n",(0,o.jsx)(t.p,{children:"You can easily enable auto-instrumentation of Lambda function using ADOT Lambda Layer without any code changes. Let\u2019s take an example of adding ADOT Lambda layer to your existing Java based Lambda function and view execution logs and traces in CloudWatch."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Choose the ARN of the Lambda Layer based on the ",(0,o.jsx)(t.code,{children:"runtime"}),", ",(0,o.jsx)(t.code,{children:"region"})," and the ",(0,o.jsx)(t.code,{children:"arch type"})," as per the ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"documentation"}),". Make sure you use the Lambda Layer in the same region as your Lambda function. For example, Lambda Layer for java auto-instrumentation would be ",(0,o.jsx)(t.code,{children:"arn:aws:lambda:us-east-1:901920570463:layer:aws-otel-java-agent-x86_64-ver-1-28-1:1"})]}),"\n",(0,o.jsxs)(t.li,{children:["Add Layer to your Lambda function either via Console of IaC of your choice.","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["With AWS Console, follow the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/adding-layers.html",children:"instructions"})," to add Layer to your Lambda function. Under Specify an ARN paste the layer ARN selected above."]}),"\n",(0,o.jsx)(t.li,{children:"With IaC option, SAM template for Lambda function would look like this:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Layers:\n- !Sub arn:aws:lambda:${AWS::Region}:901920570463:layer:aws-otel-java-agent-arm64-ver-1-28-1:1\n"})}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["Add an environment variable ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-handler"})," for Node.js or Java, and ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER=/opt/otel-instrument"})," for Python to your Lambda function."]}),"\n",(0,o.jsxs)(t.li,{children:["Enable Active Tracing for your Lambda function. ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.code,{children:"Note"})})," that by default, the layer is configured to export traces to AWS X-Ray. Make sure your Lambda function\u2019s execution role has the required AWS X-Ray permissions. For more on AWS X-Ray permissions for AWS Lambda, see the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html#services-xray-permissions",children:"AWS Lambda documentation"}),".","\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.code,{children:"Tracing: Active"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.li,{children:"Example SAM template with Lambda Layer configuration, Environment Variable, and X-Ray tracing would look something like this:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Resources:\n ListBucketsFunction:\n Type: AWS::Serverless::Function\n Properties:\n Handler: com.example.App::handleRequest\n ...\n ProvisionedConcurrencyConfig:\n ProvisionedConcurrentExecutions: 1\n Policies:\n - AWSXrayWriteOnlyAccess\n - AmazonS3ReadOnlyAccess\n Environment:\n Variables:\n AWS_LAMBDA_EXEC_WRAPPER: /opt/otel-handler\n Tracing: Active\n Layers:\n - !Sub arn:aws:lambda:${AWS::Region}:901920570463:layer:aws-otel-java-agent-amd64-ver-1-28-1:1\n Events:\n HelloWorld:\n Type: Api\n Properties:\n Path: /listBuckets\n Method: get\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"6",children:["\n",(0,o.jsxs)(t.li,{children:["Testing and Visualizing traces in AWS X-Ray\nInvoke your Lambda function either directly or via an API (if an API is configured as a trigger). For example, invoking Lambda function via API (using ",(0,o.jsx)(t.code,{children:"curl"}),") would generate logs as below:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"curl -X GET https://XXXXXX.execute-api.us-east-1.amazonaws.com/Prod/listBuckets\n"})}),"\n",(0,o.jsx)(t.p,{children:"Lambda function logs:"}),"\n",(0,o.jsx)("pre",{children:(0,o.jsx)("code",{children:(0,o.jsxs)(t.p,{children:["OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended\n[otel.javaagent 2023-09-24 15:28:16:862 +0000] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 1.28.0-adot-lambda1-aws\nEXTENSION Name: collector State: Ready Events: [INVOKE, SHUTDOWN]\nSTART RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940 Version: 3\n...\nEND RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940\nREPORT RequestId: ed8f8444-3c29-40fe-a4a1-aca7af8cd940 Duration: 5144.38 ms Billed Duration: 5145 ms Memory Size: 1024 MB Max Memory Used: 345 MB Init Duration: 27769.64 ms\n",(0,o.jsx)("b",{children:"XRAY TraceId: 1-65105691-384f7da75714148655fa631b SegmentId: 2c52a147021ebd20 Sampled: true"})]})})}),"\n",(0,o.jsx)(t.p,{children:"As you can see from the logs, OpenTelemetry Lambda extension starts listening and instrumenting Lambda functions using opentelemetry-javaagent and generates traces in AWS X-Ray."}),"\n",(0,o.jsxs)(t.p,{children:["To view the traces from the above Lambda function invocation, navigate to the AWS X-Ray console and select the trace id under Traces. You should see a Trace Map along with Segments Timeline as below:\n",(0,o.jsx)(t.img,{alt:"Lambda Insights",src:n(31913).A+"",width:"2491",height:"1174"})]}),"\n",(0,o.jsx)(t.h2,{id:"custom-configuration-support-for-adot-collector",children:(0,o.jsx)(t.strong,{children:"Custom configuration support for ADOT Collector"})}),"\n",(0,o.jsxs)(t.p,{children:["The ADOT Lambda Layer combines both OpenTelemetry SDK and the ADOT Collector components. The configuration of the ADOT Collector follows the OpenTelemetry standard. By default, the ADOT Lambda Layer uses ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda/blob/main/adot/collector/config.yaml",children:"config.yaml"}),", which exports telemetry data to AWS X-Ray. However, ADOT Lambda Layer also supports other exporters, which enables you to send metrics and traces to other destinations. Find the complete list of available components supported for custom configuration ",(0,o.jsx)(t.a,{href:"https://github.com/aws-observability/aws-otel-lambda/blob/main/README.md#adot-lambda-layer-available-components",children:"here"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"integration-with-amazon-managed-service-for-prometheus-amp",children:(0,o.jsx)(t.strong,{children:"Integration with Amazon Managed Service for Prometheus (AMP)"})}),"\n",(0,o.jsx)(t.p,{children:"You can use custom collector configuration to export metrics from your Lambda function to Amazon Managed Prometheus (AMP)."}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["Follow the steps from auto-instrumentation above, to configure Lambda Layer, set Environment variable ",(0,o.jsx)(t.code,{children:"AWS_LAMBDA_EXEC_WRAPPER"}),"."]}),"\n",(0,o.jsxs)(t.li,{children:["Follow the ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html",children:"instructions"})," to create Amazon Manager Prometheus workspace in your AWS account, where your Lambda function will be sending metrics to. Make a note of the ",(0,o.jsx)(t.code,{children:"Endpoint - remote write URL"})," from the AMP workspace. You would need that to be configured on ADOT collector configuration."]}),"\n",(0,o.jsxs)(t.li,{children:["Create a custom ADOT collector configuration file (say ",(0,o.jsx)(t.code,{children:"collector.yaml"}),") in your Lambda function's root directory with details of AMP endpoint remote write URL from previous step. You can also load the configuration file from S3 bucket.\nSample ADOT collector configuration file:"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:'#collector.yaml in the root directory\n#Set an environemnt variable \'OPENTELEMETRY_COLLECTOR_CONFIG_FILE\' to \'/var/task/collector.yaml\'\n\nextensions:\n sigv4auth:\n service: "aps"\n region: ""\n\nreceivers:\n otlp:\n protocols:\n grpc:\n http:\n\nexporters:\n logging:\n prometheusremotewrite:\n endpoint: ""\n namespace: test\n auth:\n authenticator: sigv4auth\n\nservice:\n extensions: [sigv4auth]\n pipelines:\n traces:\n receivers: [otlp]\n exporters: [awsxray]\n metrics:\n receivers: [otlp]\n exporters: [logging, prometheusremotewrite]\n'})}),"\n",(0,o.jsxs)(t.p,{children:["Prometheus Remote Write Exporter can also be configured with retry, and timeout settings. For more information see the ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/prometheusremotewriteexporter/README.md",children:"documentation"}),". ",(0,o.jsx)(t.strong,{children:(0,o.jsx)(t.code,{children:"Note"})})," Service value for ",(0,o.jsx)(t.code,{children:"sigv4auth"})," extension should be ",(0,o.jsx)(t.code,{children:"aps"})," (amazon prometheus service). Also, Make sure your Lambda function execution role has the required AMP permissions. For more information on permissions and policies required on AMP for AWS Lambda, see the AWS Managed Service for Prometheus ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-and-IAM.html#AMP-IAM-policies-built-in",children:"documentation"}),"."]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsxs)(t.li,{children:["Add an environment variable ",(0,o.jsx)(t.code,{children:"OPENTELEMETRY_COLLECTOR_CONFIG_FILE"})," and set value to the path of configuration file. E.g. /var/task/",(0,o.jsx)(t.code,{children:""}),".yaml. This will tell the Lambda Layer extension where to find the collector configuration."]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"Function:\n Type: AWS::Serverless::Function\n Properties:\n ...\n Environment:\n Variables:\n OPENTELEMETRY_COLLECTOR_CONFIG_FILE: /var/task/collector.yaml\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsx)(t.li,{children:"Update your Lambda function code to add metrics using OpenTelemetry Metrics API. Check out examples here."}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:'// get meter\nMeter meter = GlobalOpenTelemetry.getMeterProvider()\n .meterBuilder("aws-otel")\n .setInstrumentationVersion("1.0")\n .build();\n\n// Build counter e.g. LongCounter\nLongCounter counter = meter\n .counterBuilder("processed_jobs")\n .setDescription("Processed jobs")\n .setUnit("1")\n .build();\n\n// It is recommended that the API user keep a reference to Attributes they will record against\nAttributes attributes = Attributes.of(stringKey("Key"), "SomeWork");\n\n// Record data\ncounter.add(123, attributes);\n'})}),"\n",(0,o.jsx)(t.h2,{id:"pros-and-cons-of-using-adot-lambda-layer",children:(0,o.jsx)(t.strong,{children:"Pros and Cons of using ADOT Lambda Layer"})}),"\n",(0,o.jsxs)(t.p,{children:["If you intend to send traces to AWS X-Ray from Lambda function, you can either use ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-nodejs.html",children:"X-Ray SDK"})," or ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"AWS Distro for OpenTelemetry (ADOT) Lambda Layer"}),". While X-Ray SDK supports easy instrumentation of various AWS services, it can only send traces to X-Ray. Whereas, ADOT collector, which is included as part of the Lambda Layer supports large number of library instrumentations for each language. You can use it to collect and send metrics and traces to AWS X-Ray and other monitoring solutions, such as Amazon CloudWatch, Amazon OpenSearch Service, Amazon Managed Service for Prometheus and other ",(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/components/otlp-exporter#appdynamics",children:"partner"})," solutions."]}),"\n",(0,o.jsxs)(t.p,{children:["However, due to the flexibility ADOT offers, your Lambda function may require additional memory and can experience notable impact on cold start latency. So, if you are optimizing your Lambda function for low-latency and do not need advanced features of OpenTelemetry, using AWS X-Ray SDK over ADOT might be more suitable. For detailed comparison and guidance on choosing the right tracing tool, refer to AWS docs on ",(0,o.jsx)(t.a,{href:"https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html#xray-instrumenting-choosing",children:"choosing between ADOT and X-Ray SDK"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"managing-cold-start-latency-when-using-adot",children:(0,o.jsx)(t.strong,{children:"Managing cold start latency when using ADOT"})}),"\n",(0,o.jsxs)(t.p,{children:["ADOT Lambda Layer for Java is agent-based, which means that when you enable auto-instrumentation, Java Agent will try to instrument all the OTel ",(0,o.jsx)(t.a,{href:"https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation",children:"supported"})," libraries. This will increase the Lambda function cold start latency significantly. So, we recommend that you only enable auto-instrumentation for the libraries/frameworks that are used by your application."]}),"\n",(0,o.jsx)(t.p,{children:"To enable only specific instrumentations, you can use the following environment variables:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED"}),": when set to false, disables auto-instrumentation in the Layer, requiring each instrumentation to be enabled individually."]}),"\n",(0,o.jsxs)(t.li,{children:[(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION__ENABLED"}),': set to true to enable auto-instrumentation for a specific library or framework. Replace "NAME" by the instrumentation that you want to enable. For the list of available instrumentations, see Suppressing specific agent instrumentation.']}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"For example, to only enable auto-instrumentation for Lambda and the AWS SDK, you would set the following environment variables:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{children:"OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED=false\nOTEL_INSTRUMENTATION_AWS_LAMBDA_ENABLED=true\nOTEL_INSTRUMENTATION_AWS_SDK_ENABLED=true\n"})}),"\n",(0,o.jsx)(t.h2,{id:"additional-resources",children:(0,o.jsx)(t.strong,{children:"Additional Resources"})}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://opentelemetry.io",children:"OpenTelemetry"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/introduction",children:"AWS Distro for OpenTelemetry (ADOT)"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://aws-otel.github.io/docs/getting-started/lambda",children:"ADOT Lambda Layer"})}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"summary",children:(0,o.jsx)(t.strong,{children:"Summary"})}),"\n",(0,o.jsx)(t.p,{children:"In this observability best practice guide for AWS Lambda based serverless application using Open Source technologies, we covered AWS Distro for OpenTelemetry (ADOT) and Lambda Layer and how you can use it instrument your AWS Lambda functions. We covered how you can easily enable auto-instrumentation as well as customize the ADOT collector with simple configuration to send observability signals to multiple destinations. We highlighted pros and cons of using ADOT and how it can impact cold start latency for your Lambda function and also recommended best practices to manage cold-start times. By adopting these best practices, you can instrument your applications just once to send logs, metrics and traces to multiple monitoring solutions in a vendor agnostic way."}),"\n",(0,o.jsxs)(t.p,{children:["For further deep dive, we would highly recommend you to practice AWS managed open-source Observability module of ",(0,o.jsx)(t.a,{href:"https://catalog.workshops.aws/observability/en-US",children:"AWS One Observability Workshop"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},31913:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/xray-trace-67990b791cb455e28b42e1716556a32a.png"},28453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>i});var o=n(96540);const a={},r=o.createContext(a);function s(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.eb82ccfd.js b/assets/js/main.c3658655.js similarity index 99% rename from assets/js/main.eb82ccfd.js rename to assets/js/main.c3658655.js index 44c035ebe..ae745d175 100644 --- a/assets/js/main.eb82ccfd.js +++ b/assets/js/main.c3658655.js @@ -1,2 +1,2 @@ -/*! For license information please see main.eb82ccfd.js.LICENSE.txt */ -(self.webpackChunkobservability_best_practices=self.webpackChunkobservability_best_practices||[]).push([[8792],{5391:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{A:()=>p});n(96540);var r=n(53259),a=n.n(r),i=n(84054);const o={"0069196b":[()=>n.e(6418).then(n.bind(n,58448)),"@site/docs/guides/hybrid-and-multicloud.md",58448],"016929b8":[()=>n.e(7688).then(n.bind(n,98661)),"@site/docs/patterns/multiaccount.md",98661],"033edf51":[()=>n.e(8608).then(n.bind(n,28985)),"@site/docs/patterns/Tracing/xraylambda.md",28985],"0583dad5":[()=>n.e(21).then(n.bind(n,30197)),"@site/docs/guides/cost/cost-visualization/AmazonManagedServiceforPrometheus.md",30197],"0602dfbc":[()=>n.e(4720).then(n.bind(n,72419)),"@site/docs/guides/full-stack.md",72419],"06bca800":[()=>n.e(5459).then(n.bind(n,94631)),"@site/docs/tools/cloudwatch_agent.md",94631],"0afb07bd":[()=>n.e(5871).then(n.bind(n,36174)),"@site/docs/guides/strategy.md",36174],"0b296b7f":[()=>n.e(2313).then(n.bind(n,25968)),"@site/docs/guides/cost/cost-visualization/reducing-cw-cost.md",25968],"0d62bf7f":[()=>n.e(2348).then(n.bind(n,63488)),"@site/docs/guides/containers/oss/eks/keda-amp-eks.md",63488],"0e384e19":[()=>n.e(3976).then(n.bind(n,20619)),"@site/docs/intro.md",20619],"0f6bd81a":[()=>n.e(4087).then(n.bind(n,53173)),"@site/docs/patterns/o11ypipeline.md",53173],"1041fa70":[()=>n.e(8751).then(n.bind(n,7265)),"@site/docs/patterns/eksampamg.md",7265],"1116a033":[()=>n.e(905).then(n.bind(n,70428)),"@site/docs/faq/cloudwatch.md",70428],"118c0394":[()=>n.e(1598).then(n.bind(n,40383)),"@site/docs/guides/containers/aws-native/ecs/best-practices-metrics-collection-2.md",40383],"138e0e15":[()=>n.e(4921).then(n.t.bind(n,41597,19)),"@generated/@easyops-cn/docusaurus-search-local/default/__plugin.json",41597],17896441:[()=>Promise.all([n.e(1869),n.e(8498),n.e(8401)]).then(n.bind(n,12447)),"@theme/DocItem",12447],"191733e3":[()=>n.e(3859).then(n.bind(n,75279)),"@site/docs/tools/alarms.md",75279],"19b42446":[()=>n.e(4591).then(n.t.bind(n,61014,19)),"@generated/docusaurus-plugin-content-docs/default/p/observability-best-practices-904.json",61014],"19d5614f":[()=>n.e(9893).then(n.bind(n,18016)),"@site/docs/recipes/recipes/fargate-eks-xray-go-adot-amg.md",18016],"1a09d2a3":[()=>n.e(3622).then(n.bind(n,80989)),"@site/docs/patterns/lambdalogging.md",80989],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,85099)),"@theme/SearchPage",85099],"1e3b40ea":[()=>n.e(5596).then(n.bind(n,72533)),"@site/docs/guides/cost/OLA-EC2-righsizing.md",72533],"1e4232ab":[()=>n.e(1953).then(n.bind(n,13976)),"@site/docs/tutorial-basics/create-a-document.md",13976],"1e533702":[()=>n.e(5309).then(n.bind(n,46681)),"@site/docs/guides/cost/cost-visualization/amazon-cloudwatch.md",46681],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(8498),n.e(6061)]).then(n.bind(n,67973)),"@theme/MDXPage",67973],"1f654e2a":[()=>n.e(6395).then(n.bind(n,93690)),"@site/docs/recipes/anomaly-detection.md",93690],"21ea5d33":[()=>n.e(7695).then(n.bind(n,71849)),"@site/docs/recipes/recipes/amg-google-auth-saml.md",71849],23063180:[()=>n.e(8752).then(n.bind(n,82077)),"@site/docs/tools/xray.md",82077],"24ab2212":[()=>n.e(801).then(n.bind(n,48613)),"@site/docs/guides/containers/oss/ecs/best-practices-metrics-collection-2.md",48613],"24ab82d6":[()=>n.e(2684).then(n.bind(n,8830)),"@site/docs/guides/containers/oss/eks/best-practices-metrics-collection.md",8830],27237807:[()=>n.e(8073).then(n.bind(n,20248)),"@site/docs/tools/cloudwatch-dashboard.md",20248],"286a07b5":[()=>n.e(5378).then(n.bind(n,40041)),"@site/docs/tools/logs/index.md",40041],"292aef89":[()=>n.e(43).then(n.bind(n,44103)),"@site/docs/recipes/infra.md",44103],"29cdde59":[()=>n.e(6598).then(n.bind(n,4865)),"@site/docs/tools/synthetics.md",4865],"29e16ccd":[()=>n.e(6314).then(n.bind(n,42433)),"@site/docs/guides/operational/alerts/amg-alerts.md",42433],"30504ff5":[()=>n.e(8976).then(n.bind(n,51366)),"@site/docs/faq/adot.md",51366],"33f7e470":[()=>n.e(4138).then(n.bind(n,88012)),"@site/docs/tools/slos.md",88012],"34d6f3dc":[()=>n.e(4442).then(n.bind(n,94600)),"@site/docs/recipes/recipes/amg-redshift-plugin.md",94600],35488203:[()=>n.e(9010).then(n.bind(n,77188)),"@site/docs/recipes/ecs.md",77188],36865553:[()=>n.e(9208).then(n.bind(n,54840)),"@site/docs/guides/operational/adot-at-scale/operating-adot-collector.md",54840],"3686d8d6":[()=>n.e(7124).then(n.bind(n,12423)),"@site/docs/recipes/workshops.md",12423],"36994c47":[()=>n.e(9858).then(n.t.bind(n,45516,19)),"@generated/docusaurus-plugin-content-blog/default/__plugin.json",45516],"36d2646e":[()=>n.e(6187).then(n.bind(n,61880)),"@site/docs/guides/containers/oss/ecs/best-practices-metrics-collection-1.md",61880],"37353c2f":[()=>n.e(7167).then(n.bind(n,70902)),"@site/docs/guides/containers/oss/ecs/best-practices-metrics-collection.md",70902],"37418f92":[()=>n.e(9955).then(n.bind(n,2681)),"@site/docs/recipes/recipes/amp-mixin-dashboards.md",2681],"393be207":[()=>n.e(4134).then(n.bind(n,40633)),"@site/src/pages/markdown-page.md",40633],39512957:[()=>n.e(7186).then(n.bind(n,45168)),"@site/docs/guides/observability-maturity-model.md",45168],"3a6cf13d":[()=>n.e(6464).then(n.bind(n,11764)),"@site/docs/guides/cost/cost-visualization/aws-xray.md",11764],"3ceeff03":[()=>n.e(4692).then(n.bind(n,26497)),"@site/docs/tools/internet_monitor.md",26497],"3d3fa9cb":[()=>n.e(2108).then(n.bind(n,59622)),"@site/docs/guides/operational/business/monitoring-for-business-outcomes.md",59622],"3d9c95a4":[()=>n.e(279).then(n.bind(n,93794)),"@site/docs/home.md",93794],"41f7e3e2":[()=>n.e(8918).then(n.bind(n,46344)),"@site/docs/tools/logs/logs-insights-examples.md",46344],"443ce032":[()=>n.e(5109).then(n.bind(n,53212)),"@site/docs/guides/serverless/oss/lambda-based-observability-adot.md",53212],"47810bb6":[()=>n.e(539).then(n.bind(n,59877)),"@site/docs/patterns/Tracing/xrayecs.md",59877],"48e7bee0":[()=>n.e(2331).then(n.bind(n,31217)),"@site/docs/recipes/index.md",31217],"49588d76":[()=>n.e(9718).then(n.bind(n,45736)),"@site/docs/tools/logs/dataprotection/data-protection-policies.md",45736],"4af125f5":[()=>n.e(5601).then(n.bind(n,31722)),"@site/docs/guides/operational/business/key-performance-indicators.md",31722],"4c84f2ec":[()=>n.e(3928).then(n.bind(n,69020)),"@site/docs/signals/logs.md",69020],"501e118d":[()=>n.e(2772).then(n.bind(n,76254)),"@site/docs/recipes/aes.md",76254],"50f6ebec":[()=>n.e(2017).then(n.bind(n,37594)),"@site/docs/guides/operational/alerting/amp-alertmgr.md",37594],"533a09ca":[()=>n.e(3098).then(n.bind(n,64700)),"@site/docs/tutorial-basics/create-a-blog-post.md",64700],"535c9776":[()=>n.e(5372).then(n.bind(n,9687)),"@site/docs/recipes/troubleshooting.md",9687],"551e3aea":[()=>n.e(7829).then(n.bind(n,33504)),"@site/docs/recipes/recipes/Workspaces-Monitoring-AMP-AMG/README.md",33504],"59f60f1d":[()=>n.e(6352).then(n.bind(n,3801)),"@site/docs/guides/partners/databricks.md",3801],"5aa7c9cd":[()=>n.e(5148).then(n.bind(n,12482)),"@site/docs/recipes/rds.md",12482],"5b31ff84":[()=>n.e(8878).then(n.bind(n,38195)),"@site/docs/guides/serverless/aws-native/lambda-based-observability.md",38195],"5c868d36":[()=>n.e(1974).then(n.bind(n,75254)),"@site/docs/tutorial-basics/create-a-page.md",75254],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5eb4a6ea":[()=>n.e(5324).then(n.bind(n,80668)),"@site/docs/recipes/eks.md",80668],"609294eb":[()=>n.e(9598).then(n.bind(n,67833)),"@site/docs/tools/emf.md",67833],"610a63b3":[()=>n.e(8225).then(n.bind(n,6739)),"@site/docs/recipes/alerting.md",6739],"6453c4b4":[()=>n.e(6306).then(n.bind(n,93363)),"@site/docs/guides/apm.md",93363],"6662eb7b":[()=>n.e(5285).then(n.bind(n,69065)),"@site/docs/patterns/vpcflowlogs.md",69065],"682c5764":[()=>n.e(8494).then(n.bind(n,90301)),"@site/docs/signals/traces.md",90301],"691f568a":[()=>n.e(8601).then(n.bind(n,72110)),"@site/docs/guides/rust-custom-metrics/README.md",72110],"6a25711b":[()=>n.e(8714).then(n.bind(n,8478)),"@site/docs/patterns/multiaccountoss.md",8478],"6c5cdc1c":[()=>n.e(8977).then(n.bind(n,75229)),"@site/docs/guides/operational/business/sla-percentile.md",75229],"6c63682c":[()=>n.e(7788).then(n.bind(n,73478)),"@site/docs/signals/metrics.md",73478],"6d17c5da":[()=>n.e(1972).then(n.bind(n,65798)),"@site/docs/patterns/Tracing/xrayec2.md",65798],"6e5a529d":[()=>n.e(4764).then(n.bind(n,56029)),"@site/docs/signals/alarms.md",56029],"7316fa20":[()=>n.e(8173).then(n.bind(n,65047)),"@site/docs/guides/operational/adot-at-scale/adot-java-spring/adot-java-spring.md",65047],"7367a689":[()=>n.e(2784).then(n.bind(n,99416)),"@site/docs/guides/containers/oss/eks/resource-optimization.md",99416],"757748ff":[()=>n.e(3729).then(n.bind(n,42956)),"@site/docs/recipes/dimensions.md",42956],"7661071f":[()=>n.e(8737).then(n.bind(n,24137)),"@site/blog/2021-08-26-welcome/index.md?truncated=true",24137],"76a6f41f":[()=>n.e(7618).then(n.bind(n,54222)),"@site/docs/recipes/recipes/amg-athena-plugin.md",54222],"76dfc1f8":[()=>n.e(9172).then(n.bind(n,50575)),"@site/docs/patterns/otel.md",50575],"771be83b":[()=>n.e(284).then(n.bind(n,85535)),"@site/docs/guides/containers/aws-native/eks/amazon-cloudwatch-container-insights.md",85535],"795eb2e8":[()=>n.e(1982).then(n.bind(n,27307)),"@site/docs/tools/collector-arch.md",27307],"7dda5c43":[()=>n.e(916).then(n.bind(n,62627)),"@site/docs/guides/containers/oss/eks/cost-optimization.md",62627],"814f3328":[()=>n.e(7472).then(n.t.bind(n,55513,19)),"~blog/default/blog-post-list-prop-default.json",55513],"822bd8ab":[()=>n.e(2748).then(n.bind(n,98611)),"@site/docs/tutorial-basics/congratulations.md",98611],"84f54b23":[()=>n.e(8155).then(n.bind(n,19013)),"@site/docs/guides/containers/aws-native/ecs/cost-optimization.md",19013],"8540dea0":[()=>n.e(5084).then(n.bind(n,37262)),"@site/docs/signals/events.md",37262],"8b84375e":[()=>n.e(9613).then(n.bind(n,95820)),"@site/docs/recipes/recipes/as-ec2-using-amp-and-alertmanager.md",95820],"8d542dfe":[()=>n.e(6749).then(n.bind(n,51904)),"@site/docs/faq/amp.md",51904],"8e4fd4dd":[()=>n.e(2688).then(n.bind(n,36373)),"@site/docs/recipes/recipes/monitoring-hybridenv-amg.md",36373],"9098918b":[()=>n.e(9791).then(n.bind(n,70837)),"@site/docs/recipes/java.md",70837],"92c6253d":[()=>n.e(7491).then(n.bind(n,27322)),"@site/docs/patterns/adoteksfargate.md",27322],"94003a85":[()=>n.e(9677).then(n.bind(n,65968)),"@site/docs/recipes/apprunner.md",65968],"96ad5da2":[()=>n.e(6339).then(n.bind(n,23941)),"@site/docs/recipes/recipes/metrics-explorer-filter-by-tags.md",23941],"9acd8749":[()=>n.e(1970).then(n.bind(n,43055)),"@site/docs/contributors.md",43055],"9b61b33c":[()=>n.e(4422).then(n.bind(n,41391)),"@site/docs/guides/operational/gitops-with-amg/gitops-with-amg.md",41391],"9b8a7bed":[()=>n.e(3055).then(n.bind(n,75876)),"@site/docs/recipes/msk.md",75876],"9d12a627":[()=>n.e(2121).then(n.bind(n,74749)),"@site/docs/recipes/dynamodb.md",74749],"9e3af53f":[()=>n.e(2489).then(n.bind(n,5723)),"@site/docs/tools/amp.md",5723],"9e4087bc":[()=>n.e(2711).then(n.bind(n,89331)),"@theme/BlogArchivePage",89331],a29599e0:[()=>n.e(2133).then(n.bind(n,48558)),"@site/docs/guides/dashboards.md",48558],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(8498),n.e(679),n.e(7643)]).then(n.bind(n,82052)),"@theme/BlogListPage",82052],a7456010:[()=>n.e(1235).then(n.t.bind(n,88552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",88552],a78596ef:[()=>n.e(9601).then(n.bind(n,46078)),"@site/docs/guides/operational/alerts/prometheus-alerts.md",46078],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,74532)),"@theme/DocVersionRoot",74532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,92559)),"@theme/DocRoot",92559],aba17730:[()=>n.e(4167).then(n.bind(n,55053)),"@site/docs/patterns/Tracing/xrayeks.md",55053],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,27093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",27093],acecf23e:[()=>n.e(1903).then(n.t.bind(n,1912,19)),"~blog/default/blogMetadata-default.json",1912],ad7da4b9:[()=>n.e(2245).then(n.bind(n,30046)),"@site/docs/recipes/lambda.md",30046],b1c057bf:[()=>n.e(3021).then(n.bind(n,25230)),"@site/docs/recipes/nodejs.md",25230],b412328a:[()=>n.e(4478).then(n.bind(n,93369)),"@site/docs/guides/signal-correlation/how-does-it-work.md",93369],b6f8e549:[()=>n.e(2886).then(n.bind(n,34715)),"@site/docs/guides/signal-collection/emf.md",34715],b89d8e65:[()=>n.e(5368).then(n.bind(n,22336)),"@site/docs/tools/metrics.md",22336],bc5c2e2e:[()=>n.e(162).then(n.bind(n,35922)),"@site/docs/guides/containers/aws-native/eks/container-tracing-with-aws-xray.md",35922],bd337603:[()=>n.e(7703).then(n.bind(n,34173)),"@site/docs/guides/operational/alerts/cw-alarms.md",34173],c0a3cdbd:[()=>n.e(1753).then(n.bind(n,76898)),"@site/docs/recipes/amg.md",76898],c2ab6292:[()=>n.e(2680).then(n.bind(n,50114)),"@site/docs/recipes/telemetry.md",50114],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(1513),n.e(2634)]).then(n.bind(n,56467)),"@site/src/pages/index.js",56467],c5ce2669:[()=>n.e(5044).then(n.bind(n,26278)),"@site/docs/guides/containers/aws-native/ecs/best-practices-metrics-collection-1.md",26278],c6918276:[()=>n.e(6335).then(n.t.bind(n,93876,19)),"@generated/docusaurus-plugin-content-blog/default/p/observability-best-practices-blog-1a5.json",93876],c8a47bd0:[()=>n.e(2466).then(n.bind(n,57635)),"@site/docs/recipes/recipes/ec2-eks-metrics-go-adot-ampamg.md",57635],c9e8a239:[()=>n.e(210).then(n.bind(n,64738)),"@site/docs/tools/alerting_and_incident_management.md",64738],cb27709f:[()=>n.e(7609).then(n.bind(n,60223)),"@site/docs/recipes/amp.md",60223],ccc49370:[()=>Promise.all([n.e(1869),n.e(8498),n.e(679),n.e(3249)]).then(n.bind(n,73858)),"@theme/BlogPostPage",73858],cd43973b:[()=>n.e(2554).then(n.bind(n,7708)),"@site/docs/patterns/sparkbigdata.md",7708],d01dfd79:[()=>n.e(7786).then(n.bind(n,44041)),"@site/docs/faq/amg.md",44041],d03241c9:[()=>n.e(5345).then(n.bind(n,26271)),"@site/docs/guides/index.md",26271],d03b8838:[()=>n.e(6149).then(n.bind(n,66128)),"@site/docs/tools/dashboards.md",66128],d0c21934:[()=>n.e(7231).then(n.bind(n,38613)),"@site/docs/guides/containers/aws-native/eks/eks-api-server-monitoring.md",38613],d64de220:[()=>n.e(6274).then(n.bind(n,17344)),"@site/docs/guides/choosing-a-tracing-agent.md",17344],d661f2a0:[()=>n.e(5397).then(n.bind(n,8699)),"@site/docs/recipes/cw.md",8699],d86e0a12:[()=>n.e(84).then(n.bind(n,73870)),"@site/docs/signals/anomalies.md",73870],d9f32620:[()=>n.e(5557).then(n.bind(n,7447)),"@site/blog/2021-08-26-welcome/index.md",7447],daa549b1:[()=>n.e(1830).then(n.bind(n,21882)),"@site/docs/guides/operational/observability-driven-dev.md",21882],db755248:[()=>n.e(684).then(n.bind(n,25845)),"@site/docs/guides/cost/cost-visualization/cost.md",25845],dce911a9:[()=>n.e(8674).then(n.bind(n,93275)),"@site/docs/recipes/recipes/lambda-cw-metrics-go-amp.md",93275],ddbe1ee1:[()=>n.e(5300).then(n.bind(n,12933)),"@site/docs/patterns/apmappsignals.md",12933],ddff04ef:[()=>n.e(1442).then(n.bind(n,96216)),"@site/docs/guides/ec2-monitoring.md",96216],dfcda264:[()=>n.e(1683).then(n.bind(n,23510)),"@site/docs/faq/faq.md",23510],dff1c289:[()=>n.e(1724).then(n.bind(n,68043)),"@site/docs/tutorial-extras/manage-docs-versions.md",68043],e086e094:[()=>n.e(9758).then(n.bind(n,50477)),"@site/docs/tools/rum.md",50477],e1838025:[()=>n.e(5801).then(n.t.bind(n,24296,19)),"@generated/docusaurus-plugin-content-blog/default/p/observability-best-practices-blog-archive-bbb.json",24296],e39a6f0e:[()=>n.e(1092).then(n.bind(n,32011)),"@site/docs/recipes/recipes/amg-automation-tf.md",32011],e3e13722:[()=>n.e(4795).then(n.bind(n,58491)),"@site/docs/tools/application-signals/kotlin-signals.md",58491],e44a2883:[()=>n.e(4736).then(n.bind(n,48350)),"@site/docs/tutorial-extras/translate-your-site.md",48350],e6c6fb3c:[()=>n.e(6131).then(n.bind(n,13054)),"@site/docs/recipes/recipes/servicemesh-monitoring-ampamg.md",13054],eae6d2cc:[()=>n.e(5124).then(n.bind(n,21633)),"@site/docs/guides/cost/kubecost.md",21633],ecf0c1bc:[()=>n.e(876).then(n.bind(n,41401)),"@site/docs/guides/containers/aws-native/eks/log-aggregation.md",41401],edd9433b:[()=>n.e(3193).then(n.bind(n,37130)),"@site/docs/guides/containers/aws-native/ecs/resource-optimization.md",37130],ee0d131a:[()=>n.e(1067).then(n.bind(n,30599)),"@site/docs/recipes/recipes/fargate-eks-metrics-go-adot-ampamg.md",30599],f21d2915:[()=>n.e(2274).then(n.bind(n,24284)),"@site/docs/recipes/recipes/amp-alertmanager-terraform.md",24284],f3f6318d:[()=>n.e(2006).then(n.bind(n,8467)),"@site/docs/patterns/ampagentless.md",8467],f4346f70:[()=>n.e(6593).then(n.bind(n,40205)),"@site/docs/patterns/opensearch.md",40205],f46aeeb1:[()=>n.e(2235).then(n.bind(n,89136)),"@site/docs/tools/observability_accelerator.md",89136],f55d3e7a:[()=>n.e(8863).then(n.bind(n,40745)),"@site/docs/tutorial-basics/deploy-your-site.md",40745],f5b0f5f7:[()=>n.e(7404).then(n.bind(n,63917)),"@site/docs/guides/cost/cost-visualization/amazon-grafana.md",63917],f5d1ce0b:[()=>n.e(471).then(n.bind(n,41822)),"@site/docs/guides/databases/rds-and-aurora.md",41822],f6065858:[()=>n.e(2353).then(n.bind(n,68603)),"@site/docs/faq/x-ray.md",68603],f6e52151:[()=>n.e(7852).then(n.bind(n,46841)),"@site/docs/patterns/ecsampamg.md",46841],fe7804f3:[()=>n.e(7344).then(n.bind(n,85421)),"@site/docs/guides/cost/cost-visualization/amazon-prometheus.md",85421],fee6a6c9:[()=>n.e(2380).then(n.bind(n,36578)),"@site/docs/tools/adot-traces.md",36578]};var s=n(74848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(86921),u=n(53102);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(2237).then(n.bind(n,82237)),modules:["@theme/NotFound"],webpack:()=>[82237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=i[`${e}-${t}`],d={},p=[],f=[],b=(0,c.A)(r);return Object.entries(b).forEach((e=>{let[t,n]=e;const r=o[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const i=r.default;if(!i)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof i&&"function"!=typeof i||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{i[e]=r[e]}));let o=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{o=o[e]})),o[s[s.length-1]]=i}));const i=a.__comp;delete a.__comp;const o=a.__context;delete a.__context;const l=a.__props;return delete a.__props,(0,s.jsx)(u.W,{value:o,children:(0,s.jsx)(i,{...a,...l,...n})})}})}const p=[{path:"/observability-best-practices/blog",component:d("/observability-best-practices/blog","a64"),exact:!0},{path:"/observability-best-practices/blog/archive",component:d("/observability-best-practices/blog/archive","0d3"),exact:!0},{path:"/observability-best-practices/blog/welcome",component:d("/observability-best-practices/blog/welcome","acd"),exact:!0},{path:"/observability-best-practices/markdown-page",component:d("/observability-best-practices/markdown-page","980"),exact:!0},{path:"/observability-best-practices/search",component:d("/observability-best-practices/search","6b1"),exact:!0},{path:"/observability-best-practices/",component:d("/observability-best-practices/","e0f"),exact:!0},{path:"/observability-best-practices/",component:d("/observability-best-practices/","a1f"),routes:[{path:"/observability-best-practices/",component:d("/observability-best-practices/","45e"),routes:[{path:"/observability-best-practices/",component:d("/observability-best-practices/","426"),routes:[{path:"/observability-best-practices/contributors",component:d("/observability-best-practices/contributors","315"),exact:!0},{path:"/observability-best-practices/faq/",component:d("/observability-best-practices/faq/","632"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/faq/adot",component:d("/observability-best-practices/faq/adot","995"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/faq/amg",component:d("/observability-best-practices/faq/amg","7d9"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/faq/amp",component:d("/observability-best-practices/faq/amp","c44"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/faq/cloudwatch",component:d("/observability-best-practices/faq/cloudwatch","2a1"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/faq/x-ray",component:d("/observability-best-practices/faq/x-ray","006"),exact:!0,sidebar:"faq"},{path:"/observability-best-practices/guides/",component:d("/observability-best-practices/guides/","ca9"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/apm",component:d("/observability-best-practices/guides/apm","22e"),exact:!0},{path:"/observability-best-practices/guides/choosing-a-tracing-agent",component:d("/observability-best-practices/guides/choosing-a-tracing-agent","d38"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-1",component:d("/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-1","3d4"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-2",component:d("/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-2","d92"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/ecs/cost-optimization",component:d("/observability-best-practices/guides/containers/aws-native/ecs/cost-optimization","420"),exact:!0},{path:"/observability-best-practices/guides/containers/aws-native/ecs/resource-optimization",component:d("/observability-best-practices/guides/containers/aws-native/ecs/resource-optimization","3e4"),exact:!0},{path:"/observability-best-practices/guides/containers/aws-native/eks/amazon-cloudwatch-container-insights",component:d("/observability-best-practices/guides/containers/aws-native/eks/amazon-cloudwatch-container-insights","de4"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/eks/container-tracing-with-aws-xray",component:d("/observability-best-practices/guides/containers/aws-native/eks/container-tracing-with-aws-xray","533"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/eks/eks-api-server-monitoring",component:d("/observability-best-practices/guides/containers/aws-native/eks/eks-api-server-monitoring","73a"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/aws-native/eks/log-aggregation",component:d("/observability-best-practices/guides/containers/aws-native/eks/log-aggregation","542"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection",component:d("/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection","255"),exact:!0},{path:"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-1",component:d("/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-1","36d"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-2",component:d("/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-2","203"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/oss/eks/best-practices-metrics-collection",component:d("/observability-best-practices/guides/containers/oss/eks/best-practices-metrics-collection","3bb"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/oss/eks/cost-optimization",component:d("/observability-best-practices/guides/containers/oss/eks/cost-optimization","d3d"),exact:!0},{path:"/observability-best-practices/guides/containers/oss/eks/keda-amp-eks",component:d("/observability-best-practices/guides/containers/oss/eks/keda-amp-eks","8ab"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/containers/oss/eks/resource-optimization",component:d("/observability-best-practices/guides/containers/oss/eks/resource-optimization","116"),exact:!0},{path:"/observability-best-practices/guides/cost/cost-visualization/amazon-cloudwatch",component:d("/observability-best-practices/guides/cost/cost-visualization/amazon-cloudwatch","529"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/amazon-grafana",component:d("/observability-best-practices/guides/cost/cost-visualization/amazon-grafana","1bd"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/amazon-prometheus",component:d("/observability-best-practices/guides/cost/cost-visualization/amazon-prometheus","585"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/AmazonManagedServiceforPrometheus",component:d("/observability-best-practices/guides/cost/cost-visualization/AmazonManagedServiceforPrometheus","a0f"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/aws-xray",component:d("/observability-best-practices/guides/cost/cost-visualization/aws-xray","6d7"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/cost",component:d("/observability-best-practices/guides/cost/cost-visualization/cost","4c1"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/cost-visualization/reducing-cw-cost",component:d("/observability-best-practices/guides/cost/cost-visualization/reducing-cw-cost","68b"),exact:!0},{path:"/observability-best-practices/guides/cost/kubecost",component:d("/observability-best-practices/guides/cost/kubecost","a15"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/cost/OLA-EC2-righsizing",component:d("/observability-best-practices/guides/cost/OLA-EC2-righsizing","72e"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/dashboards",component:d("/observability-best-practices/guides/dashboards","0b5"),exact:!0},{path:"/observability-best-practices/guides/databases/rds-and-aurora",component:d("/observability-best-practices/guides/databases/rds-and-aurora","ba3"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/ec2-monitoring",component:d("/observability-best-practices/guides/ec2-monitoring","688"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/full-stack",component:d("/observability-best-practices/guides/full-stack","4ce"),exact:!0},{path:"/observability-best-practices/guides/hybrid-and-multicloud",component:d("/observability-best-practices/guides/hybrid-and-multicloud","3af"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/observability-maturity-model",component:d("/observability-best-practices/guides/observability-maturity-model","61a"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/adot-at-scale/adot-java-spring/",component:d("/observability-best-practices/guides/operational/adot-at-scale/adot-java-spring/","c48"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/adot-at-scale/operating-adot-collector",component:d("/observability-best-practices/guides/operational/adot-at-scale/operating-adot-collector","248"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/alerting/amp-alertmgr",component:d("/observability-best-practices/guides/operational/alerting/amp-alertmgr","a54"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/alerts/amg-alerts",component:d("/observability-best-practices/guides/operational/alerts/amg-alerts","874"),exact:!0},{path:"/observability-best-practices/guides/operational/alerts/cw-alarms",component:d("/observability-best-practices/guides/operational/alerts/cw-alarms","bc6"),exact:!0},{path:"/observability-best-practices/guides/operational/alerts/prometheus-alerts",component:d("/observability-best-practices/guides/operational/alerts/prometheus-alerts","9f0"),exact:!0},{path:"/observability-best-practices/guides/operational/business/key-performance-indicators",component:d("/observability-best-practices/guides/operational/business/key-performance-indicators","812"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes",component:d("/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes","7a3"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/business/sla-percentile",component:d("/observability-best-practices/guides/operational/business/sla-percentile","afb"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/gitops-with-amg/",component:d("/observability-best-practices/guides/operational/gitops-with-amg/","495"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/operational/observability-driven-dev",component:d("/observability-best-practices/guides/operational/observability-driven-dev","df4"),exact:!0},{path:"/observability-best-practices/guides/partners/databricks",component:d("/observability-best-practices/guides/partners/databricks","113"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/rust-custom-metrics/",component:d("/observability-best-practices/guides/rust-custom-metrics/","f03"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/serverless/aws-native/lambda-based-observability",component:d("/observability-best-practices/guides/serverless/aws-native/lambda-based-observability","857"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/serverless/oss/lambda-based-observability-adot",component:d("/observability-best-practices/guides/serverless/oss/lambda-based-observability-adot","347"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/signal-collection/emf",component:d("/observability-best-practices/guides/signal-collection/emf","afb"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/guides/signal-correlation/how-does-it-work",component:d("/observability-best-practices/guides/signal-correlation/how-does-it-work","dab"),exact:!0},{path:"/observability-best-practices/guides/strategy",component:d("/observability-best-practices/guides/strategy","9c2"),exact:!0},{path:"/observability-best-practices/home",component:d("/observability-best-practices/home","969"),exact:!0},{path:"/observability-best-practices/intro",component:d("/observability-best-practices/intro","985"),exact:!0},{path:"/observability-best-practices/patterns/adoteksfargate",component:d("/observability-best-practices/patterns/adoteksfargate","ee4"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/ampagentless",component:d("/observability-best-practices/patterns/ampagentless","51a"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/apmappsignals",component:d("/observability-best-practices/patterns/apmappsignals","8f5"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/ecsampamg",component:d("/observability-best-practices/patterns/ecsampamg","896"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/eksampamg",component:d("/observability-best-practices/patterns/eksampamg","a45"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/lambdalogging",component:d("/observability-best-practices/patterns/lambdalogging","4db"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/multiaccount",component:d("/observability-best-practices/patterns/multiaccount","f8a"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/multiaccountoss",component:d("/observability-best-practices/patterns/multiaccountoss","048"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/o11ypipeline",component:d("/observability-best-practices/patterns/o11ypipeline","d02"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/opensearch",component:d("/observability-best-practices/patterns/opensearch","89e"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/otel",component:d("/observability-best-practices/patterns/otel","812"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/sparkbigdata",component:d("/observability-best-practices/patterns/sparkbigdata","079"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/Tracing/xrayec2",component:d("/observability-best-practices/patterns/Tracing/xrayec2","3a7"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/Tracing/xrayecs",component:d("/observability-best-practices/patterns/Tracing/xrayecs","047"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/Tracing/xrayeks",component:d("/observability-best-practices/patterns/Tracing/xrayeks","e96"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/Tracing/xraylambda",component:d("/observability-best-practices/patterns/Tracing/xraylambda","473"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/patterns/vpcflowlogs",component:d("/observability-best-practices/patterns/vpcflowlogs","630"),exact:!0,sidebar:"patterns"},{path:"/observability-best-practices/recipes/",component:d("/observability-best-practices/recipes/","fb6"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/aes",component:d("/observability-best-practices/recipes/aes","24b"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/alerting",component:d("/observability-best-practices/recipes/alerting","a3a"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/amg",component:d("/observability-best-practices/recipes/amg","b39"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/amp",component:d("/observability-best-practices/recipes/amp","b79"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/anomaly-detection",component:d("/observability-best-practices/recipes/anomaly-detection","a08"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/apprunner",component:d("/observability-best-practices/recipes/apprunner","eae"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/cw",component:d("/observability-best-practices/recipes/cw","442"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/dimensions",component:d("/observability-best-practices/recipes/dimensions","c7c"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/dynamodb",component:d("/observability-best-practices/recipes/dynamodb","b73"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/ecs",component:d("/observability-best-practices/recipes/ecs","8c9"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/eks",component:d("/observability-best-practices/recipes/eks","b92"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/infra",component:d("/observability-best-practices/recipes/infra","fb0"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/java",component:d("/observability-best-practices/recipes/java","764"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/lambda",component:d("/observability-best-practices/recipes/lambda","3ed"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/msk",component:d("/observability-best-practices/recipes/msk","4ca"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/nodejs",component:d("/observability-best-practices/recipes/nodejs","5af"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/rds",component:d("/observability-best-practices/recipes/rds","c19"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/recipes/amg-athena-plugin",component:d("/observability-best-practices/recipes/recipes/amg-athena-plugin","b61"),exact:!0},{path:"/observability-best-practices/recipes/recipes/amg-automation-tf",component:d("/observability-best-practices/recipes/recipes/amg-automation-tf","d94"),exact:!0},{path:"/observability-best-practices/recipes/recipes/amg-google-auth-saml",component:d("/observability-best-practices/recipes/recipes/amg-google-auth-saml","8fa"),exact:!0},{path:"/observability-best-practices/recipes/recipes/amg-redshift-plugin",component:d("/observability-best-practices/recipes/recipes/amg-redshift-plugin","ea7"),exact:!0},{path:"/observability-best-practices/recipes/recipes/amp-alertmanager-terraform",component:d("/observability-best-practices/recipes/recipes/amp-alertmanager-terraform","20a"),exact:!0},{path:"/observability-best-practices/recipes/recipes/amp-mixin-dashboards",component:d("/observability-best-practices/recipes/recipes/amp-mixin-dashboards","e78"),exact:!0},{path:"/observability-best-practices/recipes/recipes/as-ec2-using-amp-and-alertmanager",component:d("/observability-best-practices/recipes/recipes/as-ec2-using-amp-and-alertmanager","d59"),exact:!0},{path:"/observability-best-practices/recipes/recipes/ec2-eks-metrics-go-adot-ampamg",component:d("/observability-best-practices/recipes/recipes/ec2-eks-metrics-go-adot-ampamg","42c"),exact:!0},{path:"/observability-best-practices/recipes/recipes/fargate-eks-metrics-go-adot-ampamg",component:d("/observability-best-practices/recipes/recipes/fargate-eks-metrics-go-adot-ampamg","702"),exact:!0},{path:"/observability-best-practices/recipes/recipes/fargate-eks-xray-go-adot-amg",component:d("/observability-best-practices/recipes/recipes/fargate-eks-xray-go-adot-amg","391"),exact:!0},{path:"/observability-best-practices/recipes/recipes/lambda-cw-metrics-go-amp",component:d("/observability-best-practices/recipes/recipes/lambda-cw-metrics-go-amp","778"),exact:!0},{path:"/observability-best-practices/recipes/recipes/metrics-explorer-filter-by-tags",component:d("/observability-best-practices/recipes/recipes/metrics-explorer-filter-by-tags","564"),exact:!0},{path:"/observability-best-practices/recipes/recipes/monitoring-hybridenv-amg",component:d("/observability-best-practices/recipes/recipes/monitoring-hybridenv-amg","d5c"),exact:!0},{path:"/observability-best-practices/recipes/recipes/servicemesh-monitoring-ampamg",component:d("/observability-best-practices/recipes/recipes/servicemesh-monitoring-ampamg","816"),exact:!0},{path:"/observability-best-practices/recipes/recipes/Workspaces-Monitoring-AMP-AMG/",component:d("/observability-best-practices/recipes/recipes/Workspaces-Monitoring-AMP-AMG/","59e"),exact:!0},{path:"/observability-best-practices/recipes/telemetry",component:d("/observability-best-practices/recipes/telemetry","fd0"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/troubleshooting",component:d("/observability-best-practices/recipes/troubleshooting","358"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/recipes/workshops",component:d("/observability-best-practices/recipes/workshops","d93"),exact:!0,sidebar:"recipes"},{path:"/observability-best-practices/signals/alarms",component:d("/observability-best-practices/signals/alarms","0f6"),exact:!0,sidebar:"sigals"},{path:"/observability-best-practices/signals/anomalies",component:d("/observability-best-practices/signals/anomalies","e5e"),exact:!0},{path:"/observability-best-practices/signals/events",component:d("/observability-best-practices/signals/events","7cf"),exact:!0,sidebar:"sigals"},{path:"/observability-best-practices/signals/logs",component:d("/observability-best-practices/signals/logs","291"),exact:!0,sidebar:"sigals"},{path:"/observability-best-practices/signals/metrics",component:d("/observability-best-practices/signals/metrics","bf9"),exact:!0,sidebar:"sigals"},{path:"/observability-best-practices/signals/traces",component:d("/observability-best-practices/signals/traces","b05"),exact:!0,sidebar:"sigals"},{path:"/observability-best-practices/tools/adot-traces",component:d("/observability-best-practices/tools/adot-traces","15b"),exact:!0},{path:"/observability-best-practices/tools/alarms",component:d("/observability-best-practices/tools/alarms","848"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/alerting_and_incident_management",component:d("/observability-best-practices/tools/alerting_and_incident_management","e7c"),exact:!0},{path:"/observability-best-practices/tools/amp",component:d("/observability-best-practices/tools/amp","d5a"),exact:!0},{path:"/observability-best-practices/tools/application-signals/kotlin-signals",component:d("/observability-best-practices/tools/application-signals/kotlin-signals","9a0"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/cloudwatch_agent",component:d("/observability-best-practices/tools/cloudwatch_agent","a3a"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/cloudwatch-dashboard",component:d("/observability-best-practices/tools/cloudwatch-dashboard","9d2"),exact:!0,sidebar:"guides"},{path:"/observability-best-practices/tools/collector-arch",component:d("/observability-best-practices/tools/collector-arch","c3e"),exact:!0},{path:"/observability-best-practices/tools/dashboards",component:d("/observability-best-practices/tools/dashboards","f71"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/emf",component:d("/observability-best-practices/tools/emf","24d"),exact:!0},{path:"/observability-best-practices/tools/internet_monitor",component:d("/observability-best-practices/tools/internet_monitor","43c"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/logs/",component:d("/observability-best-practices/tools/logs/","a56"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/logs/dataprotection/data-protection-policies",component:d("/observability-best-practices/tools/logs/dataprotection/data-protection-policies","f0c"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/logs/logs-insights-examples",component:d("/observability-best-practices/tools/logs/logs-insights-examples","5df"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/metrics",component:d("/observability-best-practices/tools/metrics","7b5"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/observability_accelerator",component:d("/observability-best-practices/tools/observability_accelerator","b20"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/rum",component:d("/observability-best-practices/tools/rum","2f5"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/slos",component:d("/observability-best-practices/tools/slos","b32"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/synthetics",component:d("/observability-best-practices/tools/synthetics","191"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tools/xray",component:d("/observability-best-practices/tools/xray","26e"),exact:!0,sidebar:"tools"},{path:"/observability-best-practices/tutorial-basics/congratulations",component:d("/observability-best-practices/tutorial-basics/congratulations","349"),exact:!0},{path:"/observability-best-practices/tutorial-basics/create-a-blog-post",component:d("/observability-best-practices/tutorial-basics/create-a-blog-post","5c5"),exact:!0},{path:"/observability-best-practices/tutorial-basics/create-a-document",component:d("/observability-best-practices/tutorial-basics/create-a-document","30a"),exact:!0},{path:"/observability-best-practices/tutorial-basics/create-a-page",component:d("/observability-best-practices/tutorial-basics/create-a-page","5f2"),exact:!0},{path:"/observability-best-practices/tutorial-basics/deploy-your-site",component:d("/observability-best-practices/tutorial-basics/deploy-your-site","883"),exact:!0},{path:"/observability-best-practices/tutorial-extras/manage-docs-versions",component:d("/observability-best-practices/tutorial-extras/manage-docs-versions","efb"),exact:!0},{path:"/observability-best-practices/tutorial-extras/translate-your-site",component:d("/observability-best-practices/tutorial-extras/translate-your-site","a4c"),exact:!0}]}]}]},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>i,x:()=>o});var r=n(96540),a=n(74848);const i=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),(0,a.jsx)(i.Provider,{value:n,children:t})}},38536:(e,t,n)=>{"use strict";var r=n(96540),a=n(5338),i=n(80545),o=n(54625),s=n(4784),l=n(38193);const c=[n(10119),n(26134),n(76294),n(51043)];var u=n(35947),d=n(56347),p=n(22831),f=n(74848);function b(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5260),m=n(44586),g=n(86025),y=n(6342),v=n(61213),w=n(32131),k=n(14090),x=n(2967),_=n(70440),S=n(41463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.A)(),r=(0,w.o)(),a=n[e].htmlLang,i=e=>e.replace("-","_");return(0,f.jsxs)(h.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:i(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:i(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function C(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.A)(),{pathname:r}=(0,d.zy)();return e+(0,_.applyTrailingSlash)((0,g.Ay)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function T(){const{i18n:{currentLocale:e}}=(0,m.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:k.w})]}),n&&(0,f.jsx)(v.be,{image:n}),(0,f.jsx)(C,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.A,{tag:x.Cy,locale:e}),(0,f.jsx)(h.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const A=new Map;var j=n(6125),O=n(26988),L=n(205);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function N(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,p.u)(u.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.A.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),N(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(I,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(d.qh,{location:t,render:()=>e})})}}const D=R,M="__docusaurus-base-url-issue-banner-suggestion-container";function F(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '__docusaurus-base-url-issue-banner-container';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

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

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}((0,d.zy)());return(0,f.jsx)(D,{location:e,children:W})}function V(){return(0,f.jsx)($.A,{children:(0,f.jsx)(O.l,{children:(0,f.jsxs)(j.x,{children:[(0,f.jsxs)(b,{children:[(0,f.jsx)(H,{}),(0,f.jsx)(T,{}),(0,f.jsx)(B,{}),(0,f.jsx)(Q,{})]}),(0,f.jsx)(q,{})]})})})}var G=n(84054);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(86921);const Z=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch:e=>{if(!(e=>!J()&&!X.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,p.u)(u.A,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),N(e))},te=Object.freeze(ee);function ne(e){let{children:t}=e;return"hash"===s.default.future.experimental_router?(0,f.jsx)(o.I9,{children:t}):(0,f.jsx)(o.Kd,{children:t})}const re=Boolean(!0);if(l.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.vd,{children:(0,f.jsx)(ne,{children:(0,f.jsx)(V,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},o=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(re)window.docusaurusRoot=a.hydrateRoot(e,t,{onRecoverableError:n});else{const r=a.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};N(window.location.pathname).then((()=>{(0,r.startTransition)(o)}))}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(96540),a=n(4784);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/observability-best-practices/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/observability-best-practices/","mainDocId":"guides/index","docs":[{"id":"contributors","path":"/observability-best-practices/contributors"},{"id":"faq/adot","path":"/observability-best-practices/faq/adot","sidebar":"faq"},{"id":"faq/amg","path":"/observability-best-practices/faq/amg","sidebar":"faq"},{"id":"faq/amp","path":"/observability-best-practices/faq/amp","sidebar":"faq"},{"id":"faq/cloudwatch","path":"/observability-best-practices/faq/cloudwatch","sidebar":"faq"},{"id":"faq/faq","path":"/observability-best-practices/faq/","sidebar":"faq"},{"id":"faq/x-ray","path":"/observability-best-practices/faq/x-ray","sidebar":"faq"},{"id":"guides/apm","path":"/observability-best-practices/guides/apm"},{"id":"guides/choosing-a-tracing-agent","path":"/observability-best-practices/guides/choosing-a-tracing-agent","sidebar":"guides"},{"id":"guides/containers/aws-native/ecs/best-practices-metrics-collection-1","path":"/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-1","sidebar":"guides"},{"id":"guides/containers/aws-native/ecs/best-practices-metrics-collection-2","path":"/observability-best-practices/guides/containers/aws-native/ecs/best-practices-metrics-collection-2","sidebar":"guides"},{"id":"guides/containers/aws-native/ecs/cost-optimization","path":"/observability-best-practices/guides/containers/aws-native/ecs/cost-optimization"},{"id":"guides/containers/aws-native/ecs/resource-optimization","path":"/observability-best-practices/guides/containers/aws-native/ecs/resource-optimization"},{"id":"guides/containers/aws-native/eks/amazon-cloudwatch-container-insights","path":"/observability-best-practices/guides/containers/aws-native/eks/amazon-cloudwatch-container-insights","sidebar":"guides"},{"id":"guides/containers/aws-native/eks/container-tracing-with-aws-xray","path":"/observability-best-practices/guides/containers/aws-native/eks/container-tracing-with-aws-xray","sidebar":"guides"},{"id":"guides/containers/aws-native/eks/eks-api-server-monitoring","path":"/observability-best-practices/guides/containers/aws-native/eks/eks-api-server-monitoring","sidebar":"guides"},{"id":"guides/containers/aws-native/eks/log-aggregation","path":"/observability-best-practices/guides/containers/aws-native/eks/log-aggregation","sidebar":"guides"},{"id":"guides/containers/oss/ecs/best-practices-metrics-collection","path":"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection"},{"id":"guides/containers/oss/ecs/best-practices-metrics-collection-1","path":"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-1","sidebar":"guides"},{"id":"guides/containers/oss/ecs/best-practices-metrics-collection-2","path":"/observability-best-practices/guides/containers/oss/ecs/best-practices-metrics-collection-2","sidebar":"guides"},{"id":"guides/containers/oss/eks/best-practices-metrics-collection","path":"/observability-best-practices/guides/containers/oss/eks/best-practices-metrics-collection","sidebar":"guides"},{"id":"guides/containers/oss/eks/cost-optimization","path":"/observability-best-practices/guides/containers/oss/eks/cost-optimization"},{"id":"guides/containers/oss/eks/keda-amp-eks","path":"/observability-best-practices/guides/containers/oss/eks/keda-amp-eks","sidebar":"guides"},{"id":"guides/containers/oss/eks/resource-optimization","path":"/observability-best-practices/guides/containers/oss/eks/resource-optimization"},{"id":"guides/cost/cost-visualization/amazon-cloudwatch","path":"/observability-best-practices/guides/cost/cost-visualization/amazon-cloudwatch","sidebar":"guides"},{"id":"guides/cost/cost-visualization/amazon-grafana","path":"/observability-best-practices/guides/cost/cost-visualization/amazon-grafana","sidebar":"guides"},{"id":"guides/cost/cost-visualization/amazon-prometheus","path":"/observability-best-practices/guides/cost/cost-visualization/amazon-prometheus","sidebar":"guides"},{"id":"guides/cost/cost-visualization/AmazonManagedServiceforPrometheus","path":"/observability-best-practices/guides/cost/cost-visualization/AmazonManagedServiceforPrometheus","sidebar":"guides"},{"id":"guides/cost/cost-visualization/aws-xray","path":"/observability-best-practices/guides/cost/cost-visualization/aws-xray","sidebar":"guides"},{"id":"guides/cost/cost-visualization/cost","path":"/observability-best-practices/guides/cost/cost-visualization/cost","sidebar":"guides"},{"id":"guides/cost/cost-visualization/reducing-cw-cost","path":"/observability-best-practices/guides/cost/cost-visualization/reducing-cw-cost"},{"id":"guides/cost/kubecost","path":"/observability-best-practices/guides/cost/kubecost","sidebar":"guides"},{"id":"guides/cost/OLA-EC2-righsizing","path":"/observability-best-practices/guides/cost/OLA-EC2-righsizing","sidebar":"guides"},{"id":"guides/dashboards","path":"/observability-best-practices/guides/dashboards"},{"id":"guides/databases/rds-and-aurora","path":"/observability-best-practices/guides/databases/rds-and-aurora","sidebar":"guides"},{"id":"guides/ec2-monitoring","path":"/observability-best-practices/guides/ec2-monitoring","sidebar":"guides"},{"id":"guides/full-stack","path":"/observability-best-practices/guides/full-stack"},{"id":"guides/hybrid-and-multicloud","path":"/observability-best-practices/guides/hybrid-and-multicloud","sidebar":"guides"},{"id":"guides/index","path":"/observability-best-practices/guides/","sidebar":"guides"},{"id":"guides/observability-maturity-model","path":"/observability-best-practices/guides/observability-maturity-model","sidebar":"guides"},{"id":"guides/operational/adot-at-scale/adot-java-spring/adot-java-spring","path":"/observability-best-practices/guides/operational/adot-at-scale/adot-java-spring/","sidebar":"guides"},{"id":"guides/operational/adot-at-scale/operating-adot-collector","path":"/observability-best-practices/guides/operational/adot-at-scale/operating-adot-collector","sidebar":"guides"},{"id":"guides/operational/alerting/amp-alertmgr","path":"/observability-best-practices/guides/operational/alerting/amp-alertmgr","sidebar":"guides"},{"id":"guides/operational/alerts/amg-alerts","path":"/observability-best-practices/guides/operational/alerts/amg-alerts"},{"id":"guides/operational/alerts/cw-alarms","path":"/observability-best-practices/guides/operational/alerts/cw-alarms"},{"id":"guides/operational/alerts/prometheus-alerts","path":"/observability-best-practices/guides/operational/alerts/prometheus-alerts"},{"id":"guides/operational/business/key-performance-indicators","path":"/observability-best-practices/guides/operational/business/key-performance-indicators","sidebar":"guides"},{"id":"guides/operational/business/monitoring-for-business-outcomes","path":"/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes","sidebar":"guides"},{"id":"guides/operational/business/sla-percentile","path":"/observability-best-practices/guides/operational/business/sla-percentile","sidebar":"guides"},{"id":"guides/operational/gitops-with-amg/gitops-with-amg","path":"/observability-best-practices/guides/operational/gitops-with-amg/","sidebar":"guides"},{"id":"guides/operational/observability-driven-dev","path":"/observability-best-practices/guides/operational/observability-driven-dev"},{"id":"guides/partners/databricks","path":"/observability-best-practices/guides/partners/databricks","sidebar":"guides"},{"id":"guides/rust-custom-metrics/README","path":"/observability-best-practices/guides/rust-custom-metrics/","sidebar":"guides"},{"id":"guides/serverless/aws-native/lambda-based-observability","path":"/observability-best-practices/guides/serverless/aws-native/lambda-based-observability","sidebar":"guides"},{"id":"guides/serverless/oss/lambda-based-observability-adot","path":"/observability-best-practices/guides/serverless/oss/lambda-based-observability-adot","sidebar":"guides"},{"id":"guides/signal-collection/emf","path":"/observability-best-practices/guides/signal-collection/emf","sidebar":"guides"},{"id":"guides/signal-correlation/how-does-it-work","path":"/observability-best-practices/guides/signal-correlation/how-does-it-work"},{"id":"guides/strategy","path":"/observability-best-practices/guides/strategy"},{"id":"home","path":"/observability-best-practices/home"},{"id":"intro","path":"/observability-best-practices/intro"},{"id":"patterns/adoteksfargate","path":"/observability-best-practices/patterns/adoteksfargate","sidebar":"patterns"},{"id":"patterns/ampagentless","path":"/observability-best-practices/patterns/ampagentless","sidebar":"patterns"},{"id":"patterns/apmappsignals","path":"/observability-best-practices/patterns/apmappsignals","sidebar":"patterns"},{"id":"patterns/ecsampamg","path":"/observability-best-practices/patterns/ecsampamg","sidebar":"patterns"},{"id":"patterns/eksampamg","path":"/observability-best-practices/patterns/eksampamg","sidebar":"patterns"},{"id":"patterns/lambdalogging","path":"/observability-best-practices/patterns/lambdalogging","sidebar":"patterns"},{"id":"patterns/multiaccount","path":"/observability-best-practices/patterns/multiaccount","sidebar":"patterns"},{"id":"patterns/multiaccountoss","path":"/observability-best-practices/patterns/multiaccountoss","sidebar":"patterns"},{"id":"patterns/o11ypipeline","path":"/observability-best-practices/patterns/o11ypipeline","sidebar":"patterns"},{"id":"patterns/opensearch","path":"/observability-best-practices/patterns/opensearch","sidebar":"patterns"},{"id":"patterns/otel","path":"/observability-best-practices/patterns/otel","sidebar":"patterns"},{"id":"patterns/sparkbigdata","path":"/observability-best-practices/patterns/sparkbigdata","sidebar":"patterns"},{"id":"patterns/Tracing/xrayec2","path":"/observability-best-practices/patterns/Tracing/xrayec2","sidebar":"patterns"},{"id":"patterns/Tracing/xrayecs","path":"/observability-best-practices/patterns/Tracing/xrayecs","sidebar":"patterns"},{"id":"patterns/Tracing/xrayeks","path":"/observability-best-practices/patterns/Tracing/xrayeks","sidebar":"patterns"},{"id":"patterns/Tracing/xraylambda","path":"/observability-best-practices/patterns/Tracing/xraylambda","sidebar":"patterns"},{"id":"patterns/vpcflowlogs","path":"/observability-best-practices/patterns/vpcflowlogs","sidebar":"patterns"},{"id":"recipes/aes","path":"/observability-best-practices/recipes/aes","sidebar":"recipes"},{"id":"recipes/alerting","path":"/observability-best-practices/recipes/alerting","sidebar":"recipes"},{"id":"recipes/amg","path":"/observability-best-practices/recipes/amg","sidebar":"recipes"},{"id":"recipes/amp","path":"/observability-best-practices/recipes/amp","sidebar":"recipes"},{"id":"recipes/anomaly-detection","path":"/observability-best-practices/recipes/anomaly-detection","sidebar":"recipes"},{"id":"recipes/apprunner","path":"/observability-best-practices/recipes/apprunner","sidebar":"recipes"},{"id":"recipes/cw","path":"/observability-best-practices/recipes/cw","sidebar":"recipes"},{"id":"recipes/dimensions","path":"/observability-best-practices/recipes/dimensions","sidebar":"recipes"},{"id":"recipes/dynamodb","path":"/observability-best-practices/recipes/dynamodb","sidebar":"recipes"},{"id":"recipes/ecs","path":"/observability-best-practices/recipes/ecs","sidebar":"recipes"},{"id":"recipes/eks","path":"/observability-best-practices/recipes/eks","sidebar":"recipes"},{"id":"recipes/index","path":"/observability-best-practices/recipes/","sidebar":"recipes"},{"id":"recipes/infra","path":"/observability-best-practices/recipes/infra","sidebar":"recipes"},{"id":"recipes/java","path":"/observability-best-practices/recipes/java","sidebar":"recipes"},{"id":"recipes/lambda","path":"/observability-best-practices/recipes/lambda","sidebar":"recipes"},{"id":"recipes/msk","path":"/observability-best-practices/recipes/msk","sidebar":"recipes"},{"id":"recipes/nodejs","path":"/observability-best-practices/recipes/nodejs","sidebar":"recipes"},{"id":"recipes/rds","path":"/observability-best-practices/recipes/rds","sidebar":"recipes"},{"id":"recipes/recipes/amg-athena-plugin","path":"/observability-best-practices/recipes/recipes/amg-athena-plugin"},{"id":"recipes/recipes/amg-automation-tf","path":"/observability-best-practices/recipes/recipes/amg-automation-tf"},{"id":"recipes/recipes/amg-google-auth-saml","path":"/observability-best-practices/recipes/recipes/amg-google-auth-saml"},{"id":"recipes/recipes/amg-redshift-plugin","path":"/observability-best-practices/recipes/recipes/amg-redshift-plugin"},{"id":"recipes/recipes/amp-alertmanager-terraform","path":"/observability-best-practices/recipes/recipes/amp-alertmanager-terraform"},{"id":"recipes/recipes/amp-mixin-dashboards","path":"/observability-best-practices/recipes/recipes/amp-mixin-dashboards"},{"id":"recipes/recipes/as-ec2-using-amp-and-alertmanager","path":"/observability-best-practices/recipes/recipes/as-ec2-using-amp-and-alertmanager"},{"id":"recipes/recipes/ec2-eks-metrics-go-adot-ampamg","path":"/observability-best-practices/recipes/recipes/ec2-eks-metrics-go-adot-ampamg"},{"id":"recipes/recipes/fargate-eks-metrics-go-adot-ampamg","path":"/observability-best-practices/recipes/recipes/fargate-eks-metrics-go-adot-ampamg"},{"id":"recipes/recipes/fargate-eks-xray-go-adot-amg","path":"/observability-best-practices/recipes/recipes/fargate-eks-xray-go-adot-amg"},{"id":"recipes/recipes/lambda-cw-metrics-go-amp","path":"/observability-best-practices/recipes/recipes/lambda-cw-metrics-go-amp"},{"id":"recipes/recipes/metrics-explorer-filter-by-tags","path":"/observability-best-practices/recipes/recipes/metrics-explorer-filter-by-tags"},{"id":"recipes/recipes/monitoring-hybridenv-amg","path":"/observability-best-practices/recipes/recipes/monitoring-hybridenv-amg"},{"id":"recipes/recipes/servicemesh-monitoring-ampamg","path":"/observability-best-practices/recipes/recipes/servicemesh-monitoring-ampamg"},{"id":"recipes/recipes/Workspaces-Monitoring-AMP-AMG/README","path":"/observability-best-practices/recipes/recipes/Workspaces-Monitoring-AMP-AMG/"},{"id":"recipes/telemetry","path":"/observability-best-practices/recipes/telemetry","sidebar":"recipes"},{"id":"recipes/troubleshooting","path":"/observability-best-practices/recipes/troubleshooting","sidebar":"recipes"},{"id":"recipes/workshops","path":"/observability-best-practices/recipes/workshops","sidebar":"recipes"},{"id":"signals/alarms","path":"/observability-best-practices/signals/alarms","sidebar":"sigals"},{"id":"signals/anomalies","path":"/observability-best-practices/signals/anomalies"},{"id":"signals/events","path":"/observability-best-practices/signals/events","sidebar":"sigals"},{"id":"signals/logs","path":"/observability-best-practices/signals/logs","sidebar":"sigals"},{"id":"signals/metrics","path":"/observability-best-practices/signals/metrics","sidebar":"sigals"},{"id":"signals/traces","path":"/observability-best-practices/signals/traces","sidebar":"sigals"},{"id":"tools/adot-traces","path":"/observability-best-practices/tools/adot-traces"},{"id":"tools/alarms","path":"/observability-best-practices/tools/alarms","sidebar":"tools"},{"id":"tools/alerting_and_incident_management","path":"/observability-best-practices/tools/alerting_and_incident_management"},{"id":"tools/amp","path":"/observability-best-practices/tools/amp"},{"id":"tools/application-signals/kotlin-signals","path":"/observability-best-practices/tools/application-signals/kotlin-signals","sidebar":"tools"},{"id":"tools/cloudwatch_agent","path":"/observability-best-practices/tools/cloudwatch_agent","sidebar":"tools"},{"id":"tools/cloudwatch-dashboard","path":"/observability-best-practices/tools/cloudwatch-dashboard","sidebar":"guides"},{"id":"tools/collector-arch","path":"/observability-best-practices/tools/collector-arch"},{"id":"tools/dashboards","path":"/observability-best-practices/tools/dashboards","sidebar":"tools"},{"id":"tools/emf","path":"/observability-best-practices/tools/emf"},{"id":"tools/internet_monitor","path":"/observability-best-practices/tools/internet_monitor","sidebar":"tools"},{"id":"tools/logs/dataprotection/data-protection-policies","path":"/observability-best-practices/tools/logs/dataprotection/data-protection-policies","sidebar":"tools"},{"id":"tools/logs/index","path":"/observability-best-practices/tools/logs/","sidebar":"tools"},{"id":"tools/logs/logs-insights-examples","path":"/observability-best-practices/tools/logs/logs-insights-examples","sidebar":"tools"},{"id":"tools/metrics","path":"/observability-best-practices/tools/metrics","sidebar":"tools"},{"id":"tools/observability_accelerator","path":"/observability-best-practices/tools/observability_accelerator","sidebar":"tools"},{"id":"tools/rum","path":"/observability-best-practices/tools/rum","sidebar":"tools"},{"id":"tools/slos","path":"/observability-best-practices/tools/slos","sidebar":"tools"},{"id":"tools/synthetics","path":"/observability-best-practices/tools/synthetics","sidebar":"tools"},{"id":"tools/xray","path":"/observability-best-practices/tools/xray","sidebar":"tools"},{"id":"tutorial-basics/congratulations","path":"/observability-best-practices/tutorial-basics/congratulations"},{"id":"tutorial-basics/create-a-blog-post","path":"/observability-best-practices/tutorial-basics/create-a-blog-post"},{"id":"tutorial-basics/create-a-document","path":"/observability-best-practices/tutorial-basics/create-a-document"},{"id":"tutorial-basics/create-a-page","path":"/observability-best-practices/tutorial-basics/create-a-page"},{"id":"tutorial-basics/deploy-your-site","path":"/observability-best-practices/tutorial-basics/deploy-your-site"},{"id":"tutorial-extras/manage-docs-versions","path":"/observability-best-practices/tutorial-extras/manage-docs-versions"},{"id":"tutorial-extras/translate-your-site","path":"/observability-best-practices/tutorial-extras/translate-your-site"}],"draftIds":[],"sidebars":{"guides":{"link":{"path":"/observability-best-practices/guides/","label":"guides/index"}},"sigals":{"link":{"path":"/observability-best-practices/signals/logs","label":"signals/logs"}},"tools":{"link":{"path":"/observability-best-practices/tools/observability_accelerator","label":"tools/observability_accelerator"}},"recipes":{"link":{"path":"/observability-best-practices/recipes/","label":"recipes/index"}},"faq":{"link":{"path":"/observability-best-practices/faq/","label":"faq/faq"}},"patterns":{"link":{"path":"/observability-best-practices/patterns/Tracing/xrayec2","label":"patterns/Tracing/xrayec2"}}}}],"breadcrumbs":true}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en","ja"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"ja":{"label":"\u65e5\u672c\u8a9e","direction":"ltr","htmlLang":"ja","calendar":"gregory","path":"ja"}}}');var s=n(22654);const l=JSON.parse('{"docusaurusVersion":"3.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.4.0"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.44.6"}}}');var c=n(74848);const u={siteConfig:a.default,siteMetadata:l,globalData:i,i18n:o,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(96540),a=n(38193),i=n(5260),o=n(70440),s=n(20217),l=n(53102),c=n(74848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(h,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(i.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(s.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const b=e=>(0,c.jsx)(f,{...e});class h extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??b)(e)}return e??null}}},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(96540);var r=n(80545),a=n(74848);function i(e){return(0,a.jsx)(r.mg,{...e})}},28774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),a=n(54625),i=n(70440),o=n(44586),s=n(16654),l=n(38193),c=n(63427),u=n(86025),d=n(74848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:b,isActive:h,"data-noBrokenLinkCheck":m,autoAddBaseUrl:g=!0,...y}=e;const{siteConfig:v}=(0,o.A)(),{trailingSlash:w,baseUrl:k}=v,x=v.future.experimental_router,{withBaseUrl:_}=(0,u.hH)(),S=(0,c.A)(),E=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>E.current));const C=p||f;const T=(0,s.A)(C),A=C?.replace("pathname://","");let j=void 0!==A?(O=A,g&&(e=>e.startsWith("/"))(O)?_(O):O):void 0;var O;"hash"===x&&j?.startsWith("./")&&(j=j?.slice(1)),j&&T&&(j=(0,i.applyTrailingSlash)(j,{trailingSlash:w,baseUrl:k}));const L=(0,r.useRef)(!1),P=n?a.k2:a.N_,I=l.A.canUseIntersectionObserver,N=(0,r.useRef)(),R=()=>{L.current||null==j||(window.docusaurus.preload(j),L.current=!0)};(0,r.useEffect)((()=>(!I&&T&&null!=j&&window.docusaurus.prefetch(j),()=>{I&&N.current&&N.current.disconnect()})),[N,j,I,T]);const D=j?.startsWith("#")??!1,M=!y.target||"_self"===y.target,F=!j||!T||!M;return m||!D&&F||S.collectLink(j),y.id&&S.collectAnchor(y.id),F?(0,d.jsx)("a",{ref:E,href:j,...C&&!T&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(P,{...y,onMouseEnter:R,onTouchStart:R,innerRef:e=>{E.current=e,I&&e&&T&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),N.current.observe(e))},to:j,...n&&{isActive:h,activeClassName:b}})}const f=r.forwardRef(p)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(96540),a=n(74848);function i(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(22654);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return i(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const o=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:i(o,r)})}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,hH:()=>o});var r=n(96540),a=n(44586),i=n(16654);function o(){const{siteConfig:e}=(0,a.A)(),{baseUrl:t,url:n}=e,o=e.future.experimental_router,s=(0,r.useCallback)(((e,r)=>function(e){let{siteUrl:t,baseUrl:n,url:r,options:{forcePrependBaseUrl:a=!1,absolute:o=!1}={},router:s}=e;if(!r||r.startsWith("#")||(0,i.z)(r))return r;if("hash"===s)return r.startsWith("/")?`.${r}`:`./${r}`;if(a)return n+r.replace(/^\//,"");if(r===n.replace(/\/$/,""))return n;const l=r.startsWith(n)?r:n+r.replace(/^\//,"");return o?t+l:l}({siteUrl:n,baseUrl:t,url:e,options:r,router:o})),[n,t,o]);return{withBaseUrl:s}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},63427:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540);n(74848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),i=()=>(0,r.useContext)(a);function o(){return i()}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),a=n(26988);function i(){return(0,r.useContext)(a.o)}},66588:(e,t,n)=>{"use strict";n.d(t,{P_:()=>o,kh:()=>i});var r=n(44586),a=n(17065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function o(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),a=n(6125);function i(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const a=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect},36803:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),a=n(53102);function i(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[i,o]=n;const s=a?`${a}.${i}`:i;r(o)?e(o,s):t[s]=o}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>o,o:()=>i});var r=n(96540),a=n(74848);const i=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(i),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return(0,a.jsx)(i.Provider,{value:s,children:t})}},48295:(e,t,n)=>{"use strict";n.d(t,{zK:()=>f,vT:()=>u,Gy:()=>l,HW:()=>b,ht:()=>c,r7:()=>p,jh:()=>d});var r=n(56347),a=n(66588);const i=e=>e.versions.find((e=>e.isLast));function o(e,t){const n=function(e,t){const n=i(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const s={},l=()=>(0,a.kh)("docusaurus-plugin-content-docs")??s,c=e=>{try{return(0,a.P_)("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function u(e){void 0===e&&(e={});const t=l(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function d(e){return c(e).versions}function p(e){const t=c(e);return i(t)}function f(e){const t=c(e),{pathname:n}=(0,r.zy)();return o(t,n)}function b(e){const t=c(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=i(e);return{latestDocSuggestion:o(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},26134:(e,t,n)=>{"use strict";var r=n(71765),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(19700),n(18692)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},51107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(34164),a=n(21312),i=n(6342),o=n(28774),s=n(63427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(74848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,i.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(o.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(74848);function i(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},20217:(e,t,n)=>{"use strict";n.d(t,{A:()=>nn});var r=n(96540),a=n(34164),i=n(67489),o=n(61213),s=n(56347),l=n(21312),c=n(75062),u=n(74848);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const b=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??b,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":b,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var m=n(17559),g=n(14090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(6342),k=n(65041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:i,...o}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...o,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const _={closeButton:"closeButton_CVFx"};function S(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",_.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.A)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.M)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:i}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[i&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),i&&(0,u.jsx)(S,{onClick:n,className:T.announcementBarClose})]})}var j=n(89876),O=n(23104);var L=n(89532),P=n(75600);const I=r.createContext(null);function N(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,P.YL)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,L.ZC)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(I.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(I);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:R(i)})),[a,i,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:i}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(95293),z=n(92303);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function H(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function U(e){let{className:t,buttonClassName:n,value:r,onChange:i}=e;const o=(0,z.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.A)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.A)("clean-btn",$.toggleButton,!o&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===r?"light":"dark"),disabled:!o,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,a.A)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(H,{className:(0,a.A)($.toggleIcon,$.darkToggleIcon)})]})})}const q=r.memo(U),W={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Q(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,F.G)();return r?null:(0,u.jsx)(q,{className:t,buttonClassName:"dark"===n?W.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var V=n(23465);function G(){return(0,u.jsx)(V.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,j.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(G,{}),(0,u.jsx)(Q,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Z=n(28774),X=n(86025),J=n(16654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(43186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:i,html:o,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Ay)(r),p=(0,X.Ay)(t),f=(0,X.Ay)(a,{forcePrependBaseUrl:!0}),b=i&&a&&!(0,J.A)(a),h=o?{dangerouslySetInnerHTML:{__html:o}}:{children:(0,u.jsxs)(u.Fragment,{children:[i,b&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Z.A,{href:l?f:a,...c,...h}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const i=(0,u.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:i}):i}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function ie(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var oe=n(41422),se=n(99169),le=n(44586);const ce="dropdownNavbarItemMobile_S0Fm";function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.A)("navbar__link",i),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(bt,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:i,onClick:o,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:b}=(0,oe.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&b(!d)}),[c,d,b]),(0,u.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.A)(ce,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(oe.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(bt,{mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var be=n(32131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const me="iconLanguage_nlXk";var ge=n(11088),ye=n(5391);var ve=n(57948),we=n(91034),ke=n(5891),xe=n(32384),_e=n(69913),Se=n(4471),Ee=n(27674),Ce=n(86841),Te=n(43810);const Ae="searchBar_RVTs",je="dropdownMenu_qbY6",Oe="searchBarLeft_MXDe",Le="suggestion_fB_2",Pe="cursor_eG29",Ie="hitTree_kk6K",Ne="hitIcon_a7Zy",Re="hitPath_ieM4",De="noResultsIcon_EBY5",Me="hitFooter_E9YW",Fe="hitWrapper_sAK8",ze="hitTitle_vyVt",Be="hitAction_NqkB",He="noResults_l6Q3",$e="searchBarContainer_NW3z",Ue="searchBarLoadingRing_YnHq",qe="searchClearButton_qk4g",We="searchIndexLoading_EJ1f",Qe="searchHintContainer_Pkmr",Ve="searchHint_iIMx",Ge="focused_OWtg",Ke="input_FOTf",Ye="hint_URu1",Ze="suggestions_X8XU",Xe="dataset_QiCy",Je="empty_eITn";function et(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:s}=e;const l=n===_e.i.Title,c=n===_e.i.Keywords,u=l||c,d=n===_e.i.Heading,p=[];o?p.push(''):s&&p.push('');const f=p.map((e=>`${e}`)),b=`${u?'':d?'':''}`,h=[`${c?(0,Ce.Z)(t.s,i):(0,Te.C)(t.t,(0,Ee.g)(a,"t"),i)}`];if(!o&&!s&&ge.tb){const e=r?r.b?.concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;h.push(`${(0,Se.$)(e??[])}`)}else u||h.push(`${(0,Ce.Z)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)}`);const m=``;return[...f,b,``,...h,"",m].join("")}function tt(){return`${(0,l.T)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var nt=n(2849),rt=n(43385);async function at(){const e=await Promise.all([n.e(489),n.e(5741)]).then(n.t.bind(n,90489,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const it="_highlight";const ot=function(e){let{handleSearchBarToggle:t}=e;const a=(0,z.A)(),{siteConfig:{baseUrl:i},i18n:{currentLocale:o}}=(0,le.A)(),c=(0,we.vT)();let d=i;try{const{preferredVersion:e}=function(){return n(91034).g1(...arguments)}(c?.pluginId??ge.UB);e&&!e.isLast&&(d=e.path+"/")}catch(M){if(ge.I$&&!(M instanceof ve.dV))throw M}const p=(0,s.W6)(),f=(0,s.zy)(),b=(0,r.useRef)(null),h=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),[g,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(!1),[k,x]=(0,r.useState)(""),_=(0,r.useRef)(null),S=(0,r.useRef)(""),[E,C]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ge.Hg))return;let e="";if(f.pathname.startsWith(d)){const t=f.pathname.substring(d.length);let n;for(const e of ge.Hg){const r="string"==typeof e?e:e.path;if(t===r||t.startsWith(`${r}/`)){n=r;break}}n&&(e=n)}S.current!==e&&(h.current.delete(e),S.current=e),C(e)}),[f.pathname,d]);const T=!!ge.O6&&Array.isArray(ge.Hg)&&""===E,A=(0,r.useCallback)((async()=>{if(T||h.current.get(E))return;h.current.set(E,"loading"),_.current?.autocomplete.destroy(),y(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,ke.Z)(d,E),at()]);if(_.current=n(b.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,ye.A)(Ae,{[Oe]:"left"===ge.ZG}),noPrefix:!0,dropdownMenu:je,input:Ke,hint:Ye,suggestions:Ze,suggestion:Le,cursor:Pe,dataset:Xe,empty:Je}},[{source:(0,xe.m)(e,t,ge.AT),templates:{suggestion:et,empty:tt,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&(!E||!ge.dz))return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),a=new URLSearchParams;let s;if(a.set("q",t),E){const e=E&&Array.isArray(ge.Hg)?ge.Hg.find((e=>"string"==typeof e?e===E:e.path===E)):E,t=e?(0,rt.p)(e,o).label:E;s=ge.dz&&n?(0,l.T)({id:"theme.SearchBar.seeAllOutsideContext",message:'See all results outside "{context}"'},{context:t}):(0,l.T)({id:"theme.SearchBar.searchInContext",message:'See all results within "{context}"'},{context:t})}else s=(0,l.T)({id:"theme.SearchBar.seeAll",message:"See all results"});if(!E||!Array.isArray(ge.Hg)||ge.dz&&n||a.set("ctx",E),d!==i){if(!d.startsWith(i))throw new Error(`Version url '${d}' does not start with base url '${i}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);a.set("version",d.substring(i.length))}const c=`${i}search/?${a.toString()}`;return r.href=c,r.textContent=s,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),_.current?.autocomplete.close(),p.push(c))})),r})({query:t,isEmpty:n}),a=document.createElement("div");return a.className=Me,a.appendChild(r),a}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;b.current?.blur();let i=n;if(ge.CU&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(it,t);i+=`?${e.toString()}`}r&&(i+=r),p.push(i)})).on("autocomplete:closed",(()=>{b.current?.blur()})),h.current.set(E,"done"),y(!1),m.current){const e=b.current;e.value&&_.current?.autocomplete.open(),e.focus()}}),[T,E,d,i,p]);(0,r.useEffect)((()=>{if(!ge.CU)return;const e=a?new URLSearchParams(f.search).getAll(it):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ge.CU(t);n.unmark(),0!==e.length&&n.mark(e),x(e.join(" ")),_.current?.autocomplete.setVal(e.join(" "))}))}),[a,f.search,f.pathname]);const[j,O]=(0,r.useState)(!1),L=(0,r.useCallback)((()=>{m.current=!0,A(),O(!0),t?.(!0)}),[t,A]),P=(0,r.useCallback)((()=>{O(!1),t?.(!1)}),[t]),I=(0,r.useCallback)((()=>{A()}),[A]),N=(0,r.useCallback)((e=>{x(e.target.value),e.target.value&&w(!0)}),[]),R=!!a&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ge.WW)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),b.current?.focus(),L())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,L]);const D=(0,r.useCallback)((()=>{const e=new URLSearchParams(f.search);e.delete(it);const t=e.toString(),n=f.pathname+(""!=t?`?${t}`:"")+f.hash;n!=f.pathname+f.search+f.hash&&p.push(n),x(""),_.current?.autocomplete.setVal("")}),[f.pathname,f.search,f.hash,p]);return(0,u.jsxs)("div",{className:(0,ye.A)("navbar__search",$e,{[We]:g&&v,[Ge]:j}),hidden:T,dir:"ltr",children:[(0,u.jsx)("input",{placeholder:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:I,onFocus:L,onBlur:P,onChange:N,ref:b,value:k}),(0,u.jsx)(nt.A,{className:Ue}),ge.WW&&ge.pk&&(""!==k?(0,u.jsx)("button",{className:qe,onClick:D,children:"\u2715"}):a&&(0,u.jsxs)("div",{className:Qe,children:[(0,u.jsx)("kbd",{className:Ve,children:R?"\u2318":"ctrl"}),(0,u.jsx)("kbd",{className:Ve,children:"K"})]}))]})},st={navbarSearchContainer:"navbarSearchContainer_Bca1"};function lt(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.A)(n,st.navbarSearchContainer),children:t})}var ct=n(48295),ut=n(81754);var dt=n(55597);const pt=e=>e.docs.find((t=>t.id===e.mainDocId));const ft={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...i}=e;const{i18n:{currentLocale:o,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,be.o)(),{search:f,hash:b}=(0,s.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${b}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...r],m=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[o].label;return(0,u.jsx)(fe,{...i,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:me}),m]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(lt,{className:n,children:(0,u.jsx)(ot,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:i=!1}=e;const o=i?"li":"div";return(0,u.jsx)(o,{className:(0,a.A)({navbar__item:!r&&!i,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:i}=(0,ct.zK)(r),o=(0,ut.QB)(t,r),s=i?.path===o?.path;return null===o||o.unlisted&&!s?null:(0,u.jsx)(ie,{exact:!0,...a,isActive:()=>s||!!i?.sidebar&&i.sidebar===o.sidebar,label:n??o.id,to:o.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:i}=(0,ct.zK)(r),o=(0,ut.fW)(t,r).link;if(!o)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ie,{exact:!0,...a,isActive:()=>i?.sidebar===t,label:n??o.label,to:o.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const i=(0,ut.Vd)(r)[0],o=t??i.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return(0,u.jsx)(ie,{...a,label:o,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:i,...o}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,ct.zK)(n),f=(0,ct.jh)(n),{savePreferredVersionName:b}=(0,dt.g1)(n),h=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??pt(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>b(e.name)}})),...i],m=(0,ut.Vd)(n)[0],g=t&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,y=t&&h.length>1?void 0:pt(m).path;return h.length<=1?(0,u.jsx)(ie,{...o,mobile:t,label:g,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...o,mobile:t,label:g,to:y,items:h,isActive:r?()=>!1:void 0})}};function bt(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=ft[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function ht(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(bt,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function mt(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function gt(){const e=0===(0,w.p)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(mt,{onClick:()=>t.hide()}),t.content]})}function yt(){const e=(0,j.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(ht,{}),secondaryMenu:(0,u.jsx)(gt,{})}):null}const vt={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function wt(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function kt(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,w.p)(),o=(0,j.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,O.Mq)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o=s?n(!1):o+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[vt.navbarHideable,!d&&vt.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown}),children:[t,(0,u.jsx)(wt,{onClick:o.toggle}),(0,u.jsx)(yt,{})]})}var xt=n(70440);const _t={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function St(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Et(e){let{error:t}=e;const n=(0,xt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:_t.errorBoundaryError,children:n})}class Ct extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Tt="right";function At(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function jt(){const{toggle:e,shown:t}=(0,j.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(At,{})})}const Ot={colorModeToggle:"colorModeToggle_DEke"};function Lt(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Ct,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(bt,{...e})},t)))})}function Pt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function It(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Tt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(Pt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(jt,{}),(0,u.jsx)(G,{}),(0,u.jsx)(Lt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Lt,{items:r}),(0,u.jsx)(Q,{className:Ot.colorModeToggle}),!a&&(0,u.jsx)(lt,{children:(0,u.jsx)(ot,{})})]})})}function Nt(){return(0,u.jsx)(kt,{children:(0,u.jsx)(It,{})})}function Rt(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:i,...o}=t,s=(0,X.Ay)(n),l=(0,X.Ay)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:i?l:r}:{to:s},...o,children:[a,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function Dt(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Rt,{item:t})},t.href??t.to)}function Mt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Dt,{item:e},t)))})]})}function Ft(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Mt,{column:e},t)))})}function zt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Bt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Rt,{item:t})}function Ht(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Bt,{item:e}),t.length!==n+1&&(0,u.jsx)(zt,{})]},n)))})})}function $t(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Ft,{columns:t}):(0,u.jsx)(Ht,{links:t})}var Ut=n(21122);const qt="footerLogoLink_BH7S";function Wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.hH)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(Ut.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Qt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:qt,target:t.target,children:(0,u.jsx)(Wt,{logo:t})}):(0,u.jsx)(Wt,{logo:t})}function Vt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Gt(e){let{style:t,links:n,logo:r,copyright:i}=e;return(0,u.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||i)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),i]})]})})}function Kt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(Gt,{style:a,links:n&&n.length>0&&(0,u.jsx)($t,{links:n}),logo:r&&(0,u.jsx)(Qt,{logo:r}),copyright:t&&(0,u.jsx)(Vt,{copyright:t})})}const Yt=r.memo(Kt),Zt=(0,L.fM)([F.a,k.o,O.Tv,dt.VQ,o.Jx,function(e){let{children:t}=e;return(0,u.jsx)(P.y_,{children:(0,u.jsx)(j.e,{children:(0,u.jsx)(N,{children:t})})})}]);function Xt(e){let{children:t}=e;return(0,u.jsx)(Zt,{children:t})}var Jt=n(51107);function en(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Jt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(St,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Et,{error:t})})]})})})}const tn={mainWrapper:"mainWrapper_z2l0"};function nn(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,g.J)(),(0,u.jsxs)(Xt,{children:[(0,u.jsx)(o.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(Nt,{}),(0,u.jsx)("div",{id:d,className:(0,a.A)(m.G.wrapper.main,tn.mainWrapper,r),children:(0,u.jsx)(i.A,{fallback:e=>(0,u.jsx)(en,{...e}),children:t})}),!n&&(0,u.jsx)(Yt,{})]})}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(28774),a=n(86025),i=n(44586),o=n(6342),s=n(21122),l=n(74848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,a.Ay)(t.src),dark:(0,a.Ay)(t.srcDark||t.src)},o=(0,l.jsx)(s.A,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:o}):o}function u(e){const{siteConfig:{title:t}}=(0,i.A)(),{navbar:{title:n,logo:s}}=(0,o.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Ay)(s?.href||"/"),b=n?"":t,h=s?.alt??b;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});n(96540);var r=n(5260),a=n(74848);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),i&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:i}),o&&(0,a.jsx)("meta",{name:"docsearch:language",content:o}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),i&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:i})]})}},21122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(96540),a=n(34164),i=n(92303),o=n(95293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(74848);function c(e){let{className:t,children:n}=e;const c=(0,i.A)(),{colorMode:u}=(0,o.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const i=n({theme:e,className:(0,a.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:i},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:i}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:i,...a})}})}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>g,u:()=>c});var r=n(96540),a=n(38193),i=n(205),o=n(53109),s=n(74848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),i=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:i}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const i=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,o.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return p(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function b(e){if(!a.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:i,onCollapseTransitionEnd:o,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:i}),(0,s.jsx)(t,{ref:u,style:c?void 0:b(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),o?.(n))},className:l,children:a})}function m(e){let{collapsed:t,...n}=e;const[a,o]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,i.A)((()=>{t||o(!0)}),[t]),(0,i.A)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(h,{...n,collapsed:l}):null}function g(e){let{lazy:t,...n}=e;const r=t?m:h;return(0,s.jsx)(r,{...n})}},65041:(e,t,n)=>{"use strict";n.d(t,{M:()=>h,o:()=>b});var r=n(96540),a=n(92303),i=n(89466),o=n(89532),s=n(6342),l=n(74848);const c=(0,i.Wf)("docusaurus.announcement.dismiss"),u=(0,i.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function b(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,a.A)(),[n,i]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{i(d())}),[]);const o=(0,r.useCallback)((()=>{p(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new o.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>m});var r=n(96540),a=n(38193),i=n(89532),o=n(89466),s=n(6342),l=n(74848);const c=r.createContext(void 0),u="theme",d=(0,o.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,b=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[a,i]=(0,r.useState)(b(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const o=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&h(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&o(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,o]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:o(null)};return e.addListener(r),()=>e.removeListener(r)}),[o,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:o,get isDarkTheme(){return a===p.dark},setLightTheme(){o(p.light)},setDarkTheme(){o(p.dark)}})),[a,o])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(c);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},55597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,g1:()=>v});var r=n(96540),a=n(48295),i=n(17065),o=n(6342),s=n(81754),l=n(89532),c=n(89466),u=n(74848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const b=r.createContext(null);function h(){const e=(0,a.Gy)(),t=(0,o.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return(0,u.jsx)(b.Provider,{value:n,children:t})}function g(e){let{children:t}=e;return s.C5?(0,u.jsx)(m,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(b);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=i.W);const t=(0,a.ht)(e),[n,o]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}},26588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(96540),a=n(89532),i=n(74848);const o=Symbol("EmptyContext"),s=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,i.jsx)(s.Provider,{value:o,children:t})}function c(){const e=(0,r.useContext)(s);if(e===o)throw new a.dV("DocsSidebarProvider");return e}},32252:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(96540),a=n(89532),i=n(74848);const o=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,i.jsx)(o.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(o);if(null===e)throw new a.dV("DocsVersionProvider");return e}},89876:(e,t,n)=>{"use strict";n.d(t,{e:()=>f,M:()=>b});var r=n(96540),a=n(75600),i=n(24581),o=n(56347),s=n(89532);function l(e){!function(e){const t=(0,o.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6342),u=n(74848);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[o,s]=(0,r.useState)(!1);l((()=>{if(o)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:o})),[e,n,u,o])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function b(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(96540),a=n(89532),i=n(74848);const o=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,i.jsx)(o.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,s]=i,l=(0,a.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>i});var r=n(96540);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(96540),a=n(38193);const i={desktop:"desktop",mobile:"mobile",ssr:"ssr"},o=996;function s(e){let{desktopBreakpoint:t=o}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?i.desktop:i.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},81754:(e,t,n)=>{"use strict";n.d(t,{Nr:()=>f,w8:()=>m,C5:()=>p,B5:()=>S,Vd:()=>k,QB:()=>_,fW:()=>x,OF:()=>w,Y:()=>y});var r=n(96540),a=n(56347),i=n(22831),o=n(48295),s=n(55597),l=n(32252),c=n(26588);function u(e){return Array.from(new Set(e))}var d=n(99169);const p=!!o.Gy;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const b=(e,t)=>void 0!==e&&(0,d.ys)(e,t),h=(e,t)=>e.some((e=>m(e,t)));function m(e,t){return"link"===e.type?b(e.href,t):"category"===e.type&&(b(e.href,t)||h(e.items,t))}function g(e,t){switch(e.type){case"category":return m(e,t)||e.items.some((e=>g(e,t)));case"link":return!e.unlisted||m(e,t);default:return!0}}function y(e,t){return(0,r.useMemo)((()=>e.filter((e=>g(e,t)))),[e,t])}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,d.ys)(i.href,n)||e(i.items))||"link"===i.type&&(0,d.ys)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function w(){const e=(0,c.t)(),{pathname:t}=(0,a.zy)(),n=(0,o.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?v({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,o.zK)(e),{preferredVersion:n}=(0,s.g1)(e),a=(0,o.r7)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,l.r)(),o=t.routes,s=o.find((e=>(0,a.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,i.v)(o),sidebarName:c,sidebarItems:u}}},61213:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>u,Jx:()=>f});var r=n(96540),a=n(34164),i=n(5260),o=n(36803),s=n(86025),l=n(44586);var c=n(74848);function u(e){let{title:t,description:n,keywords:r,image:a,children:o}=e;const u=function(e){const{siteConfig:t}=(0,l.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.hH)(),p=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(i.A,{children:[t&&(0,c.jsx)("title",{children:u}),t&&(0,c.jsx)("meta",{property:"og:title",content:u}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),o]})}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const o=r.useContext(d),s=(0,a.A)(o,t);return(0,c.jsxs)(d.Provider,{value:s,children:[(0,c.jsx)(i.A,{children:(0,c.jsx)("html",{className:s})}),n]})}function f(e){let{children:t}=e;const n=(0,o.A)(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.A)(r,i),children:t})}},89532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>o,dV:()=>l,fM:()=>u});var r=n(96540),a=n(205),i=n(74848);function o(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,i.jsx)(i.Fragment,{children:e.reduceRight(((e,t)=>(0,i.jsx)(t,{children:e})),n)})}}},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>o});var r=n(96540),a=n(35947),i=n(44586);function o(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,i.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.A,baseUrl:e})),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>p,Tv:()=>c,gk:()=>f});var r=n(96540),a=n(38193),i=n(92303),o=(n(205),n(89532)),s=n(74848);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new o.dV("ScrollControllerProvider");return e}const d=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(d()),i=(0,o._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>a});n(44586);const r="default";function a(e,t){return`docs-${e}-${t}`}},89466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>c});n(96540);var r=n(24180);const a=r.N;function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function o(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){const n=`${e}${r.M}`;if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(n);const a=o(t?.persistence);return null===a?l:{get:()=>{try{return a.getItem(n)}catch(e){return console.error(`Docusaurus storage error, can't get key=${n}`,e),null}},set:e=>{try{const t=a.getItem(n);a.setItem(n,e),i({key:n,oldValue:t,newValue:e,storage:a})}catch(t){console.error(`Docusaurus storage error, can't set ${n}=${e}`,t)}},del:()=>{try{const e=a.getItem(n);a.removeItem(n),i({key:n,oldValue:e,newValue:null,storage:a})}catch(e){console.error(`Docusaurus storage error, can't delete key=${n}`,e)}},listen:e=>{try{const t=t=>{t.storageArea===a&&t.key===n&&e(t)};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)}catch(t){return console.error(`Docusaurus storage error, can't listen for changes of key=${n}`,t),()=>{}}}}}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>o});var r=n(44586),a=n(56347),i=n(70440);function o(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:o,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,a.zy)(),c=(0,i.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===o?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===o?`${u}`:`${u}${e}/`}(n)}${d}`}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>o});var r=n(96540),a=n(56347),i=n(89532);function o(e){const t=(0,a.zy)(),n=(0,i.ZC)(t),o=(0,i._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(44586);function a(){return(0,r.A)().siteConfig.themeConfig}},12983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(42566);function a(e){return e.endsWith("/")?e:`${e}/`}function i(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=a,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),s="/"===o||o===r?o:(l=o,n?a(l):i(l));var l;return e.replace(o,s)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=i},80253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},70440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(12983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return a.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return a.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return a.removeTrailingSlash}});var i=n(42566);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return i.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return i.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return i.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return i.removePrefix}});var o=n(80253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},42566:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},2849:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(5391);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var i=n(74848);function o(e){let{className:t}=e;return(0,i.jsxs)("div",{className:(0,r.A)(a.loadingRing,t),children:[(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{}),(0,i.jsx)("div",{})]})}},5891:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(58291),a=n.n(r),i=n(11088);const o=new Map;function s(e,t){const n=`${e}${t}`;let r=o.get(n);return r||(r=async function(e,t){{const n=`${e}${i.IH.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),o=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:o,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),o.set(n,r)),r}},32384:(e,t,n)=>{"use strict";n.d(t,{m:()=>c});var r=n(58291),a=n.n(r);var i=n(11088);function o(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}var l=n(69913);function c(e,t,n){return function(r,s){const c=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.BH);if(0===c.length)return void s([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:a.missed,term:a.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),o=!0}else for(let t=s.length-1;t>i;t-=1){const l=s.substr(0,t);if(r.substr(0,t)===l){i=t;const s={missed:a.missed,term:a.term.concat({value:l,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.BH)if("en"===o)i.sx||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const l=[];for(const a of s)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)l.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(l))}(c,t),d=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(d.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!d.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-d.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:o!==l.i.Title&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),d.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type!==l.i.Heading&&t.type!==l.i.Content&&t.type!==l.i.Description||!t.page?t.index:e.findIndex((e=>e.document===t.page)),a=n.type!==l.i.Heading&&n.type!==l.i.Content&&n.type!==l.i.Description||!n.page?n.index:e.findIndex((e=>e.document===n.page));if(-1===r&&(r=t.index),-1===a&&(a=n.index),r===a){const e=(0===n.type?1:0)-(0===t.type?1:0);return 0===e?t.index-n.index:e}return r-a}))}(d),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.slice(0,n).some((e=>(e.type===l.i.Keywords?e.page:e.document)===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{$:()=>r})},53103:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{Z:()=>r})},27674:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{g:()=>r})},86841:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(53103);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(`${(0,r.Z)(e.substr(n,o.length))}`);const s=n+o.length;s${(0,r.Z)(e)}`:(0,r.Z)(e):i.join("")}},43810:(e,t,n)=>{"use strict";n.d(t,{C:()=>l});var r=n(53103),a=n(86841);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var s=n(11088);function l(e,t,n,i){void 0===i&&(i=s.rG);const{chunkIndex:l,chunks:c}=function(e,t,n){const i=[];let s=0,l=0,c=-1;for(;sl){const t=o(e.substring(l,u)).map((e=>({html:(0,r.Z)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===c&&(c=i.length),l=u+d,i.push({html:(0,a.Z)(e.substring(u,l),n,!0),textLength:d})}}if(l({html:(0,r.Z)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:c,chunks:i}}(e,t,n),u=c.slice(0,l),d=c[l],p=[d.html],f=c.slice(l+1);let b=d.textLength,h=0,m=0,g=!1,y=!1;for(;b0){const e=u.pop();b+e.textLength<=i?(p.unshift(e.html),h+=e.textLength,b+=e.textLength):(g=!0,u.length=0)}else{if(!(f.length>0))break;{const e=f.shift();b+e.textLength<=i?(p.push(e.html),m+=e.textLength,b+=e.textLength):(y=!0,f.length=0)}}return(g||u.length>0)&&p.unshift("\u2026"),(y||f.length>0)&&p.push("\u2026"),p.join("")}},43385:(e,t,n)=>{"use strict";function r(e,t){if("string"==typeof e)return{label:e,path:e};{const{label:n,path:r}=e;return"string"==typeof n?{label:n,path:r}:Object.prototype.hasOwnProperty.call(n,t)?{label:n[t],path:r}:{label:r,path:r}}}n.d(t,{p:()=>r})},11088:(e,t,n)=>{"use strict";n.d(t,{CU:()=>s,UB:()=>h,tb:()=>d,O6:()=>y,I$:()=>m,BH:()=>i,sx:()=>o,ZG:()=>b,WW:()=>p,pk:()=>f,Hg:()=>g,IH:()=>l,rG:()=>u,AT:()=>c,dz:()=>v});var r=n(58291),a=n.n(r);n(86121)(a()),n(37151)(a()),n(90978)(a()),n(66106)(a());const i=["en","ja"],o=!1,s=null,l="search-index{dir}.json?_=6ab28731",c=8,u=50,d=!1,p=!0,f=!0,b="right",h=void 0,m=!0,g=null,y=!1,v=!1},69913:(e,t,n)=>{"use strict";var r;n.d(t,{i:()=>r}),function(e){e[e.Title=0]="Title",e[e.Heading=1]="Heading",e[e.Description=2]="Description",e[e.Keywords=3]="Keywords",e[e.Content=4]="Content"}(r||(r={}))},91034:(e,t,n)=>{"use strict";n.d(t,{d1:()=>b,vT:()=>S,gk:()=>E,Gy:()=>x,$S:()=>p,vF:()=>w,ht:()=>_,g1:()=>v});var r=n(56347),a=n(66588);function i(e,t){return[...e.versions].sort(((e,t)=>e.path===t.path?0:e.path.includes(t.path)?-1:t.path.includes(e.path)?1:0)).find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}var o=n(96540);n(35947),n(44586);function s(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}var l=n(57948);n(74848);const c=Symbol("EmptyContext"),u=o.createContext(c);function d(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=d(t);if(e)return e}}(e):void 0:e.href}function p(){const{pathname:e}=(0,r.zy)(),t=function(){const e=(0,o.useContext)(u);if(e===c)throw new l.dV("DocsSidebarProvider");return e}();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=f({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}function f(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&(s(i.href,n)||e(i.items))||"link"===i.type&&s(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function b(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!d(e)))}var h=n(17065),m=n(24180);m.N;const g=o.createContext(null);function y(){const e=(0,o.useContext)(g);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=h.W);const t=_(e),[n,r]=y(),{preferredVersionName:a}=n[e];return{preferredVersion:t.versions.find((e=>e.name===a))??null,savePreferredVersionName:(0,o.useCallback)((t=>{r.savePreferredVersion(e,t)}),[r,e])}}function w(){const e=x(),t=E(),n=function(){const e=x(),[t]=y();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}();return[...Object.keys(e).map((function(r){const a=t?.activePlugin.pluginId===r?t.activeVersion:void 0,i=n[r],o=e[r].versions.find((e=>e.isLast));return function(e,t){return`docs-${e}-${t}`}(r,(a??i??o).name)}))]}const k={},x=()=>(0,a.kh)("docusaurus-plugin-content-docs")??k,_=e=>{try{return(0,a.P_)("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function S(e){void 0===e&&(e={});const t=x(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function E(e){void 0===e&&(e={});const t=S(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}},57948:(e,t,n)=>{"use strict";n.d(t,{dV:()=>r});n(96540),n(205),n(74848);class r extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>f,sC:()=>A,AO:()=>p});var r=n(58168);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=o[p];"."===f?i(o,p):".."===f?(i(o,p),d++):d&&(i(o,p),d--)}if(!c)for(;d--;d)o.unshift("..");!c||""===o[0]||o[0]&&a(o[0])||o.unshift("");var b=o.join("/");return n&&"/"!==b.substr(-1)&&(b+="/"),b};var s=n(11561);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.A)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(44363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?o:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=o;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,b=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(b){var a=f(n);a&&a!==b&&e(t,a,r)}var o=u(n);d&&(o=o.concat(d(n)));for(var s=l(t),h=l(n),m=0;m{"use strict";e.exports=function(e,t,n,r,a,i,o,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,i,o,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},64634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},90978:function(e,t,n){var r,a;r=function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var t="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),t?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var n=new e.TinySegmenter;e.ja.tokenizer=function(r){var a,i,o,s,l,c,u,d,p;if(!arguments.length||null==r||null==r)return[];if(Array.isArray(r))return r.map((function(n){return t?new e.Token(n.toLowerCase()):n.toLowerCase()}));for(a=(i=r.toString().toLowerCase().replace(/^\s+/,"")).length-1;a>=0;a--)if(/\S/.test(i.charAt(a))){i=i.substring(0,a+1);break}for(l=[],o=i.length,d=0,u=0;d<=o;d++)if(c=d-u,i.charAt(d).match(/\s/)||d==o){if(c>0)for(s=n.segment(i.slice(u,d)).filter((function(e){return!!e})),p=u,a=0;a=n&&t[(a-=n)>>3]&1<<(7&a))return this.cursor++,!0}return!1},in_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var a=e.charCodeAt(this.cursor-1);if(a<=r&&a>=n&&t[(a-=n)>>3]&1<<(7&a))return this.cursor--,!0}return!1},out_grouping:function(t,n,r){if(this.cursorr||a>3]&1<<(7&a)))return this.cursor++,!0}return!1},out_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var a=e.charCodeAt(this.cursor-1);if(a>r||a>3]&1<<(7&a)))return this.cursor--,!0}return!1},eq_s:function(t,n){if(this.limit-this.cursor>1),d=0,p=s0||a==r||c)break;c=!0}}for(;;){if(s>=(f=t[r]).s_size){if(this.cursor=i+f.s_size,!f.method)return f.result;var h=f.method();if(this.cursor=i+f.s_size,h)return f.result}if((r=f.substring_i)<0)return 0}},find_among_b:function(t,n){for(var r=0,a=n,i=this.cursor,o=this.limit_backward,s=0,l=0,c=!1;;){for(var u=r+(a-r>>1),d=0,p=s=0;f--){if(i-p==o){d=-1;break}if(d=e.charCodeAt(i-1-p)-b.s[f])break;p++}if(d<0?(a=u,l=p):(r=u,s=p),a-r<=1){if(r>0||a==r||c)break;c=!0}}for(;;){var b;if(s>=(b=t[r]).s_size){if(this.cursor=i-b.s_size,!b.method)return b.result;var h=b.method();if(this.cursor=i-b.s_size,h)return b.result}if((r=b.substring_i)<0)return 0}},replace_s:function(t,n,r){var a=r.length-(n-t),i=e.substring(0,t),o=e.substring(n);return e=i+r+o,this.limit+=a,this.cursor>=n?this.cursor+=a:this.cursor>t&&(this.cursor=t),a},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>e.length)throw"faulty slice operation"},slice_from:function(e){this.slice_check(),this.replace_s(this.bra,this.ket,e)},slice_del:function(){this.slice_from("")},insert:function(e,t,n){var r=this.replace_s(e,t,n);e<=this.bra&&(this.bra+=r),e<=this.ket&&(this.ket+=r)},slice_to:function(){return this.slice_check(),e.substring(this.bra,this.ket)},eq_v_b:function(e){return this.eq_s_b(e.length,e)}}}},e.trimmerSupport={generateTrimmer:function(e){var t=new RegExp("^[^"+e+"]+"),n=new RegExp("[^"+e+"]+$");return function(e){return"function"==typeof e.update?e.update((function(e){return e.replace(t,"").replace(n,"")})):e.replace(t,"").replace(n,"")}}}}})?r.call(t,n,t,e):r)||(e.exports=a)},37151:function(e,t,n){var r,a;void 0===(a="function"==typeof(r=function(){return function(e){function t(){var e={"[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u767e\u5343\u4e07\u5104\u5146]":"M","[\u4e00-\u9fa0\u3005\u3006\u30f5\u30f6]":"H","[\u3041-\u3093]":"I","[\u30a1-\u30f4\u30fc\uff71-\uff9d\uff9e\uff70]":"K","[a-zA-Z\uff41-\uff5a\uff21-\uff3a]":"A","[0-9\uff10-\uff19]":"N"};for(var t in this.chartype_=[],e){var n=new RegExp(t);this.chartype_.push([n,e[t]])}return this.BIAS__=-332,this.BC1__={HH:6,II:2461,KH:406,OH:-1378},this.BC2__={AA:-3267,AI:2744,AN:-878,HH:-4070,HM:-1711,HN:4012,HO:3761,IA:1327,IH:-1184,II:-1332,IK:1721,IO:5492,KI:3831,KK:-8741,MH:-3132,MK:3334,OO:-2920},this.BC3__={HH:996,HI:626,HK:-721,HN:-1307,HO:-836,IH:-301,KK:2762,MK:1079,MM:4034,OA:-1652,OH:266},this.BP1__={BB:295,OB:304,OO:-125,UB:352},this.BP2__={BO:60,OO:-1762},this.BQ1__={BHH:1150,BHM:1521,BII:-1158,BIM:886,BMH:1208,BNH:449,BOH:-91,BOO:-2597,OHI:451,OIH:-296,OKA:1851,OKH:-1020,OKK:904,OOO:2965},this.BQ2__={BHH:118,BHI:-1159,BHM:466,BIH:-919,BKK:-1720,BKO:864,OHH:-1139,OHM:-181,OIH:153,UHI:-1146},this.BQ3__={BHH:-792,BHI:2664,BII:-299,BKI:419,BMH:937,BMM:8335,BNN:998,BOH:775,OHH:2174,OHM:439,OII:280,OKH:1798,OKI:-793,OKO:-2242,OMH:-2402,OOO:11699},this.BQ4__={BHH:-3895,BIH:3761,BII:-4654,BIK:1348,BKK:-1806,BMI:-3385,BOO:-12396,OAH:926,OHH:266,OHK:-2036,ONN:-973},this.BW1__={",\u3068":660,",\u540c":727,"B1\u3042":1404,"B1\u540c":542,"\u3001\u3068":660,"\u3001\u540c":727,"\u300d\u3068":1682,"\u3042\u3063":1505,"\u3044\u3046":1743,"\u3044\u3063":-2055,"\u3044\u308b":672,"\u3046\u3057":-4817,"\u3046\u3093":665,"\u304b\u3089":3472,"\u304c\u3089":600,"\u3053\u3046":-790,"\u3053\u3068":2083,"\u3053\u3093":-1262,"\u3055\u3089":-4143,"\u3055\u3093":4573,"\u3057\u305f":2641,"\u3057\u3066":1104,"\u3059\u3067":-3399,"\u305d\u3053":1977,"\u305d\u308c":-871,"\u305f\u3061":1122,"\u305f\u3081":601,"\u3063\u305f":3463,"\u3064\u3044":-802,"\u3066\u3044":805,"\u3066\u304d":1249,"\u3067\u304d":1127,"\u3067\u3059":3445,"\u3067\u306f":844,"\u3068\u3044":-4915,"\u3068\u307f":1922,"\u3069\u3053":3887,"\u306a\u3044":5713,"\u306a\u3063":3015,"\u306a\u3069":7379,"\u306a\u3093":-1113,"\u306b\u3057":2468,"\u306b\u306f":1498,"\u306b\u3082":1671,"\u306b\u5bfe":-912,"\u306e\u4e00":-501,"\u306e\u4e2d":741,"\u307e\u305b":2448,"\u307e\u3067":1711,"\u307e\u307e":2600,"\u307e\u308b":-2155,"\u3084\u3080":-1947,"\u3088\u3063":-2565,"\u308c\u305f":2369,"\u308c\u3067":-913,"\u3092\u3057":1860,"\u3092\u898b":731,"\u4ea1\u304f":-1886,"\u4eac\u90fd":2558,"\u53d6\u308a":-2784,"\u5927\u304d":-2604,"\u5927\u962a":1497,"\u5e73\u65b9":-2314,"\u5f15\u304d":-1336,"\u65e5\u672c":-195,"\u672c\u5f53":-2423,"\u6bce\u65e5":-2113,"\u76ee\u6307":-724,"\uff22\uff11\u3042":1404,"\uff22\uff11\u540c":542,"\uff63\u3068":1682},this.BW2__={"..":-11822,11:-669,"\u2015\u2015":-5730,"\u2212\u2212":-13175,"\u3044\u3046":-1609,"\u3046\u304b":2490,"\u304b\u3057":-1350,"\u304b\u3082":-602,"\u304b\u3089":-7194,"\u304b\u308c":4612,"\u304c\u3044":853,"\u304c\u3089":-3198,"\u304d\u305f":1941,"\u304f\u306a":-1597,"\u3053\u3068":-8392,"\u3053\u306e":-4193,"\u3055\u305b":4533,"\u3055\u308c":13168,"\u3055\u3093":-3977,"\u3057\u3044":-1819,"\u3057\u304b":-545,"\u3057\u305f":5078,"\u3057\u3066":972,"\u3057\u306a":939,"\u305d\u306e":-3744,"\u305f\u3044":-1253,"\u305f\u305f":-662,"\u305f\u3060":-3857,"\u305f\u3061":-786,"\u305f\u3068":1224,"\u305f\u306f":-939,"\u3063\u305f":4589,"\u3063\u3066":1647,"\u3063\u3068":-2094,"\u3066\u3044":6144,"\u3066\u304d":3640,"\u3066\u304f":2551,"\u3066\u306f":-3110,"\u3066\u3082":-3065,"\u3067\u3044":2666,"\u3067\u304d":-1528,"\u3067\u3057":-3828,"\u3067\u3059":-4761,"\u3067\u3082":-4203,"\u3068\u3044":1890,"\u3068\u3053":-1746,"\u3068\u3068":-2279,"\u3068\u306e":720,"\u3068\u307f":5168,"\u3068\u3082":-3941,"\u306a\u3044":-2488,"\u306a\u304c":-1313,"\u306a\u3069":-6509,"\u306a\u306e":2614,"\u306a\u3093":3099,"\u306b\u304a":-1615,"\u306b\u3057":2748,"\u306b\u306a":2454,"\u306b\u3088":-7236,"\u306b\u5bfe":-14943,"\u306b\u5f93":-4688,"\u306b\u95a2":-11388,"\u306e\u304b":2093,"\u306e\u3067":-7059,"\u306e\u306b":-6041,"\u306e\u306e":-6125,"\u306f\u3044":1073,"\u306f\u304c":-1033,"\u306f\u305a":-2532,"\u3070\u308c":1813,"\u307e\u3057":-1316,"\u307e\u3067":-6621,"\u307e\u308c":5409,"\u3081\u3066":-3153,"\u3082\u3044":2230,"\u3082\u306e":-10713,"\u3089\u304b":-944,"\u3089\u3057":-1611,"\u3089\u306b":-1897,"\u308a\u3057":651,"\u308a\u307e":1620,"\u308c\u305f":4270,"\u308c\u3066":849,"\u308c\u3070":4114,"\u308d\u3046":6067,"\u308f\u308c":7901,"\u3092\u901a":-11877,"\u3093\u3060":728,"\u3093\u306a":-4115,"\u4e00\u4eba":602,"\u4e00\u65b9":-1375,"\u4e00\u65e5":970,"\u4e00\u90e8":-1051,"\u4e0a\u304c":-4479,"\u4f1a\u793e":-1116,"\u51fa\u3066":2163,"\u5206\u306e":-7758,"\u540c\u515a":970,"\u540c\u65e5":-913,"\u5927\u962a":-2471,"\u59d4\u54e1":-1250,"\u5c11\u306a":-1050,"\u5e74\u5ea6":-8669,"\u5e74\u9593":-1626,"\u5e9c\u770c":-2363,"\u624b\u6a29":-1982,"\u65b0\u805e":-4066,"\u65e5\u65b0":-722,"\u65e5\u672c":-7068,"\u65e5\u7c73":3372,"\u66dc\u65e5":-601,"\u671d\u9bae":-2355,"\u672c\u4eba":-2697,"\u6771\u4eac":-1543,"\u7136\u3068":-1384,"\u793e\u4f1a":-1276,"\u7acb\u3066":-990,"\u7b2c\u306b":-1612,"\u7c73\u56fd":-4268,"\uff11\uff11":-669},this.BW3__={"\u3042\u305f":-2194,"\u3042\u308a":719,"\u3042\u308b":3846,"\u3044.":-1185,"\u3044\u3002":-1185,"\u3044\u3044":5308,"\u3044\u3048":2079,"\u3044\u304f":3029,"\u3044\u305f":2056,"\u3044\u3063":1883,"\u3044\u308b":5600,"\u3044\u308f":1527,"\u3046\u3061":1117,"\u3046\u3068":4798,"\u3048\u3068":1454,"\u304b.":2857,"\u304b\u3002":2857,"\u304b\u3051":-743,"\u304b\u3063":-4098,"\u304b\u306b":-669,"\u304b\u3089":6520,"\u304b\u308a":-2670,"\u304c,":1816,"\u304c\u3001":1816,"\u304c\u304d":-4855,"\u304c\u3051":-1127,"\u304c\u3063":-913,"\u304c\u3089":-4977,"\u304c\u308a":-2064,"\u304d\u305f":1645,"\u3051\u3069":1374,"\u3053\u3068":7397,"\u3053\u306e":1542,"\u3053\u308d":-2757,"\u3055\u3044":-714,"\u3055\u3092":976,"\u3057,":1557,"\u3057\u3001":1557,"\u3057\u3044":-3714,"\u3057\u305f":3562,"\u3057\u3066":1449,"\u3057\u306a":2608,"\u3057\u307e":1200,"\u3059.":-1310,"\u3059\u3002":-1310,"\u3059\u308b":6521,"\u305a,":3426,"\u305a\u3001":3426,"\u305a\u306b":841,"\u305d\u3046":428,"\u305f.":8875,"\u305f\u3002":8875,"\u305f\u3044":-594,"\u305f\u306e":812,"\u305f\u308a":-1183,"\u305f\u308b":-853,"\u3060.":4098,"\u3060\u3002":4098,"\u3060\u3063":1004,"\u3063\u305f":-4748,"\u3063\u3066":300,"\u3066\u3044":6240,"\u3066\u304a":855,"\u3066\u3082":302,"\u3067\u3059":1437,"\u3067\u306b":-1482,"\u3067\u306f":2295,"\u3068\u3046":-1387,"\u3068\u3057":2266,"\u3068\u306e":541,"\u3068\u3082":-3543,"\u3069\u3046":4664,"\u306a\u3044":1796,"\u306a\u304f":-903,"\u306a\u3069":2135,"\u306b,":-1021,"\u306b\u3001":-1021,"\u306b\u3057":1771,"\u306b\u306a":1906,"\u306b\u306f":2644,"\u306e,":-724,"\u306e\u3001":-724,"\u306e\u5b50":-1e3,"\u306f,":1337,"\u306f\u3001":1337,"\u3079\u304d":2181,"\u307e\u3057":1113,"\u307e\u3059":6943,"\u307e\u3063":-1549,"\u307e\u3067":6154,"\u307e\u308c":-793,"\u3089\u3057":1479,"\u3089\u308c":6820,"\u308b\u308b":3818,"\u308c,":854,"\u308c\u3001":854,"\u308c\u305f":1850,"\u308c\u3066":1375,"\u308c\u3070":-3246,"\u308c\u308b":1091,"\u308f\u308c":-605,"\u3093\u3060":606,"\u3093\u3067":798,"\u30ab\u6708":990,"\u4f1a\u8b70":860,"\u5165\u308a":1232,"\u5927\u4f1a":2217,"\u59cb\u3081":1681,"\u5e02":965,"\u65b0\u805e":-5055,"\u65e5,":974,"\u65e5\u3001":974,"\u793e\u4f1a":2024,"\uff76\u6708":990},this.TC1__={AAA:1093,HHH:1029,HHM:580,HII:998,HOH:-390,HOM:-331,IHI:1169,IOH:-142,IOI:-1015,IOM:467,MMH:187,OOI:-1832},this.TC2__={HHO:2088,HII:-1023,HMM:-1154,IHI:-1965,KKH:703,OII:-2649},this.TC3__={AAA:-294,HHH:346,HHI:-341,HII:-1088,HIK:731,HOH:-1486,IHH:128,IHI:-3041,IHO:-1935,IIH:-825,IIM:-1035,IOI:-542,KHH:-1216,KKA:491,KKH:-1217,KOK:-1009,MHH:-2694,MHM:-457,MHO:123,MMH:-471,NNH:-1689,NNO:662,OHO:-3393},this.TC4__={HHH:-203,HHI:1344,HHK:365,HHM:-122,HHN:182,HHO:669,HIH:804,HII:679,HOH:446,IHH:695,IHO:-2324,IIH:321,III:1497,IIO:656,IOO:54,KAK:4845,KKA:3386,KKK:3065,MHH:-405,MHI:201,MMH:-241,MMM:661,MOM:841},this.TQ1__={BHHH:-227,BHHI:316,BHIH:-132,BIHH:60,BIII:1595,BNHH:-744,BOHH:225,BOOO:-908,OAKK:482,OHHH:281,OHIH:249,OIHI:200,OIIH:-68},this.TQ2__={BIHH:-1401,BIII:-1033,BKAK:-543,BOOO:-5591},this.TQ3__={BHHH:478,BHHM:-1073,BHIH:222,BHII:-504,BIIH:-116,BIII:-105,BMHI:-863,BMHM:-464,BOMH:620,OHHH:346,OHHI:1729,OHII:997,OHMH:481,OIHH:623,OIIH:1344,OKAK:2792,OKHH:587,OKKA:679,OOHH:110,OOII:-685},this.TQ4__={BHHH:-721,BHHM:-3604,BHII:-966,BIIH:-607,BIII:-2181,OAAA:-2763,OAKK:180,OHHH:-294,OHHI:2446,OHHO:480,OHIH:-1573,OIHH:1935,OIHI:-493,OIIH:626,OIII:-4007,OKAK:-8156},this.TW1__={"\u306b\u3064\u3044":-4681,"\u6771\u4eac\u90fd":2026},this.TW2__={"\u3042\u308b\u7a0b":-2049,"\u3044\u3063\u305f":-1256,"\u3053\u308d\u304c":-2434,"\u3057\u3087\u3046":3873,"\u305d\u306e\u5f8c":-4430,"\u3060\u3063\u3066":-1049,"\u3066\u3044\u305f":1833,"\u3068\u3057\u3066":-4657,"\u3068\u3082\u306b":-4517,"\u3082\u306e\u3067":1882,"\u4e00\u6c17\u306b":-792,"\u521d\u3081\u3066":-1512,"\u540c\u6642\u306b":-8097,"\u5927\u304d\u306a":-1255,"\u5bfe\u3057\u3066":-2721,"\u793e\u4f1a\u515a":-3216},this.TW3__={"\u3044\u305f\u3060":-1734,"\u3057\u3066\u3044":1314,"\u3068\u3057\u3066":-4314,"\u306b\u3064\u3044":-5483,"\u306b\u3068\u3063":-5989,"\u306b\u5f53\u305f":-6247,"\u306e\u3067,":-727,"\u306e\u3067\u3001":-727,"\u306e\u3082\u306e":-600,"\u308c\u304b\u3089":-3752,"\u5341\u4e8c\u6708":-2287},this.TW4__={"\u3044\u3046.":8576,"\u3044\u3046\u3002":8576,"\u304b\u3089\u306a":-2348,"\u3057\u3066\u3044":2958,"\u305f\u304c,":1516,"\u305f\u304c\u3001":1516,"\u3066\u3044\u308b":1538,"\u3068\u3044\u3046":1349,"\u307e\u3057\u305f":5543,"\u307e\u305b\u3093":1097,"\u3088\u3046\u3068":-4258,"\u3088\u308b\u3068":5865},this.UC1__={A:484,K:93,M:645,O:-505},this.UC2__={A:819,H:1059,I:409,M:3987,N:5775,O:646},this.UC3__={A:-1370,I:2311},this.UC4__={A:-2643,H:1809,I:-1032,K:-3450,M:3565,N:3876,O:6646},this.UC5__={H:313,I:-1238,K:-799,M:539,O:-831},this.UC6__={H:-506,I:-253,K:87,M:247,O:-387},this.UP1__={O:-214},this.UP2__={B:69,O:935},this.UP3__={B:189},this.UQ1__={BH:21,BI:-12,BK:-99,BN:142,BO:-56,OH:-95,OI:477,OK:410,OO:-2422},this.UQ2__={BH:216,BI:113,OK:1759},this.UQ3__={BA:-479,BH:42,BI:1913,BK:-7198,BM:3160,BN:6427,BO:14761,OI:-827,ON:-3212},this.UW1__={",":156,"\u3001":156,"\u300c":-463,"\u3042":-941,"\u3046":-127,"\u304c":-553,"\u304d":121,"\u3053":505,"\u3067":-201,"\u3068":-547,"\u3069":-123,"\u306b":-789,"\u306e":-185,"\u306f":-847,"\u3082":-466,"\u3084":-470,"\u3088":182,"\u3089":-292,"\u308a":208,"\u308c":169,"\u3092":-446,"\u3093":-137,"\u30fb":-135,"\u4e3b":-402,"\u4eac":-268,"\u533a":-912,"\u5348":871,"\u56fd":-460,"\u5927":561,"\u59d4":729,"\u5e02":-411,"\u65e5":-141,"\u7406":361,"\u751f":-408,"\u770c":-386,"\u90fd":-718,"\uff62":-463,"\uff65":-135},this.UW2__={",":-829,"\u3001":-829,"\u3007":892,"\u300c":-645,"\u300d":3145,"\u3042":-538,"\u3044":505,"\u3046":134,"\u304a":-502,"\u304b":1454,"\u304c":-856,"\u304f":-412,"\u3053":1141,"\u3055":878,"\u3056":540,"\u3057":1529,"\u3059":-675,"\u305b":300,"\u305d":-1011,"\u305f":188,"\u3060":1837,"\u3064":-949,"\u3066":-291,"\u3067":-268,"\u3068":-981,"\u3069":1273,"\u306a":1063,"\u306b":-1764,"\u306e":130,"\u306f":-409,"\u3072":-1273,"\u3079":1261,"\u307e":600,"\u3082":-1263,"\u3084":-402,"\u3088":1639,"\u308a":-579,"\u308b":-694,"\u308c":571,"\u3092":-2516,"\u3093":2095,"\u30a2":-587,"\u30ab":306,"\u30ad":568,"\u30c3":831,"\u4e09":-758,"\u4e0d":-2150,"\u4e16":-302,"\u4e2d":-968,"\u4e3b":-861,"\u4e8b":492,"\u4eba":-123,"\u4f1a":978,"\u4fdd":362,"\u5165":548,"\u521d":-3025,"\u526f":-1566,"\u5317":-3414,"\u533a":-422,"\u5927":-1769,"\u5929":-865,"\u592a":-483,"\u5b50":-1519,"\u5b66":760,"\u5b9f":1023,"\u5c0f":-2009,"\u5e02":-813,"\u5e74":-1060,"\u5f37":1067,"\u624b":-1519,"\u63fa":-1033,"\u653f":1522,"\u6587":-1355,"\u65b0":-1682,"\u65e5":-1815,"\u660e":-1462,"\u6700":-630,"\u671d":-1843,"\u672c":-1650,"\u6771":-931,"\u679c":-665,"\u6b21":-2378,"\u6c11":-180,"\u6c17":-1740,"\u7406":752,"\u767a":529,"\u76ee":-1584,"\u76f8":-242,"\u770c":-1165,"\u7acb":-763,"\u7b2c":810,"\u7c73":509,"\u81ea":-1353,"\u884c":838,"\u897f":-744,"\u898b":-3874,"\u8abf":1010,"\u8b70":1198,"\u8fbc":3041,"\u958b":1758,"\u9593":-1257,"\uff62":-645,"\uff63":3145,"\uff6f":831,"\uff71":-587,"\uff76":306,"\uff77":568},this.UW3__={",":4889,1:-800,"\u2212":-1723,"\u3001":4889,"\u3005":-2311,"\u3007":5827,"\u300d":2670,"\u3013":-3573,"\u3042":-2696,"\u3044":1006,"\u3046":2342,"\u3048":1983,"\u304a":-4864,"\u304b":-1163,"\u304c":3271,"\u304f":1004,"\u3051":388,"\u3052":401,"\u3053":-3552,"\u3054":-3116,"\u3055":-1058,"\u3057":-395,"\u3059":584,"\u305b":3685,"\u305d":-5228,"\u305f":842,"\u3061":-521,"\u3063":-1444,"\u3064":-1081,"\u3066":6167,"\u3067":2318,"\u3068":1691,"\u3069":-899,"\u306a":-2788,"\u306b":2745,"\u306e":4056,"\u306f":4555,"\u3072":-2171,"\u3075":-1798,"\u3078":1199,"\u307b":-5516,"\u307e":-4384,"\u307f":-120,"\u3081":1205,"\u3082":2323,"\u3084":-788,"\u3088":-202,"\u3089":727,"\u308a":649,"\u308b":5905,"\u308c":2773,"\u308f":-1207,"\u3092":6620,"\u3093":-518,"\u30a2":551,"\u30b0":1319,"\u30b9":874,"\u30c3":-1350,"\u30c8":521,"\u30e0":1109,"\u30eb":1591,"\u30ed":2201,"\u30f3":278,"\u30fb":-3794,"\u4e00":-1619,"\u4e0b":-1759,"\u4e16":-2087,"\u4e21":3815,"\u4e2d":653,"\u4e3b":-758,"\u4e88":-1193,"\u4e8c":974,"\u4eba":2742,"\u4eca":792,"\u4ed6":1889,"\u4ee5":-1368,"\u4f4e":811,"\u4f55":4265,"\u4f5c":-361,"\u4fdd":-2439,"\u5143":4858,"\u515a":3593,"\u5168":1574,"\u516c":-3030,"\u516d":755,"\u5171":-1880,"\u5186":5807,"\u518d":3095,"\u5206":457,"\u521d":2475,"\u5225":1129,"\u524d":2286,"\u526f":4437,"\u529b":365,"\u52d5":-949,"\u52d9":-1872,"\u5316":1327,"\u5317":-1038,"\u533a":4646,"\u5343":-2309,"\u5348":-783,"\u5354":-1006,"\u53e3":483,"\u53f3":1233,"\u5404":3588,"\u5408":-241,"\u540c":3906,"\u548c":-837,"\u54e1":4513,"\u56fd":642,"\u578b":1389,"\u5834":1219,"\u5916":-241,"\u59bb":2016,"\u5b66":-1356,"\u5b89":-423,"\u5b9f":-1008,"\u5bb6":1078,"\u5c0f":-513,"\u5c11":-3102,"\u5dde":1155,"\u5e02":3197,"\u5e73":-1804,"\u5e74":2416,"\u5e83":-1030,"\u5e9c":1605,"\u5ea6":1452,"\u5efa":-2352,"\u5f53":-3885,"\u5f97":1905,"\u601d":-1291,"\u6027":1822,"\u6238":-488,"\u6307":-3973,"\u653f":-2013,"\u6559":-1479,"\u6570":3222,"\u6587":-1489,"\u65b0":1764,"\u65e5":2099,"\u65e7":5792,"\u6628":-661,"\u6642":-1248,"\u66dc":-951,"\u6700":-937,"\u6708":4125,"\u671f":360,"\u674e":3094,"\u6751":364,"\u6771":-805,"\u6838":5156,"\u68ee":2438,"\u696d":484,"\u6c0f":2613,"\u6c11":-1694,"\u6c7a":-1073,"\u6cd5":1868,"\u6d77":-495,"\u7121":979,"\u7269":461,"\u7279":-3850,"\u751f":-273,"\u7528":914,"\u753a":1215,"\u7684":7313,"\u76f4":-1835,"\u7701":792,"\u770c":6293,"\u77e5":-1528,"\u79c1":4231,"\u7a0e":401,"\u7acb":-960,"\u7b2c":1201,"\u7c73":7767,"\u7cfb":3066,"\u7d04":3663,"\u7d1a":1384,"\u7d71":-4229,"\u7dcf":1163,"\u7dda":1255,"\u8005":6457,"\u80fd":725,"\u81ea":-2869,"\u82f1":785,"\u898b":1044,"\u8abf":-562,"\u8ca1":-733,"\u8cbb":1777,"\u8eca":1835,"\u8ecd":1375,"\u8fbc":-1504,"\u901a":-1136,"\u9078":-681,"\u90ce":1026,"\u90e1":4404,"\u90e8":1200,"\u91d1":2163,"\u9577":421,"\u958b":-1432,"\u9593":1302,"\u95a2":-1282,"\u96e8":2009,"\u96fb":-1045,"\u975e":2066,"\u99c5":1620,"\uff11":-800,"\uff63":2670,"\uff65":-3794,"\uff6f":-1350,"\uff71":551,"\uff78\uff9e":1319,"\uff7d":874,"\uff84":521,"\uff91":1109,"\uff99":1591,"\uff9b":2201,"\uff9d":278},this.UW4__={",":3930,".":3508,"\u2015":-4841,"\u3001":3930,"\u3002":3508,"\u3007":4999,"\u300c":1895,"\u300d":3798,"\u3013":-5156,"\u3042":4752,"\u3044":-3435,"\u3046":-640,"\u3048":-2514,"\u304a":2405,"\u304b":530,"\u304c":6006,"\u304d":-4482,"\u304e":-3821,"\u304f":-3788,"\u3051":-4376,"\u3052":-4734,"\u3053":2255,"\u3054":1979,"\u3055":2864,"\u3057":-843,"\u3058":-2506,"\u3059":-731,"\u305a":1251,"\u305b":181,"\u305d":4091,"\u305f":5034,"\u3060":5408,"\u3061":-3654,"\u3063":-5882,"\u3064":-1659,"\u3066":3994,"\u3067":7410,"\u3068":4547,"\u306a":5433,"\u306b":6499,"\u306c":1853,"\u306d":1413,"\u306e":7396,"\u306f":8578,"\u3070":1940,"\u3072":4249,"\u3073":-4134,"\u3075":1345,"\u3078":6665,"\u3079":-744,"\u307b":1464,"\u307e":1051,"\u307f":-2082,"\u3080":-882,"\u3081":-5046,"\u3082":4169,"\u3083":-2666,"\u3084":2795,"\u3087":-1544,"\u3088":3351,"\u3089":-2922,"\u308a":-9726,"\u308b":-14896,"\u308c":-2613,"\u308d":-4570,"\u308f":-1783,"\u3092":13150,"\u3093":-2352,"\u30ab":2145,"\u30b3":1789,"\u30bb":1287,"\u30c3":-724,"\u30c8":-403,"\u30e1":-1635,"\u30e9":-881,"\u30ea":-541,"\u30eb":-856,"\u30f3":-3637,"\u30fb":-4371,"\u30fc":-11870,"\u4e00":-2069,"\u4e2d":2210,"\u4e88":782,"\u4e8b":-190,"\u4e95":-1768,"\u4eba":1036,"\u4ee5":544,"\u4f1a":950,"\u4f53":-1286,"\u4f5c":530,"\u5074":4292,"\u5148":601,"\u515a":-2006,"\u5171":-1212,"\u5185":584,"\u5186":788,"\u521d":1347,"\u524d":1623,"\u526f":3879,"\u529b":-302,"\u52d5":-740,"\u52d9":-2715,"\u5316":776,"\u533a":4517,"\u5354":1013,"\u53c2":1555,"\u5408":-1834,"\u548c":-681,"\u54e1":-910,"\u5668":-851,"\u56de":1500,"\u56fd":-619,"\u5712":-1200,"\u5730":866,"\u5834":-1410,"\u5841":-2094,"\u58eb":-1413,"\u591a":1067,"\u5927":571,"\u5b50":-4802,"\u5b66":-1397,"\u5b9a":-1057,"\u5bfa":-809,"\u5c0f":1910,"\u5c4b":-1328,"\u5c71":-1500,"\u5cf6":-2056,"\u5ddd":-2667,"\u5e02":2771,"\u5e74":374,"\u5e81":-4556,"\u5f8c":456,"\u6027":553,"\u611f":916,"\u6240":-1566,"\u652f":856,"\u6539":787,"\u653f":2182,"\u6559":704,"\u6587":522,"\u65b9":-856,"\u65e5":1798,"\u6642":1829,"\u6700":845,"\u6708":-9066,"\u6728":-485,"\u6765":-442,"\u6821":-360,"\u696d":-1043,"\u6c0f":5388,"\u6c11":-2716,"\u6c17":-910,"\u6ca2":-939,"\u6e08":-543,"\u7269":-735,"\u7387":672,"\u7403":-1267,"\u751f":-1286,"\u7523":-1101,"\u7530":-2900,"\u753a":1826,"\u7684":2586,"\u76ee":922,"\u7701":-3485,"\u770c":2997,"\u7a7a":-867,"\u7acb":-2112,"\u7b2c":788,"\u7c73":2937,"\u7cfb":786,"\u7d04":2171,"\u7d4c":1146,"\u7d71":-1169,"\u7dcf":940,"\u7dda":-994,"\u7f72":749,"\u8005":2145,"\u80fd":-730,"\u822c":-852,"\u884c":-792,"\u898f":792,"\u8b66":-1184,"\u8b70":-244,"\u8c37":-1e3,"\u8cde":730,"\u8eca":-1481,"\u8ecd":1158,"\u8f2a":-1433,"\u8fbc":-3370,"\u8fd1":929,"\u9053":-1291,"\u9078":2596,"\u90ce":-4866,"\u90fd":1192,"\u91ce":-1100,"\u9280":-2213,"\u9577":357,"\u9593":-2344,"\u9662":-2297,"\u969b":-2604,"\u96fb":-878,"\u9818":-1659,"\u984c":-792,"\u9928":-1984,"\u9996":1749,"\u9ad8":2120,"\uff62":1895,"\uff63":3798,"\uff65":-4371,"\uff6f":-724,"\uff70":-11870,"\uff76":2145,"\uff7a":1789,"\uff7e":1287,"\uff84":-403,"\uff92":-1635,"\uff97":-881,"\uff98":-541,"\uff99":-856,"\uff9d":-3637},this.UW5__={",":465,".":-299,1:-514,E2:-32768,"]":-2762,"\u3001":465,"\u3002":-299,"\u300c":363,"\u3042":1655,"\u3044":331,"\u3046":-503,"\u3048":1199,"\u304a":527,"\u304b":647,"\u304c":-421,"\u304d":1624,"\u304e":1971,"\u304f":312,"\u3052":-983,"\u3055":-1537,"\u3057":-1371,"\u3059":-852,"\u3060":-1186,"\u3061":1093,"\u3063":52,"\u3064":921,"\u3066":-18,"\u3067":-850,"\u3068":-127,"\u3069":1682,"\u306a":-787,"\u306b":-1224,"\u306e":-635,"\u306f":-578,"\u3079":1001,"\u307f":502,"\u3081":865,"\u3083":3350,"\u3087":854,"\u308a":-208,"\u308b":429,"\u308c":504,"\u308f":419,"\u3092":-1264,"\u3093":327,"\u30a4":241,"\u30eb":451,"\u30f3":-343,"\u4e2d":-871,"\u4eac":722,"\u4f1a":-1153,"\u515a":-654,"\u52d9":3519,"\u533a":-901,"\u544a":848,"\u54e1":2104,"\u5927":-1296,"\u5b66":-548,"\u5b9a":1785,"\u5d50":-1304,"\u5e02":-2991,"\u5e2d":921,"\u5e74":1763,"\u601d":872,"\u6240":-814,"\u6319":1618,"\u65b0":-1682,"\u65e5":218,"\u6708":-4353,"\u67fb":932,"\u683c":1356,"\u6a5f":-1508,"\u6c0f":-1347,"\u7530":240,"\u753a":-3912,"\u7684":-3149,"\u76f8":1319,"\u7701":-1052,"\u770c":-4003,"\u7814":-997,"\u793e":-278,"\u7a7a":-813,"\u7d71":1955,"\u8005":-2233,"\u8868":663,"\u8a9e":-1073,"\u8b70":1219,"\u9078":-1018,"\u90ce":-368,"\u9577":786,"\u9593":1191,"\u984c":2368,"\u9928":-689,"\uff11":-514,"\uff25\uff12":-32768,"\uff62":363,"\uff72":241,"\uff99":451,"\uff9d":-343},this.UW6__={",":227,".":808,1:-270,E1:306,"\u3001":227,"\u3002":808,"\u3042":-307,"\u3046":189,"\u304b":241,"\u304c":-73,"\u304f":-121,"\u3053":-200,"\u3058":1782,"\u3059":383,"\u305f":-428,"\u3063":573,"\u3066":-1014,"\u3067":101,"\u3068":-105,"\u306a":-253,"\u306b":-149,"\u306e":-417,"\u306f":-236,"\u3082":-206,"\u308a":187,"\u308b":-135,"\u3092":195,"\u30eb":-673,"\u30f3":-496,"\u4e00":-277,"\u4e2d":201,"\u4ef6":-800,"\u4f1a":624,"\u524d":302,"\u533a":1792,"\u54e1":-1212,"\u59d4":798,"\u5b66":-960,"\u5e02":887,"\u5e83":-695,"\u5f8c":535,"\u696d":-697,"\u76f8":753,"\u793e":-507,"\u798f":974,"\u7a7a":-822,"\u8005":1811,"\u9023":463,"\u90ce":1082,"\uff11":-270,"\uff25\uff11":306,"\uff99":-673,"\uff9d":-496},this}t.prototype.ctype_=function(e){for(var t in this.chartype_)if(e.match(this.chartype_[t][0]))return this.chartype_[t][1];return"O"},t.prototype.ts_=function(e){return e||0},t.prototype.segment=function(e){if(null==e||null==e||""==e)return[];var t=[],n=["B3","B2","B1"],r=["O","O","O"],a=e.split("");for(c=0;c0&&(t.push(i),i="",_="B"),o=s,s=l,l=_,i+=n[c]}return t.push(i),t},e.TinySegmenter=t}})?r.call(t,n,t,e):r)||(e.exports=a)},58291:(e,t,n)=>{var r,a;!function(){var i,o,s,l,c,u,d,p,f,b,h,m,g,y,v,w,k,x,_,S,E,C,T,A,j,O,L,P,I,N,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=R.utils.clone(t)||{};l.position=[o,s],l.index=a.length,a.push(new R.Token(n.slice(o,i),l))}o=i+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ie&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:is?c+=2:o==s&&(t+=n[l+1]*r[c+1],l+=2,c+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new R.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}if(0==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}1==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var c,u=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?c=a.node.edges[d]:(c=new R.TokenSet,a.node.edges[d]=c),1==a.str.length&&(c.final=!0),r.push({node:c,editsRemaining:a.editsRemaining-1,str:u+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),s=0;s1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},10119:(e,t,n)=>{"use strict";n.r(t)},51043:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),c=i.querySelector(r.barSelector),u=r.speed,d=r.easing;return i.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,o(e,u,d)),1===e?(l(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){l(i,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),s=e?"-100":i(n.status||0),c=document.querySelector(r.parent);return l(o,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6969:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},8722:(e,t,n)=>{const r=n(6969),a=n(98380),i=new Set;function o(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(o.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(63157).resolve(t)],delete Prism.languages[e],n(63157)(t),i.add(e)}))}o.silent=!1,e.exports=o},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,s=o.length;-1!==n.code.indexOf(a=t(r,s));)++s;return o[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(s){for(var l=0;l=i.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=i[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),b=p.indexOf(f);if(b>-1){++a;var h=p.substring(0,b),m=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),g=p.substring(b+f.length),y=[];h&&y.push.apply(y,o([h])),y.push(m),g&&y.push.apply(y,o([g])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&o(c.content)}return s}(n.tokens)}}}})}(Prism)},18692:(e,t,n)=>{var r={"./":8722};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=18692},63157:(e,t,n)=>{var r={"./":8722};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=63157},98380:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var o in a(t,i),s[t]=!0,n[t])s[o]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,i.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(i,o,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var i=r[a];t[a]="string"==typeof i?{title:i}:i}}return t}(i),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var i=e[a];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);o=o.map(c),s=(s||[]).map(c);var u=n(o),d=n(s);o.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),b=u;a(b);){for(var h in p={},b){var m=l[h];t(m&&m.modify,(function(e){e in d&&(p[e]=!0)}))}for(var g in d)if(!(g in u))for(var y in f(g))if(y in u){p[g]=!0;break}for(var v in b=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var i=a?a.series:void 0,o=a?a.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=o(u.map((function(e){var t=c(e);return delete l[e],t})));i?a=i(p,(function(){return r(e)})):r(e)}return s[e]=a}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return o(d)}(f,u,t,n)}};return w}}();e.exports=t},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22551:(e,t,n)=>{"use strict";var r=n(96540),a=n(69982);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n