From 73e9fd50a09af68d6794d45985cf578f56927480 Mon Sep 17 00:00:00 2001 From: Caroline <113052567+carolxob@users.noreply.github.com> Date: Mon, 6 Feb 2023 14:35:01 -0700 Subject: [PATCH] Add Trace analytics page to doc website repo (#1873) * Added cluster permissions to cluster permissions list. Signed-off-by: carolxob * Revert "Added cluster permissions to cluster permissions list." This reverts commit 48a9fb56b7fce308eccf2b4dd8ad6b7c96515a4d. * Adding new Trace Analytics page. Signed-off-by: carolxob * Add new trace analytics page. Signed-off-by: carolxob * Incorporated technical review feedback. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Added Trace tuning content before 'Pipeline configuration' section. Signed-off-by: carolxob * Adjusted heading levels to Trace tuning content. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Minor changes to URL format. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Minor edits, fixed image links. Signed-off-by: carolxob * Minor updates to phrasing. Signed-off-by: carolxob * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Minor edits based on tech review feedback. Signed-off-by: carolxob * Minor updates to links. Signed-off-by: carolxob * Minor link updates. Signed-off-by: carolxob * Minor edits to URLs. Signed-off-by: carolxob * Updated links. Signed-off-by: carolxob * Commit test. Signed-off-by: carolxob * Incorporated some feedback. Signed-off-by: carolxob * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Update _data-prepper/trace-analytics.md Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> * Minor edits. Signed-off-by: carolxob * Minor edits to get started. Signed-off-by: carolxob * Minor updates. Signed-off-by: carolxob * Incorporated technical review feedback. Signed-off-by: carolxob * Minor changes to phrasing. Signed-off-by: carolxob * Made some edits from editorial feedback. Signed-off-by: carolxob * Incorporated editorial feedback. Signed-off-by: carolxob * Update _data-prepper/trace-analytics.md Co-authored-by: Nathan Bower * Update _data-prepper/trace-analytics.md Co-authored-by: Nathan Bower * Minor changes. Signed-off-by: carolxob * Incorporated more editorial feedback. Signed-off-by: carolxob * Incorporated more editorial feedback. Signed-off-by: carolxob * Incorporated more editorial feedback. Signed-off-by: carolxob * Additional feedback incorporated from editorial. Signed-off-by: carolxob * Minor edits from editorial review feedback. Signed-off-by: carolxob * Minor edits. Signed-off-by: carolxob * Fixed merge conflict...again. Signed-off-by: carolxob * Incorporated editorial feedback. Signed-off-by: carolxob --------- Signed-off-by: carolxob Co-authored-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Co-authored-by: Nathan Bower (cherry picked from commit 7f5cdedd41e11c61f2f602de4d04da66f98029d7) --- _data-prepper/trace-analytics.md | 376 ++++++++++++++++++ .../trace-analytics-components.png | Bin 0 -> 43092 bytes .../trace-analytics-feature.jpg | Bin 0 -> 44972 bytes 3 files changed, 376 insertions(+) create mode 100644 _data-prepper/trace-analytics.md create mode 100644 images/data-prepper/trace-analytics/trace-analytics-components.png create mode 100644 images/data-prepper/trace-analytics/trace-analytics-feature.jpg diff --git a/_data-prepper/trace-analytics.md b/_data-prepper/trace-analytics.md new file mode 100644 index 00000000000..040681d2c60 --- /dev/null +++ b/_data-prepper/trace-analytics.md @@ -0,0 +1,376 @@ +--- +layout: default +title: Trace analytics +nav_order: 21 +--- + +# Trace analytics + +Trace analytics allows you to collect trace data and customize a pipeline that ingests and transforms the data for use in OpenSearch. The following provides an overview of the trace analytics workflow in Data Prepper, how to configure it, and how to visualize trace data. + +## Introduction + +When using Data Prepper as a server-side component to collect trace data, you can customize a Data Prepper pipeline to ingest and transform the data for use in OpenSearch. Upon transformation, you can visualize the transformed trace data for use with the Observability plugin inside of OpenSearch Dashboards. Trace data provides visibility into your application's performance, and helps you gain more information about individual traces. + +The following flowchart illustrates the trace analytics workflow, from running OpenTelemetry Collector to using OpenSearch Dashboards for visualization. + +Trace analyticis component overview{: .img-fluid} + +To monitor trace analytics, you need to set up the following components in your service environment: +- Add **instrumentation** to your application so it can generate telemetry data and send it to an OpenTelemetry collector. +- Run an **OpenTelemetry collector** as a sidecar or daemonset for Amazon Elastic Kubernetes Service (Amazon EKS), a sidecar for Amazon Elastic Container Service (Amazon ECS), or an agent on Amazon Elastic Compute Cloud (Amazon EC2). You should configure the collector to export trace data to Data Prepper. +- Deploy **Data Prepper** as the ingestion collector for OpenSearch. Configure it to send the enriched trace data to your OpenSearch cluster or to the Amazon OpenSearch Service domain. +- Use **OpenSearch Dashboards** to visualize and detect problems in your distributed applications. + +## Trace analytics pipeline + +To monitor trace analytics in Data Prepper, we provide three pipelines: `entry-pipeline`, `raw-trace-pipeline`, and `service-map-pipeline`. The following image provides an overview of how the pipelines work together to monitor trace analytics. + +Trace analytics pipeline overview{: .img-fluid} + + +### OpenTelemetry trace source + +The [OpenTelemetry source]({{site.url}}{{site.baseurl}}/data-prepper/configuration/processors/otel-trace-raw/) accepts trace data from the OpenTelemetry Collector. The source follows the [OpenTelemetry Protocol](https://github.com/open-telemetry/opentelemetry-specification/tree/master/specification/protocol) and officially supports transport over gRPC and the use of industry-standard encryption (TLS/HTTPS). + +### Processor + +There are three processors for the trace analytics feature: + +* *otel_trace_raw* - The *otel_trace_raw* processor receives a collection of [span](https://github.com/opensearch-project/data-prepper/blob/fa65e9efb3f8d6a404a1ab1875f21ce85e5c5a6d/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/trace/Span.java) records from [*otel-trace-source*]({{site.url}}{{site.baseurl}}/data-prepper/configuration/sources/otel-trace/), and performs stateful processing, extraction, and completion of trace-group-related fields. +* *otel_trace_group* - The *otel_trace_group* processor fills in the missing trace-group-related fields in the collection of [span](https://github.com/opensearch-project/data-prepper/blob/fa65e9efb3f8d6a404a1ab1875f21ce85e5c5a6d/data-prepper-api/src/main/java/com/amazon/dataprepper/model/trace/Span.java) records by looking up the OpenSearch backend. +* *service_map_stateful* – The *service_map_stateful* processor performs the required preprocessing for trace data and builds metadata to display the `service-map` dashboards. + + +### OpenSearch sink + +OpenSearch provides a generic sink that writes data to OpenSearch as the destination. The [OpenSearch sink]({{site.url}}{{site.baseurl}}/data-prepper/configuration/sinks/opensearch/) has configuration options related to the OpenSearch cluster, such as endpoint, SSL, username/password, index name, index template, and index state management. + +The sink provides specific configurations for the trace analytics feature. These configurations allow the sink to use indexes and index templates specific to trace analytics. The following OpenSearch indexes are specific to trace analytics: + +* *otel-v1-apm-span* – The *otel-v1-apm-span* index stores the output from the [otel_trace_raw]({{site.url}}{{site.baseurl}}/data-prepper/configuration/processors/otel-trace-raw/) processor. +* *otel-v1-apm-service-map* – The *otel-v1-apm-service-map* index stores the output from the [service_map_stateful]({{site.url}}{{site.baseurl}}/data-prepper/configuration/processors/service-map-stateful/) processor. + +## Trace tuning + +Starting with version 0.8.x, Data Prepper supports both vertical and horizontal scaling for trace analytics. You can adjust the size of a single Data Prepper instance to meet your workload's demands and scale vertically. + +You can scale horizontally by using the core [peer forwarder]({{site.url}}{{site.baseurl}}/data-prepper/peer_forwarder/) to deploy multiple Data Prepper instances to form a cluster. This enables Data Prepper instances to communicate with instances in the cluster and is required for horizontally scaling deployments. + +### Scaling recommendations + +Use the following recommended configurations to scale Data Prepper. We recommend that you modify parameters based on the requirements. We also recommend that you monitor the Data Prepper host metrics and OpenSearch metrics to ensure that the configuration works as expected. + +#### Buffer + +The total number of trace requests processed by Data Prepper is equal to the sum of the `buffer_size` values in `otel-trace-pipeline` and `raw-pipeline`. The total number of trace requests sent to OpenSearch is equal to the product of `batch_size` and `workers` in `raw-trace-pipeline`. For more information about `raw-pipeline`, see [Trace analytics pipeline]({{site.url}}{{site.baseurl}}/data-prepper/pipelines/pipelines). + + +We recommend the following when making changes to buffer settings: + * The `buffer_size` value in `otel-trace-pipeline` and `raw-pipeline` should be the same. + * The `buffer_size` should be greater than or equal to `workers` * `batch_size` in the `raw-pipeline`. + + +#### Workers + +The `workers` setting determines the number of threads that are used by Data Prepper to process requests from the buffer. We recommend that you set `workers` based on the CPU utilization. This value can be higher than the number of available processors because Data Prepper uses significant input/output time when sending data to OpenSearch. + +#### Heap + +Configure the Data Prepper heap by setting the `JVM_OPTS` environment variable. We recommend that you set the heap value to a minimum value of `4` * `batch_size` * `otel_send_batch_size` * `maximum size of indvidual span`. + +As mentioned in the [setup guide]({{site.url}}{{site.baseurl}}/data-prepper/trace_analytics/#opentelemetry-collector), set `otel_send_batch_size` to a value of `50` in your OpenTelemetry Collector configuration. + +#### Local disk + +Data Prepper uses the local disk to store metadata required for service map processing, so we recommend storing only the following key fields: `traceId`, `spanId`, `parentSpanId`, `spanKind`, `spanName`, and `serviceName`. The `service-map` plugin stores only two files, each of which stores `window_duration` seconds of data. As an example, testing with a throughput of `3000 spans/second` resulted in the total disk usage of `4 MB`. + +Data Prepper also uses the local disk to write logs. In the most recent version of Data Prepper, you can redirect the logs to your preferred path. + + +### AWS CloudFormation template and Kubernetes/Amazon EKS configuration files + +The [AWS CloudFormation](https://github.com/opensearch-project/data-prepper/blob/main/deployment-template/ec2/data-prepper-ec2-deployment-cfn.yaml) template provides a user-friendly mechanism for configuring the scaling attributes described in the [Trace tuning](#trace-tuning) section. + +The [Kubernetes configuration files](https://github.com/opensearch-project/data-prepper/blob/main/examples/dev/k8s/README.md) and [Amazon EKS configuration files](https://github.com/opensearch-project/data-prepper/blob/main/deployment-template/eks/README.md) are available for configuring these attributes in a cluster deployment. + +### Benchmark tests + +The benchmark tests were performed on an `r5.xlarge` EC2 instance with the following configuration: + + * `buffer_size`: 4096 + * `batch_size`: 256 + * `workers`: 8 + * `Heap`: 10 GB + +This setup was able to handle a throughput of `2100` spans/second at `20` percent CPU utilization. + +## Pipeline configuration + +The following sections provide examples of different types of pipelines and how to configure each type. + +### Example: Trace analytics pipeline + +The following example demonstrates how to build a pipeline that supports the [OpenSearch Dashboards Observability plugin]({{site.url}}{{site.baseurl}}/observability-plugin/trace/ta-dashboards/). This pipeline takes data from the OpenTelemetry Collector and uses two other pipelines as sinks. These two separate pipelines serve two different purposes and write to different OpenSearch indexes. The first pipeline prepares trace data for OpenSearch and enriches and ingests the span documents into a span index within OpenSearch. The second pipeline aggregates traces into a service map and writes service map documents into a service map index within OpenSearch. + +Starting with Data Prepper version 2.0, Data Prepper no longer supports the `otel_trace_raw_prepper` processor. The `otel_trace_raw` processor replaces the `otel_trace_raw_prepper` processor and supports some of Data Prepper's recent data model changes. Instead, you should use the `otel_trace_raw` processor. See the following YAML file example: + +```yml +entry-pipeline: + delay: "100" + source: + otel_trace_source: + ssl: false + buffer: + bounded_blocking: + buffer_size: 10240 + batch_size: 160 + sink: + - pipeline: + name: "raw-trace-pipeline" + - pipeline: + name: "service-map-pipeline" +raw-pipeline: + source: + pipeline: + name: "entry-pipeline" + buffer: + bounded_blocking: + buffer_size: 10240 + batch_size: 160 + processor: + - otel_trace_raw: + sink: + - opensearch: + hosts: ["https://localhost:9200"] + insecure: true + username: admin + password: admin + index_type: trace-analytics-raw +service-map-pipeline: + delay: "100" + source: + pipeline: + name: "entry-pipeline" + buffer: + bounded_blocking: + buffer_size: 10240 + batch_size: 160 + processor: + - service_map_stateful: + sink: + - opensearch: + hosts: ["https://localhost:9200"] + insecure: true + username: admin + password: admin + index_type: trace-analytics-service-map +``` + +To maintain similar ingestion throughput and latency, scale the `buffer_size` and `batch_size` by the estimated maximum batch size in the client request payload. {: .tip} + +#### Example: `otel trace` + +The following is an example `otel-trace-source` .yaml file with SSL and basic authentication enabled. Note that you will need to modify your `otel-collector-config.yaml` file so that it uses your own credentials. + +```yaml +source: + otel_trace_source: + #record_type: event # Add this when using Data Prepper 1.x. This option is removed in 2.0 + ssl: true + sslKeyCertChainFile: "/full/path/to/certfile.crt" + sslKeyFile: "/full/path/to/keyfile.key" + authentication: + http_basic: + username: "my-user" + password: "my_s3cr3t" +``` + +#### Example: pipeline.yaml + +The following is an example `pipeline.yaml` file without SSL and basic authentication enabled for the `otel-trace-pipeline` pipeline: + +```yaml +otel-trace-pipeline: + # workers is the number of threads processing data in each pipeline. + # We recommend same value for all pipelines. + # default value is 1, set a value based on the machine you are running Data Prepper + workers: 8 + # delay in milliseconds is how often the worker threads should process data. + # Recommend not to change this config as we want the entry-pipeline to process as quick as possible + # default value is 3_000 ms + delay: "100" + source: + otel_trace_source: + #record_type: event # Add this when using Data Prepper 1.x. This option is removed in 2.0 + ssl: false # Change this to enable encryption in transit + authentication: + unauthenticated: + buffer: + bounded_blocking: + # buffer_size is the number of ExportTraceRequest from otel-collector the data prepper should hold in memeory. + # We recommend to keep the same buffer_size for all pipelines. + # Make sure you configure sufficient heap + # default value is 512 + buffer_size: 512 + # This is the maximum number of request each worker thread will process within the delay. + # Default is 8. + # Make sure buffer_size >= workers * batch_size + batch_size: 8 + sink: + - pipeline: + name: "raw-trace-pipeline" + - pipeline: + name: "entry-pipeline" +raw-pipeline: + # Configure same as the otel-trace-pipeline + workers: 8 + # We recommend using the default value for the raw-pipeline. + delay: "3000" + source: + pipeline: + name: "entry-pipeline" + buffer: + bounded_blocking: + # Configure the same value as in entry-pipeline + # Make sure you configure sufficient heap + # The default value is 512 + buffer_size: 512 + # The raw processor does bulk request to your OpenSearch sink, so configure the batch_size higher. + # If you use the recommended otel-collector setup each ExportTraceRequest could contain max 50 spans. https://github.com/opensearch-project/data-prepper/tree/v0.7.x/deployment/aws + # With 64 as batch size each worker thread could process upto 3200 spans (64 * 50) + batch_size: 64 + processor: + - otel_trace_raw: + - otel_trace_group: + hosts: [ "https://localhost:9200" ] + # Change to your credentials + username: "admin" + password: "admin" + # Add a certificate file if you are accessing an OpenSearch cluster with a self-signed certificate + #cert: /path/to/cert + # If you are connecting to an Amazon OpenSearch Service domain without + # Fine-Grained Access Control, enable these settings. Comment out the + # username and password above. + #aws_sigv4: true + #aws_region: us-east-1 + sink: + - opensearch: + hosts: [ "https://localhost:9200" ] + index_type: trace-analytics-raw + # Change to your credentials + username: "admin" + password: "admin" + # Add a certificate file if you are accessing an OpenSearch cluster with a self-signed certificate + #cert: /path/to/cert + # If you are connecting to an Amazon OpenSearch Service domain without + # Fine-Grained Access Control, enable these settings. Comment out the + # username and password above. + #aws_sigv4: true + #aws_region: us-east-1 +service-map-pipeline: + workers: 8 + delay: "100" + source: + pipeline: + name: "entry-pipeline" + processor: + - service_map_stateful: + # The window duration is the maximum length of time the data prepper stores the most recent trace data to evaluvate service-map relationships. + # The default is 3 minutes, this means we can detect relationships between services from spans reported in last 3 minutes. + # Set higher value if your applications have higher latency. + window_duration: 180 + buffer: + bounded_blocking: + # buffer_size is the number of ExportTraceRequest from otel-collector the data prepper should hold in memeory. + # We recommend to keep the same buffer_size for all pipelines. + # Make sure you configure sufficient heap + # default value is 512 + buffer_size: 512 + # This is the maximum number of request each worker thread will process within the delay. + # Default is 8. + # Make sure buffer_size >= workers * batch_size + batch_size: 8 + sink: + - opensearch: + hosts: [ "https://localhost:9200" ] + index_type: trace-analytics-service-map + # Change to your credentials + username: "admin" + password: "admin" + # Add a certificate file if you are accessing an OpenSearch cluster with a self-signed certificate + #cert: /path/to/cert + # If you are connecting to an Amazon OpenSearch Service domain without + # Fine-Grained Access Control, enable these settings. Comment out the + # username and password above. + #aws_sigv4: true + #aws_region: us-east-1 +``` + +You need to modify the preceding configuration for your OpenSearch cluster so that the configuration matches your environment. Note that it has two `opensearch` sinks that need to be modified. +{: .note} + +You must make the following changes: +* `hosts` – Set to your hosts. +* `username` – Provide your OpenSearch username. +* `password` – Provide your OpenSearch password. +* `aws_sigv4` – If you are using Amazon OpenSearch Service with AWS signing, set this value to `true`. It will sign requests with the default AWS credentials provider. +* `aws_region` – If you are using Amazon OpenSearch Service with AWS signing, set this value to your AWS Region. + +For other configurations available for OpenSearch sinks, see [Data Prepper OpenSearch sink]({{site.url}}{{site.baseurl}}/data-prepper/configuration/sinks/opensearch/). + +## OpenTelemetry Collector + +You need to run OpenTelemetry Collector in your service environment. Follow [Getting Started](https://opentelemetry.io/docs/collector/getting-started/#getting-started) to install an OpenTelemetry collector. Ensure that you configure the collector with an exporter configured for your Data Prepper instance. The following example `otel-collector-config.yaml` file receives data from various instrumentations and exports it to Data Prepper. + +### Example otel-collector-config.yaml file + +The following is an example `otel-collector-config.yaml` file: + +``` +receivers: + jaeger: + protocols: + grpc: + otlp: + protocols: + grpc: + zipkin: + +processors: + batch/traces: + timeout: 1s + send_batch_size: 50 + +exporters: + otlp/data-prepper: + endpoint: localhost:21890 + tls: + insecure: true + +service: + pipelines: + traces: + receivers: [jaeger, otlp, zipkin] + processors: [batch/traces] + exporters: [otlp/data-prepper] +``` + +After you run OpenTelemetry in your service environment, you must configure your application to use the OpenTelemetry Collector. The OpenTelemetry Collector typically runs alongside your application. + +## Next steps and more information + +The [OpenSearch Dashboards Observability plugin]({{site.url}}{{site.baseurl}}/observability-plugin/trace/ta-dashboards/) documentation provides additional information about configuring OpenSearch to view trace analytics in OpenSearch Dashboards. + +For more information about how to tune and scale Data Prepper for trace analytics, see [Trace tuning](#trace-tuning). + +## Migrating to Data Prepper 2.0 + +Starting with Data Prepper version 1.4, trace processing uses Data Prepper's event model. This allows pipeline authors to configure other processors to modify spans or traces. To provide a migration path, Data Prepper version 1.4 introduced the following changes: + +* `otel_trace_source` has an optional `record_type` parameter that can be set to `event`. When configured, it will output event objects. +* `otel_trace_raw` replaces `otel_trace_raw_prepper` for event-based spans. +* `otel_trace_group` replaces `otel_trace_group_prepper` for event-based spans. + +In Data Prepper version 2.0, `otel_trace_source` will only output events. Data Prepper version 2.0 also removes `otel_trace_raw_prepper` and `otel_trace_group_prepper` entirely. To migrate to Data Prepper version 2.0, you can configure your trace pipeline using the event model. + \ No newline at end of file diff --git a/images/data-prepper/trace-analytics/trace-analytics-components.png b/images/data-prepper/trace-analytics/trace-analytics-components.png new file mode 100644 index 0000000000000000000000000000000000000000..62f43cf90e9b658a1327220d5402e15eab2091e7 GIT binary patch literal 43092 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⁢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 V`iT&fUKcDdI%IONNcZH${|C_3C?@~_ literal 0 HcmV?d00001 diff --git a/images/data-prepper/trace-analytics/trace-analytics-feature.jpg b/images/data-prepper/trace-analytics/trace-analytics-feature.jpg new file mode 100644 index 0000000000000000000000000000000000000000..744ec6fbafd8ba3bc039808f7eb3ac3cc0a9ac94 GIT binary patch literal 44972 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 E06deE6aWAK literal 0 HcmV?d00001