From 8c5e5076ed000b37e2474dbbdabffa0ad7b725ff3a3023e8ece7f6ff5a571967 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 10:22:24 +0000 Subject: [PATCH 01/29] added amazon certificate manager --- ACM/_ACM.md | 30 +++++++++++++++++++++++++++++ ACM/terminating_diagram_at_alb.png | Bin 0 -> 37703 bytes ACM/terminating_ssl_e2e.png | Bin 0 -> 36198 bytes README.md | 3 ++- 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 ACM/_ACM.md create mode 100644 ACM/terminating_diagram_at_alb.png create mode 100644 ACM/terminating_ssl_e2e.png diff --git a/ACM/_ACM.md b/ACM/_ACM.md new file mode 100644 index 0000000..92a3715 --- /dev/null +++ b/ACM/_ACM.md @@ -0,0 +1,30 @@ +# Amazon Certificate Manager +Provisions, manages, and deploys public and private SSL/TLS certificate for use with AWS Services. + +ACM handles the complexity of creating and managing public SSL/TLS certificates for your AWS based websites and applications. + +ACM handles two kinds of certificates: +1. Public - Certificates provided by ACM (Free) +2. Privates - Certificates you import ($400 / month) + +ACM can handle multiple subdomains and wildcard domains (*.example.com). + +ACM can be attached to the following AWS resources: +- [[ELB]] +- [[_CloudFront|CloudFront]] +- [[API Gateway]] +- [[_Elastic BeanStalk|_Elastic BeanStalk]] (through [[ELB]]) + +## Types +### Terminating SSL at Load Balancer +All traffic in-transit beyond the ALB is unencrypted +![terminating_diagram_at_alb.png](./terminating_diagram_at_alb.png) + +You can add as many EC2 instances to the ALB as you need, and you don't need to install certificates on each instances. Less secure, in theory, if someone can grab the data in between the ALB and EC2 instances. + +### Terminating SSL End-to-End +Traffic is encrypted in-transit all the way to the application. +![terminating_ssl_e2e.png](./terminating_ssl_e2e.png) + +It guarantees encryption is end to end. It's more complicated to maintain certificates. You can't do this with ACM by itself. You can set up Let's Encrypt for it. + diff --git a/ACM/terminating_diagram_at_alb.png b/ACM/terminating_diagram_at_alb.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..ec65d2dea549912c0bd64fe7f94fccbd462cf765a3eee49710727a0388998af2 GIT binary patch literal 37703 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 0f1eb5a..62fcbc6 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,5 @@ - [[_CodeDeploy|CodeDeploy]] - [[_CodePipeline|CodePipeline]] -[[_AppSync|AppSync]] +- [[_AppSync|AppSync]] +- [[_ACM|Amazon Certificate Manager]] From 278ec4058689938ce4df112d32b72ac9d806b5c3581e2bb1ed4a17d2d93d777d Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 10:40:30 +0000 Subject: [PATCH 02/29] adding route53 --- README.md | 1 + Route 53/_Route53.md | 16 ++++++++++++++++ Route 53/route_53_routing_example.png | Bin 0 -> 140234 bytes 3 files changed, 17 insertions(+) create mode 100644 Route 53/_Route53.md create mode 100644 Route 53/route_53_routing_example.png diff --git a/README.md b/README.md index 62fcbc6..63a9e57 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,4 @@ - [[_AppSync|AppSync]] - [[_ACM|Amazon Certificate Manager]] +- [[_Route53|Route 53]] diff --git a/Route 53/_Route53.md b/Route 53/_Route53.md new file mode 100644 index 0000000..f38df5d --- /dev/null +++ b/Route 53/_Route53.md @@ -0,0 +1,16 @@ +# Route 53 +A DNS with AWS Services. + +You can: +- Register and manage domains +- Create various records sets on a domain +- Implement compex traffic flows (Blue/Green[^1], failovers) +- Continuously monitor records via health checks. +- Resolve VPC's outside of AWS. + +[^1]: See [[Deployments|Deployments]]. + +## Use Cases +Use Route 53 to get your custom domains to point at your AWS Resources. + +![route_53_routing_example.png](./route_53_routing_example.png) \ No newline at end of file diff --git a/Route 53/route_53_routing_example.png b/Route 53/route_53_routing_example.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..b45c8451e641b2515ab2a0a82b379e3fcaf4c3afb9771595cba6e8e515485058 GIT binary patch literal 140234 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
+Show answers and calculations + +`ceil` means round up to the next whole number. Sizes are divided by the 1 KB write or 4 KB read increment before rounding. + +1. **12 WCUs** — `ceil(1.8 / 1) × 6 = 2 × 6`. +2. **9 WCUs** — `ceil(0.7 / 1) × 9 = 1 × 9`. +3. **16 WCUs** — `ceil(3.01 / 1) × 4 = 4 × 4`. +4. **18 WCUs** — `ceil(2.01 / 1) × 3 × 2 = 3 × 3 × 2`. +5. **12 WCUs** — `ceil(1 / 1) × 6 × 2 = 1 × 6 × 2`. +6. **10 RCUs** — `ceil(5 / 4) × 5 = 2 × 5`. +7. **9 RCUs** — `ceil(12 / 4) × 3 = 3 × 3`. +8. **4.5 RCUs** — `ceil(0.8 / 4) × 9 × 0.5 = 1 × 9 × 0.5`. +9. **7.5 RCUs** — `ceil(8.01 / 4) × 5 × 0.5 = 3 × 5 × 0.5`. +10. **7 RCUs** — `ceil(8 / 4) × 7 × 0.5 = 2 × 7 × 0.5`. +11. **20 RCUs** — `ceil(4.01 / 4) × 5 × 2 = 2 × 5 × 2`. +12. **18 RCUs** — `ceil(11 / 4) × 3 × 2 = 3 × 3 × 2`. +13. **11 WCUs** — `(ceil(0.6 / 1) × 2) + (ceil(2.4 / 1) × 3) = 2 + 9`. +14. **5.5 RCUs** — `(ceil(5 / 4) × 2) + (ceil(1 / 4) × 3 × 0.5) = 4 + 1.5`. +15. **7 writes/s** — `28 / ceil(3.2 / 1) = 28 / 4`. +16. **5 transactional item writes/s** — `30 / (ceil(2.2 / 1) × 2) = 30 / 6`. +17. **10 reads/s** — `15 / (ceil(9 / 4) × 0.5) = 15 / 1.5`. +18. **8 transactional item reads/s** — `32 / (ceil(5 / 4) × 2) = 32 / 4`. +19. **6 provisioned RCUs** — `ceil(ceil(3 / 4) × 11 × 0.5) = ceil(5.5)`. +20. **10 provisioned RCUs** — `ceil(ceil(12.01 / 4) × 5 × 0.5) = ceil(10)`. + +For questions 1–14, RCUs describe exact throughput requirements. Provisioned settings must be whole numbers, as explicitly requested in questions 19–20. + +
From 888fe03d46cbe431089e0228457e3815021d251b03633776de39f6e5c2880d48 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 15:53:54 +0000 Subject: [PATCH 27/29] moved study stuff --- {ACM => Study/ACM}/_ACM.md | 0 {ACM => Study/ACM}/terminating_diagram_at_alb.png | Bin {ACM => Study/ACM}/terminating_ssl_e2e.png | Bin {ALB => Study/ALB}/_ALB.md | 0 {API Gateway => Study/API Gateway}/_API Gateway.md | 0 {AppSync => Study/AppSync}/GraphQL.md | 0 {AppSync => Study/AppSync}/_AppSync.md | 0 {Athena => Study/Athena}/_Athena.md | 0 .../CloudFront}/CloudFront Functions.md | 0 {CloudFront => Study/CloudFront}/Lambda@Edge.md | 0 {CloudFront => Study/CloudFront}/_CloudFront.md | 0 {CodeBuild => Study/CodeBuild}/_CodeBuild.md | 0 {CodeCommit => Study/CodeCommit}/_CodeCommit.md | 0 {CodeDeploy => Study/CodeDeploy}/_CodeDeploy.md | 0 .../CodePipeline}/_CodePipeline.md | 0 {ELB => Study/ELB}/_ELB.md | 0 {Lambda => Study/Lambda}/_Lambda.md | 0 {NLB => Study/NLB}/_NLB.md | 0 .../Practice/Read and Write Units - Set 3.md | 0 {Route 53 => Study/Route 53}/Record Sets.md | 0 .../Route 53}/Route 53 Hosted Zone.md | 0 {Route 53 => Study/Route 53}/Use Cases.md | 0 {Route 53 => Study/Route 53}/_Route53.md | 0 .../Route 53}/route_53_routing_example.png | Bin {S3 => Study/S3}/_S3.md | 0 {VPC => Study/VPC}/_VPC.md | 0 {X-Ray => Study/X-Ray}/_X-Ray.md | 0 {_Concepts => Study/_Concepts}/CRUD vs REST.md | 0 {_Concepts => Study/_Concepts}/Deployments.md | 0 {_Concepts => Study/_Concepts}/Glossary/API.md | 0 {_Concepts => Study/_Concepts}/Glossary/AWS.md | 0 {_Concepts => Study/_Concepts}/Glossary/CRUD.md | 0 {_Concepts => Study/_Concepts}/Glossary/HTTP.md | 0 {_Concepts => Study/_Concepts}/Glossary/HTTPS.md | 0 {_Concepts => Study/_Concepts}/Glossary/REST.md | 0 {_Concepts => Study/_Concepts}/Glossary/SQL.md | 0 {_Concepts => Study/_Concepts}/Glossary/VPN.md | 0 37 files changed, 0 insertions(+), 0 deletions(-) rename {ACM => Study/ACM}/_ACM.md (100%) rename {ACM => Study/ACM}/terminating_diagram_at_alb.png (100%) rename {ACM => Study/ACM}/terminating_ssl_e2e.png (100%) rename {ALB => Study/ALB}/_ALB.md (100%) rename {API Gateway => Study/API Gateway}/_API Gateway.md (100%) rename {AppSync => Study/AppSync}/GraphQL.md (100%) rename {AppSync => Study/AppSync}/_AppSync.md (100%) rename {Athena => Study/Athena}/_Athena.md (100%) rename {CloudFront => Study/CloudFront}/CloudFront Functions.md (100%) rename {CloudFront => Study/CloudFront}/Lambda@Edge.md (100%) rename {CloudFront => Study/CloudFront}/_CloudFront.md (100%) rename {CodeBuild => Study/CodeBuild}/_CodeBuild.md (100%) rename {CodeCommit => Study/CodeCommit}/_CodeCommit.md (100%) rename {CodeDeploy => Study/CodeDeploy}/_CodeDeploy.md (100%) rename {CodePipeline => Study/CodePipeline}/_CodePipeline.md (100%) rename {ELB => Study/ELB}/_ELB.md (100%) rename {Lambda => Study/Lambda}/_Lambda.md (100%) rename {NLB => Study/NLB}/_NLB.md (100%) rename {DynamoDB => Study}/Practice/Read and Write Units - Set 3.md (100%) rename {Route 53 => Study/Route 53}/Record Sets.md (100%) rename {Route 53 => Study/Route 53}/Route 53 Hosted Zone.md (100%) rename {Route 53 => Study/Route 53}/Use Cases.md (100%) rename {Route 53 => Study/Route 53}/_Route53.md (100%) rename {Route 53 => Study/Route 53}/route_53_routing_example.png (100%) rename {S3 => Study/S3}/_S3.md (100%) rename {VPC => Study/VPC}/_VPC.md (100%) rename {X-Ray => Study/X-Ray}/_X-Ray.md (100%) rename {_Concepts => Study/_Concepts}/CRUD vs REST.md (100%) rename {_Concepts => Study/_Concepts}/Deployments.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/API.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/AWS.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/CRUD.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/HTTP.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/HTTPS.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/REST.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/SQL.md (100%) rename {_Concepts => Study/_Concepts}/Glossary/VPN.md (100%) diff --git a/ACM/_ACM.md b/Study/ACM/_ACM.md similarity index 100% rename from ACM/_ACM.md rename to Study/ACM/_ACM.md diff --git a/ACM/terminating_diagram_at_alb.png b/Study/ACM/terminating_diagram_at_alb.png similarity index 100% rename from ACM/terminating_diagram_at_alb.png rename to Study/ACM/terminating_diagram_at_alb.png diff --git a/ACM/terminating_ssl_e2e.png b/Study/ACM/terminating_ssl_e2e.png similarity index 100% rename from ACM/terminating_ssl_e2e.png rename to Study/ACM/terminating_ssl_e2e.png diff --git a/ALB/_ALB.md b/Study/ALB/_ALB.md similarity index 100% rename from ALB/_ALB.md rename to Study/ALB/_ALB.md diff --git a/API Gateway/_API Gateway.md b/Study/API Gateway/_API Gateway.md similarity index 100% rename from API Gateway/_API Gateway.md rename to Study/API Gateway/_API Gateway.md diff --git a/AppSync/GraphQL.md b/Study/AppSync/GraphQL.md similarity index 100% rename from AppSync/GraphQL.md rename to Study/AppSync/GraphQL.md diff --git a/AppSync/_AppSync.md b/Study/AppSync/_AppSync.md similarity index 100% rename from AppSync/_AppSync.md rename to Study/AppSync/_AppSync.md diff --git a/Athena/_Athena.md b/Study/Athena/_Athena.md similarity index 100% rename from Athena/_Athena.md rename to Study/Athena/_Athena.md diff --git a/CloudFront/CloudFront Functions.md b/Study/CloudFront/CloudFront Functions.md similarity index 100% rename from CloudFront/CloudFront Functions.md rename to Study/CloudFront/CloudFront Functions.md diff --git a/CloudFront/Lambda@Edge.md b/Study/CloudFront/Lambda@Edge.md similarity index 100% rename from CloudFront/Lambda@Edge.md rename to Study/CloudFront/Lambda@Edge.md diff --git a/CloudFront/_CloudFront.md b/Study/CloudFront/_CloudFront.md similarity index 100% rename from CloudFront/_CloudFront.md rename to Study/CloudFront/_CloudFront.md diff --git a/CodeBuild/_CodeBuild.md b/Study/CodeBuild/_CodeBuild.md similarity index 100% rename from CodeBuild/_CodeBuild.md rename to Study/CodeBuild/_CodeBuild.md diff --git a/CodeCommit/_CodeCommit.md b/Study/CodeCommit/_CodeCommit.md similarity index 100% rename from CodeCommit/_CodeCommit.md rename to Study/CodeCommit/_CodeCommit.md diff --git a/CodeDeploy/_CodeDeploy.md b/Study/CodeDeploy/_CodeDeploy.md similarity index 100% rename from CodeDeploy/_CodeDeploy.md rename to Study/CodeDeploy/_CodeDeploy.md diff --git a/CodePipeline/_CodePipeline.md b/Study/CodePipeline/_CodePipeline.md similarity index 100% rename from CodePipeline/_CodePipeline.md rename to Study/CodePipeline/_CodePipeline.md diff --git a/ELB/_ELB.md b/Study/ELB/_ELB.md similarity index 100% rename from ELB/_ELB.md rename to Study/ELB/_ELB.md diff --git a/Lambda/_Lambda.md b/Study/Lambda/_Lambda.md similarity index 100% rename from Lambda/_Lambda.md rename to Study/Lambda/_Lambda.md diff --git a/NLB/_NLB.md b/Study/NLB/_NLB.md similarity index 100% rename from NLB/_NLB.md rename to Study/NLB/_NLB.md diff --git a/DynamoDB/Practice/Read and Write Units - Set 3.md b/Study/Practice/Read and Write Units - Set 3.md similarity index 100% rename from DynamoDB/Practice/Read and Write Units - Set 3.md rename to Study/Practice/Read and Write Units - Set 3.md diff --git a/Route 53/Record Sets.md b/Study/Route 53/Record Sets.md similarity index 100% rename from Route 53/Record Sets.md rename to Study/Route 53/Record Sets.md diff --git a/Route 53/Route 53 Hosted Zone.md b/Study/Route 53/Route 53 Hosted Zone.md similarity index 100% rename from Route 53/Route 53 Hosted Zone.md rename to Study/Route 53/Route 53 Hosted Zone.md diff --git a/Route 53/Use Cases.md b/Study/Route 53/Use Cases.md similarity index 100% rename from Route 53/Use Cases.md rename to Study/Route 53/Use Cases.md diff --git a/Route 53/_Route53.md b/Study/Route 53/_Route53.md similarity index 100% rename from Route 53/_Route53.md rename to Study/Route 53/_Route53.md diff --git a/Route 53/route_53_routing_example.png b/Study/Route 53/route_53_routing_example.png similarity index 100% rename from Route 53/route_53_routing_example.png rename to Study/Route 53/route_53_routing_example.png diff --git a/S3/_S3.md b/Study/S3/_S3.md similarity index 100% rename from S3/_S3.md rename to Study/S3/_S3.md diff --git a/VPC/_VPC.md b/Study/VPC/_VPC.md similarity index 100% rename from VPC/_VPC.md rename to Study/VPC/_VPC.md diff --git a/X-Ray/_X-Ray.md b/Study/X-Ray/_X-Ray.md similarity index 100% rename from X-Ray/_X-Ray.md rename to Study/X-Ray/_X-Ray.md diff --git a/_Concepts/CRUD vs REST.md b/Study/_Concepts/CRUD vs REST.md similarity index 100% rename from _Concepts/CRUD vs REST.md rename to Study/_Concepts/CRUD vs REST.md diff --git a/_Concepts/Deployments.md b/Study/_Concepts/Deployments.md similarity index 100% rename from _Concepts/Deployments.md rename to Study/_Concepts/Deployments.md diff --git a/_Concepts/Glossary/API.md b/Study/_Concepts/Glossary/API.md similarity index 100% rename from _Concepts/Glossary/API.md rename to Study/_Concepts/Glossary/API.md diff --git a/_Concepts/Glossary/AWS.md b/Study/_Concepts/Glossary/AWS.md similarity index 100% rename from _Concepts/Glossary/AWS.md rename to Study/_Concepts/Glossary/AWS.md diff --git a/_Concepts/Glossary/CRUD.md b/Study/_Concepts/Glossary/CRUD.md similarity index 100% rename from _Concepts/Glossary/CRUD.md rename to Study/_Concepts/Glossary/CRUD.md diff --git a/_Concepts/Glossary/HTTP.md b/Study/_Concepts/Glossary/HTTP.md similarity index 100% rename from _Concepts/Glossary/HTTP.md rename to Study/_Concepts/Glossary/HTTP.md diff --git a/_Concepts/Glossary/HTTPS.md b/Study/_Concepts/Glossary/HTTPS.md similarity index 100% rename from _Concepts/Glossary/HTTPS.md rename to Study/_Concepts/Glossary/HTTPS.md diff --git a/_Concepts/Glossary/REST.md b/Study/_Concepts/Glossary/REST.md similarity index 100% rename from _Concepts/Glossary/REST.md rename to Study/_Concepts/Glossary/REST.md diff --git a/_Concepts/Glossary/SQL.md b/Study/_Concepts/Glossary/SQL.md similarity index 100% rename from _Concepts/Glossary/SQL.md rename to Study/_Concepts/Glossary/SQL.md diff --git a/_Concepts/Glossary/VPN.md b/Study/_Concepts/Glossary/VPN.md similarity index 100% rename from _Concepts/Glossary/VPN.md rename to Study/_Concepts/Glossary/VPN.md From d7a6f137e65193c07c2b41fccc176310938240eefc894375fb86319ea16d29e4 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 16:21:44 +0000 Subject: [PATCH 28/29] Added mistakes --- Papers/Practice Exam 3.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 Papers/Practice Exam 3.md diff --git a/Papers/Practice Exam 3.md b/Papers/Practice Exam 3.md new file mode 100644 index 0000000..08e519f --- /dev/null +++ b/Papers/Practice Exam 3.md @@ -0,0 +1,21 @@ +# Practice Exam 3 Mistakes + +--- +#### A Developer is creating a DynamoDB table for storing application logs. The table has 5 write capacity units (WCUs). The Developer needs to configure the read capacity units (RCUs) for the table. Which of the following configurations represents the most efficient use of throughput? + +- Eventually consistent reads of 5 RCUs reading items that are 4 KB in size +x Strongly consistent reads of 5 RCUs reading items that are 4 KB in size +- Eventually consistent reads of 15 RCUs reading items that are 1 KB in size +- Strongly consistent reads of 15 RCUs reading items that are 1KB in size + +> [!note] Correct Answer +> Eventually consistent reads of 15 RCUs reading items that are 1 KB in size + +> [!caution] Explanation +>Among these options, the most cost-efficient in terms of maximizing the number of read operations per RCU is: +>**Eventually consistent reads of 15 RCUs reading items that are 1 KB in size.** +> +>This choice utilizes the RCU allocation most effectively because: +>- It leverages the lower RCU consumption of eventually consistent reads. +>- It takes advantage of the smaller item size (1 KB), which requires fewer RCUs for the same number of operations compared to items up to 4 KB. +--- From 9a1ae91d02b14032646fdeffed02ce89cb79d2f14869142ebe6000d08ea86905 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 16:29:50 +0000 Subject: [PATCH 29/29] Added mistakes --- Papers/Practice Exam 3.md | 59 ++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/Papers/Practice Exam 3.md b/Papers/Practice Exam 3.md index 08e519f..9da4fd6 100644 --- a/Papers/Practice Exam 3.md +++ b/Papers/Practice Exam 3.md @@ -9,13 +9,58 @@ x Strongly consistent reads of 5 RCUs reading items that are 4 KB in size - Strongly consistent reads of 15 RCUs reading items that are 1KB in size > [!note] Correct Answer -> Eventually consistent reads of 15 RCUs reading items that are 1 KB in size +>Eventually consistent reads of 15 RCUs reading items that are 1 KB in size > [!caution] Explanation ->Among these options, the most cost-efficient in terms of maximizing the number of read operations per RCU is: ->**Eventually consistent reads of 15 RCUs reading items that are 1 KB in size.** -> ->This choice utilizes the RCU allocation most effectively because: ->- It leverages the lower RCU consumption of eventually consistent reads. ->- It takes advantage of the smaller item size (1 KB), which requires fewer RCUs for the same number of operations compared to items up to 4 KB. +> Among these options, the most cost-efficient in terms of maximizing the number of read operations per RCU is: +> **Eventually consistent reads of 15 RCUs reading items that are 1 KB in size.** +> +> This choice utilizes the RCU allocation most effectively because: +> - It leverages the lower RCU consumption of eventually consistent reads. +> - It takes advantage of the smaller item size (1 KB), which requires fewer RCUs for the same number of operations compared to items up to 4 KB. --- +#### A developer is creating an AWS Serverless Application Model (AWS SAM) template. It includes several AWS Lambda functions, an Amazon S3 bucket, and an Amazon CloudFront distribution. One Lambda function, running on Lambda@Edge, is integrated with the CloudFront distribution, while the S3 bucket serves as an origin for the distribution.However, upon deploying the AWS SAM blueprint in the us-west-1 Region, the stack's creation fails.What could be the possible reason for this failure? +- Lambda@Edge functions can only be deployed in the us-east-1 Region. +- AWS SAM templates are not supported in the us-west-1 Region. +- Amazon S3 buckets serving as origins for CloudFront must be created in a separate Region from the CloudFront distribution. +x AWS Lambda functions integrated with CloudFront cannot be deployed using AWS SAM templates. + +> [!note] Correct Answer +> Lambda@Edge functions can only be deployed in the us-east-1 Region + +> [!caution] Explanation +> Lambda@Edge functions can only be created in the us-east-1 Region. If you want to deploy such functions, they must be done in this specific region. +--- +#### A Developer has added a Global Secondary Index (GSI) to an existing Amazon DynamoDB table. The GSI is used mainly for read operations whereas the primary table is extremely write-intensive. Recently, the Developer has noticed throttling occurring under heavy write activity on the primary table. However, the write capacity units on the primary table are not fully utilized.What is the best explanation for why the writes are being throttled on the primary table? + +    + +There are insufficient read capacity units on the primary table + +    + +The Developer should have added an LSI instead of a GSI + +    + +There are insufficient write capacity units on the primary table + +    + +The write capacity units on the GSI are under provisioned + +Correct answer + +The write capacity units on the GSI are under provisioned + +Feedback + +**Explanation:** + +Some applications might need to perform many kinds of queries, using a variety of different attributes as query criteria. To support these requirements, you can create one or more global secondary indexes and issue Query requests against these indexes in Amazon DynamoDB. + +When items from a primary table are written to the GSI they consume write capacity units. It is essential to ensure the GSI has sufficient WCUs (typically, at least as many as the primary table). If writes are throttled on the GSI, the main table will be throttled (even if there’s enough WCUs on the main table). LSIs do not cause any special throttling considerations. + +In this scenario, it is likely that the Developer assumed that the GSI would need fewer WCUs as it is more read-intensive and neglected to factor in the WCUs required for writing data into the GSI. Therefore, the most likely explanation is that the write capacity units on the GSI are under provisioned + +--- \ No newline at end of file

Xc0S)=`{Rym`5nehtxs1R03|wMf18cT$NLoO1J(w3o=8?;7g!f?h*dm> z!HwfzyODdp9Pd`1Jf_HSR%YL#p}!Pr3e3X6?s&6iW!>s>501YCHR6x`a9X@0ll z@{f;?3l%oF1*l#rczSB8#M-+Rk9!vsE@++}SEb1ZN}i8)SaA9As=RsBt?zcWaP5Jx zg(nl6kM&A7`|?Q|v8X!yWVWySa?$KyzFT*TBBJ)m{#MLF6W{9j+RgFG-YSF7tNjcIUCqJZ^D_Qz_99CQM z*iiCqTS=^a{@W}1+Skte_KR<_C<(s%WR_H~u% z-dA^Qan9~&ij0g5Sl-4b%N6PE<-WmNuJ+5t1RDd3Lo+zIn3R~p%D>+&_x{S^!x84O zB0yN(FJ?=IV2G`!{(+(mi$x~n?faRQ!w|~f+TiUe^_*b}hmiOSH4 zW}D~Bty$p`;1(IGk@aA~557DuMjoRlbIb2>E^AetuscD#O@fV!Td8%k!@~_fK3(p`c!0a;_B*f`_E^LceE{I_@R`cbVBvpq0pl* zPj6=X&-}4<0Y_SAQQpp{Vli<_7D{C|w`2;3IqI+&wl3h%^O7-+eT5;o8^9Ph0D3 zpDkU+S#2w^VBWH&rYACQF7*5zcdyTV!Zq0_(|wv>ZoeqqT;DTYtU{x_w)v#_lJu96 zYj5-0%q@}bPSTDw!D zTzxv@bi*yTV%Zn(I@rzl)iCVo68_!K{eNjLpRmVf0=r%35^h_TRjXGgdf(lY>YbRV z_{2P5wT4be_!q2UtbqQDim0(D^}RxDH0JBq-1XWd`@xN`FXr)%|!<)6aqZsI`%uW286DN zyurH6-@rSE=a9;FMo*{foNd=v1S&^LO>@|Cm~GNM&j#s6Zm&=3GnLLURVnT}UF7g1 zC^&fGlSE^kgYhr2HfWx{d+>RJ<}sm&X?N8*?7CVl%46Kx&wGX&$S~az`6PYBCcXMa z&G)Zf}`)kDX?)oS{m7Mi#>oZQ{QvUC$mm@Ud_U8yY9vh)z?mKzwroPc&im;<_6Ek9zn-x@qddoO%{+}r1IxocE7$QANY6jF(lbp> zf2Y`Y=GIvTiA+B0K0iOtK9Q-Pv36oy-lRF6c8o@f(@)Vy?*FM1^E%Wybd*_M0z-QMqUIm$0Zeu(XB)=U!3QoX7Z5t3MRl^b?pt!GR#t@bVEd-?L^ zkJlSi=ZNdEo@?Tee&d*1lzzQP}GKfg*`yei}9nWjUR#N0!l z$yr*YKlrdfF52Lq@MMdtNNzY+=u!0Q*b0=4-;}c&;k@ zZHz|CbF+gMoZ3Ey`zGz_y&v^FW{u~mj!j#%IBv{i`4pdKuhVtuZ9OPc{x;}+m9d1& z$ba**we7OrQQI_?_LC-vK{{Km$!PP1astox@$ zTUC1G?d8mTCrp~`XT^Cbu*LwiTVi@tpq@ziM5OZJ&50 zqtoH5iuIa>DvA0A(ju%cxtIA&X{g;O5W;4|xrHrgzDjY#r(@Fj9-Xfj_uEMsCb5KQ zzv-UUaPlAv=T!l>li%LncII!M`D5MgcTE%2V&BhI;5jb5zsy-vQ>1XCRn5U~pL#y9 zUOkX`YV(Aq`B&b~k=-b;Izg*-#|u5l>D;>?%gogk-hS*cWB6e`zV|L0Z}2?fUn6o~ zHE^2D^_9zorM>w=4Xiz-y`N~V%y*t#ndGC-Z(@^mLv)FA{HCoLkNfB6&Hh_EA%rC} zqFJWhy!*&ZwuwEKnE^f%+ggs8uJK#kX1`@+!KK@Bi?v?g=w^1GcV|zR$nh^}&TW(5 z#B55t`K(iZ+WHwYlBQK|m5`X@_$E@lW##mA`-kgzH13+1TyU|mvI>9r^Ysb-m4dII zZgehPE28?_D`ctERab$xedd$lpPAm%^=efs)XTS8Hr>1IO+-5O_>AvHS1$B;Ple`rcu8rMoW^OKi&1Z|t zgG7Nd34cpu=O47-Sa)q#>1(OA5_(KK#E+OA-|=!y6XW(pi<~xDP5E%I`hDa1xuw@4 zH>BBpx!~My`|Sp|{+%(+ z-QB&r^z}17F}s$BDYreV4oJTLKO^%4GD0I)$>HgQxNL)S<{Ejv9 z@#f}*@2}e`B=&F@xg3-2)SKGb8B-a<_ulnzTIkhFn)kQ)pUk^ZpRxGha`R7B9qp5* z?qB;WHRNa4N?zO0I(hR&QZ@TH?yyac@>{Qyx5?t;F(3WAnot$-1 zN%8c_u84Zy-#WgVew(0Skr{b&*VflfD-VY0MxPWEys6w#ZoDn=a8}0c48vJwxk|zNWj=^A zmL6z5dV1d6$#-`ICRg@_S@d7HHz!z6L*qcKa?1{v=tVDQ-G6?ZfxoQN!HdC}rFpsQ zm9nQ!p3%DdjUK+Z)wDHZ^2K=xFIJ1}yW9Gxm}@tqp_l5NcZX-!N3DC!Yjdc-H(h?~ z{k<-SQ@%3qZmU|exv2bvjoTgnW|o?BSF-H4CTMNyWHe{;bxdYS`uMotzRBO?+M^vc z3lBDBuv_xJWtHmF-~UIb=gF+>buX{16pkt|Fxas7|KIoZFKiqxZqPSl2$r#_FqknR z#WKNW(!>QUIc%Gnas!@~UXN{8eZjo%->=uR^Y`uaoUCT>uj#FB)Rq?)-Q|y--~E2y z?&|OFK0iDA`$02*fQ8Q%jrz~e&Iarc$W@wk<E6YiDv zol@Ny+spW+{C+L_%1=jx{f}I2F#NuBdfXws<@4)y-8rqTaMeY}@hm%^3`e)Y3iT&$ zC(mD78{K~DftKUTDW)v;Zj1YiGq0`^{U&8sW3f*3M85-x7&PSS;2PWmFDs}Oi`{=CrZM`0zCN=If}Iwo82xrY2)H0yJ#_w@!k6? zeDnSvbm5+`Q}}dR?Y!lp)t)UvcP9j|Px5BIb3S>x7Wbti@(T}r`q5FbYkJ$^+2%g~ zRyfuLUrN;I%v0`OzE1A{zHOz6W}Ocm3WGUv_875Eu|0G=Mef3pRXZMXr~P8$-77cw zsMex~T@hQfT0cGaw7TxN#aMXeVb3J4DD9I5TSIl!Quf^yKJ(#;|6HrDFPG1sHg6eU z^@IiAKhq%bP-uAk*X6ta zskH85KK(p}z+qP^@ z5^bx=;5Yo{JexVVxzq9Bx{RD}x!)>lGvw#h{aRW0_?Z2_ACEIuW^J$LvIb4>@9u7? zp5Vdl@5-XJ*7NZb@m<&b%#2#X_I*Bct~Q)I!Tz{x`JL_e>wZ6(?C%uR^i#;{!jVp4 zX|tRiiHF%VLN^&s>UqBTydCpuW>!XP#_v|2PAKc|{SqXp)Nrxh%Zsb5MOEa_vMpOg z?r=BzeK6MC-+0pY(+TAVDL=UP@;<#^bXqr|C1XLL)U4_YbN%gpvK)6xZ+7ENx((_M zU;1`L*#E$^F0KXPKi+P?zrl9b3PxtOhMNwncfa5F+t2oE$eOvf)n*YQzjUWGX9+(P z?>My}@14pqf&UJPveuifC?twc6Vs59O=ryN@cQ@b_4)w$)JxN(^L8+*Yx{0|uv=p$ z$0m*5L(c7ddp{nNKIo{w@5iIb{&te349Z91esEf8CkH0#v|Z>}UHJR$_U7Mw(q?b| zd_M2~ylc|Ip8@TGi`^Ek`oS4(9C0@^JeHNIy*Dw*jWglKi(}_(zu%dt?A~-#?@J-+1qnsZuf*8Ug3B2Nle&0>$c;Eg_r;1QkLL; zwtUOmDfjopdL34~vq`G2W!rk~2;==Zzh`ZU;GAF6v@6nkQ=MDx@|Amc2DBt@X%Jt& zX32`e%g;=Mgl=ihnwb!?%pkbvI_sWWv$@S4_&yQt<9vM2u4Y1o(3>uD=$+cf+ z=i0L4gj(G8Cf?VxOfqwh@Cw*%N-sHAG{-=}^O49l(Y(W7C#S^}Jy7^s7m{2Zc=6Oz z@9XOyKTMjm>*_s;X&2T;Z(A3)^Nu*jA*;lw;^qRcF2S#REI04_^=PwZ@VPzz|Lre* zdC63U`?`Vhm0;#b?k4HIX=kNk(zPe`ylZ?`9pU`Zvh^^;!Yq=PVxc%rH2x zG~pmic!TNZL)`i;I$zEhpWpFzNkT$G{sZ$3x=EI6=3I}jx7F!!Il=HiDPWbul>>(r zm>0}teY^Y9DQ!g;&vxUCs12VM2u}+0esgtw{Ql?j>*W@SxR_4qJnN8J@S^yfB|8sW zl3d2+t=HqKPpVEo!PRi};1jNmj6U2VTz5Fa0#}HvP~Vn+ecjwIOf73vIW^q&3hYYQ zJtdIC#boQ>-{0Hi#CX^`*Zy*dXW^V|oY)Ya_%L(%TsA+pLtXRurT;(GuV>utlxg7` zsg`1#qhlRta(n@399q0&tNy+pOv{@m9~Ihge)al&QDWXM76xZFX@vdaXnJ|C{{PzEtM$!U^5-1_BuKOc?KIruY)Sv~B#0h2OknR_MEc8{Kyl9icr z*(Nx6J-sBa^?4!o$@HF2T)w!Dapbu$)jeSc?35*Y4CFsk@n%6n8Cm^N-~?S-1cEYyY3O@Bh2D$F+F-qQg6z&L(^e`}LPmbMI;O zYYQEv?wX%GBima2``aS(`xU~+h4dGMoYT0s{`UJn!g0=fN*0t@>#d6G@?3f4=-l87 ztal5mgWqhBQB&?NU*mo%L;8AOj`~{Dtv+Yu?jFACdGAzZ)|LA|J6G#!-(Twe-1_|< zZCmBodqyAjeA@Kso(W?EHcr! zaKnJ7w2!HbDXHb4)r{W9s=S#3Jp!8;E9CfE+~S24_IyalH&9>55+MKlZ~L;V+w3Ft@h2U)wA5R1XQH%(j>2-s%;vLBZf$1S*La>q85sNwp2uxvpVMr0LN$W>mqzCN zn5M}`H67FsSBN*q>a<@{@E17lI&+2S3uV6x7oTrfRrvUrg>?vjlakkg$cFe`$>Ig6 z0fsl?RHw2iv^HI8RB~oNdh=n)oyd@sGFy?3tri07m^tEmZyx4jKf%GIl^(WKiJSjp z$nmq!a;+!7sR`Pc`+3s+KT&5AcJVo{$m}TDTh`;PWX|FJW3Az{62m!*3J>R;IlV~p z;v-#dHPg(yr|xeFjY`W~Q?S_m`MK|l7-nw05iEIqE8E*!GSy};EgM4el)aaQ=0-^M zUpg~q*^)%LxEW{WT(;eJrF65~%Z*I@_8kwcCc4~Lt4dqQ-*sbpR>^_gD_3}2H@w1s zznw?&&eCG_?Tvkg)&dbd<|&U958V&G?H^*mpx9hwU)A4m#r0`~N895Q-~F~k%$Z+# z!Kz{nLvD_KvEibWlPe08{x#Uokm@=9sN!ZbW4+7w2eGejtbF|Vf6bhHN%JKe)^?t} z`b2`izSVuDSocTeq{UVKGYw|?bwpU{NeO5qesya;)lfLUf3id5zVpvJ-F}|fTxP+s z?TF;h1O28wVm!~S7I>}LTyQhxlP~+CD!u<7#=k076v~T zzv6XCC4Y~J^XKf-K3Bx{$h&vCDL<&W)GB`T)JE;;mZtNLGn_6=UDC+(T=lAB<*#?z zI`YzQ4y|Q*RCp-+&}Qx*ThTU5#6C?A@ecy_^Y6^w)*BZ72Y$X>QzW#XQ6Wp<=N;=shD;kL-@oW_b%oX`#*an%j&nD& zJn?sCSj#!>ibmu-<$Vn+PG&2W@-4r6@KzbqyVyB>2Y2eci{O28DeS=B?$6;xVKWch zjI2J24-dr?_&7O$@N~JbOOthQ*dr#jAVwEM5|J!YSr+`0vZRzF0SY zv6vTZ} zQEOPzxTf!+Ok4De<)5XWmcP8SH1M%oLh_$0n!j>RB-`=q64QwY2nc8>XK8leiCVDt zp|11vem-gC)i*b%AO6tZmUM2;%>@BxXKz1Xwqe4$`2BJ`{#AWNs~k0c2t+(v6S>(S z=HT=%U$%(pMwPw3#_O`M?eomyb1kZiE~b|82ein3`(^Vzz}5BXrc`h4?YYft)27eA zz9!Rn3;%+73cN-?IP04aio`6`jo$V^DW_Sp{C1g0x1#(xzGTaDW;_K~Bwn$ddw984 z;=;Mv=Ib|X5LnB5%V*F2JIkF6;#arv&GyUNJ!5V)hxj(F2mPF%)W2ulT=TM_ky+tl zqC*F_(oa>7ty5GIC&X^85?wz_!rS~r?uCW5>^<8*%8E|@er4y{9eXVF??k@gp0zdU zDA$|TByBD2Ce4G-&dx4r~kE>J+Z;0rMYR)JT7NYO00FzUR-MZ_U5& z$hYL@QSlgo^FrGWHZx`>e427{$G=`_(_^Y@FE+nn*RWe&AaPJuI#4=8>Voiso%e&& zpEt8wIGQXw$8qoMe3{dH#ZOnS-kATE>2BYjQn|h>tjG8E|M_PjVX>&^lJdHpk)DSP z8;!K59heosICsbK`LnpV-Ys0XmbFUf$;F*s$sF6%zX|+~OkBI<-0QsTCpHH=7Bnnq zTC!_VkI3{1W^aw8x8Afce{sE5>bcyqC&i)5^w*}E*Z+=dY1`&6yEpUQ4u_Ixt=_{| zmc5=hsj2nqF)X#v9r?c${LOdDru7po(KNk(y6-a?X=F5bxY>Vzp{77 zzr8DVtNrM-D}Oz0?flwrH~H=VG}LWhv4X><`SZ>{f9~zAj<5Y1dSR{N9*^YvSK^oN z`}j+G|KD%X54SnJ>HjBJ^yxq&^ZFf+ir&2!<+K0&X0!d@FTt*rmgioqTt1JDf5+Er z(d&2rvkEv+{r<1_^>ugW{rD~{;oB(LD4-L!=f&Rd_vL>djtH>La8S^duPW|!&?J_U`?(5v_B ze!soGcwgMMlAF_XXRmfvykekhx;Fc|-t#%d?^?yyd&aqs* zWsAs{b*bIcCR`4%yIOX*!q?LEn*qQ0I*IM`K7Tr_`0h=2x4vqP$*PbDzx{tco%Xl; zoAPndQ46oqQd5gLb0mKC7@up{s`7weC06_2st=7xUJ9%xf1CO3W*DV@nq`_D7=0(^ zgVr6>8FmSojSHE>8K&^DyqoAQcW^<~jSY$SYd)VnZ~s3gF0N14vA&&0PRX`v?yTf3 z*58hA%-{d_+n${XTcQn}4)n4Ky8HUs|1F70oYLvevG&FH=5|NBtQT8 z^RKpx-cJpWv&^`lz>`q$tLWS@@wkeIPbT{x3y_aDSajlSZozTc@`$dN?(tHs$8^FD3dy6$vk$o~Znmpj{p zd?k*pESgiB(VfVCEO2R_g(B0s{-w!+g7*`2CmL_d+Q)G6q?(&fOz1nqWV`;f4;zB* zzE3|kxoyWJ*Xutg1w5--T_Ke)xod}thV#{{M;?1;-rMLo-7#){yZqT_#Z#BUj1f-bW@{5~&ve}C-Hyi>E+;1z z78?50#n*h}Oqp7K|7}N}#MkCypI<2V`^~Y~7`}eqart_io>dA>$;WzT8fUw?x*l!j zx9jMW*~C?qr=h2@r26|i-6#`x_1;O|Uf$F6W0}0?tLZds;L(fU_vfO!{9(nSB56L^ zuE*OBIPU-TYW4DYRa{H|eqCSR8sq*_?%W2w=D3A^e?Ohp=ePgzAwO7sd&X6^9>y)n zcXyROR_~c_SbJ<$=;|Gp6F)zj=pi8r>SW8+ehKVwcIRBOY-w0nNT0lY-W`8?y~s@> zXIAFlS8i#SVeI_*y0(6X2J;`jgi^*Uq6uNRB^+g514UASZIirdNkw%f9fZenciJGk}G&%`HxZg06? zCuPkxeOKn@WrzLc=3QW2s+MaMvS!JWC!Ol^4!qkikzdYciR)>x34Vor5AJx2>$j}> z{>J$HqMe5WH>gHje|2?rVg14c0hlH=lnS#ve0V z=|WWetJnz|OY&s$%;w!^|MaRW;qorYxmz2*s!Bb*D|~C>C$FHeLzfvA^MC&B@_dn? z@BN#f6K{6Dxq0};yJs#FF06R>u~M$$fqaIhk@4nNci7Gz|9U;Xe;%{$Mfn?QCtfUY zbT5B%gEOmsZf5oOAA4TiDf}O=YQysSTJC`#yUX9()mD8kXmNj3^>O8E%{%-a`#7%5 zyB2choR@5`Z<_wXBuW39r{w=R2#C2Ch(6*xQpuAQbLMYCN67wZUdKIxT$ob*?&)jx z2s%F7(dzO1ra?vC`~X*1uFIac|M`Bh>c~#Cs9C4@b#j98q*uw>&yOFT>e$<@UBi0y zkf7eu05RRWVKc=01magMWdC`jYJUWKvg_o9ihR4-qX1YFIzu#}J!Mo*(&i(Dj*j%~Zh;KVo_xIP|zwhh+zgXPw zXZ?1|!De>nU`EM9ms|Hq8cFwQPrm2*(bH$gq0pI!9yx{l=ss`v_QulJvE}znQ%(rX zT+I>x@6+`CdwzZLHY$m|UTOATYO>vXAr18%4^;bY{+!4UUM_cW{r~;*euV!ndwZ}q zVQWhUOVY1<)$g77rYO2EFnYh|^SNE7tMzt2S{0qQmo?AZ{oe0~ zHgMPa&Di|h=EDJI?`b-cfA79XbZ+-7kGsD1c@3YJbXMQ{e*1st7dp46Jx|HDdFcJ| z_xt_-pG@}mn`!eDG-mO9jqwu!*=HAXqs^Ol|9>q1-{R$x$pvc_t~I^h|M8f##*;(b z`Vtle6MQQ8%-B|$Cq2pBWVhoe>uj#Lx}Q(~@B3tA_U_Ko&lj2dm@XbKW?lDf`u;oB z=PaK)6u4ez*sUe9!~frR#XNSNn-dfZGb-yBDm(F2Jek;DTrB;lk@5fP`yyYe6YXCX z@2(5dnR)4A)Z_f9$M=7oUdibC>>F#uqc#rz7jyUi?WrgY3Jd%5GyLf0XSuic9Gw3s z`@&}T(+|}r>)q`*e%iKp%aghtWt>+m^=>EE`Uzk5+>(1cjs5n5?96LxB!4zDr*mzU zmoL(Ay7$k+92M>vmP#UHg@ZfAviXFim8V%1Y^GVfb>RrSPKe#JKL9Q~FZ(K)>?MsxX-MMk9p zn<(SkE&*H*mbUahKV{ZSCO*{Bre10kRRp?)alDp~r?N>XhUFPs#tYvG? z%Mj|HdnO|8dW+(XuJ#2=tNT1+H%6~tURvLBd&kd5-TK$$q&;SG<)>a==DWM}ZA_@_ zx=6OiK1^ZT{`?Wv+w~$TCxdHx{fmg_bIb3&UcZ0eoaC7YJyc{g^`1oCm{)B_gu3R59 z+-8f%mwa5-_vLnYbclb=X>mPQ6_}lspQT9ZY7OWs-YqmFws4 zzrQs8*iv;hYyNd^-QuUGLJfS<%`;Bid}Vn2LnM2t|Neco2@_*>m1r(GH8)70QZsBV z18Ys#4&~FWQ6^G~%Ni&B{{H^{GT&&O>ER5e**7Y8B@L}seKhCqW@q8`( zcju<7>+PpG=k$IZe&Wh}S*qX)L%_OVe``}?<;fj$T6bDTDn!WFetG!qt?Pn4N905c zD*Znn5aPWk_?^l9{OQxpxgze7TN3X5`YO%F^JFilo~DNi8~^sZWzsvWPpEbzJolUX z@xXzM?#FGboTImkHhSqrZ~C#wTW{~LSF1m=oMO>CJKNlu^}xLJb2EP4eer(Xu1{J? z{c#807OeSv&U*gpNrigF@BVA*@i|p%uf5A>EWYvf{qPqChu^&nx+J^eUa4Aqbi|Ig zACK4lstk&&+k8gtXS7$>w0&O-FRthQb*I|ga@Bh|LzAx@GS?O;{bFI80_vXaF{=EO z(jjoTo!{TLv9@^=^Pie4XI4!3pt)VmVS&^1XO=r2Uo=>`g2na&YmkrfIiJj>$RiK8+(+^rd`Yho;&~BaP+>Pfnk3I`1Xc6Z!9ThTUOC`Etpo-kGAy?6+UO zc(%`KT8jC?%*wQ#{IBLtKQDA}M!SoztrrvT=O}@AE=^6PtEyJr>T_d*db4&Mc&jH- zswcE?Z`D_!;t3mOU7sxQt?9vQgrn1VZ zr?2L2J+#AZL5$H;)2echFlF~XmhBG9@2yHb9i6{7bdp()jA-J#OIqr8KWBTi%~^1S zcZKx>mbFpa85JGa^%n;ON*Xlpez)uMrqg=PbC)Xrm-ES0kJRB%nwL9A^;PAQiSAB0 z-CY|3R)i%u9iLzDXZQPk-OuG?c!iQ*Ut9bB@9Vt^0za5Gx%{}H7PVzBM^ISl3aRD# z>83}D_L!==-ma3r$p6f#qfby-$hdNr#Ri8d%0KR$(@{%ep5Qu9<<7eqy*n6_TC(@; zOnChHygmQyucg=HuN!Pv6l;?I|2qDEkIUi&*E;$AQaf(UHp^|Bq(1q;=MPDj6Lbta z=ZNG5rq4LKyZk*{*jaG z>7~0Wc9;cd-L*T)cfTf>gE{$l&W}%@6`9-3_C58xv_er+Q|->H&xlh)5 z@|%!N%Zm-vc0SRRF*9gQRJGNW&0^WLx>HzPFJeQ&8~)_=d*9uvbN_NgSn%=YKa-d{ zmMp*YZT{qaiyn#3Uv$Yi^G?Ua0uJuWmyGu|E;xDUO3FGP2cKsaD?MMnx!+@Cecs^T zE2T&Sjk#$7{G7|0^rWK2CvSahI{!iOkw?W-ShXW&lw>;3D$T#Q@%*nvM;8Wkwo4hZ zsrqqW4v8#G1tyIY}U%5j!H@R+pG%4tW--hpvN(Vk|-J9|IneXgG*~8941{HrsHrq|nDE({gjRW?(? zNQkprMP=Eus{uKyudTIoeNg;p);p$hE=ecGwcbYFbGUyj5xKWPNWJOn0=tC;D+(7M zTYG!Uv7d|7Cao^bxPQ>#QSq}gbM0!adKTW^p4+~#_;B0T+uJ@mwM?JgX_OeDqGZ0r zhfiH!dD`N6Hm8N=3s+44A)|M9alakcI%V}OQ&S4Bt_oeh=hG?m`E^W-RaRU*Djwf6 ztC`s}_taat6*vC;{A@0k(-Oh)_|36iY1a9VBfSe2YWR9shRCppJzZ$U$~yZ=U-Y)TgTal#W=HlJT`w`P?)WV9a-!n$nT5)I>E4%2PqbgU%R8O* zRr>C4Zv&od^e1i16R3N{dF1|)+kCwf*5#&6tU{UfvZ}4S`Sf^V3A?WCnS51>;Jfv8kXcRxc#yIn2=JHgj3g-D_=&ulaQ7O^+|Dyloc7WaIpVW8-7}@AI9P zoXnXZ<(Ix7;m*_B9mf}{xE;QFb+$Rn;;ETyZ)ME%O-g08;xx9L>U>CXL*DkpX$y+~ z*fzI4JKEj7&ez*B_eNXFvk3t=uN`8V88KmF%TIGwp}W&kr+!vjo@#ntq97=He*Muc zoVU%_w{1N2<(KrfH~0R{5L}Yzy{Y!;teKB5N0vHVR+Lpc*I+qs&5>{OjXTdcsI{tY zoBh~WP>XvJ8!sErf^`)fX-{1Yea-n&7d%xl8bJ9qA! zn`>=s*eJJkPVK@4Pi%iYXugoY@BhEwm7kyG-rVx>y5{8lKOS+fFuERBeKvJ^{Je?t z4m!)0{g~siijnJRsqcDmclWc064#wMdFu2Zmz8>V=nmEi3(9WAoQQS#)K~LC_uRAe@R+PD)eT zDgqMiI0Fo3%ze5N1^Er%iLTq`weyr8M(>M&t;xA=o)ML zo;$BLKia1Eg()`|*S)IOYdt5c%`H4886H#Tn&#GZ&bER>@yxfJ+xaWBy-v)!FpobZ zQReE3m&z&C2Y-o$E?weTJnQC`T^XC>pFDe7nWg*PBxw27t9lm}l_YuDaP4Z|Zhq)b z<=Nd66Rb4#wRE+7t}fBbV0C`*SaD-X)XuDLKg=|FFaPHEervxd{IlMYB@HdgDigeB zZBt&kb4il(L;wHXdGWJX&puNSb3DQ+XUc+W{^heeZRM2@xk9clj7E|cW&n^zf<_TRXmQPYjeRv zCkd0~K65vvUF~X@tCQG!K6QGmln1AQxQFcYx$J%)c~V07TNR|*cpj>%wMfRE%W7C| zD8p&}^JMwLl_lr;8m&GopLJo%lm;IszB;v{$C*w0yHY09L~-g0buL={gtN-D_FWUJ zzs<)Z=J)F^FDZOne9m%t{eNX?vonWFGj47=8vlMbzgeW6@8)&W+YiO*zyG3W=Q-b4 zQ+Z)ahDuampj`ja^1V9+Bx@fV$vIUCA9yrp{{0on$NTQTjGJlAmUh-O`?^C-YhPb? z*+EuunL?L%0e6n-1upOReCGQRV_P?Q2j4Gt`MM7`7WY47`}+F)WA6etOUs)A!G-V2 z@7J39+}m2dr6s!1cIDYgZ>x_71t-k(Z~nwC*Yo@6ZGjiXXLhaHF~cZ*-nwc7qmyS& z98tdV{zTom#p>NpE&p6#=2Ev;Kil=k@5I0Gr$QDVYRQW%G?jv z_ZR73o6~mWvHC}gTiQVpF*^z}qr%uuavf4ooU?W*^N#f8p}e^_CvD2QT9Z{(vVQHA zHy>l~u4d@|+Z6j?hxPG;^|N+!yv_=k+wFJhn9ApK)|`Hc{*6K#l8$!GumAV+l=eEA z!cztN!>u#!Rll=56v`uby?4Hym)ZL0n~O4xGcT_SJ@0rq?Ce>yoi++jnNHt|ie8lL zd2-H1A$@`Oug+S;CD%8r@m9&9AJyRLSsXPqq?F3N9rp6!HgMpMCY`@dg= zC+uu=m;b%K{_kq<>3RaIlLFtx#LKQ~+beoqTW#{c?2@;)widm!_WSYabD!O>7pvFr z%euMgDZl-n4?E@`^P6G7*t0OO?w%iiFFSvdPgGS^WTd4=_nW(kw?2QkBm1l0{;$Qm z=Y?~v%B3n#c?fK}J8NF(xz?lV>poO5{bP8=sm5;CvfS3x^u+Uh;w7wiYClgqyTLNe zJcD5>_bSyT>o+DJfA;+8|IhLNtvGyQ6I z*yFHWol!yUq1PoH9*Y=PW=vo^-j`}{_tBK4hFWZMcta%ED zN$gye)?ketit)@p`4+ey=-^V`X<7X2f#Y;JhI7;U4op1MQ?{^R`l|x@{qx_2_;LT( z{Oj9h9hW;S3nm_N`t5*>;9+ar~TjF+3onbY@z9GCONfF?I+Z{dpsmJ z`>qMwxXIM`Xp!#{@1PYt1wFS3}&)XjF z{5LiHUgh<GNnefhQWWlxlk6_l_~ov?Q4`Ndl^51(!A7CRHYA;Hdq zYyLw8vCm6CSk85?H<#KZ?DA-`zg4DsN}sCVowx&g*Yn8DJ2n4R-re1etp`kOvcIiy zWM=PNKG*)?idSDUFJE65d3kMhc}L@hkLcB|}ZY+($Sgn9F?T7%zJUzd7M zKRd&a+57gkOz!42?#qLh`?{<-VM^&_hbvU0hnYJUTsyJB`N_;hTVGsQsBGqF z8@@K`?)LYBQ>TVn@ZMQ@cDDKd_x1mqpIzVoKTz4duO+nn*_ZouGYuZTaCGnH37f-r zxU9#!{C)iU)_v7CmrnotRR8;iX3fo48y^;*OYJ-Qb540irq(Lu_?nMTtKaY4pLdtd zPTxR$%FgpGYRl^`f4y^ut@7tjo98MiU#^7c+}Tp;UFhjqm?@cOaK7KgR9TL9*^jdo zDK9UnYERey`|tPr^?RSq684u->-pGq=_=#*=8laz^8)wSPcTm@2*~Ybjxz39yI|Gx zCg;-ehwX<{YOYZ4j z@q~*%a<c3G3SEG`{QQQciOFE58|0?k`(aphPv>_pv6UJ?|l4OTQxDwwu(>k-|K0ivjUe* z_PTDFZB^#zt?@!=bFarCQU3`VE3eO7GG}S!C#zDa8mW)zg0?qabv#}iJ#E^W*|VO0 z50v=mqj%`FjvuGnzCsy^-c{2>q?Uf(c0M-a%=EvCpEvF3cP$kvR$;fBp7TiONvO%& zb#uA|O+|kxOwD|CBClcd)d(B4w`&4oTBO5@{#nK`tNARwx6F5TN@}XK&7p?-CHnK# zg+D3o@DOlaD1C2FW$@`~YZuH}=sv@?dfSZjolH`pGuY=A^l!Y=wo{-Qw4=9?ncZp5 zWmW(FmU8+Hi~HX1kPwbbg^Q&-(1i- zM0Rogs{eoa7gX@d*+}HDeVuYSBw@O@{$3WY;M{Tt$s+CA4~d_m_f!~mOrNvejVsoO zJwLfI*lo_Ie+}P{_x}EQ-~W&G|C4{t&9z?4uCrc4-nPob|NWwij?HYPudne=_h>7~ zyRo70@GsuA(OcK8TgSAT`SRZX|9%&ys@$D&`2D%LR`aWFt$e@l>obs@wS1=Ts*Y<7 zLfV`>Th8e!nY`Ycd#R77lvlMmYUZ}RqU{Zwzt?WRH_JFXEUW5SWcu8xQ;#m581MIc>SYD?Ciyz2B#X~yj8or9 z%sH(uT=(<*yZ>GlfbdeK@r>JHF!I&y&H+ zn%owgJ(&EEx9X#~zw>cES;to&Pncz1k`OE3GpCVZx`*Mt6>ARN?U^=Zs&34did$bY zci7(EmfP>Dydzo8k#o9E$`sj03dxWGYn;mVKUhZBtRhKFKyYIS{ zF+%Uda|`p#<81XdbnZU(T&nMA-p-$5TW*=kmE8;Ga{sz#k4=Y?cznUW85vh+y%yf0 zyxs9#r~15(WB=O?@86f|cGP0tEO_b7_8m!ktG>4Vl}$Tx>XpH?ehE9KX%}AZ_uczS z%Z@W*w%OY5uCDr@PsKk>;+wl`PU*LsGbLvx@VwBuwKezq>0gEY_Wypc%hwc~RGogO zd~N05uh->^&lpzRyS65>`EgTXO!eEXw$UZTXWX*I*+80g|Tt=wKb6sq7~v^Utf3a$jz(f{~T?9 z*6e6GGvEIIrqlY9Q~Z>qx<4(^dgx)G`}Ummdl|!|9aAp*S-&-z^YYi%*P!JKll`n# zCdM6J8@;XO_uKLdd{!lIcGTS5H0hGij4;QAPiA``2@Z^v&AYZm@*FpN)%(5Q1F8f3 zH!y{i-q}&8aB%IdEzX<*S6hxNrU%dO6 zy8<>A@V#%o!M~o%=N&d`@G>)O*dCU9E3W3FYwYea?e%Ny{{0YkP`p?3`7C&Uw7TD$ zo14}1UaW~UUhXsZ)kRzLyCuQ<>;5K0PGeVXdUh&e8uN^bhYq)*3r}6Nm}ysgtbSe< zSN?)44-Mpae=u9#v{au{acIIp=U=intsf{F9$PMI;BsY^FNu(`i3rUG|2*;@aby9mz>OkvnpKAD>^dE4Ny3-jZ!=qcghBT;;dqXk)6s=qi3P zFmSJie)s;b*KTaIe|w?cFY8{5gJ8tgg&z+4Kdb+iYGGgf#F>Ah@wta`F4G=nnBSRw zVTye5t;{EPjQu^mCpsPVV?HjzXK1k`>D!!}6DHq1sj#Ed>qhN`@1PFei_N#UKJ?Lh zxO3zG<(nSlcW6#EJ)QV*#h!KTY0K}-vif=1 zxA@qvGfKTJn%58i)YMr7S71dTn38gi+HFqpZF8ZA0=hydPjrpC% z#zVnD#aE;XSmlDW)EwR4udb{O*uUiUlUDIKhBn5nFR#bfw`TIQHnBM}{kS~;AB#}I z=dTTdrsDIJ|cIy{bc;>K>bz%$nz` zs;a&=U(DUzT54vHp0UEcaO*x%PF} zSZdF1y&gMz-n6*(rBfsQld}v&m!>XB|KK^zdD=Q1^M`N5tb`XvbeuXM^XJ#=|FwTU z*8lr)xqq=+t#GfK!3@TahlKg$Zf?m8Rt$K#VEO;=_53z}&s^>n*KK>Jde}%o$?p4| z&k~E`3y+G5ias^SLx)aOLI9n?Jg<9y{7LJiESku5LwmfOBHOzUC|cj0!&` z_x~?GJ#DQ~1-s3zz_@=48k^7A{a$l#@9tA)ORmS|eT-sz`1#MPU9R32w}c)$F-0@j z{?~`YJBy!(gtz}N@YrGK^knzbWwZNU-Hr}tSs({GqoHEQ?y|RC?V{`5ZKDnEaZd?# zxnK4BxBcIp_5T@r*!A6M>g zyS`-SBD?{^LIa5^?IM=*WN8V zEI+1hIN_kV^TQ$Tb{T5}y=QtCU+y~-(zLGCzy95sFAq4v$}A>MpS5x+clw^M88wgR z#O&qb-)ROdsJ~O$r(p>Yl zz$~+}vv1~SxH@w2R(kq8es{vDIP^XJc>I>*(1=*51= zD+zrqS5y|y-gtFW>S=M^D3;xdJNV9Y2&|BLVy2;|b!*2)2KR&hC+{7&T41q(>xAot zmJ7DcK?nL~&Ys;poBQ9B6*>t;0f#n-SA8+dz2#8Z#45kH^mp0Ym8R~IbNrvLx>)-9 z+WLr%Ol-T~tXZ?|?XA*RH#~o2UY)qzb)LYDOV`#$J8(U%+_^kwx((ZI^M*-k&t6Z? zYf_k!eSK}KuIMUh3mGk*X>Gd}9$Mh*@??XrFYh8Xi6;x5-PoRbdfE!hdmJ_!Eh2Lo z-bd*5tFmm!n&H0D_KTK*y+H7kZE0s;?b%Z!6Pvc7NQt2%;p!dBQ;+ZNtF_kIIpO1@ zjTY+{N+djJDeZ0VJTOV^SyzXbq|hs#H+SXMZ%;^OR5{QqZGOn$?%L?`5VqwEMqS-K z)=iV0mN$EeiGKcHus=mjWZphKx#(Rj^F`i?bLC%KW4TI8O>gyq%7;n|WaRz@ojn}? zLHPHh<;C0qOf%&7H9viPb3&%fld03yN;PVpK20@PwJrPpy1+W+J4q*({}lc3Vuk&@ z?V+o~9y%WVw!-Yjh7RSGQ_OppGp||KcA?vOfm%?$+HTG(S`WTIbpFQod+Pa}XOkqn z{{Q*>L;e5fE4NCeZQ}ZUPTt+*+MT_A=d(MT{U_V*$vkdr#VEX`O|@Bd+798kJbgWR z)2u7E-|uU;e)#n#&pexBFD~u8e7F2w-I)c9VQc^G5H9&=$1wl!i*424-%XD#i~RfR z&btqmHdh5Ve`!sBX8ZH}yzO`9mEQmRXWi>rOHUo;eROedkmajA(xyM|-2dmNx4VO7 z&+Z8+Q4a-L4nJSF>lxdg$Cv)g&gJ@*$-z85zV4^w@?Hg%%zf)?e@uEWG+#T?;_q5_ z9XoejyXRSRI+k9I4D)er*9^J7$VL0>Hi?pVYnOaic;s!K<{S0#^^H}$pZ{D`lJ9+; zCgL^k*nN5bIWGlQ9XIWNdGR3A<>;>&^Vxbg=D3e5d;cadj&$|j}BnHvtc8QuPB z`BI5#Ui-h&XZ+r3wM)fy{jaY&sv;G$GFj>IcK65oo)@}3`s5QcRkUl-TLqksgYktm%2mR(FwurfzLboy7{&S|2@fdBFfT#f#~bT>F&>s zzjZA+SmSP|+-lp*QD}SYn%<|aw|w7d+ij13yY`$hLu%fwo|)_SeA2p6WuU4m!uPO^ z*Sbz3<<-2{TgO{Vr*f`O{JuDkxA-n=*Zytmlam7D{Ej`H9(!q@b9;DPt?09|%C(9! z|9#)TJ~e%rbCZ?AvFV5TDk{0Sp4I)XUH;|G8o$^RJuhQsZeA40>F<7hmumQ}J@fAF z5#9ZK+2Vo@#~`a2w>u`NCaAo+zW%=E@;OEKDxasOT=^1V<-qTCXtmD7S-rci@7kaJ z!e@`kJSqLTU%$?td%C-MFZ=7eRV7(hFU6ScPI!9gEo=7Kg4Q&*GZj9U_t@ASoGx_c z)XCgCYXZ01E%8l%w=`3tzJ^xMb(6^}XJ)L=vo*IN~YUW)U7V_OyVa+;~^IO+D*XCV*_v=c$@bzO$ z`26SmDl4gea8mp6Kh6K|9-V#qRQ+s@&h>!p?y<6}5~VuZzfDn7aFgMCo)hqxO|{H& zLG9&#-{wz#duLUtblm^2i)+~aqps@J4iJZOJ&;@f?9 zMSiUhS9a&O+2rWQcjnt&t~c zyX8L*Y@WR)J~D92)ecvsha23N*!cQ-e>Xj${PS$3+3`oZDff0<6}DTW6C4c=@bwq8q9 z#r5=-NutXRE>;i@_J8w8^8Lr7UXP5vu8z8PVBRg8m*q8ozkAllSVy|e6)@B@{Tai% zuyJS6$1ClB6H=7*R=?KEt9%g1zxv+S)1l2L*x&Z+yy|~*^iRZ?^X@>uW!GzW2BP z+fuHRwn4sr-i1x2yH~H@XQi!dT4|ql*2zPdcjL+Bd@V)UtSaw+?BU}-!B}+Y*`rIY z*|E$s!ZsU6#}y@}sf0y@Cca8qaei;%o|q$fH)o_QQTJJAZK<|Z+T*mmr{J!`!slw= zU)lKgX8Qcfqff)X*e()(n5n-Pln&z%tzBJ|O)jgg){ao%V5BYdlHPq4Vs9 z?`rG%-z}K9bltw60#%>i-sC=^*v|Z!%jn}NL-%X9-Os!_5VYm)p??pGFI_#v`S#bx z<@5Ld{kD74rlN`Q2VPv?{@%8J-|ooAF)wwWf4!0zxOGlR`CHD3vtQ0Kne<$f(k?#Q)cILE zE#;X>?$lc=LN_D|zw-aQWQidEj__31i_1JdE_-#z^y+Q%%#Evb?kG%f1yj)*MCRfmbbU}Wcok4SRuCX>}rpzVvATk%8Do5w|{%3ajjJC zwvs>5ORBo(yPC9RulgL`cmCYuJ4-$N(pgmkC3k5rpLGB6y8PpNm;GM1srGuP_8++o zf4uq6EaZQ!p8Wr1u}_6}=siu?SisS>QTv~MKEMA)RD{Hb--{=D+}@V^ujc#wPg2h; zYwF~;9Syp7czN;hZ{~L^oC^alPFkuR)V#9w_O{w@H=oDuD#^XRZ>DX~vZo6(JUt6t zT~+5lkMMatd(xy!8s_ZMKWw7T*i3l*@4jfx_eV};&vS21O)7tR;Yw-A#gGfKGarcZ zu|IiQ$h_LvP}Wjo3E%OGu<3iRE>q0AHT{7-r?AfSqY2?(U)~E?QuKM1>&H^bZ zlBYTM+uvQR`&+xrq^?|EkU9HJ+T2g<^Par7Uy=Lu+tbH(Cz7VR_-)GIE;v*5RAy!0 zNw$fq@eTJ^c5a!y^6;MhVF5P;zj4ps{8)m=NzLa+>cd4x?dG31=t(fBcq$tH<@N2? z-xq(nV%GHK-POmRPV3cvvOhmarYrBo7(Jcc`}n>`r%3v5n>3qa)AVj^ zDRWz;KB?@BXJ)N?n$DlzJiU}FDc4j)N>}HdnWcJY>!Z`XRaP?n3AGbF=sVxO{%!lZSzY$#3|R zqqpWI&&YYxZ|^tXaPy8ODnh;8ORS}?IrVz;vh9<%-4(t*?l`Yx(VfEMrsvKY%8 zai96%?Ily59l0qu(>&q~&$8n)+kY4rN0%z`em>dNn*GfG;-Szw`4Wdyn|m@1%xi`- zv(57#9%`-lnY=Ng%pz@|o6+A781=-KuUl%x`V|w%E%){;c^Nq_HmsoJLtPWrQ z?|t_FyKym_>JGcD%Cw7DFr5)3%hh=4pqS38vtHh(kN5vieRt>Q=V$tR{%ktEYfFBf zTvOamF0OhTnLEMF9{g5m?H(M*TxGq|_1ARw7$qIu9hCNR!n(6FI6MVb%``aQbnfI& zrOAi%OisJ=Pm6rG@c8oj4kO)no?p{V7580v<*Oa>Gi`r+(x0rPH(oycrkPu0nD3wR zeSIlP_U-9>QKgk}Nfn-Rme1HMTz>ne*G$tTi%k7y7=n)H<&*j5K09NU$~lir*B96C zFB26N{h654d$j8NtD8%`)Az?8QFyanjUnmw$K(88f7(pUkeL7U^t7CNI}}-)Lz2R# ziC(T)66lw9`_bE51~`0xh`(I{#sv8^Y@$2`tz%P-8`yo{`OeT;&zjavp=r= zttnw`wdaUAH(&3vinmwd)ISc!+Vc)=IWse9RrNa+_Y%X0EyvUuH!t#BnS9f?=E$;3 z_s@!W_W$Ht_R{cdgU-CFg*P(Ke3-C9Psa06jhNio_1PaYX4F5O9PnXg`J*%Ef4H19 zu{7%4v1jhe)vh7$mo^=0Jo4|t^AbCAg~-imcNZP)o_QjXxBB&k$89FLw_JD}PS(xd zuBo~}wlw6w{IP!wo#)8O4 z(|3nr4tx$c>+aJvZNd@dw91Xg)O#-QzPjEqaicXe;}c{$r!x$Cd~w&um|{`&fQ{?%2XN!!GXrFgeyUw_x7 zy^iI4_T^nOAIp`y?4Ng>&$jHuhJ*QgejeMBc{%vHV8Xmhuew(lO z`+y%``hVP*EY~^FX5V`+wVk%sDK;)ihQ8ms*PT*1*Ft{$@3CFgzX3|DHZnS05%EftG4Ob(Jeb+nl0a>R~BNtaK335c(sz3!lztk$&L z55Z^GcTS)FLNsla`g-on%gr-3F7kc7r^R32ZL*r*<`){CSB{x!2YYMXnO&pG#l=!FXP+1I8`oBI35n>`c1y}kYX`SXc?`L>v@bgaG5z}PGOH2?m#wHpeum;1@S z+xh&R@p+rQYZZ#wm?I4iird6Znm)bqP-pY|z2DC_vwh`n)vB$_PYwOKB7fgZyW)$9 z=anliuMM_)As)Qx)t>7ev-h7@Klb^~0TmI$65jx~-NJzZ7Be<3cB$B=pzf^fV$nFq z{?w_WLot@SJ8y4p4E%1^cfVQl+3Aws4jlDnrxKz!^e>xvaZzdaiCasT6n>s}oacPr z-Qwyq``31fwq|7BnSE(R@cGB*)K~I)JlwVRbyz{LPIvc>h-ZHL4|Qn2T@q?J%|mSQ z3(#FAhwDz+hsVao28E@~vJq0!)!mvs{hZ{>%#{7k+icvwy{|s_^LefLuibzC{5h?+ zdrSQOeT@5$Z&|!0Bgw$4rbXuF>fgTRcXkv#ot1mLJ1F?_wKXx8iGN!5?cM$B3-c4} zG6h9m3$}%O7JfIJbhN{??Rl{5v6Jr^?OvO|>s0TZs9Pu#rM~Q4;;Q=r78M6&u2@dx zRDSnz%bFvHdMq{{y{@+*E;_B~qp4E*$Fy6Mdp>QdRf*eJ8F})|$D6#fCVty{YpMC2 zJq2kQ)r=SS{`)d#S#0&>XStpyXYtzC3TWS4aI-ijLaIjAbkWIw#a=q$0Tu^t_}8pk zvuDqO1qwpFKmVH8>+g@eye#hgzj;|bH}36`lwA3IZvDAVb=mpT=FOWrb0xQPVp2oq z)2~yu+4k|hy*2yy%BRkkz>dd#p6$cCY*N z&|OJ?pG>-;ThIN)zSkERNUX_>Tq@UJ^~K~iYmDQ=2d+xH-SMAAy(E_=H|aHtGv9uxw*G@iZGj~s;Vk0AC{Z+F3fOUT0#FU z-mK-!Cr+L^!tVX(jFEkxR~tVxiRHwm+0wfx~%h++vnP~ zdn?7TFWj7^24-T&PsjHP%;m&cD@?ezx7p zLv&`ag+}AYzRb(g*?&B;+TTaay!9sH`m8B_L0fL=oD=;q>jU?~uTM3mt-Motq}kKf z#!$qV$;4@KbaLxeX{~K}aaOvkmjB2+vqo!`-fgd*RSjuB_DXeUZ)z%&ja<7}&F|XG z&1YsZ`Zzj1Y$W(3 zPT{eo)8l5%o9Fe7#g94DZL#3`^Q$whqT<#+ySs5)OQ_||o3+2bNSVJ=H|beez~K~| zni`sQ>f!VqEV3=f-J3G^1^ZhkeMmSo)v|vo!`E`_CAq)MHka~qvUI42DtpZew%Czq zIWN#@#pyLs${tPErreS7a{tyMaW$#5NasjrS^h+vZpH>_|JZp!W3@?oz+U>qMi1T4%;)TfgPh!ps z+4}n0^zbRgMh`9?o@nr7*W78!w|iFweCgKTU-_|BysNA0V%DBNuj*GjO$7C*)wOev zFN*q`9Z{;WXK6unYG|m64CCgUOFIl-%nI{1NLi<^sadty?dP)014(bbR*31v{5WU* zUasVZbN$-_s-oQ+qU zTztv$C3ENHNRg?BrI#8zt8cVeoY?%*Mo>`RCer50sd)FvHcu+rL?3Obyz^zDbu z;Tjq;J~y20!sSaJ8#_y9Fq_PGOPsE)w{C`2>8tYly>XjLGAk=tPXtFsMwW(7&GgUl zxXT=pC3+}FJ3X=R>WlZsZ2o@fURV(Ey*U2Iij#4*kLSLcQF+(&`m?9YT$2*QOMUb= z9@dn3@l4m1-|o+P$>L`}_S~Cu=1cwm&mZs1VJm50-q~iUZ*Hz@DzS?1H}gN;=xzJH z{dzsW{$u6mXTEHFG6qRMK8T&2%^qyiX0bSBYuDAwD)KtI_vf8y@HCCCzmVH4_;>Dk zkInPAwQPTMEITph&_S-mtgAC#`hI)%zK;W7`s3s2@twsE~LOSWnG$-b(j z3UALMA74f_7uy`48IkkmhPH<98E?1A{Euh->%Lan1-jl#@b{T}r*vxjPOGmD zTl@FRWzb@t&!ZKhCx`YOBTnKgA10rcDbAYhP5TEY~l+NbvHt_4hw~+x@;z^7rAb*W-%6ELc3- zEPKiA-i1kWTwLwKF>_8Hl-tT=6Sk%A(BvrXXMduXuMF0zNxG_+?zl3L{h*F%R;pOR zvN=n)9XgSs(mwOYru%96Aprp%$M!ueHZfeK+&yhw)x)3S`~Lr{-mv}4my$h?b}eHK zVwyXv^v$K6mjm5-Eq=XloSE5Z)uj-&@BX4qA7&WZ|NVVZec>6_;Gl)CGUa4@_+IG>^8QrTeJS#Bs@iN7xd*$ld1I@xPPK~18Dw0zSo~ZsW?RnD zMXudp>*Hbr0|mQ}HXT$rakq_ETE6nj#)-=AakXEkzP+_|+BuanFEP`+&;W~`2_`2E ziZipm38|}^t=$^Ac9Tc!XFZRmsRAd;QiL~n-B`Hwz}MEDZMPm}$DS2WHg&cZ5fS0j z_$E2uxYhj5r>D|#wNK)M)%?$$IMa1}@dGP^;BPPP{cU;N&MQ$6GFh#6DSx%nXBpot z-<}9_dpd#XPk4Oe=&{x^V;nELw*Gx zkBXa~J>U5@$jn-eS7uvp^E;)Bn{+g$Y{|RHBk$y=r@1n2N5MsY`<}VR>F1{DMi;DG zc`zj4+eA7N?!Bs+EV$;1t?Fv$#cwi|*BpG? z7u}O`=tPGy*RJpr9bD7HrB_c}keTkT=ozKFG;i_-pUgwiL6@__Mb`!gSTx*Vukm}# z*|#J8?XS|=^D7?N@BeEiTQxPuWLL>c(B|%O&yYn{?=Ub*sNzz)YeXMuyhv(3)VvOR5Z)~)vwJI{;#H8(f0a*MGvYX-cGtN&Xn zQu#7<`je+=lkckd`e|={ecRZ2Zb(_#hZ)Jg9&Ro;c&gw2XUd}`p0~TYc+#?FJ%2v` zc)QcX|J4uv^{t(KTS#{G{ppd8jt>P`y(3&=WzN~|d2GhstrmIG@HJ21s`G!(ZJlJ* zUL-%?U(iw5jpXUT7Z!YJ?zj7w z`Y1)hIq~S1D%;~cQa>Kp%kB8GsQ5DLOk-b(INj|rUJ**k6MJ6;yttjeAGB<#yW6Yg zAA?4qTiUa!;c*ezKb(ek3x8>fJO5uBYQ0n)$+xhih9=f;Q z_B!!ylgjD$73O7&*TwoiynktJ_3r)u@7I>!tu6okP1fOA$=v$7zhAFUkFVOgL&;^$ zw#k!b$+NPyI!pE3&}@C`uYTAd(Nk*P;+zL)=4^T?_x40x?f*~H zt9O;ZJz(B3x#En#+b&Jp@|CywH0>sQ-}mPe=(vwv8PyZrzq=iJxTdE^TW|lHSK8-2 z{r&sh7SHPV*LD2S$B3LG8ywB=mlU5C)BPBHz0_d;_4^f%*KWUeFD~TVHYbZbE}FgEQ*Fgnsq`#Q`DGiWg7@7xa#rQaf?b-oQuayDa*_>uB9Z@ER78YN;9J0a z?+KPOa!i9_;{JZSogW$=UbQzvx#!y2sHXg_`PZBB6ASJ=zL>M$Qj#;Z{e^dn(?ovz zKQE3>kGr+2RC|eqNj~qU;&r=Tt;$}%^T=e0Yets8dCup%pO9QWui&$<`PTgVe5IT$ zOv?`5t9*X9{C;iz>1j#3PN%1~XI(At^YO`;`(!F9+6S)nDkal-HXz z({HiHzJ!8qu_Ie;*9f@O%t)N!7E|-#sKKK@-1>@nGxo^DDWpznziAfw(*C%q)j!1~ zAKjR*7Z&W|YwTB<^^Sl2sPto;`B9Go<$XnABZelAphJ*|&JNNgch}{|@Qz|MTf(`aI6i_Mo7q3>_mQBfb5P zHg)UoWY{(Rt>+w#wp;ABZ?_0> z-04nFR~CqFO5ZMbJ+Aodf7=fMm98AQsxMxaFW&$D;@7a(Dk7lLY01I8=3AyH<%fkT zm^&pIN--Y2G^1br?$Wf}#VYe7rrx^gwt`iOeR3&#w(7K#xw7&*j_fQ1-UUImYeW*2iE?3k0a?5pX+Mav~0tU2-}>!Q~zsdV1k$D0e!`kVf@%LoG9k;d^` zZC~k|e*5FR|CEmRRJ@O~ZRfY2sc$-`WtLLuoVRbY8y9WuuClq8VGNWWQfrK!)XZ{~4+X|u#XPu9ElUNhl;@#u-?Wb^p4z{h{sa;6{37Znltci=(W zi7RZn>~np*wx?D^9_g8J=aAO(Ba62-v(Ct#X==3P??abs+ht|CB6H4t`u}w1^fwEF zch0-2R{Y4|kjkFJ$2xX-C~jX9q%JnSyEv)MsK#bWbjn!)UY9>NH*QI5Qx~mT=)Sdx zi;JD3`t8J3e|0gCYZ@yF$@XvDLDrFVzkGraE{=A4=|NYPB^ZiGA z{_p!{we(i%^w^@Csn6MiJxnIfytHNc$&IHrG_TpQ`p(Ve{MR+BpUq6?G82ob__yX_v6|6e}qi#`plt53MR%y+VyuhsiG#tF_B zBi?2&Sg@cVqhY&G#o5RIdcGa+QP^m3Q8N7P&(rV9npZPU_OE=eka=YH<+MW=Z>*Sd zMMzKK+I=hU746Tj>fFBg+$Y>k^!mciJkw)Wgv~Q%R6aVCvRcZVwUxPb@6+Opr4G-! zy1ESWjD0p2PF8DX<5f|r?VM&X(Q18#?0YM=rk5{QKA%^-E_1_{Enke!Td}8{+u*+X z(3PxR(h6yn54gJ2`-+ZbDtAc6?@oIwnLh90rpn~yDcjO5FMbzTkvgZ-lYe)~%UkSw$p6IR`E46OMlO~ zIG68tM$m4r^1TAb&fMj6Upx7a<7VM5~Pc^mi6y18s`uS{ItrkuF{ z{`5|BvitHYL9OSWOH_2vUf*5*-j#d$5lNp@YZ4wWTeT`9YgNBM zcpjr^S7?C676r~}?G_7{8#x_{iZ1UGaO`}g)3f21#;ni1YO_}Cn)@*0F01gaYToF* z-L2(wV_EHXgr)d7K0J{4{>Pk*P22MCugkXbS$g5gt*x&Gz7#yw={*0IX~FiTOMgEt ze^qq4)GP7a_FV}^Vm!+pENDBJ@b$`;BiFuKuIv0Z=~Ao&`+FlDe=(VD&h30sZZ8@e zB)LPwLUV8K+L}B2nTw<2!wZb7i&NB^yes<>f=%?Vy;=FyB=*cH=^*JXa@E;Q&o8#D z_PASDWWDNpo`l}3q-l3HoO=A%bY|>~-Hcr&S}kwILPG)qZnWQUwoAVic}%%bh^yVl z&QrTr+HLW%-lbFWUBfOu`M5;-+KWqZ?>?B$x^YGCK;GIEGluI2j2-`&_#TT5uylEH zvd(hj;?mBND~o!1)Hsxr*GV0F#3uH0&#nhebEIc2TNtUb@m<-4m0N8dm*w7`;WkHo z`lT&hr&c|B6x4lQGt$rT;f2P?-&3Cn8%3aRvVS3!#f6hFmVlFOrq3T1=WnQ)Vn}~IHpK+hXQTwT)_R>!CPS>{$Ojm!n zP8PdxgmI>AFZ0^XMziL++}ODNn(pa~Qmw|TQ@!&-O7Cj%rT8r~xwz%-iJ+dQpk~cw z2c4Z(B(xV!H1==Zp`{_?wBmM}0@HkxNn7&VuW{|FZng<~e*NyDJTs@SGHq9LHi^y* z4zSp8WA)E{ERG9L%Jf|Mwbfj|a?w$dV7t@uI+eMf3|E>KHy?M_UVUix_8j$f4eOpf zn`-f|SZC)oi}e+EG;VCk?EifEV*rouzich8z!|tT@Kjv_}Ov<~Yd^7fwz@)dV zOOwCWtgluq)s5Yr`1$_3|G%C2?e}D!F55M^Dxf?|<4+u>vIc^rahfHvHV`$ z`@{V9^K8@K3H#d^R)5QJI`QtA?ZMImddp^LtDBmd+Um~Lu!4E&cS8R2{I5cj=1o%z zwVHo@d&$d7I|LRV5>(FIy_ZQnVVUs8fc-&YAF4~eoF3lT{eIu)yDu(ABuPB$xBvI$ zO7QtL+Be=^?z|qp_}3%$s{xU|KIf#2PuBnceN26Ro!qLvjF9=p>F2uj_wC5NZMJE) zhL+Z$`2Kf{s~^|sDbEF6MGnG$>~3gRYYTpiy}P^o{D~6{B1@}nxW)DKG&C4bdVf64 zz~uJL)l2DglveVJSL!7jE%>cJRD5~dXT2`@c;AZt8P}(Ry0-pyKj&Y4&0TuBHGFcg z)rplw6-~vlN6K7IYOmk(@gKW<-u<{WnY+$E&%U+gWrv`$lvz%O#BSsBCd!-B&UU#a z_pk?L+}P_m+2*y#l;azkz~IonWAlz|w_54(gh$}*?XB4pCI^Rwt&=?VE%&y%@2o4| z4qa9#soc7E`tudPfZ+vS% zyIyFST+_l;=e~%o^6%H}_v)VC4bWKg(rTNhC+D4#%f9LJD${J_rUy@cD>7;A%$_wd zTe;GbVirzmFgG^ly|iHEo3&hA?Tjlt&Me!!qvEBh`i`kP)pYNezIpWE{Io9+^ zpZ(h@XRf$3@o)3y^nPV8cKhnxCpN1x)*d)s_5I!73(owFmmH101oDUMnt$Baz_;jq z{QIk=FG{AI_i$TrFqL(wkQ8hzz%@T~%AUX1s^9PV9TyqNx?;9lrk~%p-0k-aYJQw_ zIb;0#i1V8h6Z;}hI*aQ@Z%sRErBQswq}J|li*VoO>+g5`;^N|}SGeMHL$TqR`m)&* z8v-9T&TV2_!zr>u^1z1Y3zvOk5jrx}s#BGvM%~q5?fV7qSl^}0^)wZ{b7{>?)>BcT z&p9tv?YkWxFiX;Z-L@b04~!q(v+(T~l)BBmZN-8G8_aLq{<-f-cI~N-;AMV)&zfkS znba+=|L?3cwpUvmBv{oxTYiv(VO}$rh`t0+0 z#aTh2Wnw}HS1$BhefZe(`L+8}Ux)Q(?ON6>4yt(EW~|HlAR@xYd8KBm>7hLfbF-iM zs-#L^&S(*mH#9xQ-oK}G%g;F}j$4nd^egk3*gLn&QzmQY^eZ-tdiFoh?0J1^yXNJE zrxj|$>ohBCs;_a~?re>+v~ykk?t;s#gdQd7kV{`|jTRbcMR^u~ww8TH`r zkRX5NzEtnTgU$W6zg{dp-t#l?dTr{{tN(xB|8KP=+cf8dq0{2xlb@=)V((9nY>vP8 z!lCu`wY8`3mf!z+WAXo}Jr$WMc}E^?3|zb~a(7;AW@M$80f+OdWiRFHeq3DC%B`iP zwMQZ#J1x!Z#2sDnIn}Fdr<85av$k0`V^-3`L$3CJ48oSrdiFFpj7QpRjq7B!Hd}Gl z#hlq&o0<+OvVEAHP*Gg*Z~IeeahJV;y)Pupo6Z;N^GNyoymg4(Id#QLoswBnCwFC~ z)eA+d{-08L&G+E*N!u2M?LPW*&az0CGgd99KV|pN$ShhrDeFbe(TMOTQPUqSO7vgT ze9UjX%Gz0``47*Z;hDI=Xs4EjjKCXayXRkp`mYxsWPN^qo^AQVQJZSv$g{hpm`R3CX;BN4KT&E2T%J8Pm7sJX;?m4|K9;YAw*biz_+W$-UvCYZ|hg73e< zN5yN$mn?Jhz5C06-*j#Nu^;W%K3>eO*-~X^bumHX!8Rr(yE*GK!&IcN%G_oaylMXP zxKGUwnZ8fl$&U_;8{A~!YPfK8h1|72foG-7f9j;SHJ15pv}A2%ZmT`;{6pH~TDQlA z&t|62Df_k3Za@DWj;_1EN?*&>|C#^)=lS|HpZRe?VTm*TB*fkQbn$}gI|0v0S<@oK zpD(oj{IvA?iEny-IrpA-tOMP9`s>@<>{H)5J?-Pv*w=il(6P6FKP!8kuGuuRl+pKDGA8!}j3i|E!+uc+4hax*+xRG|8EgFEcac`maB~_+v-m z^*)8@E~&8ag6pUpmJ^ZCkx z9dh%ID9(|(kuqtchf3Go)mp1pIbTgpP30ETk+FX`{r)olez(VQ^Yx{S5B#e7{-X4> zu6cU;(sy0&L05GzWYj8B-1%(lHA&%B((%(f+6#0Res%wUoipwKTEoXCE3dxTm~vk% ztlmU&?epEwtde41SI$yjws}Rwv-S20;f{`p_KD|z&iVZ8mx+*Yv#AL~Z*h}(e0}VJ z)wO@0hKr^y)of%ii`iXv`F4K&r?cDbx98p6l{3(UKkN_{6_qv@%el8_=Yj|R$2dvm=KmGZdHZ%2Pv54r>g=Rn zA|fJumRF9(OPqJ$6y&=Wq&T}!xGiJb9Yt=v|B2e=oW2HnY1QWpzkhqDxhy-ZS?z7U zZgNtzqiTIX#&s zZjn05wts($$60L3*UygP_;*~O@#nJ3_jKYnersfxi``r{cU|?94=6>66i@NpS-C36# z^JdxQ=Gqgxnicq2SzCVvPM39f@$W(YhILsP;xkRkq%JWZQS%SkRUMG2vvsC0|C3FB z9CRkH)h?g2^yJO;tAvjvm`>QF@TxE7LF!DS&W(5cF@$opn??;ZTOsTl_?w32}-VByo zeQd!D{p*!)_pC6<+4|6<)XQLL;pJnoR@vTKl`qxzD=p+@I9X;(D=LvqBvY zF59#z$Rk?kA=4wd@>3htntwc9&)3)znK~=YLWV0ev~thAfYQ=C8>Y=ZbL6{+&ZERO zg=!JE(AdkomwVh6y_0fN68vBipg+@?K_>TrVC?O!`OP0Q;?lIbx;^Kocs=@ zaed#3=_UzFuShvp+svCXWlGxFs4Y1c7kOV_CwpuAtINx?Kf6`V((vsK5*6W#HhA@{ z(9ghTau|=Bte5&>4waXSCN18nG51GuW@et;Q!Jl#XLg@U%=Lz}>1@6gR#ftymd%;y{^jM(-Tvo&XM3CH-U^9` z=-7W$_2^X5siC1$mz@cpBq4Q5QMcPwd8XvcNXeB&u6|*^BGczwTbnH&u;R^|Ic964 zPOP16a?1MSkAk{9|ZjV|TJZ373om$luGyjTV`U-<^)>h_@ zzZ3O1a=kVmi~J#QiPhd&P+5e_(KxyElIpuzVxOzNoLS>@h*_+M?PjF-oa!#Eo7di6@RTm0Lrn{WGW=W#7z5sKSm6T4yF#F-E0 z$;`eHc`32_g6rog)1-DhdBi<4H|eR^jVRNW2#zR89=71imukMH1$`@SzV-`Lug*A- zR1_4QTvni2I$J-&sk1ny|0$P}=3LiaiLHNL#R$oI2RM2Dw9q$}`K-6qIoQ;C#Z|+_ zMwXK!7KJYEv9fHRXGEM{3rjZ*_550!o`=qyBE}5-l6!i?@yj(rb@AF`=y&w;Z2u1 z&&)Vy<+O6`epUZ)Wv`T3o?AU)4o6%!=*ciy^}0`Mx{3N4lT%&xIurGewmq#+_pX-M z`f1yABYp156@kZZMzSTPe^@e~pB1u`FFklFK5u99g{Y5zH(k7(c}b`` z{L#l3G53v=)lzJyJt&qc71sYQcg_Bj!?M#MUXwF3)@G?~jqSRssiC2=*zI?Uerl&h z@agkMfmyem6gw%I_}*4H=&AHH(nIUCSI>)S3Z@BXF1%WheTr}4f&ziW`VTv22?p(!VGgyP z%62zVSZU^>+3af7^R74^da@yWGxJ`b-Bs3V>7|)9rRJHd=KfYbBv7^Xv&7NIg&Ie+ zR(Bt|=Xmbdfi)%ao6Z)P7y4W>IJtAi7b>(R2P3i~n-w#a-L;=KgcMI&EfM&{K88_Ku>r6D=i!-tb=zX#F@0FtEn#7Z{u11Shdd!%hu~}KkV*cW& zMNdmQ<~4!VMJO88ZhBKYb86?R^o##nT& zN--&tPu3}}_;w_#hG$prhVNS?C#C-1QdZg&sC&9~LG76dn{T(J)smXwONIBbN$|m@yA?9*c#>3%YJEA(W4C(ACK6)yf-b@^N)wj;m02@?MM^6>>`x% z%BwJCt%-y%PHtr4J*z7pRM{=FMpQZJ? z!t9(q%~{vm_RKh^dUxt!**t@pOUmxNJ=0gQAgsvBGG2W1r2ZSLU+t+nSNb$}cIK_` zvu1leKGJh6(j-YDaM5RL#@s%`+go1!6G+nYzG&_82wkAeQvx+=ALD^vdIzkCeO zFM80ScDQim$w|Vj2BN&n78E=veDR{#EadW{0O3nEPbHq-omX(FB`W><%kRI7i;MI3 zd^~pMjL-b@+b@55TK>G-W{%CG+1yrFKUCQG{f}8JW$NY4^+hbjdscI{MC$iz!ojt?6iUwB;1)o!gck)ulX0=EHYftms5^X{iBRT^524l3@L6~iRh zr@dS0{z4VimoHylk1d~j{WUKOleOIn<)ewoH=ld5H9vh95V=!^eNxJ~mkNt7u80Yp z{VPEnMXz-D9|jzY?R<6A z?9-j6nY%g{tYHv4RV8O;c*ta7*UedTv|Fy8W6jZD*`0WMiryQc~WCSwAnqEn`v|N)N7PnxGc|o`Cw50g}d(5)?K$g z&6~@;V47_Ee^(ruIsk+r3(`*w6Cm6gFNdfrFp#Rlm0_nEtrm{@?HS z`{!E}CV6?CTDg3lRmus0HL~V;cdp0R$Hv9kWn5UW`Mllk%FoXtA|fMyzT5piEj4v+ z@j1(b2^-ES=iT4;cY1u?!FST;c{$hD-Tm5da-hb?qB2$Gzpnu2@km-A?Oy$n`&9z!srQv9FLee-b;q8fu%Bxqe-v9I2?4{n* zlbVgsSuD=JzAk!O&d)!e&)5HcyS=BU$N0R>=OvT{_L*xXnl8xKzW>Lg?ycF^ zzrDD~EM4;QlB?16rlux;yPqi!4m2)Zy3|0`xp~jSHt7HbzKs)Yl;WqLh166t5-JgI4xLd6-+bf>%Rg=#;AKCj6NV-udZm*w{F zh#6~Ud2UGx3tb|e`0C-a0B4R$waJ=+KC6B5u3mi;sgM&I;G=bHxw*(Gnfl8G9LtPP zORF1lw>~{R=|f1FR%AT)f&~jU{4d~mRqU4&F*iW2sG4>8|5@8tx=I4tS2+>@3YM_$+*0F{l2Py zKcDaabV_@}%%(V-?{|t5O6S*plZ^0K?AE(2?=F`flUeiK`<2gSbAm%cTDERZJ6rXr zQ{91md+zOTUoQJ^&$`NGveayT^D`E{@89?T|GT)~F6-u|)XU3!9XI^@egFTxlFPp3 zcT2~pKw&wds@xU zr_=xcy1swiu2))DvTkk3?6>_Uv5w)KYWRb*=J#uUzui8+>eb56=dAgq*Feq|K;(9R>T&)4ymHTakYWS}1`2X+sLfIxGr|pNQ9xQbZOjwckxBrG(@|)`Wwcj63 zdgRo2BJaiq#y0{X66}Yzx>|zP%&X4-W1S4`4qj zFV}PB)M@R{J5Gk=`7O|z+H>}*+0|tweu8sM8&{o_-H~<7_0Eh5v58)$J4~-`+L@%7 z8g)S<_Rmk@IH`}93%W8dSXj*Fv}5zU^59*S;Rh4hq}9(lkFJn3uaP?x8lskUGC4u< z=F3C&eY;OOZZO@kQS{V28{RlsWjXi8HD;%$$W@vC`TR|4_cgE88+SH23Gvz5Eq`(A zegCEl&rSxb+kKpGwoLHa7mcevYyBP_E1P@X^ZJKdA7&kC*HaFAtN8INuhiUs2?wt4 zl>L~swRlm}@dnQZSKEI-9=ppFvb*n-F7>GZ;HB%;2$0v zHXgP;ypu$4$o)`?5M0GF?ehU<{srPyPbRuAsBZlDz#$ISWmrOD0$+kP+RvD{F5YE6#vnXcl3z+EbbwF}Lb9hv!OYL{gGfrmcv zZU(z2s?P|G43k-{!7`aU>$&8*vk)v^%RW|NZ%vIW8=0k7`ul6Gmz8>{<5~ z%#^$p6}d%Gh_^cU(w?8Wf93iEcbSQ4UCcZq*J7x>a!$uh1J<`&;$pWm9G@gSH{zz( z3gi3QH_LBiTJWuX-f@NNPwBd4O0`_=f>Zv_IrOffGh}g($%3fG5}9)+#m&6E!0HA6 z<%+p81;5QZ|C4vx%a2RLrnH%_GyQ8P&(d75)N#)){k_MgJ78sqLrpv6$tk|5@s&%*W`CJR73W+TyGu;1wS#Ixm_+{SaX`n&M z6=#JJ+pP@#D*7|3a4neT|8m z)DmXCzP|qWq>qn}FZSAzcdj$J{Dbj|Nf+M!d;kC6`t`-gSZ0)mW5tn31{#T z3}?%dxwh!g4nA%%oraUrtWNXREc_|Uw_!(=?38uKvX!zGcQs!zN#;xfPr* zD_WknufO*1muu;i(!BbRZznc;c)I>{*O#1nJDE4?+5AHDlYB?&e$?DPvvFpW$?n4w z*wXKLO#3Gy^*1i`AzQuM>SOA69Byql-B(rg_Rjp~DX$K-WZyb-wrlUwG9{sB0Y1B{ ze0Kd7tTv8}+@!DgW5$f8GWVxZf)Zy|tuTHuDgI5&5}8BtSJt?`nzW;2lHab=U(P?A z(q*J2qXN2^th^yj?Cvhf&slfaE-y&^e8)OZwYFMVA}(|8zvA8ZtgdaoBU1Zdkt?hD z{S!-@J$hc)-4$N3*Li>4-vgH%d=(~5B5sjMflr1y{+lWIgiD=DI#!$YmTf?cMpT>pdm! zJ(AS?a|4cF+kKhss^`m;`$3VhK6?{isoqoABIlpneX@g)?=|0Q08z| z5KFN1`^J0IFkzvx=}9(OZT$sfKQ312@}ttO>DD(s~dk=J>Cm&!S~XXT;SlnZfOW52qZgb^M`l-E;Mpp3khlM~*V4 zmj*rcJn)minVBG<7=Uv<0fH@IZ1 zu-0Gyb;eDR!$$R=Cdg|P7b^2P?wOU5s5>=tWr+XRbn|bi=F8ZUH7$=!_WQ#)>*5jN z^OfZ_B$oYx;b55s@;sqt8Xkm<3K$*gNygO+PLqToTRc zxpkM5(w&;VU1HaIt-?Dd*d?9KQTe1Fq4)e956>dWRuT4YxfI0?hYe9q^-VGCRo~AT zpZEBDD>|@?0lG(E_2fy)g-3P;y}!05)OPg+$rDM5fqS1$i%zhaI@3<&f@ta6TcLTK zp$fS!97QYmU$N=6)*k$SukLs54egJ@ZgB+`B{mBJHr!}(x@xgo>gtNWmp!W$KR2JS zIb0+d14WYJrA$x~&EmG6(Ufg5&iNStv*{M!=t z&(>ux>?fJMbeOR|@_ggjD6?Zv)gpa8HYmE8+xqXCAo29b^@bG3O}$%Q8ZYr({?2A) zK~{0nFOSK7v3_S1HfBBYR^*Kq?w@xp(P6Sj>B~u-p`oq21TU{#nC&w?Xu)rp81ve8 zo78;I9_Qu{E{(CapFSvyrY^OXWUoM?)xUZ{a z)yj9C{{E}itTB3gan7ARpU>O>|8!daxOV4sKf7-gObb2tf4{eTe$6M%6Y_k$$4#X= zx8z=bcS?Kxo)3$-Hydr%xfR>J^y74MDap@=XNb?MeYPV}{maW@7L$JwI$A78YbAI0 zF3&jB!g;^<-@AMJ?{rTto%T;IYQZ5z22kn{HOliBe!H(-V%E`BM_BG%F?jvSuk7ub z$W#^g6IV~14%j{Ok>yL)`5!;{L>n$TxS`ws?3;ZLcpvx#Jd>+<&}jev=XpOJtsPUg zELV9oWzOvBSIReSOM4I(l-$F|topBM7q6_h8k#a2AA99qnk(f0$tEN7g=N^fn47CYwbfk>O1LwaBOXPh$tFw}(~U~d4Y7K8 zqdoS+=lTEtsEbUT>}SO(&fbXTNqx9}`VpET#4O*VgAU(v?|^A{Putb$2@ zQqN>~8qE?EWB>WsdyCE`g~LIdkEOn!$~IN7R-fOxsypnw-$f<4&9jba`HF3RVp^3@ zbEu{7+_!kf2WU8i+sfltL#!H>Is*8F(9wwOyY z&At1|kv_|r5#8k?YY)nn-(fua$-n&X$*n;y*RRw!%Si2tHlG-oDYW)^N&IhDtvCD{ zcFQ-co^UY7W~OHN$u%kwUvqV=*n)e0s6L$R%NnnAg#FZ-l88;`FSmSL*>}lA?ehFj zl81gSaY?$QxY|t5K|@PV&u#UsWxmp$&n{T?%iI5Jm#>@fueeX<>5~UrUqyCrzp7T_ zx0yp&OM?G~=k0B|h70nqthgBHE^C^1XGg#NzaMWlpP$Bd+~5B1m;CzQ(fx9^DIZ>L z$-F$T`rS^yxmJIl>eoAd-;i-}QFvVC((?EB1b70pMP^K&etkotbEKWl+V}ha+pTfE z@G3<$byb{se`Az+X-Rzj-_j2c4lam1Jx%xbv)TC znP8cp@U&}-`|YIC;^%mrpJ$s|>+o#fk4M}hxA)iAzwBaX;`+vB*2bIgs_DXyYti|R zg?nDDTD{}xX@k07FPBe`tKyu_RI7O8V*32rZ=cWGvu~UnDE|4`+25~LufK5m+w1G^ z3%J`R91HoK-Q<})#VXB3nlz{U3z%)*)f+D?p8UI9<6*DH2*>Eqm>6LPMGl4hh4sRe4^UfBDS~* z*Ou+~=brp&>+Q6jzEH7WCe7CtEPB^)cb2S;@1LzPtS|3PUJ7Hu|9$@Zf5vQ< zm)aM8JNAd`#jXVbe|mrXdcA&r^*752J2#)V{r_t9`eVg>aUHw`yQIyj2wmG*{QT+kshx*PeJ?<|wXObL-!@9Y2n=2V~4u=vln+xgt$dPjCX5Lr?zx1G^- z@w-Tg?hBD+Z6L7GF+GR6b~37`fp5-I~v51r$?eUShnXDR6sE z&8L$J%M=zHbUNj^WIl*9PCLU8ZvE{>^3!P#vXYPWH14SQ^>TUg^x1j4GM}B9`9is{ zGH{bmFppZ*&D80Q_hJhUvKsxDzxK%F^y$;~zuy=~9M0eSHB4RZsR2`I%;_8{7hPqY z)JxOPd1fAZ@8QF}%=D#S-@cH`QrSn`&lud?mhk(K{Py!d)tpzCS?m?Q{_@LKqmG6f zmEA{YoZ{NdkneCmMlfUE6c_hkR(T91{s z-Ysc+Z=O*z{8R6{*a@KR8wz+uBUcXWYiZf4G44OZMqy zy~p_^xiZ)K-Zr~3uYfh<&W?|&(_^@jzSMvJ|8{zOo#SlKhS8jxQ5LzswnV6uJnB?$ zI+L23`pNBpfx(Vl?{>ZZuumtpN4zlby2e}-72fQ%EK;i6{+tk={-;$bM4BN1#h<>h*nuK_0m)^bIH>m#o7-o zj4)vn6nuJkUr+0wU!336oNOHgBt4}2TJIJrWc;t=lfM`LMmyi^mcU6P)rW^47MLE8 z4c?JlXmCjB%skDAAcq2vH({Zny{i^Ax>jqPo}QR~O00%q;g6WR0Y#tBDa^SwY1#&< z)jM|_n|!>oBe&_1U)d!Cmz>z9-Nz-HmL5EIB z>#0+x9Hipvex`OfWNdM;uKN1w>y=>tlWqcM#n$L%l*stkm{eZ)tRS9Py^|$Z(yD=x znXN%kC^2+O<>MzMi9foXp14F@;^%2UaQ}K-HLs6H-~NN2_4a-VDiMm{vujZU4Ngt; zbZBsFW^26AAi6OA;Pl)1`(=BLO!in7KUF%!5=7U!{Umb{SP;e@3u49|UF_Y0oNLDl|Zq1>h4dye8Ztgs{;+r$S zZOeZ9e?OFWDD?I1eYfxTyVLsnWyD>~zFR1-tUdMfvVs+8Ae1fn_rKro7yeIVzQT1% z=9fnfbF0v{>(}G!WxXCA=@i~*TOugKv`sgpLFSalw(UlmA;Q(3hn{#%Iy38x)Ps)t zJ#M8xf3e=WvEBPC+rBl^ZpvB-ihX<)bznJr>H3sH6UTWjihmAXQ8}DE?OM9gY)db5 z&*0=h{;x087EVn${Akiw?>!fl>VHaY-gRNU^p!iA@iCWuPD~1WYx>5BrP(m4(3s72 z)w)Toi>0o*@`!~bp19YTAT_UGkEV@Dm$1|2PV?j1pxrTNXBtlr*4}R~(iavMTKeWf z;fV{6+j*ti+^vKyY6K^g|Zg*s6cXXV-jl24tWA5c;zAG*rYUMV|zt^<* zLC}}?^-nG=JiOy>WDmpMIDQK`4wER(7vIm_lr?{1F-0xiXv&)j8ZsOjcH!(1x%c&2 zcRego_dJ)sP2jv~<;;8)y`OVTuU$W4l;>gEax+XKlr?#E>B-hL=YQ+XXyTEqQ{3B~ zbyxO6-|f8Jyf$n#9%+h=F9nqSE^r8NWTv+Wx#gTUGqHML{vhsfJ3o8B;--0v4>~4kE$p4VvsiXt$0x`4 z0iFf=HOCw0)&0tpQ1bTjTJSB=`_J8Nxzau}Cw%WX(XPI{Pe3_8&i2X^`~N@tZ!hHa zRuDe*O7QkQF3&fQy7k*iC35w;n(CghSS_gPxBWK5#6WPiT9WvQG=7^83>k)64XPFz zyTmFLcJlr@U3|{cJcH(|Ki*oCVr5IOeT; zTj;+s`CCfaCP8&~gRP#6rru*_vRrbrXj9&&XP)t_tFKjNnjDx~xVW!J<=o0E^^^9y zU+!17b^73i#Zgw6kwq|pk&X&p}&08dHO>Z&FyY%DZ zae4OglP6Cei{EoyJif?Ku5^!e%-2WPJh?=9cQ;?2GHvRtj~ZL7KIk33arN_I!RP1Z zvOj7yl#aNfKEJN%xZI{lm5`?&S?gwg;AZ(Wae3d9#*`^}H+MaqIz7Jf|KIO{^?Q;m z@(K$LZ%Oi;k*oP2-^?c4dv?K{=C_6Jf|rl%;Ly*Rt`~dp%7fm2UpD*4*FL>^b#=I7 zopbc@*6p8yBJS>gZ~d#0{U4)a>~m&+Sr$Hhg?o`2eG)IGO%-8pTKVvm*Q)A%yJs)< z-}x+_bFz2U#~tV2&o(cYJHxlwtyfE5*H=*N-lj>5{O!-S|NV9CcAhWqvZ};SUn`FH z%m06~`Mlo@1IFrwUI{G|J$}p%yq};@{wj0%vgJ$Pn}}~Y^q&3b^H&Y04P6rR6~3rU zta7wTSL?s~_+$LC87Uq5mu8yoUs~`)ZR=!3vP=i7nHI0PgL_h8UE_d(cWuJreceJPH~Q0 z0UHaL7COmK*O%pvw28=s`=43nOrAP%^WWd!%gv@e6WY#t`C+=L*R-v!TQ{@b;eHwy zv~x}1j^vAOjcZxvaBELrtTEH@Mx%;z^-0{z9TXLrKvTJ7B0=Dw!NNcR!u_NQ} zG2gseKQ|Wd`v*nlC22hPT)EIM_s$N%?A_(>r%jzZ<;d~1wM`ulE*=$I zOsNykiLNj|GbQfT*Pk{;MoINvTK7r>*X)vh)6&WFL|}=!|I8l4+Ygf2oo_~MN;z5m zey@4uBbGa1d$`v|ZPn1!mHz&DM|fQ2&cerP+wa#!e}89t;oO?2t*_p0zd!Ha?JLLS z|3B~6-*;nG=;{4`-{uQ!i?4dAx+j?5?n}aBx86k01Bz z?T&hWT*-&}?S5rk>v;*fAg^tT#I432ug_oo?f;APy7*f@owCrm{ZZ{4>vBCllgvXu z-mJ;lBK@=XQ{izgF0Og?|9lXgukxr?g^Qi3>-<$-*Js~2 zEB-5dZR*YTp03{;(sn7RX{GM$Nz=}DocCT)^G7Fr&ad@5pA_^&tz2Jr`2DVPOBR&s z-O&|#z~^-%`OUj`)@!#dF?umSMJ(yNQ;>GcqGRtaneMi8_UtXNe6GG)yPvagreL;= zpI&+JL)*jO-nt6NU6A(NDqw!+ARCpH-OBbDd)n1&yB0VKDEXb!I`8TVCB} zx3j0uI7D^psm$=qu*sURBe6*R(yc`^LakEy7O(mn=DFQUYx}~3Y`)QDZ>LM(?|zxz#5gu%vbd-llO zGI*#w|4)O!=OssXwt2N2U%YD9sa+b6qBzUfOB5cGEO2bnwEy?x^X~Wiq}Q$5^JJ6u zf(!50T~Tp2nsDlz#p^lj|34|0TCfWYH2br z8tZK~q`aJDntd(7gnP1H&b9kB##-v;@8?y&vwXkjv%$K=|C?B;up@Xox=?|tCa0SoJrjP*b6G&Vgd=Gx8o>fepn zw7s&+)vPyq%;}N*eYpL7PW=8`CO=Z9oRxmcYx}yS=wqdd>Vf$V=UxfzE3mfsvv2Dg znF7)D`QZ*?9I{NhIhU9Da;`Mre3Gy1{#WL=r@noat<^s-D|@3ya`V2Q&vu`jy!=2` z*{_%BEKKW;92MKI!2XUe`1rl7|7%M1=ltOCoFc5!`QO0ypIh$k-~PJ{qVpXhq&!b6 zU7c;Kv*_lx%U1ka-WxM!yS+UmblP&TOH7d?(>JF9+Zd0=w- z)Tx7$3!?k2-&tJQmcM`Bg@+X`O(&}7Jo;Yt{-Uj|ZSw7Hxyux5*=H8aP2rV#w%D#$ z+PuxHon2r{{so11M;m|T+}(9`vEYoVg_>dEVW3-jl>HaI;qwb018|8#mh-$FfQ zW#;C+Z*OmJ-srd!G`P|C=C=AVVYY(ZW)fOktYY@Y*U#ORadDAe>@F9jz(oZLAJ`uh z?|yn}8^4WV_P#gmf@N=C1wQQ4*)(sHY+B3nH2Jw_q79yJtpDwtDjr{DcQW7WT7Jym zzb}63@42RIJata7*u|3Y?e4F3y)a5^ddqEmE|GD<&hYr!(5Os)uj8BcHdpZMiL>9O zdZX%C-`~uKi;fDb`Pe+4v$>tu`rNH!pS*=<%QJ+j&yXp0v(r;Omn3>=rmsrTl39)> zlV@z}ox-s{NY`)6hLyj!@+^A($)xCr_n8@a#}?cTJYDvxtz=em*e@a9$#OhbzL{T5 z@nGRse89)Q>z(R6h0a+n=b3~RR`xDBvpRUasd=&Pjk2&XaXW~wQD{u4!V2g z%0B1c8uJ6ZryrVMaLn|v;k&=rR)??eS|#vg^_ep~l2bK#SEg(~sPE&Kc5M6N<2GL| zI2$kfd+T>c-GpmaB`*|ioX?vpGQXH9oOP3uN%HA$JzU3mLo6hCnp8R?Su7X7y1cyq zy8MrKx8Gk|8-0EGdBNJ>-()Qc6n@-%kj&=#_|8J!=u;sR7x7Iqy{p_H{^v$=|ItY2 z)rYkMf`XW$*oxow+yC2<8?DH)bA~N%o6Y_^cVaYdPAp(~((lf@oQ1h@%9Vty($K9u zMeOsnZ-g}HzrDS+T`}5kLbG>lXlU!fhqC2&8W%ad6w{C6@tQt&Ztwp2^*>E_sJ%KM z%n>jz2fpo3FV)b*7MLow`g(P2b69&PP_i&+gnW1+-0-Synb~X+c8g_Z9i83pPCzO z{p5YUdiuPB>91GuY|p&>ZTbJ*_2145|LT!(WQseq`2OVGZBLSg43l>}^+-R~c~E$1 zkf?Y(_orVwW8d*Pb}aB+e|~-Sp1630yd&IPX7wMRh8w4!m9s2TiHNZY`;Z3icpR&-`;4YF+$Ti+KpH9zjx?Pq6a zcb)x`@cG?dKdaUZLEq_?&mVo8s^G`1nY(*hURJoHS&!e+9Tw_;#45Cs7VoLLH^uaG z9cLSNlbh!1TaPY2+Em5nQ#-5XyXm6e99L%=uMlzxG3z~2B7gT$_wO$2$1egFF4=p2 z>B~>{m-cAPJp-23Mvj@0W&e$iJeZT7Y-v57| z+jondX*T-)Bf0_T)L%`PQ(u4Wox;z2 z;*bBi7@w`}%R_FtUF3~iJ2m>un%7mKq3iS`re9Z@&m-ruskkD4(j=!_+qhFwrsV3Y zJ)NpzI{U^cmrViT%$Ky~ty;-Jq>!_D?K($PF-58ra$wS^M{sh zs~!B9KKXc=l8J@#mB;%oge8Aw3frr->}XTPS_%0Tl0C~OJe?ECw>(hwaF^Qlq*KDY zi){q8cW&2yk}Mxnk{9uWv#la&fz;DVledN|fdjU<3&rhE| zt($-Tt>D8H6&7`2QNz1iRh3?GhlD?FX4N(HTE0kiVU&Wd!cP4Zdz~i1vLhXWHkzG1 zYZ7hhO}|aa5e-X-37zWy!{OnA$HjY|ItK@ZHkQv~336pys^K4a%%u9V@rn*M@$4US5pZX4#L8BIELcCo?MSB&$XPgno4?(e)S%Such zE`DBeaa&dUtB^?vf@fDQ2z|Lm$u_LByJgz>Cz^>fMI3+D+gQc=>~H_~=koaulYV`-=bAP7 z{`>a7AD>Q-ul%+%{q*Tm`uo0o+Wmgt?%3UBO7zUa5!&U-Qw`q^wjjdS~5)q)lZHSERrDbIbYpEC*$w59V?P z6RI@#FJX;7*%tcrbK1IJPrB`Fcbo71!!>Evw%0EiR(M#MKAoNKb$xBTjECc6L9SMQ z+wU9pHmW_dyVSD0DQEr8^eyW=Z%+MlQ1PqcIhPWBsn)Hpuel%XnR(?@`QZifElPKk(u+fr}N=j z?cmy3X>K(eySmoCw%N5j^7XdJ+IC^v>mIo-MxQ-O16AUz59+Qx{c!rOe`+pP$3-Jk zWIm>p<~!DKz{UdJnOkVP8+&6=JzVT-Aq5|{qN87-Rt+h+m+@!yX~;xyW&GRVG&Q|xCv7zv>8%L~y+l1o^*B!-=oS&V)@8|8n__K4Z#nXJ-XPnI(T{4 ztK7e{Cr(uSls#+1id$0Z_F`>KD_+elzt_3{{hrT$r>E&UIvZNFY!zQtpzb9bU+}^( zdEfnQxxY6g9(HhBxol4&9}l0C-SOx>4^C}eIeB?yi}m!Cl0Iy&JLFc`*?a4}Q<(Z> z(xw|%?w8$_y?lDb^(BFR50jQ`n!`V3W%Yzw3C3jo4?D~6*M|Sva&0Rox5US5p%asX znhsyST>j|GsmsjLQDIu@WeabtDoo!0`}_V`A=6A3RbB4ZQ_Q{P;d_79-|XiPHuu#T zXI*ItyszWS8FV*WYx-@K0Jm?hHWv+s|OVywFaqSW3ihvEiaurd&iH6_T(ai%-8koywz6&W?c0w(K3cSh zZKupES&qr`=50(nyK8>kzm;>+dHfz{Nj_D~w&}XIY@)>5gk;P6tAq9btud$rjU?BZ z|FRBwd8hb%?#)e>>0frS34Xqvzn^s{%kAu|yF~S#b*j(pPz4pGhR0Dyvxf>yB|Ti3pP4fH(e9pO|_lfa9(n)(?uB*{-Z~& zm6OyAlkeD_-nrvq*@eLEKmU1MTOa@R^ACCZe@m7omi)Lp-=q0W?Ect{#Lu5T-(IpT zwCcjPA0qR;*|txfS?V*h?8JdrZoY>bDmk23O?VXDPCajUE!dPhqsS=u5Nlh)Vz=HU zj8SfX-nuU~F8(KY*g31fUT>M|Al9>tNwgEUjFKe=ZCcaq2Y0n0RbPLN$2nTb}QRp&%D}iH!tknz?225 zGfkeg8%A@PmA$?9_MXT0@Hsa*`@Fi^;xN}~X>vE5JT4_4W0~uIvWTTgPHlVQ;kv)S{(gDf zpTGZa-+g(8qhEg3E)00FJAeOU7mCgN})kfO6kf^R!;J@yQr&m<~a-Z zvZDJeGlip8+*;B9WR0?W-yEybSJUU$|JuI)FYlp;g6=Ynya6+x&#Tvy>W(Y_TlzBd zrNVCWdj*fT++X&P>wf9=x!doSN#8K;I@+hd_s^wmYiH~4`7x=Hnf+sBTI+A+z#H!^ zIKEmc-BQx~F}ZB*7V&?=XHN1wx@l1Ii2vQ}X^YtoJiqsU!;_uj&eGf+^W1#aUzL%o z^H-V0W+Hh#rkIzleygwu$ANoU+cehS`f>Go_x#$vw?E1{mNkcj3ir=vsacXMeQ6Kp zuPNIO_v!EZ|6i<6^7g{_6Q6tu?sONveQ|E3<;RtR>-PWq72R*2=vuXFZghkq z|5sg9W!|plSNg$neGhkPQCGF^nXW^B#cWiT3G!=Y1YSL0u|Ns5>`>);q>i2uMXIxxV`T1F5j1-@a~1A zi7H0C!F_4Wnv5F^~Zg{Y=3&+TSCDgg?5BKy2U zrLQx7of^V_^>Aa}?zdqx<`u4y&fBrDvisS_j4gZiFog((?)|lDwV}zOyOzIZES9f$ z(5ODY=F{%?ZvSoaV(Q}TPTkp*YJBf_u%GSQbJp*(uC0;e3QT$D@KE8(^EHf;Z7oyd z_&r-=6{M4AM_hTJ_;)|^mmQv$jJ-5?U&uX5v9$an=b@EWkKwgbxpzrs=%BKdZ?9;GH=#mpxW#@ju<%yD}u)G$e1w^E>G~ z(kCt3HR)=AU2;prqewA%w>+nMrH33 z179A@Jn+~c-8@@e^jp~hF|NiLK6{S*G`xCo*2;`sNs=P-S=dZu7~;iMO8-T8G|kJg z+x7d!wDM1)r+c%%&T+|qd{ar>Pta-R>NRV2J(=YF!B0F?xS;Lk{6J1S^QtcyD#DMZ zyRQlfi1=}JeeKtCyWiFPTDjaj=f;KGx4W;MOi<|HVSahB*Zf{bama?(S2micR!mfR zc3#|Q>d`MMs?8tI&#?@asQK-meKDq`M)3H_>~+!m3JxB+Gbbjnbhfi)ZEP8U{{onoXbt5-DdAWRkUS{UOv#VFFS{G4tbZ+^b z%A2XvADZ^uGM>j+^Lg(3n&%7K<(ydg?oXdO^5E-Po8G!#jQdd}iLc z9=}hWI%OIw{;u43ng9N;*P;U#Jqwx7^*qWZb7|_*)9Yfd-M-wd-u}`0veTl``w|t3oTW|x*uEZc=y}>!#`GT@jvgj@4vmPRJ$m^ z^wPbWzi8ox1`tJT!mgMqw;c+XZ@F{-gqZLacxCX z+}leDi%bRbyUcPs&EMYq{pI`2S4XN&-kW~jJH*QU?A%OgzV^V%S8rdt z+O=vT=y$f|$qOhcBGJv?eMLv@#YL4U>7yY>J7%K!gyeB)LY z_TJze;hQrGru%T#o#F8QcmMzI`a_QnUfc3P+<^NNx80YA{CnTmzCWy5!N}b2{ek_@ z4)>h+CtZh+1vXZHILPjL(jrFa9rxoY(l;gIo;>u3P}Gr?{iJIXeWKR>$3gzO7tZoe zmdsCOj@wuB^Xv8d41SKG2WNcDnbITi@$UPYa2XGiB=>#lk2t5;fL8QA{=IMCy#k9S zbCGpAyAoBun=Uf=LamaD6R@AIdk%36cd(K+Es9tJj_&s$#Q&(&Dzv>;M% zy5r6Umd4FL7GyW7a2-Fq^2{Oke!1wtn|qVh*F>^^7Tb@wW_mFY@;sbIM?#9k-b#=YG+;{i)zwh@?oT{#G)*fysczbvM&;LQuA;m=v zf&DwC2FcHS-}q|%Y=hXnUk@wSE_L|q$nS7G@pej9qwJ;E6SQB2gsILev+)RiIYU|8 zXmf^;3BF<*c6)2<_YYkNIP3KXA56&~*lT=GZt%DLjh9SQ%x?Oo+~ zjY0X&gw4*olh#USJ!YG^!HJ7?4ojJy?v`LdNY^7h|AVFjI+0ZTj#?83!8eSy*BHMxbK~NeDC+K zLpPjN7WjM&7F~W|y3C|@iNo9PO}9PgIsf}-@fD&WQ{u|6$Ih<%5HG#&SFdIHeeT8C z3m$qL|Gd65=hmhVo8_Cm#Wu*4KANe*&fFQy6zqSd#>A;tw)nj5_nHUH@($gi1^3lb zSM1z3AwA*^^Zc?MV%8InHSS*Aec@2uHMZ})u8SXfj?&5N?+bl>&{o8~$^|yTG4k+GOICs~DVvZfIf}>KzMy z%sH}w$$OJ4udTjF#e+uacRSki?%$X0UZq&?_clYq{FdbJmd}ema894%_b6p!&dp8H z`Fp>1X|EHwx&MNnN>Mp4H%GnTL4zAQlevDcP@c{idbCMLb9ZjJN$;^tn>4xH@6mQ= zN z&r3U`OLaD1S?l=v<-+LLGcVgO=Z2rLOrCRT%b%1JE$*v}r|sCuxcM)addAsBYD?Zs zRe!Tq+r;9|`QDI3zXN}>@67olI9GLt`;!&>kLzF_+!`_$)>ZAy+^`POzfHXGY1<^yR&?m41rRUtiCC7c1}L}>FMda zZz3P0biDX~Lry5*)h>qa<>jw4W|FZ&@J!UfP!ycKP4>C;bzhBb#!n<=egX-!rD`N*w*`XXVUm&Esu1-Hd1MEf-y> z-dDToq{?dFW$NhGt24h}@7%wCp4ZRM%)JSYy)1=Z-AsGWZN45o=kn55j;Dh43MVb_ zo2po&KPhsV1bDaw{O_2{zBpBuv%ar<`gd)GHYtr&GlObR=E`QR3<_X7dQ~8I zn~&ax%4@Do?hQ+>$j!c9IF--H_W2RNz$j0l)Bb-O4ZC0eQ7&Fl0u6Z;{K3+st>|DQszl$JC_#g16>!+!jA5ozrxf z&3M{|>6?u9WSr5`*KM>k?y7ytz-SimJ=4}JadlXxfbdq2cSTDle6iK)nJ&??pyT+g z(1;rrg+9wyv>MymFg=}WVt+ko>!wAQHYrTdka>0SKDR`tUBVlI4sVmUGq^SiyWV*= zXTH`vEtRel{!S6wlArz&m~*Lp=HzeHlP5^LlbH8wP63;sqElx7hdO5Sd+nTd_ZYX7 zU%LPQdxI9 zCx1+naew=Gx6?|0(KXT?GPSCEZpOC@&leWe{tAMr=C`j7EGX`8j~N5CcHpEe##J&%1|Ar=0)YqeVQtL@*`z0SS$y1RVRyXKEB zL5VGAE{epS?Qc>q3;q(n#6|4;YS)fOD<<@`9on$oOx^aos$RmJ=N|>8F|FNuVFPzm z)Wfyr{dQkdLY0oWxgBmvd@Nn-$aFl{y@grmY$`wCFyOXxJ>FwQ@a!{3_ z+tS*{D&|5_np@!lI|WMy!#h?if%DpJQClXm(6AtC3^hco?uJP8j?_&(9s{$Jp|cd}uB-%W~GvTD(! z-qPjs=7&9+(y*yvWy8W9Q_h|WdeF!>Dd*6<{460??r96-gwyUF)R)&(G+d!@T>j*y zDZ4y#7c@N$?}_OZo9U)=r@Y{)@Y0PbFCR%SEJ(ROQF-G!x5HZk(oZKIj@`7lZnxa~ zj^EwhYPt-n2{N`9Zr5J%Xe;(w-sa}teyv%Sy<98IiTl~pzL~r~rQSpp7o0Udsr=fz z=NLohDxKdgOEvdw(UE=OAY-k{m>(tL=X7@hhvXF%MZ+l)>wd}D?p(+iE*UtX{OY7R zJB_t^RMx~@-I2=v|_TMs) zgW>jaHoJ-lLlyN|{3}pA3F7d6Ukz@}1q05o*qR zN@FqWqEo8+zqRH|3mq1@;v0GBtM0xJtyZneRe4;D}Q5PqIm9OO4T-Q z1=Y;2wqVGn-yW{qEYd7Qx z7w<7!qvLGZRkm!R?#q<0S8lfTd%H!$dTNfB)$7b#uBkI^+M|Cul8rirj*VTL)|EY2 zJ-L3y_2L7Py{jZ9uB*+rUB7?(qV=0YmvZ`s&igTS@(7VnI#Y|m`FqsOZ(B;?$dn3cbEu9ct3ZEtCB4o9QoZ-l#e+AOpmoR^rqlzkZ|v;XEr z$NOa7{(9&?Y2k#KUH3P$m%P((nY+aJZu3s;D+#@t~TafBS;ryF&fyF{qaR%$P=Djekw(2=2CVOE{mIljI3*&pc%-vSb zm$2H{axlcBNa;PNq{4sY|Eq5-OR!!tSAEJR7dEAN|314slot{bN|!!tG=GEbo4JQx zBy19FwGa}Vxat2*2K(hY8$_30FxxPzbnO{~E63E{g)mF5lCBR4DAIDS`L>#}g3YM<)5wh zeubZdt;ZbI2)3y7DIZH4Urmfry!<0MLt(d;ZL6lW{LAZVa@la&t&aC&Pq~9G7gQoZ}N8*+r$-D zo}c5Z*cz6kxkw{*-F)emFCl6VbDjlRc*>|x@KdQyD6A0kkLy|%=51uv`H<_C!;U#t z$2`KXJWBW$s&&d=+H>0U7Ez6mi*jDBPeZy@bqYUQSjDY8w7xMi()af|;ne6*Ew60? z-78%9n-)ch?N1Dn?mD$JvUlH=kNq1w($Xz6H@hrhv%JS>U9Yln@&pMjp4;t0g6qZM)1EQ&C{9wd3a6 z50V+3HRWA3B_2HP6*;p^{`SwU5HB@3^!mKeG@anj<T+vUg}7e*XL(`jgJIgEdRA+xxpWAPk!bIo$d{* znr5HB{&~eK{wlXHiR;IYS5Dz{p6uj*@3Om7l7_;cdvi808$SPd!~bLaL2oO7ln;oqeB0U#4zd@x}G5#J2StBKb?- zUv6CeWNDLjNWu*mA%0=4~k#5?@a5QbVZXt-qLC5!RX$p|JU;+Wz7(taaH!PmF34% zLPF2k{-({|)^sd0W|y7%GvztHhM%S~yM4KE?O1w!bm>psoPQ@br8vKObu2Vw?fsNa zK8wAgKE15=DvE-hZ|>jQ^YiQ>g&BD(*M+iMd z-zP@v=bbBZkG1>H{2T0))KS3r(ejv{pS9x58CLT{Ol}?JDVpQ&e3_lIbD>jM-qQjL ze-`KZ?+jB{NNLZ@lDW6#)q#Dre}fln{-vH(pXSn-a#Pjck%w&|+d)R#l@f+Rug?aa znbY7kdCUH1zIQmfORQP?wTi=)-~CEBU+5alEV~KR5O8MWY*Ie4GsVxx<0*%#qGDmx zgSxcioEM&_z76D4W}P*&$K+f5)kjmgf14iY-Jxl`=C9x4kj2xU?zoefUDvzfh*Dv| zucetP6Q2ElCJ{UL`#YLpii!%GcoRoz;MNIg z8zpiN2ZeaIi^y;KeCA_~YD2jqN3pp57h<2ieYA#y-p@AJ8HC7Q9e2H zg-2KH$|Js7&sB?$2;ZN@EvykbuG06ETBg=Kx$EpcrD_78_8OJL;_ug!M zJ7@2e$6sfEDpUTuN^*JamUgX$b2=lUCKg4vto&4^HR0$rty_U_HLi&S``l(-nwcb1 znl()@+{?#aY{8`iii(C`B$jRlq@eh7ZcED% z%|k|&o>tyd9wha29@W|r$g$0M)`MiFhJ&$rhaYC$V^QjppWPgiJjZI*oQj*Ao)+a> zI@~iKADOg+E#btXQ%iTgT)Myb)k&+#aqF%c$~#g zuhihaasFfTy2FvJ%N}k>2~a+`W3iIj8nyL?sz2v|oX`}NFl?2VllC1*N+UM`#S zs#7@CH0H9Kr2472kjw&$IcI;g%$mOG#;!&#u~wCht;XhyoLH7D^Q<}Yt=2oT*>+mc zt4W4VZ)}D9x9dC-*|ouV`U4Kl8kU;}73cbBO-ohhn!vog<%mFn#3##VKNkkh%8vYX z(D}pM_fCF>0{=eQI zs&vd<+xXHxc@y8qOEXs_N-%GkQ@TdcC9wEl&hfu9Ji8;f%vDbmf?Rdw;BoCgr@vSn zJ$d`I$CT9e?x05(bj6yq!WgP;({BXklyBYgD{kHTXsM;e?%LCj?bM3bQd63`?cC=5 zKFeMl+b(o^;iSIE>w?_5y%+8sN&0(ap;UiJs#t_&hL;DAY@7W2$IfoAXS`D0tj^xK z$}l~KcWG_f<_D>Qm4eyoKjzJ5=#ah3+S}W^F~aBi*Hx>u78Pjv@pSgd=a==lt@OWM zt+SZ<=*~w3laDDItT<=G zwlbweNXWVM;qm7a+C@df@78%=U1T}o2%}%>+%2npqwnnQTgJoMv?8$j@b&*+yJv6D zi8QEwru+Y2=!GjL_VMY@X703}IMGH3U)1xgft0_89`&*z!+sP^Jq6{e(E#PSXbzaf!+JPAx|Lo1{ckMa- z@Xz@a*C?cZ5i*wAnK$-c1H3a>q{Hc_wmiib2PQ zy_%EGdwO`x;flB<@WK4(Ru3ot8EvPsH*h7TIjv%uar*WJpOsZ_SIXH<&;6397SsQ5 zip9IqX^$QjcP*;eHF?{n*!rdmIgg^f&M3c>U1W2y;pn!clU*MzW=x#Qzg(=iEm3=` zR%6@=T?M-d6DCL~@z~p`JG}~(Pn0{76JpG=J7~fQ!+MdxCAU<}gg+N;X>&N27%%YO zO~iJ|ZyEJTUyfZ)%zwANePM`M>4XUrCRp%gd~>yQy*&NilpMME6{;Pwm%MUkuV|0G z`7DS_>*NA|9wh}c@88>`3vZp$QQg>nzOu`+;*Xon8-J1HvzNXzZtDH;Q`bMw-KR`o z&iTwU=KdRJG%H*!S*sbjLafh6Xupi5s!AKz;S2SCJhoE)%a62~oc-KuePm~FKzK9r zhTwJTlRY0rdf2Q^_3^yxpV#MazT)*G!)-z@wKNn9XPrpV&oDD6;yNB%Hh0#ZIsUE( zAHOa1GQV}e^G$({-&PR%gL^soSdD-osFzokN)jEpkQhVmOOn=3si^7JUlt8@|)wO zavep*Lc<46m!C_3n#~h-%y0}AOuqR^$lJpsreTM`-{%b;)vH@tju z`8zp1>M3A+1u9I0oY^Ou2dfBgi}6#|%00M~(evX(2|E*P8tF;a7v=nY|lVs-GZ^+&%Q)|lJ+MYLmuAlD)4xO_MoSdBt8=io}znPi!O2zVTzm%(IORZQoO;{zn zM^-iBLPL9<<@?Uhirp#Gwr0#Ye6+*k^pl)ctp$(PB-Sf`OMQPpwZbJ(f>(J>a@^J4 zC6{bI_U_f4U}ATCcG51H>*Aq)db+Gi*BUpbn*OXz$Z+Wb=LzoC^MVhz9!&aNdH3}j zz5SPb!=0RxE;x29P8VGCYC?Fxm7B9ZWLKK)WttqQ;I^>i__3_bh6fi0C2rVuKbmc> zH|xn=@k@S4v9|7*BwKi0v1!**D^Hga?dWq4o)&)#<6G!$%KGwK*v5{hmzB?`tnM&x zQQ@_}6qn24G_f!mfXDG!S$odK1%vP(Lo0uLrg-kVW*HOWitAz!}M z?2KDmrB+Nh{6@Fa-0zUFmnC1pk;(G08y5?^Y=!~VG;Ka|lHVyfaCuABvgtZ$ObmVDm)e#s3Z2`)<-u9qWH9eZiRo4S(@d>~J4EbT zbSB^X*Y-fidQxyIXXir()^qh0?!t*bCUos@X*m+$SYYM2&1Jy~-w$)@8>%$tYfrct z|0VnVk)Br-C$`*PHe*TZM};t}g2_)*rrntP{m5l64-X#JbKbS*&M{5+B$t>UlKyUW z)~a>cdVx#lUG+H~G?lyYkk=gB8Ou)AbU!IoD!lZeZOXDk&a9I+r&=Bl@RV)VnEX~| z>Dk1(ZMMNG(~Gy5x4*eLd*^PJ^S@2xp598ft!(W~m-Sz;)_rO5x5;8!*`NKdC+oYK zb^boiIlJJ@9w8wi=jPA%?!B6uuO(yQax|$>_ldc#LC=!Rs2}3jPn|t$nYp^Ut#N}sIb@r>JB@eV}G*_wL64+yKbY;h8 zxv#(ORcg$SUNv=Q=*qXd)qg!KySuC;?$}H#JubgBtQPK%-rdB5z21ID;p1iZ?(JKWC^b#gUnL;SvS`V{=bzu+-u{30{l9)HGRIUqU6jPSAF7q# zt9*XeJWk)%R%O#6)4EEz6(O7IJ1?`A{{JXtY%4xZ``FFCLgoOg0?!4Xzwtx}f0S^& zte5Zivg5Gq+)~@)MNQI;%jDO$v>ci6pyulHNu5XZ>wkJLDcNQ35c$XEGs{Muu%c!A z_WirQ|6gyW%1@q|N~>p^W{2hG>KasQhl>83V5el%6>Ps(xB5;^(%g`OMjna#HB>rl{!X>cC~Mxy!$oxF;KOr_XXY z{LsK|#>9IMH}71q;KASb_5Y`M3P1Q^m?E^C<5gwkOZmCtwm+w{nnZK2Nj-h}-^u29 z&gE_U_U&6=`!;*~oubpv&d%OkWaM~#!_yR_m+y|6ZroXYrlW9)I@kF^bvX_T&LfXM z{@W|{Vll(EJM~+I%huR`kl;Oh;n>cXu(5!KFOT2e*Qsl*w&|V!pvhfLUHO}&@YAh( z!utf?Rcti)H*wPzm7Hs*^2PSN(K&A4zn}f%qI1&Um<})ESpVB%l@MA>VMriM_lz36$`f&%30UmFFtSEEv_FHD%vg-8hXda`_A-O z$6D2i9&JtwPwVY|^KSQhvDqFEQwkjYKPY`U@_NpU6?2a@H>FxVW#o+unp#z`?6X0+ z?4D@_Oc(Cn)qN55-(BRPpU;g=>t4ST+IT^GT}n(^6GP`*HKESN2)=iJRo46O*|xWL zM|7mjy~V}-cXMMd=xl7-o%lc4P~gK2Q(s~0qu>AbyUr2#^25yMEL)k=SD74;O?e)&J>PcvUCZyv*^Y%BG7lxK=X#$zdH3ZG74Bs- zc14&7FV0-RAyW?C&9^ za*pLxgMQH@eWoM7O$y_?KL2T)yzS&JDItq9$3%M%B--obEt9Y1WNZHaN&o++ACLPN zH`Xb9^t9P^ zw)A#hOZmIOC4c7bvOT`|*yY(zEPndMGKXg zm(*gq7b?cKX~ z?OI;_PNu#`kCGIn6j#1__3F^m%F0TOL$cOoJWH4D+O^9;L1CNd><8|S<-g+9Pb5#6 zb2Mq=v}x1Mo%4HAFDfd!qf?;sV|0%EeqAlCQ)kbLKH;%{H0#IP4ngHVGCRa$c%wU9 zly*q@S-S8y1~2XF;u2( z=;)6Q1*SHymMv3z6YA^BoA;tDdQR`BPoJFI`M!Sp_DF=IyesyQaMN?f>ZaZYjS1;{ zqEj8-@Ktv#-@b8Uph-kz z-#eOk`feQiZ#p+1^l8YarWG}2DOFV}HsURj@g{tK#uU%%DdO4M|GqK^b>AuiC zAAeuzuX&<8+brMi){Pf-4Le;9{_B&o{k8A+yVIP%cnz&ZuNJ9Hw`MNTo;!KggC(0T z&A((&zv)gdpFmBQ$lG-L-#6p`|GK`|y`O8FN#&;}>~a+eKR-P^acM$S?YGVI&z?NF z^HG=fzwh<`zaMC1_6QKujr#J^zy4R7bRNUGz5D*Y&0in4_m}fZGP?Rx7+W#=~_kJWDQ$%$}vdCaT(_j&$f zcbfy*>-UQFSKZrFd7$!!`2HWRHO85jmc;-2G`;%!yQ8z2em9&3oqzpM`bo!)$*Wdr z-FYSd@1gvJ2Whs?JtPZFZT9xtd^+*%?d^|O6xZ%~y>9ovpY#7q{?uOA(B5|GnSR~J z?%Lnq9r|)mS@fSNi@I<^t3u{g2AAt4zvNZN zRML;0QdF1N^7iz!%XUZi#pYhr&y2jmXR0%8zh_{H$SaP|p&ujJGVJbd5|UhGGX0It zcA0JJZOs$D)LDCN_K8wbG)%F0|M|Rb%#MPWlT`a{|5hd(cB!9o8WL0vtS*_k%+o-=e*QU=@3`TfsZ*Y~wC z-6-GxJ9f&E4Yevh{x%<3z6o4+zt{HX&BJziwwfe5 zHJ{7(|GqoVw))@i{r{^U9qGJqUaTjbzyIm~fA9Z)xKMET&><(4vK>ZTMLU$=$kn;z zwX-+H2p>HW9#{D^eE+Yj>tc6*$T>5^(0NP2C%dNSrWs|`+M*lR&J>ER_j0e8Sk2nY z6KIp$B_|&nZB`o=Tkc-+`qi?6?W${DPT_MAVx7&xF#W7z^%ywg z)vsQ^K6tWr{nhLv9su@?)E!PDNLSnMT`4u-z5M48vno5 zgsTszhB>OP+}U!2e;q-=DWQ&{am_=+2fzDHi3{r|iEKmXdpH-uF--7vo+<0-+_ zvg2yI{hve|^&P=BVkrp^JPh7FTpZCMB9O1Wq}J*1VcCak+e?I5EtgC^5jjzIkxi$H z(Eh&<*zJGpeP7G})lWp~c&~K(acw3|y|^7x;Z{pG2cI_ddVaw=B`!hAt6_uU*HzRG$4u)s(>!!yr8SnC5o~Ir4_u9N? z%nu{-of>08FZw;qTiX0088n7qVX@ymV&Pl;7=!oEX6OBS`Tx%pi?psidz$>~9z8Y< zo!XX}xr(XigQUxY%NmInYJcy(p0DwQkxi+dX~O0s&wpI@NEF$mE^=!Aeuh=dsq{keJ@`L`{m({ow&V^~s)Z6hGOh6z>rD-T!)VQu|wlnZmEn z%&`>i7w6r#D0v4<)Q9#_b2Ff$thBwr^DCS#9~Clh($Y0~YO`@n-GI>6?VPUxn;vf4G*xPedzmU-q3fnGbifWO(Wx z*I0jQ=aWyapT$;Gao)G!3}Fv7*OZvjd)sd*r-!Qaxi>7^PUZ`XNqOrY?h=j-b^f!D z^U#r_w~j~#^W`-8W=EIh=f8PvXd-k;afMSuK>n502LHSKy>5N9ESbOIY0%=y6C{%6 z{5MYH^0;C5^`!rvug|2d%inH^Fk>tJcW38yz1?j4U5wmYe=2QlTvC>4adf#(J;TDt z4^zX#YW{sT7BOA9V5!=|#+84mmciP)%3b;YzSV1eujRPp zUBubfbV^uAc8l>Mg)OSSQuO1Pkj+CMg5z5Dvc+J=3hxq zGuLq4*Yt&BCRdcGtCjhZq!WUH636;I`j5=Iq3~&m?`$(g&e>+Ux9lz&G6Y z7xc8t9+q3A`02&P#qIp^ZgQPGJ|DaVv$|Gue)anjdA+ozdF~gv^|wRsu&e~NnLgPU zD5V@VOnUtG?c1jFiVKhQJ(P}-GzMGqJwHwqR(_s#?d<+NXX05da33#o&d&C~`=ut?^2bFK|+^Y(hV+^yTP z-4VMUUJqnZe{`*w?_^%T)xBaH)c`H~jdP1#`_>5wId^>CU#Bhauxj<{cRQcwnW(oO zez<8<7rWe#-609GON)9WZ6b6m&KY%Su3ZqYDD&c~PZfSA&b3WE*`}eGZg)WY4>BA8I^L=10rRH*Y|iiGvXOOP*ExZO8#=Fz83b*T;Q6SQ}TfA`syzad}4{89XN$LXDq`~sWLcr?^pJmhKk zyv`^h%Yk)ejKq}=eHXQ}D`xC2c=hL~)Jg`9!w1i9NIkr;G(Z2;$*;9*p8cAn6wvYd zwnI?vuDpsr{;zhWuIW~v@z_Z2yvXtE;R&aA)$YC*ZJ7OS%g^b)tJXAfeoi>_<>YSj z18rA%zwVyhYv9-LY0VNp-Z{%2wm5ozUn;WOfA-FgcLTM4f)+SEWcrxlsq*OiozMHi z<0>WBI&HsOc6#abIHhUc?spwo=lM=s!!_So%hY!f+v}`uyWfE`%-MBRqxB9uO5PKl z7Mpl^T5bHl?K7q^UtxDSE%orzm0UOZbj6L@&$I8lyyO$}gc85}Cy$zbrhA84x$l;J2r)4? z-<@K@T)`oxfBX@ziu>83@9*xeIJ{6-!n&brartCFKAVk;q{S!hEp_M!2%J~dGQ)wl zi;Y#-i8a77@5q*)R}(|;C&I=8xTlA)xiOSDUrvkod~RW{G++5v$uyM!%e`s~8m4|x z<6h#o!#OR&MQeiU?FYw86F4RbhRxsguJ>K7wVBVnINS8P$fpuBDlC2GMD4A<-r@V+ ztla$PZ2q>)Nk9H@rB6`$zagPdDN5{4oyL)~)l8tls#fln^9w^7&cCmIzgK)|>+kpb z?H@;9-~4+~{hT?PZy0CuKlYS4`I$TMSx!U+XYtFx-|^nf2cLh~IdMzGBDN`p1@l!J z`JK48@O>MLND>q*H*rE7QUB)L55q-yt}#CJwmJTdUfr;pU=bB$JO4i{odIMIx}0p?jyHK z@%>-dw(tAC_r2|(4~IWLKYu)bBkLQ*qGjjnzHL^r=45(#u}f52AvV9cQSSUrJFe-w zYkz-RXj}5>$;l*3Il-vX{2dS3u4o=Ke7uN7L&Taz$}_OnxvuiKZ21l&X|qkWzrRIp zPFvU+_QpeIpThc#%%i5)*FAF}a>+P6j^u+jMJJtl94twnc-lnMR_^$QNJM;ZNd4n__9PyK| z4P2a+o&EbEe|<-iv>(H)S+nYXU7r8${{H`q<^R68u`#*OXhNV48wd}puQ^T|ua z;fLVL8~6Xcymx$0}6f39kx@-gK@ z{WsL)PCU2&UwP-~xw+Q$pC-?LaAIsCc}KRC{|r%e!0I>s=3ZvGDzr)H~?*A>sdz*(c2x`n>OrV=K*EzW^S!!hFg0;=aKyheC`{qfAWq(;|K1x zP~N1eO%pEd2c+g0i0uN1flh}!}ysnyp0$mPGpX&dAug_3% z{mc2B$HUj|?@Ryx-?s1nd!gN~g-hm=%N=E-&Hvy3|NVc$S%q>(uPtS7Z`J?aUcdX9 zlvrQ03;WDR;`@Ib1r4p9_?)-5RPw=&N zsm*zN$NBTFl{>jzeT@|tCLX`AtW)ZtyWJA~ImX(y)d^o^dez#OSt5M-$W9qDvDLJpUeDu!K zX_vXNS!rY0*Lkwi{beRIE&mDrb7;(ra=EB0wt#Dzlkc3f0tTWBUK&0wn>P8%R>wKh zPrs^o(R%%QZ+*VtVWnjkxFW+6o&L-c>sHye&U#Pn?Rg(BYo+T-*{9C4O5M2VOW)7a z^JG`8vOG0M_1TG)*HoG(PmquUZFLIJ|8>1+s)UZg;pGpCGrp=^QMy(rVqqoWY%6%Q zPsBLwvnB6}d7->}9(8F4m{or|sXlSt*Dqf{7e>B)pW(W8?ON9=#hSYlPA$m%dXQb- zC9ZXw>y>H$p5_00HZ3}@uv8}{XNSPf?j6(C?S5yq#A|w7)yjZvMMXs{vn${2e12g; z=dBy;_CFl&q+DF&df@Z1UTJf_pS(dzA$wSgo$T6gE0rE*OFuWKbN9c~@&B5>1&BNe zaChP4?Ol?w=;+jmvP$cn=JHog-B7_5Q+hRY=gyr2G44Ykr8G|G&QeZ?=uqk~WRLq~AA+Z7eI8 z9xh^*ESM?#w97|#=KS}^wQprKw%315yZvy2Q#V)5&J*i-_M8`CeeNx`|0vJ0)?&MM zn={e>4qiNZN%;E(ld$XS#SevLX?b@4)K!R0*;y}gs>o_ljg-pMkNa+{+xoD1xB1Vl zJGXwGF){pV%X691Il4M0PSo+_Jrc6`zG3yUxhk8du!KB1bTsqx&N@NAn#60?Pv=yg zob)B-^`o;Fimel;B?w5`&MAMc8F5|rxcKji1%2{cC+%agQFr{vvmxcc-G@@Ej_J5K ztvnT`&>5uS@8LDUts|#+om$JcfRAc2e9Y!&7q2Y5xhd6Se?W>*=uVeCT6vFF1t*0S zShttEdz9xr6gU0 z@*AJ-%G_(^wtRE>u)2ZA&T0DbeQ$*O@9N5G`^-5|%<63B^V~tM^NG-QA*ThabI(8i z@Qo#U_UXo+;5Q*Pt=2;JCrtSMi1}|_aN^!%%ZTzt3a1WV>ul;02+Q9mbo)xy&YF%* z8Xr^UsC}&CIKE)>>hsH|W~}NjICkubQD`BTO@MD;iEHr8%hHo<6YMoNT68|VGa;fz zA}lxQ_z5McZ4;MjDs7$nHZI*fqtohIi+JhQ;F%Wt3U%(BG!nhqzbipW>h&wH4Ih+q z+7#wrkvRE8L{LBX-7IyU{f}md`h7a*v{&E8!1ZXH;5l>M%dhr38J$$g-LqbImf7U= zYngjKH0&sr5a3sy^eHPLek02)_3Nohj~s6J>EuO~H)(G@7P!mPdjt-!#uv*cQVcXhHw6j_~K;9~029QoPt&h}{wrrw$Dc<1Pi6{ps$U&C)Vf8C~^yN(&l zItMMZ+vi`$$10U+Q(|21Uaz(H{a--dD3CJK%MH3+G)POCt4P~;P4Fnm1gJ=DDh`ct06COu6FH8fVfeqB2$boQ193^snZkJ9{_9Uvnc7wWB z@0{;Uv0*7QPwwR+LR9Lq$Tr+frG;`vz;CcKK^)ZJZ>|f93xz{>pYu1(Zn`Y@82{=^vBBbNl z<)RSn6^`>39TRfnPwwLSG1Y1Rq}e`hx*fB_bokyDhWc0ND-YGgtcMdtFB~C3sW}roW8;*6>Y z7RyadbRpR{XT_nZ4I|I;JWlxB*oO3YH(SsT%HoK~O3{OXq{xxJC})nmAz!@cRx53c=cK7!oG)^Rn1{YkN z-b_zkt-4(Bo>B%^R`~p%XVNFE>z~Jtg@qr*_k93ek#X?VhK%PSC+}F= z#b$)LRc}AB$ebtfcJ$r-529@6*2w)m<}&MBSm6ud){qT48g?_ve@^*Wdf9xvO;JTX z_o-9K>fwHK?8Ae<>|6I_*Ya*7Y=~r5F&S$)`dwu+*hQ*O7H=}dC+%-Q2?Aq)S&tbmp+I9I5)2$m8I9x8> z{`|<(1uidNzU)+gw5)MjQfsjG>?v$bj5X0AF;gZBceyNfyEO0g!>zZ(-+3RosncObn4XU5APL5xyl}@mU_;7`}jIu zmuOWLKeluU{)chs?iJ%JbAqa`{C*a)O=d}4b@c8P&&>KnG-udt z^a)$OdN=#E{H6epxyG`-weS2-sZP&fp82?WNr3m(`-?-$XK|fXxBJK`qvv|>?wNCZ z1rzy-liF+EHL}YI{Bt(AAu%t__tauXks?vcq*U zTb}D{tcc;5z_BNr)olOv;OkpYo$7KmU#w`uo@Ch*D3$rUXwoCg=~cg07C(JmcgSd~ zdWxT)Ms=^F<;NI5W8c>=m(TxmRKG4RBBbQ+r`Ps>9`Y|Xl$7k>zJPmGs{Xzoj~@5i z-@AA3-3{BfMj40R*_XYUaeDoZq>qb^dfaWfzx@3B+q=`>``3M%Tw(KX=lR-qr?l5E zF-e+rv-UxYJgbmbN{;^CFPB!Y-?uCI__yTavnJknDBE6icSWG-=jZx6{{4Er+;6Uy z#@&;ziyvuhsD0Af+uOT#?b^j|yYc5Yqmz7;(u#Cgs=k#vytmI_a( zI87bv>~8eXwMvUvd1+TMHASCGVE%DTTQo)P2-@zW1KNo_&vY z%Kv?G$+eqH{aRDM_ukO>sQEE$EZ|O^U{I_mfgvqVLvW|_c{?P|lWXj|oxH{q7%iP?z zzr&uZU$J||-!C06cgFkv?BCZ71=4xyS2i=gN}E*@^Ss0Pb&HOrg@Z2d%^(Yze_z+v z|NR!7|43*_w)wpZWvxxMwR_{{HL}-yd2vxxJ8X-Yd1}7*MY;Mv`r+}#U+Zh$+82Ck zw&8iZL{?UI{hm);b)BCX-^Dtx2VLDDtue>ceEXj-%k68QOmv@6q?$DGPEE=T*NGWR zmM%?w{j7KWzF$&7dqMM(`@h}Fp7=BI`OKgf4^txN7Vh0$QT}x||Gx(ZKR!Ng|KU6T zgSR$2YTl)MDtlvR=RT^ioNGB>SYB4Btny=ye(kgJEZx*SCmXDv%;7v+ z#5Onh-YXwB&FlI;sh6{@9|*VUFSXuj;d0%gxTYYnuPN()4c8mH9Uu4COWxgVZ&|r$ z!dsS^!sp_(B!9#RPu$dK?>FVL;fEN8Wuctn8L8YXO&-Bk-E?tQ(6tn=iGusSUW-0&|NF~i|1Tn9Vs$U$_qXhs z@47rnZPn~Uf|plvP5vt|A!^~O@1Qi$U;k(E#18$vuUjWSHOeY zLMkErU4{D`3FZyYJCDnI&4|*|3U5j_QFtjUkx{N=EF9?nDbc?rK4Sk=(P7%~>DF{i~|)&&R~QYm0pn6?@x$I-eFgCb<2;4+g`W zN9AcRceKdlF!D_E-lJ0dT-nKTr(L|m)e;e-KDpegClil{t*sJo-BtZ=@A5@+u8Mt* zo9+COn|oUFbpL`W{D!=V(|5+U9@%WiUHjmrOr(ce;GWN_|8kzDhEEoFf9_@OWf9lU zziaGVkNzxP9n6%9%kt>5i1*4KaU&R-`lx^?%v zUEXu}*VhIZJU`UrH05~OxmliXj&li~@4TJ2d+mY+56;*B`Fq*lcJH5EPrcX2oVxsa zLpxJ{mjBHco3;FRe3-uf&(rz;zNjBIko(bI|L2LiePnEK?<95U*PNb5gm+w4^`2Jq z(mVdvmPFZgVdneRrMPsSc<}h&p%n)@pEKWP?LYru`E(Au_OM&`?!|3X`=)ibbZQl+ z;&nk|_P9r$Le9TJw|%MmBB$WX{W+*5dg10-t+rcqeyeXgFXY{n+bMSG)BXuSUZ=Bb`zx;1oTB}m< z89Pb;+`P*=)43+~IKNo`^~RG+X)_st6@P|X2XPfOW|D66V{`cP@zW?vn`+9O#M})-p&7O6Hb>kc94lC&$;TxVldHP^w zTje6&Z};|n%e7lxkUHz;v5?;Fr@P%V#7?U(S~V>(b6VcQo#%O8?^AeH+S#(y@Vfrg zS!)U;f}32nS-mQm!u5OQWY@k@j~@=v?+%>(b+~xG#XSCRPS!Ezr3_c3Z2nu?FlV@e z##SfZ*NND$V9}yS?)HBawGy+ht=akIl6PRKw`67Tucb{Q;xngN$b>69D86l$|MS53 zyxrvs7dGVG-KD*5htgb*TfG&lU+p}gYF+-$#ap|sJLJ>n`TuJoD#5*vprOVI9TqisW_ORaj=ms>CdVyTSWHrvNivRvuP_h8)3p`qrZ&9JDqiI zuS!`^%v+m{I~%W6PD~P>EmV8BxV8HDk1g%VMJ|VekMc1***X8?z0;e~* zKi*J$d^Nvq$<43k2M$F(w2$Z$78FcBQJLeoEjT%zt?NN?MN;J^6C;yd-A67QR%!58 zbiG{R#;+v8Ba)Nc`DE7C?C)>xcCUFCJpb2~KR-V+Gs?0HPro$xHjfTpzE|zD#a%m2 zw9Y!nIqyf%iBz#-vr?JM3~#EBTw5$cV7B$yBmqFhn}3yoR!PNV!g;LRj_2o@@nhl@}b9OADoq_ zsO$U=bT8<|WH;qT=X(ap&(7?v{ti0b^T*~#?=?<6TAKf)O8eG-NjIVO!ZB-?ELpN+ z#g2_D11~6icoF(7Q0RF|y2JuaSE0%+3lmdHzaF>ywsF-eEy2KpB24LW-DlV=uYEl| zUEZ=r#aw^;mNghE-n?8s|KH8?b=wjS{_(H(Kt1 zgYQ3gzm|V_YyZF3`>$QU4r-9xse7$k`%vTCtCh>=Reil0{{8Lk_9=X#7Acv=X=ir) z|Mweo5%~L$6&q`xtOQ+f`n>*M`kRIsuQvBgW%=-==6&^j=YQ?-4~z zSa_MReZuB*_xD(BI5h8FPLhX?zGCq<)jw`Yf6g8Ll zW`6rNb^o8xpCvW^jdqwePq;lV zYpIgr54ovdvgh0=i)feUr&HSNWlXa~Hg%<*o|b!a3u7m%(ZbHh+19(N`mPJSpLt*2 z;aGFjm5s^AcUABDT=aQ^=EVByhP&x{4(~plF+R^=n*BQK`MJ5;C61HQo-DL6ofjBv z{OWZ4KO=6tizYS?e~3$-f81~XZ|nNnuO}w9ftFLQefVNm>f^Szx3|5&x%u}&_IiuL zM-?KM0=7FZ>dbwZxQMTP@6o*ru2gK<_;L3AAJ2sSZ5q=TuUn_LUWtF@4balNbJp+w z9Jc>+__+PQkAMEyJPBgwlgY@l+g9>&YO-5@;-;C)-rU^G-ub?*^!-AWpA-9QQqIgU zRN^(t>aG9#IzI5^YK`>=?#kNLytsY;-?`*|+pbCRsiCQrm6oqM+WF<{KK^`OY5H8_ z)ty#WRt--j`MX=QuY-=}R#%+p(^0^yQtu%dU-_~%I&c5tWy{>8qT89-8qf1SdZ6*8 zD*CvWuVC;kiNepHZ+i(&2%aN6?@Y!!*-FhDdgW%Tl{5GKSe_JT!LL`o=j!+O_y2=d z7Cx9M#v7O&bY~9#snAtLe}p|(tc>D(@jAEi&BwLT+iSkr?`IZ$8W8VaI#np~^2Ryy zzo@hb9};^0@2P%$<>!mXzdwCu{Gac3itAFp@{bMvt0Go1|KVTjv@D5JyvX(N>4`fT zA1>|wb!6kSTugZ~bleqw)9q-y0qjJ4IQrr}U-ly&ddtGwWR=U*FoG6UAjh zo7dcRsqGV*JiX3A>7w`L%HR6*;3vy~3K5a`Nw4+_1WXcS<(a>V zrB!CS&_P?COK-Q`E}ZQvmtP_Khw-fJobCDd|J|$3{(ErF>UDd#>aG7gT(|GntNDN5 z{Qvg${`X_j`3jCFJ=orTJE6VvVc3b)6BHFYU%tzbH(r7$FJYLJNv=@u#OO#9fwFu{h@AV)4)>fC@|J}&HP^(Q!(XZj+ zrk}g-|9$s5{{OF2Q{O8DuUY-u{mDv?N&CKSUH|vn_5FMPe!IQ@%Tj&C&yS~0f9d@H z^9AL8o1nnRk4x+SUh*}++p_HTvSrEp|6J9t|8iJf@mQa1_3yRj%I9Yrm7aRNeov3g zyII-m4&LYf8ZB~r!o$SxA8t%M{4h}Y=n=N! zf2>Eky?Q_Bj@Jtln%6~beI|1y4{5du||HZ!ts@>v`FP4^;DzZ;ql9yp<@oUbE&Rcwvkp*7L8fWb!mi^nR zzGr2}&ntNy+r4kz3OMm#*>a&S`BKlgtRrQ*n$temZade^$s?q;XX)uvrvje0=lqh< zE&Id6D=1GkVk`-eJbN0lj)FJHRTlYgheVM)2z#t^&X2lnrfxym=i zHlnU;&G~=*scnf1xD)#`#$_^;>K%yGdhUtd(DHc zLqQdP%(J7uwF*yg*qL{%CamathH=SPllm{4uZxQvn9QGVQ>4J-^1L}MN+z&vw{+>5 zRdIJ?1AG}z?+9Ki4jT)2TzP!|#^;GKZ8CElMKuLK%`?AWB^;`qB9{?&#E~=F?boK7 zpI=w_t&Q0Ds7*RgLr3R}%GZS2!`+Oo`VTvf?RJTdjtXq5`gnAD*t#0)DYNVU@?Jkb z&z3#iw*MPN$CZt6CcV* zYiemZ#dYKd{Hpr2-v3y#;grAc_P?*&Gow(^XmkCqKlYNIkB{5eeDJUTB|Iy5;;nP@ z&Es>eU^6v1EES=vc>#F4w^7q#3b-Fq_H}?NO&?kG_ z`}FB|yMF7bbf0;xH}lBm#v^>wABXKOd*}46^9^tL#)5}VF`wQTpRarLc)q|!*&FgH z?W@Dr&oihywDo%2bKA`4ZvUs9=qk?5x4rjFb32>%YgR`i+v_J*o=ARI$Dug$`W%T9 zY#-i!cDb9zJ#Ry;m(hGNn;_mDnUDVL-1brL=*kiPr>^FjnaQ4y7o5X;)@a3S9rKJj6p1LrMP zxgSTC7frjr!S}nNpn2}PnpfAGj#P5k`K++8{q=qQpWnZ}zCI{xC9+6MOOQ{p<&p7^ zRjb$k`l4>Xv*2IMZl=GH-7P1sc~>h<*)(t2K4q2PKAKx!7XHedsdMMxrN^dQS><=V z|FqFK^73Rgf4j1T_)D)=%b6yfaS`*|m-qJIq(!STjUBYxs{d}DUsZB?UG7`8;z#Gh zFSYIcG9~$5-ki?`u7!RVk~)3f>G%IskDDUfuDC-Z;5p$=biSkVyMj%Cvkr#&u47{ z&58M~j?L4r-u&$F@cX=7A2PE-)0SFaojbWvBlecmonpVj88TZp>n*LmSZP(8Sn=%f z!AHD0$GG#){qm_(hoj68!K(z;x^@?{-11iMa7yoZi^PmR$KF% z{`~*;wySvz`}X+dZBrgUd%F2+)I*EVxM=np_P(dLbT%JpT|KIOg``u>fP$HJ$tSFY1OrQhyh{^rh|3%4Krzbwyxzv%pm zQzt*n+&};0llfBjYicLEHtWpt_{he$Bu{qwhoBEqddB&B8#9mXv?>17Zlo2|_2M;K*>jv=iLbnkFC60dOGk|*Re&rmM!o0e8AF}BE$WA&h+Ws-?+A@DA`{wiN1A2p6~nZ z%Xf>nY!uWCF%S{CZB&;j+1uN@X!VJFG2J*3zV_Ktv$y5lzIF9x<%bIke=&c}*x}O0 z+9maYy@H2l$;PZEoAVoz!o0n^HJU$m$NxF>{5z-i@)ef1uUu(aB2XEfovoc`nEZ?9 z$gQpK70MGSM|O8R7uW3kAN1(R zDWURjuWvr*)YnYs_Sz%0`+3xoL#;<|Pf#enQhWZ@tiVT!rICD1JG$rI<*mNdp5C1O z(xqooBzwlX1g!}^$CMumTd#XKtCCgu**V)g(l1|f&z?1}efhf0)@LSFs!fWWyRq+_ z*W?e~0Y5JBP6+9%nD^w&M)S{Gf+w`RThyR?_|tv)QsElGdA%nR>by0wG%lx~|8>LN zzUu6zR8`lX3VNE;jIYg8ooDQQ!J)cv?z#}aB^|~-H=g;Ze>z>LzHxGAh5oyYHQUpC zUhb8Ti!v2mz&@{{I0so;vb!>WwG&axWC>_#_?V%`W?@+Q0WdGk4dq zL!V}^ii)nb+BK`UB|W9+pXg%g@bClgCY4t`4HY-eGd=$QsP&wAax>1F%zX2X*Z%Vv zV+)qj^78t>uj9oJPn1~i8li1E*~6mj-K~=)YNth1efdIw%ypTsnQ))INuk!Y|WQWGcU24VSNd6ZodgJ(^oXYF5?6 zuSxnMb5o5^p5#ny_V^cYVE4~uv(0nwe0lfkDlf0QwwBh04ehE{{$%@3S3KOW=rC}>MRcru8& zXXypupO+?vtjO8MEO@rzwo2)*hjWiw<(w^=CwxS<+w)n}oApn7PHNWkr%(ONqH?%C z`XJ{|M^~ToR;JJ^83E_$ErV=9848FxpfYO zDKURNuy0#|+iV}FDpm%j=a)}Tu@EkJJLm76y4cg4Y=!$mp_E{;cx$o}&J} z?TW|Q;~~}`uF6fk>CI?v9CFG^C&YF6>IZVuCP%;O`5_a;Zo<7FtYwmrkz7ie#>I^X z)`XbIbhaF>{{HT8>Al#m@8;Yrj>zcg(y!@SsIshYja;YGl*xN<+V$Gn)+U^;&iae_``+HZzBao3+Ob``td^ucnj$JDsu#VjXFZGJe*WjHPxM|WYuxQ{ zsWXT3=ZpO{ALHXHKej%abSd-lGT%8Cg@;-`3ak0ZSeLzV=C}Q_`~DxV&`tjFu2=Z} zxvthYmAU~|8{%0LhSB8n@&&cQWV_tZrAIik1E^bJKg?$Ic{J3So;2pcRBLm=5pmB z(b3(1Koef|pU;}_|GGAR5$DwCc@f8w?>rU_j|q&5+Liu2?@9NGpK+B>MMYdD%JxYb zw^>^_ohs2edFMjngzSpj_SyTbU1o^PVN&X|dzN!?J?HGl>2p6=PC4gSI&qo=pPyXG zf~%Rk7?U1|&Dps+Isa>)@;SW^(x#W2+u}H$95!W;<*$h1;<7PX%38?n5Tx8JGK_D&8Af4wgG_nCtm9Cm5; zYfX_;zj(gTf<14V@QJ&-3g3JC=j}W>E6|G3?pNnhf7?yZCT~X6CY7 z`$dNDE=8Mfd~uEc%&K|JZqjQi*5?1+C3{p=@$_Vy0~5IwQ=?grFPboSj^$sEv$OA} zre_tn25WwrdOf~gwp4A)oVx$N@6WfZmHH%F9zSc<+nbx8-~a#je)!s$jj!&8g0?B2 zn5aC{^!TI1Pdz`1mcCnJ?Nm7@>e~7{CUea16dVTcJMubj_xp`~-9LHO=}vqnWo}K< zVVAqi(de?+FwoZLjqJ}m>+Ao%z8+Vb>yr5sv`b7nZ_mOlORg-}6gw?+Nr2C|>t&g# zFS{bk%fP(2ysIa)as;j(QxCa$k<%!x# zm!r03U43}C-Mv@Ryo^VCl3D(}J$v^2*_wTQ-{*7I898%}Qn@CXO^o<);2$$+#pcA4 zd%qj`Yd?0!&#_6};&%UjBv;5C>yi9>Ejs_< z$^GwkWj6{JPLPn3XknSXM!I9C6Zr_q8t;{{Q=|zQ%Wg)dhW~&B2e&&M983>$VJ<`AQ_@nD2fm?TYtL z+wA|{Z*zXFXu|gHr%&$NGc}V-&d)WUDH;9UA-kAIx9;lVBKv~>YhG1eC}#NgYx%L~ z^CP5RbH6w!)11i z;GgXEsWOlDn!eAyv%~Pk^{ZD>{<$0$Offxm;NxzS@^>*yNPck@v~1lCQE}UwG1G^W&%ZJo}<2241t36z^=w3=Z^Oz23fIiimZ?+?A_VrEJ}^ zqIAvA8xNb=Kkzy2v&cTS#l@!4E#gh0d-(ZhXJ=RcuHsdG*{RSrC*Yi~`P~#rwoSHM z6wKvpyIwswGjnqa-^0Y#gB!P7?N1pyWm=V?uFKamCHP@ z&D+tKQWksZ6^ytz*sOAFS@yebs)O*Ph8uIkWXrlIX)z-qZiz zeO}a5$Ij%_ZJ;;`8OM(u%TOu1eRq0~O!uMf`!`h`nXxgWuhm!j z+o~hyW5PWTbU6H0t9Un)`Tg2k(yP`f=)%SV8fvBhWo4k1vi)|yG>Y_HKTn-9WznXiu3;%@QA%?8nVFJ?Ni8e-TBp3;zW-w46}Q)2b^d^pstzi-Cm$%kw1 z{`l#mHiOw%%4ed&wyj$w#X4;CJ$yE{UXQCj>!mi~tKw4OEJJhj-(_}U$lZagUYDdSr`yJ+6$ALkp}HwYdVKW8}g7VCt~QDQ$PIPJ|V ziL99K%>Q=Dp&I4<8BMj5S9b-ASYOqju2*%B=Rvfyt7GStXCW4k1=@F8ZVugkeO`0H zy|^_3PiFn*y%i##YwHzoKC))zY@ZpTyveU8b^AY=V&NO{XWQP+luPCfSY=nLIh ze|LR+xi9nbvfAI#_p3e}lwWl9Q}+LV`Jn4}icU?MB$UH_^1`;Yx3}foYO#;4yn15y z`(3}c-OdwM4W2mZ(J%eIUq0>sdwYLu`Q6eT{mt!s`!;`?Ykt3G^Qx+leUI%*SjHF7h<16tx2zA`I*cEU>=lK=a|{q5Vg84vp07O!Bn`~T;2M!+|A zXN?D@=G%SdoX9z~gJt`wRcm&AK4-oEU~Y8?w5dzrKqrcNl-O)}J2L?Y?2sHw|mn3&MT3gv8A_ z8hQ3FPc+S4qqyPM4 zFj6!LSfubIDvD)7^}>c0G3P01fzDYrw|3;-zUHmBQ)P;Njy3d5?JWH&nP zb8&Q5*~iZk5!kMhZpr*X=$pWfXR}h3-NTe8M{iC$yY21mvbQ(h&Eu)pV1L_}Ase?X z=jPYz@%l*?6XNbwyhdtybeq^*>+i_+Kb_&-U9+jukL`C6TnR(}XRz3%Uc zzw(j$YAjD@rc3-`T(0ncwqf$GMrQU2D|#i3-JYC3?9JgBotmneSMl@d^vBYI=Nsc6 z{;vPEy#ANnfnQ%=@B1{hURz7gZL;>fy-U5PFNzf{|Mjg))V*Ks=w#(HrxvAYmwj5; zF8Auqt2xH$@1|%5NA6iG)7~z8?#4Z@oKil&ygE0VGoCq=Yt zFZZ_yvzmRpv?WDJafVD>y;EKJ=Eh*_GM(Kn&(|^cH7`GQX|k5&Lg|}RY@!!SA2|N= zi^l0z#@{|GS2nA!RN?)`w7l%e$$5&=FQpB3cD5V|XimBJ?eDYIc?VX9iwPO-+@>+@ zsBf=Z5BprZ!12Rk`QH*!5uoyU*4Zj$o_dRIi|@3a3XYGz ze`V$62`d#OfBm|?|K0cB?qR()57%kv7ulD+xuIYC)BDDiD=UL%raa|f{QHn?%c6%x zkB)R!e}Cs%)@sA^y)Ry|TG}@4%aoJBuU=(oYt6`(x+U*wf6=3>g|qVBv$M0Ut!_=M zdHig}qO)_YmoHu{tSS3W{O!~mk}2Ugde_%H)jqNG!o4mYeoo1696vAHe!tWFJ9dAa z?WDWMj=4Qq@c4ND{x6rjU%fh}eo^8SvtvN^k;wruF@HM!Yl==zTKe?q(~6QuC5exX z)6V>OX1-st)8zxNkgxe>mU((6GLKKKj^vueCh~bgwvuwpmJGpJJsYdH-znk_a-Mh~ z-o~@gJ>%Qa^&93&=k16KoN64HqI!;v?Qp%{pQZ0=f@*v+qs|ncDo(!@AK*QuW23{< zmF_vt&55oZ^JHx6T++jfql=9e^j=u8&cHd=E3jBdutQaC!vw=t>8~9N%brZ1P|3Ya z$aH7k)y8ehQs#wut>|Yum+a#@<<7#cxrh6VnYp@LP3mq&bxrF~->tpsb4dN7ryf3r zT%xuoK5<2OitcWZ?rP#+DU#vjwq&02X$xz=AbzjQef1GdK~+NAHLQytu^$yaWGv0V zV97W0>#2o(Q}5hVp2IVv^{h|lo+c~rx&M=neE56PcGI+@t5YK7<|kIO-mX$;W42a0 zvoUGegCCay6Z6li)avXyQ6QDHy-kqc?(2zdd-e!ce>cwv>pRM9Tj;D(z`5Z=vjj^xjbvnF;zEbw{B_=3z+c#WB9(qU3inLOOFLMK3%rY@OG1$x42$P>0TXf>lfdDPkJ-OE%49f z$j%N6@4PeRDkYP7rLQHMPpH+4tMSy45?;jV!6Q9q<6hIhV&AOZS6%a%sgWypG+g0K zreom_zTImgIYmru>OVfo&ezJ%lKuQm`)l-dQ}zsvCC@)4bzJhmKEj>OLb*tI^J~8dyyLWROG`o3~=X~0DHgsZqCwtf?%f6FA z^EEX(m|x0Tntgw^`?UhY>iFDSdsfA6G?}BxXgJf~{_2Gr4`*5jKfI*)Y%^Dia|W9&x?FV?TyD(bMdT0Oq98)aQ^lz`8FLHD>E}Lalej@R(D8nuG%9T-N&Jk%gJMyJ3 zb-Rg4uFR;=H!^ET7TY+%*W?fl)>7!qS8F%Vp z$)!!aMc2dYK5Ng}W5iZjwZC`6JB9VHUcTI#{$^f<#rZ6sQ{q$fZq6;yRp)H`u`)(n zhjrt0Be`@T?MckaCb7x3Z{7;d?5(Yve`CY;?fvCvX66Yww&z;&zhmtbl=8ee%XaUg z^A)eGcU8~X;1F%_`t57cou6Fa<}43qX?55r(`vYHcU<_+5@yFE?oXQHjtkyUMM`dRrq<_MD9AX7rHyNmg}4S-1>Z*`{B7(UthXB zUuJ8T^-$r&Z|91}tSiTRS-u?gc>W{P^>n^`yd|qcyXwDF_wIdYyc?U)<8ZoFVcxX2 z9BO=~!6h;eSPr&wc&GlH?R%_*_2{eo5UC#rUV7?3u@7K~U-fix$kX#YcUCW*Nlw3xFPt@Qr&(H^Y%cx(y??%} zO+@{R3lGij*A(BmQMmnH)oKAj$D|pF6FzY+KU!rpL5D@}uy`N8gN18~T~?c8Z^owd zCo2}+zGtretDs>b*N*YVrJ+LvEDcklEnt=n4Qe7V(YlByoZj&sE#L3d7k+q85~Rn{!V&;n(z z%WfWCmy6~KY+N<7M=dE)x5LfcH}UfY71Ja(zA~wcUm5g{RI6k@cq8V1V9B{ji&=MU zNL8D(afhUz1Xs$LJs!{YPElj$t7tJhSuiKPZFN@FHwVA7sZVNHp1utE5HP>`-_G*z zeZAhRR=L;y`#fLXJWuCTd6&}(2Fw4dZCvSRo?lwT@J3R#+B-<`de={dP<$rG;nHFYMj9PC?YK5)Y_}c9D(7sCAtRR?7zLbQXC>K zyr)iCTq`8h)Ytj@%lhxz>$g{2d^G3IoJiyJk4w}S9r)f_`{lVRo8teNteNUzS5D`4 zxbN}wb%^ZXon$%r_gl4&^E--uzR~11sYxl9Z)&gqJjaPw zv6=VVyIk9AH!j~3bL`%CfBh@V%FyIvJ+k&mx6aHt6y#v6o!h!x?&kiotAJ7 zcP->t7PqQj%DVJf)2_SGeWo(6IKChK^KZebr%#?gz0$Kv##AvNkXzY}>BkL^?a8j6 zrlyBKdv)}^{!GbLZ7-)glwY56ecru!9oegzKFOUHnmMy%`F?AOkMp#+#BZpy8S%R$ zT$|tWLFY*(!<&uvrEi*xFNi(vwOYMvor9LY-CmCQibBshSDe1lVXic<>cy<=fYNJE zgytGEZwfwi^O)a0%g@&5TfL`EJsA37`Twjun@b&+Z{9i?JngQjk~;q`DJ_1PtR5HN z{r3Bw%qpDxe6bCCzK#6dZOQxJU0&tZyXWt|paAd5h8LXu_9>|EpOdXudc~!^^Va9$ z4_%#oH!{*!ExsqRxIplrXF#bU^G_LbooMsBC6_0udYkxivo$YLnptpk@}oNihZU~p z+hztlWH|lFBTzYSi{Ad)b62lVb!2p4-}51(_ORdK4ey=wjI)?apW)1N~p zCzx}kh5mY-*30+3uTOo&GQm*R`TUyQy*b0*aZL#6qo6>knQSS;*T70kENn~-{@??xNj zmn}^~%@rcc%@{AMY_wauo3$tI#p@&a+#=j(#k_W~AL?x|ep=ze9;|vryj!F8tWKL| z;-L-8@ZF0S!x&RWKJ(ev`@^?O%3$ubHwhU&YUud`XDda9D zS-9Ah2Dy|g+Sj-2eJ}B&qq2hk&Altz>RfB%g|8;LGR|w@Oggn|`>b#8?Ja(9nl*E} zh-ip&o@Mn%7oW_zmfOV5^Y3ojwQ=*o50c7EVGAd2D9g#wTcs0I=04GmNpJVEJ)2F7 zQrxGnWBDj$KG)>cqxxsheEeSI7csUb3#l$#@uMOmGo!2Szxv036OX1E|CWC+^LBKo zmr1~s$ZKjb0YA%422xqnak+d+%%fj@kwku-3>uU_GZ3xG}v;?6c3t50Y75 z4kXvdY_H8VcIg&*#Q&rA_5Ir$Gpn6cyWGCK^YdDB$0elpjsNPxFTtj#JF+bgGRe$- z_1(1gzkR>kq~oWwnBMPy-?pmrLFq+**PM=q(^E_r{?{#Qs$6}fl|^sIjgRtI&Pr)# z-Z40)@Lc;O*YTbQN8W#EQT}oB{paoO{GomP_x?`Y*;u4DDYtsE-QOeDtD+dKW^=3v zF+KF^VeZCnhug31xfBo>Ym)eA#U`%#6Q25TS5+@qc<|2d=LLTokL{B??e(K`<;o)q zPIjzoSl2$ubM?}L6+b)gzF*66%}>HIEygp_^7@mK7cbiiTt;3wxXx z+kR(BXRr`2d!Vja(&g;lRMuAG=@Xj@3$ErS|G%~Q>y5^~Jqd>0T8o_&mCE=;AD(>^ z_sZ)RXTr;wdJBFxXx&x0A*1zSw#l_SITo6mHpOwKS6s1LYIpjQW`@cQKD*`&DJ_1+ z9U8S8RL_+^&`4-nu_iTeUOSUW@5(Zrl<2?}9~_@2bAOQWd1TmC?BVv_r=x80xoHve zZO&n9+e9O`)_rKa!w-uaaK3ZedpA4xB3MZ&b1z9$_y^DRv~ZN);Ft3s*YM5gUM zxnxSkqV%I{rih1Z6ESmsZ0q-V{$}HOJKi0hvTW6lhCQ14Is)hQwG~d@F*t5{>AB4| zHudj%8><$}wl00OSAOT5qYf(ya z^?AK>+a!-3ZCr3ZUUsdMP+9d{ZJGbtt0BeLzcrtfJIwx5fPb5; zPl;#5DCJ{n@|2&pcpsvzSLeWRd=fv#qV%j^BBME(-}g7r8UN?`3Y6Z@Wtc ze}~O}8%1^QhtKBg%zJkB(S4!sS=Xn=%%64mQADMxvuL~Kp*;5I7f*k73Yz=C$;-7h zWtx7k>&M@r9$G#3Eaw)+wWx0ue(5fV@0nJ(D%&;f%B#2DtF$t%^sDG)&N^}aN`lQC3#-JapPyzwyY837 zQuuw_qwx9n3)bw@zV|pivfcAQ$M2pMQtv|xqFp~e_Eyh1(R2Kfr}mm>QOfRY&-CZ5 ziu`rzdfAt)L6bPPm`kmn#g0xg zE8?4X8rNQ4=A?6K>NUm_GCapL1wB7-)@xXQ8ui$%sdrn3A>~xlHoxe-< zE6d}>Uo13dYAl^}%F}~K_Z;v1&wPm$kEJshJ7&K%zq_^In-cFQ2CIh?@8{X?SU&rR z*OfgT^QOnt{a*Tc9akg&GQE8zmyg{zR{ER&ZI+Ll$mxK`oH8d(S|6#1%zr&I+CvY`CoA)t$o4;tlHs6c~>_4VL?Pb9d*Am5whStXmg8-@c&yq{Ui>G@VbT z=Amore>dc1a(Ty3?+UY?8C-C$`O}d)n;I4;DV9$+q#y2kyT|*m!UxL-sWwO0kKXM~ zDHb{`qh5L1dS3Cg$09mhmMQMnwz!+@y|VK6z1apHD$_T})&{S<9Aqan$Lmu|Wylky zZ6^wU>%6z;?0nefcp`j~nf#XY$q(kTH`#`C-jur~ILTr0biJ8HM?Z0G6;WV2Z*yHC3pu`6l~pGj|hPlVY(ST?y~L-nz4Txrtnxt#zNA^&QE#rb3)y z7W(Sy3x01obm&6Iszo1-PkC!O@H*HqJ>+=u)@0$qw&_^1y9q;gt_PT-MzEv%o0Y=$(~8eM4k8A z&kSjDJi2MpimNv{U4rKEysTcBw|0(Be5d)5#2gnEOOBPdy|%VzXLTL=v`M=~?c$A7 zT&cz1_bqWvuA94dxn|!#^*yN(e+^r2Ma=`<8*ymomFGA1uR6!A72dn!-?5K7MRQKB zx*io@nK(76*X8x{M5)K>*Y8w#^J+Qhwjau0f5Ra6*q@EbO#5Oqq&ZVVT|etiBy>e@^oU~Sq zS@~E_`I)tGsliDP_fLA!*!;Uk_V%~9qMuJb1sask++X+o2Jd@0t{Vi|TRYvQ+Zzg?B)bTP9v^;Pw?7XI8=%c`1-XMS!q zO=j9rsc@ovRpYeNpK=$?XlD*nVQTMl`us5E@3m{T)#b;8_9nZ9P3_k^5GNiYB9T$0 zAZ4nfEal(A`$l5ZfjLYZ&tAMWaeQO>-PL$e=aprLf^TWd@D%W!bD1bI?-p0Zo`bG8 z3?@F4>-@}Wa$88Q(qYQ9Y16Lt?V5D4;6C%^g}i2KU*FwPcz)quS>0YiDgS_1+g-l7 zuHSIq|EYM1e__lEkE)XfN;xb}ryhR`JDQ#UG$2x@&Gk!$r|QZzvX*sjPg^=&e=fes zaq~8_ZLQ#8gBs1mz-P5nCP*xkV6juz;kHnEz+u`@>fm|ymCiJ`l>hsVU613t6BM_2 z`hn8&zV0tC-tVb#x%{_t#@5oy_pKf&l z=@{pjXP`b|@^tCGBa0@w#OJTsyL9_@>zg-)LVNGbahT^7I^|cx3q@OX!R|LP_xF_l zz8IjVsl_>Un)ol~EDiM;vu9^ZgsI46=f8gUs;{KPRay3darXgn3F~zguR`3ORo!}U zU>@69@ddLwV`pzJ_%k&;>;b2@$>Hk!EvB+BRZKFX#1cafi%c^7y4T_Oo+-a?d9JT{ zR{gnxZRs>G51wd)Xf5-dQGI)-HW%yaWvfnJ#`G^&nvb=p>GS#-HhC!tE{tb(>EvIV zT71|&@x9)SJ&E7v#kTL-wRq!9DzkBN3i`ZUXYIajtA|}$J)+cYB77`yjcflKzdUc`pt`T7o^|Q6XT0A9U}FJSv$uVlar|5R z&ly*ay4%X!FNl?SeBqa&63d!7;Vzl8OK*n6YfgT5ZQtdxig4|VpALncf5CZhb^clf zUn?eDHv!au!Y!jlS;&e}L@CGVOt`QGP_PMP~Pi+AjEIKH$r-6!*; zrq0v}5^@h7zVqQqUKaGIV#Ce*7UKGh^CzW$WevBB{{M}8_v&n~v~zO|5{r%=S-Gz% zX~tHWw7Vu7zn?gAR=Pj;eo@8qZ+rLc*>UK-wb$>a$Vd=etnt3Rw<^jB=xyifPk_sdE={4Tox*P~~G zQ+I~niC{Xq;Z0j6`|J3=uWrr%{=A*dr+X_n(o{O_%$fMW*pfF6G0Ani6dDVJ-E*?5>cN-AT!l-gsYPtBTAn1T za%P5pe_YwsI}bb>>~3tZ`gLyh?w)%wuCBr@hl&i$?^zaf$BDQnTJu*{9y%e*ZRpZeq$}v>akReT;)-^>C3F2r}Hmxt-6^o=S{=6 zs%M)v#^2d>3=nJ9BQ2zn)~l%*@6`PCB=&vp=m^l=aMFQ+joJ`s|nCPA=U2vjdE3Mo zg#mwm^>3NCw-J07+J{HcD}T2i{93Z9-C+9jorf7i|3=k0*Z#e=oj+u{e?V8_#iz#G z@*^j{@cp%AkL+xIz4tQ9MI7Ef`84Oy-7t%jy4$u{+c55yTBUnB^`*C)!T#4tlb$_w zv*lXET4<|oS$oaHqd~Im?Q7`+UjmbUIUVb%OjhJqI-c-$)v;sE4`bFI(eudJ?sPD@ z*5meL2X(I?d(O^o&b$@772H;e6!zrLJaheA%1fuBzpY)X)Pz1RX8-l-yV=^RZ12$0 ze@8Txm;0<^cv0w{0AGb3v{o_I5@+Gdy7XtVjoiZ}p z_gYJTe`9m$&V{RY6IV=FuGv@p=z6=R|jnD6NfC8p1Xuex0bjepbL7{>RH5QcE8mocmUbx74Iu z&X&WJd%=c~v$`QsyMLRQ9w;)pc{}*g6|d4`v%hpI-&b8N;2)Fp@{i)mis}v4N3>45 z_3+jEt=ZIe^!zuuwzk^6Qk)vI0%Ig+7)+hJ^qJa?eIHk(iE2Oaw)eTsKeIxJy&~Mh zFyg)aq)VP2F*iIWpPa+kRh72$fcm5o5wj}%Dx^pi!`{$ggwJmuQ5$&Ju z6Z&^o*pqORDV(9*N23?4b$WP>U+%PGQlX~*{}Vqo9v8^5XL7x(zHAceI&tx=mLmd5 z6VgLeE_>gbcj{(xZ}5)0e(s(V{n)JfRJZ56I<(MJx9Q^JB3-G26IBFNtIM`L5IbnI zbb&=mgy4qP&XYxypXlD+S3NW2(nraSFFyJnc;tQAXp-BO9XiuhmoDzv6h|Jq*jGsDJW&+~}K3&Y|Tgcd&Q*w*@>VzRTf(p1wEUXKFy?p^x+ z!aFr%pQ0~&CWu`UebP5et0}(okdxY+TL~t~I{r`RPu}9|lw|R!-`#G#1C&nMom+Ld_y z+~Ol#D=aGQ);`n`HCH_D%-P8;rP&8in zy-%|qZT1n`tl(AC<~pg#b=H}wEEl#kK4Y2twD)u1<@F96A6$D6?P;)(&&{3dPo3qG=6(6Q1yYw4do=y!@GCTCCVv>M*;iSKv=DATG zyrQ9@6$UdWrAYRQ%0)V^IDKKo)G~px@&t)0p0@uo z7E_KMF7`MT-Sgb3y!M2~#&&5l6;)H2qzv=1Px~1v){EtERN?Tcmq%y~f+)S47vp*}{|1d13338@n!9 zcB@Bv9eMJUZRhe%(JzLFo71AYL~reVd*hp~d+!qd{a-$w65f%jleWOfqoeV0oTFfL zQ%&EIix0ecJv77uGuyssFqw7~8wClcJ@kHFnmlpBgdH0m8p<&UT=&a#T$K@<#ZY*9 zE{Aa2<_X8oG(RYr({qzGGRHsVxxS$5l$DbYu>>XaKfS6Dq^uwQuY%REe9xhuYma_r z)=)WY<#VSj!hXm7Ig=|r1uPBwg3~ulZt-(UI#GD-_4Zqr59@GWoaY%bHI%nUy|*P( zNi|t=rio0V&Z{%O3a)(k$uvvML(O#Z&YiBOw6yf2gJuLjJ`*Uq+|_Q?(Qk)tuRqRs z)qF|4)|G3$u@%~KsTy1JPw~&%G%1PWs(I1zbgj%c@r{(0kR@sC2GrNqc>*p z{I@e#Z#x+=Z~3a04QH3_c1-7clBpbJ|34LUb6@}FbI&a<(3O@UCgkV>CowaIPqA>ngl-1XB&UypIPoSH1fp z{#I_;3rC}KGCnnoX%_=T;`*9I5BqiRRnUyHJn)gbd3CwM)Cm)ItZ?+Ry>>S{WGnZj z8$X>r%)GAWbINzsL~svc3EE z3%5LVY!_(Rag-m@*3VmW|Ms#;F>!WN#q-iVjhO}9AFn(Y^I^sQy7b!@o8R7;l^S`b zv_*<@b?vj%shiWTJX$Cp%bb1BD#5Lp%lqY$Ba61>&p*GM$*|Pc#W6S2Z;IdN#P3|* ze|p=iRwON0apJ^0^AFv-nYrv|^i;*aT)O2bq++`xuu7uvep;jX^+~(W$l0!#`?uHX zp56n44Z=ZI;Wj1Tm^8y}cH2wtT{Q1*wVg$0_!9ljmLmoSB|liE=VkWueG%#4T3&yo zWA?PH7j?xsu~Wqo9^HA!Joie9YoIBwm)B>PBmtFT7Ttx@3Yg70j@_|ODtz%S;MXl? ztH;H&l7g+e6-O6|VqvgaeCg4i3mO@>nakx^T{0Cm#x>Oroy)xCvj$L!vv?9qf zb$?7w-wvKT&D+Bx#$kgm{~vjy3kMz=_6NQ4O!k~R!Dv#@%Qx5jnl4#3ev=D-E@Cr# ziA}@Zbwbwn&VIdHtZef_GlXr@gb5bj5^MexFF)*C(3Tm=d3XK{)8&5p3>}Bo$@(r^ z7~K8jX=~cKISq^5{LQzRY=0qjIx5eo-TFd+O|XKL^JUFTwz8>qTbfq=aK9{a*F9ve z5bt$ieYaN^>KfkonfjW>7~2-S{%h=&?s#7A$LYh?-`>6RnW0wX@}_6q&px@#S1%Ks zLrY6Djb?gC?eJc^a-r}pN8OfhDqju6pK335EnQc<(2cDn!c#P#$ z<;{yxGxb-!S~2tMnHlC~IlA3`7JJ0`-oIZo?L31s_l1dzBW15%JC<>JBVXu64bd{6 z3laMSJXCy|)h3zbIa~=z3h7nue!TF9mauH+q)Uf7QXLlQ-;9fSyZc+;&#Rvol=hDr=v)L30l_DY5R939IJR4o5G!R@8Hp} zH%H?07g^|MN;h0$+!0$?Eccyxhu(e#3)O`V8T;dw8O;p{>zNo3`QF^EB`{wr#b%eZs( zZl%tuNe!!BXe?~4IrwQ&5Qn41ooiE9T<^9nK2_bUx;OSD^WBZdb_gjTL!)BY;7d)JDdf{gVn{U5Mqpz7r)P{I!*$Ejv+95Qry^MXYe{nUfDvZC=)v>FsE7GiGqTj<)OM zIUgtS&Y03~I3@I9&>L}iuQ@B~ey=y)^ku$*aF9{PTG&{?w8b}MD>Ms(MZ2fJ+_UD3 z_ z`SYg7{_h#VzA8Q6PK#aZo43G;fiJJ=YX19xHHMy>)dNy|=2`NwuXd5(dzY0M-+YMO z*?H>sC)F5Ug5 z$9l9mqQa`H5?wM+_C!{`?X`WlF5?o*S$Tt-B2uOM6aL;yz7WovYEbKV^;hWcHGY?U ze(=9}b!&fR$=js?){<&xweEkY>W)7fn)~Q5hoR~`;fGq2<_SMo`A>P-yTgS_t25su zO{g;v5>jvO5$r$cIVW%CkN8VV3^z<#!@v^CsqC_=`mwd?+ne#)moF*a+nlq%Y;ShH znaVtwlQ)eEg|AzBdLQ}b$D`xxUHm-fgt0_7OIeNK#^9z~#g-e7{C45-+5_R6D$?RFztYrMeEqJ0uRNnb+xGbT zx9_?Z7k&s%x_Y(ImHYFA>bE!2-rg$J5YRYswa~;@Ai#w}}3om6pOkRZ}C zJI=DU@ag3J(U+?h@ZY$=sjzIDm~3Fko`kZFvokq+=J70keM~_)XHEO``8T&d-799l zT5O?KPD3!ie9pZ+ie|-;35Qf>*yKLhb$xbe{ED@z`_it?yQL}Y^mN0ENu0jb%6ENh zxxNZNVqUK1@@!&MT$uY?W92rhu$PBiidJPkSBpHunJ`PO%wJk=?!*Ze_YW@7*G`K{ zJp4)UXu@S*v9(KQg)m!h?Kr%h#a`)edb!PU{dm7zucwOHalfAG`7N(u$cxfA?=+iz z(=^s(;lPdWmK{;b)a}sknEqjB;PwiS6=zm@u8Ld`)%EOi@@|ipf0jqwjdF5Ix?rH; zU)a8lM`K&{@<|q#ouxC35=&!C@2W0ceDhDqYpvwNyV(QfyeC!UP2BY7+0i8oLTfiv zU7Z%;bCUZWhh!}=RJH$U8VWs%RMXDg z3T0n*cIG0ngQ?zG+xL`rNZHMwwmaYb^tG*9FRu@Lt){tItf%_%OEUNC-aY)e zWx-O}U9Vkw#BO->U%FH^L!;;X%xSEL8Js3?vo+V&o@idWH`M8oPeP{S44dUn=b88G z&lk8XDHk&J#|(Lc3p{qqC*;gKu_vQhn&bZbb&M(TGqyQZRnJ>;#7nC`w(IxJD4EhM zyMXKE`rePv2zA%^Ew#DZuxz_~O=HdFO;4RTIXe{(Bz&;6`@*3g-*2uLcwq9S7RRS% z?%siCmfSQi%zE0S?dELfV7=$#pI;fv<3DF}u1Rp$-cDHC_c8Xz1%-v$DR*z*zE}76f~|a6QmA`j)YWI?fj~Z`Z&RDPX z{8`^3xol&-JG)9>udn-SzbbA1ltia_E{ANEl&sQHzb+)SoZoAW!^V#r>vwh4d-SKu z&ia=UYh`h9MOSf6TWj$bE14)>ldYf|Lj})G+gr*o?@&jilBDU{6I)&yb8FvNr2GC@ z|CMsKuU#uH&WmQce%FNCbo~v(iq}uio}8h-;HN8#Sh0ng)|KGT-^jpE}%~@{0HU6=A`IV`V2^xvjWzoQFqhpZ_-*?)|^c%-VFx`&r!F z>G9lCO^nWB+iPzPrpu1KYNw?!KT%2?{8G>*t{}a_29F%AHTjI;?6s> za#geDW_NShdzmVeZ^*l zt$nB{>E$tJ`vOlX!pj&oy;I{!z(=A5uO#8eF_xoe_We4Qr*B=8C$Uz^xyo-TntGy4)x8CgNk%{j25A zr(HcTY4vlP&mXMjM@hZw%fD5S@vKSnUy(#`wBQ-*3)d%o$W(lAbuGJ;T&9+=hV+-L z?CkgZ|JS7i?6_cXR`L4tJ@bn5_k29IE%$bcO-sv>nFoX}n};z(HGKK~n(^$m3GJt? zcQ&5yIiDJN!rfBAFKV|ipW|`OKh3hKdS_N8eQMxuWte&t6e3*B2cO^BWfIr8>c2oKX_0Vfr`yjX7Z-WzU7P5khd~!;nw!=XJ^>1F5x;8H(~R`y?2~=U1d^efJHkUAO=9 zoY}iumgUz)DclrWa>&SU*~iATxgr%-qIQ?df@M!Kx;Q1BFwp2Up7UpNHy4UprKIhAI0%+jQx}YeSUn=H;GDSsK{be%v_S zqHE3>gT-xvrfZg*EMg7zHuT}Rer3wyh_>3yybMnFBsK5ZDKG6*N;+MPkmBWlIM5jE;YZnJ>Iru?n&KN$!@n`(>ASy{Nhg^ z)`fXE_}NXF^85v3w@`EcKCSfzY>|BTH|x08v_DIDv5M!~x?95i6B^<-`y4x!^SYt+jHcbT zZCh5TT)7Z(U%XR=*EDle(^@-SyX2y?pJp#}kZbwAkg-|H!#oHlIGE^@3?hPwuEn6&cjHRZX`JuZncS+f-k9-=dg1Xhju2vRjZ*jOBR`K^K z^ZRvo);exX)z~HG!gTefVPG#`DZ2BAh;B5Hz+~{(j#g$!)iueVV zpTBb>QDx!Ejl63nRx!ARO??-2-%sSM$E=ASG6&B8{UCDAR5VYpY@+8&8&*+O6$oIH zUw-m=&`%46spZPLd|n-)hc@^9j?_3;zH3?cgi|U~_M-EbWwvqd{OK4l^S`T#)J7dg zCQqZp4Luo)y2Q5jEZLOx^d58jZ8v|Jz?gUE^@D2d@ht)@swgcEWV_g#ija!J;uM|Jt3M^~%D``e2F>6g2l< zeo}0+Hp;%Ls3X5q}ETX`L!Tellk% z9ACa7OKGCdvB_yc7ZqLv7mF+k?hZYmCh5+8#o%{Wm+2kd&$(>-m;IXfP;vWb_NFA$ z(@sAF9v1S&-1+=u&gnX@CAa6afWeW-121n!+lHoI>g~uZb>E-S{PI}sV54h;hJ}Kc;UI>%{kWde^OJUlWY6-t1J*-z$kKaTH?$# zJtpTx)itJ{SjZBRa&v)>+5D_?7G5sP1e(=CSH0R1K2>*n$l;_)=8jcADi@Wk`Yzth{)(I3c zbxtI{OfpHBw5~D;L)`|#ix#3_)>Q1aKh19 zFSP^D`~7a7w`1|Q58ey!D@@Uq-Lt{u0;3f3JNv`k?;{Q^J+`4|iDY<<#e*jG%oQyy zM=Xyf9C7ZLefz75@ade5UHlnyUPsvQZ&;MEai2@Hv$)Hrg)+;|uDHEDkNeW94Ea4D z&O|3K(>uGmajAKz=(Ib34hgU3d-v)Mcl5!44ny5T?e3@M-fo$2Y?{JJ?APam(n#(mYwU&8jTm3*CwlV9*WshKuOB}Y_MtUseJ^-fDu>gnZv zyY8?%cF47DkH0P29~2tML2XhnCFEcnz4*d$+9F)c1XHvXJ%<@HB=E~n8 zNj99EoxzMJcby6PwM+P;K@?Zbnkl^cRvt0_QIlSJtgiUKi_kT)zNLcpUr@c1uV5(8@#8CWs>RHNxOp|?KyJl92bkPO3s_33#X=D3(io8 z_rDZ($Snaps>IeTcHhcCdBYEZv`!O+KmQMW%WW4k?bp(4WS!nu`~K{&w!gNF@hA7? z9-sH)?YG_UXG=-37O&%(78bkr1E5qhr@r8B|#xR1`v%^8oj zNIrd9%3yV5_JgD9{crDFU`jK{YdwAJxB9trhoAPgKX~x3%|&PB$}7^M-Y*Kf=6hzZ zZaKormtx$h_rJS7_Ij1htKiQwOdDB)3-=37zqItGYN6TGMM+JuA02!6^IK9R3@zs> zo8;^XJyjkf*Vu(SO2MrZ5Yw`VEcwYB|N5p=y~*RsV|j%Rxd zs~@OY@cRr<4~zrk^cYsd|Q4O_)pACd#aHik`mt3+`3Q-mBGobmfD?4bp1- z;y71Wu33L}_rs(6-`v}}F4j}z;e)Bc4(YniKy+EkGZ7ccb2sA@_Z zczAfk)Fgb2D74sP8?}GC@&o6*#j6)+hNvc`Jo*&1YvQyDQ6pDD<&H;b2TQ^~t@AbB zF0L)_zbKex;p4L!Wt)61Ch7~8ggPAks($W4al-POF3jzx#4|XLUf`NkAjS&dZeqPN3LetDuKHOMRAphwRg8@cOO4A)x6K5VnyE7 z)xSe8uRq3gJ4`+|w<`DHq?z99wK+qaQW-<~f|s9{y?Nbu(_&sJ>0eP&*8Q^YY>GZa zgh#KRcwwdB6_NS=mqQm7KUy}c&9%nslFyF_M?KX{!%DyJj+c5=&)C&y?urZ%TP0__ zsLaXt>4`~ym~{6GaB(}zAN2m5Az;U$ecx(RuJh%6bLZ}i+PF&1cWLUorjOwgur*xj=s7naKYr=lkUR; zKSaegALW$VXq(gN{=2C}Sj#gy=d)k2;Qu=mOr~H|a_3c96+KpcVCWJ)n3z#rrf`k%}mkrBSZj~?pyLiR( z40X~1vW)vCGlU)rVqUln9z9+!mAxn-+9p(-L!`I?bf!x_jA2wzBWw z)VKV4`q@J7Ju*6_>)J%)z>lSZ)_h4UN>H9p( z4V%yQJag}v;eXPUw^d_TqU173=C$tJZp+SU%&b1S=T_!V*QF2m4ewi+xgEW^db?zw zTuWQ?+IIeJTg*yJw|$%0xxlZhxF)PTK0B}Q&nxNYF}1a=LFYK`zq+oJ9sVxtj7%)2 z)`G50H%+x z*|px)eC=H#rU@d`pY%z_2O5_hxxp!_tnOgIqU?U)gyGR{z35%}>}z6o)<1vd{Pyhe zrp84nM)Ni(9kfY(c4wCA=`8KliV;~FV(PaaWTqTx!3qv|DIRJPL_VI^xY&E@iXcC=Kl4bU)Y+X0s>3K483&?ErKk2 zJUu*aJW!IAQk@xhv_xC3<7sO6k*hcNteU|-ZL?a1>fe%}r+G8xx=sAjGec$RgU%B? z=jC!VZdyG!QLp5={D!<|YRJQQ?Ie~d%?m*5Gz@;ud2H}}U-@yVS3i{i{XVkM$+j zvVWKP@RLtmq-|C9DK($9GxsWN&oI$GYgMS{GbgmVApdQ*|Nh;{*|q`yAN?#1kF_qo zQsMV_gLvSJ8|>EG+_vZ4YtM?=qMoVN;Z|dHGFVsF{qo|EETKuZ8Oik8SYgwj#DY&Ab-K#T8Gp{udQcSI~GjF)zHz!l0@Q#^_ zV=$|!-Yn_Y+u~~LiXU%W7X5Bl$(x)D+KDIErgH1+TF3B9hnrt{pJiF}BEl$5D0Jft z!9(k#8eRG?Nrvs7ZMAKk{hvR^*QP{v z(Q0e`VpgbiSzcDhH?1o?QEl-uUqTub z#6K@8NHE^>>q}eh?OSIeI@JCy^D+rtcuCOD>5)>~f{b;uCC?u^d3fKBr1??YeiF(L zswAxIGoF3lR(QB?nY!efbB{djT7OMjwd`$fgRo(e|B~GI))T+ka5tZpxz;gvv5Ib& zvqWy=?8wTFw!LjniiL!n+lmwNOAoMHmJ4}ReiDd#>FDipM)!3T|C{<(msB@T)0K}k z5n^&RNM!Mu5jM9cOx}*=_jj3<_v_bu^r&|CRuSt{@HL)P$I2AK`E}c@_j|AHD!qED zP`GL&*R4(-+Sd!yR%`3TgsHfTG0Qw; zuH04J+0xQ-g!ADoLy2VO#Hp-G5_7LByjocBWXD>@C6jI}t!K}?S9n}@%@dzcr$;qM zc0MYWl(d;6pwBCEI7s93w9n-xU;lo6cvU+tw)*F#nV-db<-?C(G2P3N#l5i1jW@zn zpxycR!w37`wf%aw*Sf!CtGiI4>CAu<)pob0YP0gUcYYn&!WtSLV_tfzr^c9({re&B z^J{MIT}g8kXmL23x+eRJjfCxXhDWS>b%nR(WZmAfY+qgaa>35o zhF)tLR)wsMzPPja_pHL?)qm}B@2^w7`*x#D{7SEyghHfS zgZ=x^CeETXiGTyIbK7NSD_L)sx7e{?Q*7a^Nw3>$T3>`sN>vUEx%zVF+doOuUALU) ze9D?*+brifm;IH<+rrhm`F>XDDk>J5J>cuyHs$@-gyu8W_O)lW%-ODa-CV0@abLBJ zh4#*XAK_%(~*|>$GHwx}u>^0pHuT6XcYR zCLDkA`GZEyOA(Wa*H-M-y?FKBw%Tahk4LlIrcV!ha;-;mj={>bD=YTQi8*%o)2auT z0#&ES1z+019JXg${qbkbd+(ZvT@x`*_}W&s=X%P_lXvDcH9YHAS8lr(Y`Uu8-66?h zJ$;?|NBFHy7OAT4QV?rZW}n3S)z_VGn~B+$a+z-RLv~3o8RH!TJ}(qg?~*7gPtHqO zdZaL=F=tcEHI2<@`hzx3p0K0h;X_wu-&cLXp);$b3UjvReS8y=v`c5rJCU<1MCR1Y z(wq9GTqKO`^yE8!PDw8cX4S0QpMOmA&|@YYt_@LTT&jPRCi<{7DIUIJVzT2{ukvo8 z-`iwvN@dmAZdkuSBf@%R)u%OvkJZ@Sr!aClT;hDa+yt^Xv&PqMTFzb>n2lw6WJo`GZJ-hddYL!*B$<^oAo47bz zYZ!em^2kk33-o>xVYD*V(?{f7Cmge48%1e5357NK5u}yJm!?2Oh6`;IhX`PtPyGrRrPxrTPa-GxsL$e6Tkx!Q9$v zbt7+Fry!_(&epu(yrAKx2QL;^`K+GzQ^vP{Ytiyfmn$p$q!n&d$6nrG8uF$@wd1gd zP)%b1V_(q3bs0<4?_JsO`t0@V)5D+p&$lgmx5snqC*)dru|)LGsAlQyRN6D%ITll0w-iQHdjxYZT{~5riTv2!AE>pN>u%Wopx4vgqE5e zn`vRAxy)U<4jh<;eMY_Z?>AmI?zv$syO87%kOrpw*6z3axMP5m=w8ZLS3=#=yVw2Wx? zhprzwUcMW?{@Zfm=M<&X)uBlz3fSz-)FSeVTUcdh>}buD_~CifZ`O`!uPzrKWveq< zwAb$2t$&B}ZTHsSYx0~PW19IUvk8Od!u?(;L*fY z#}odaJMzn%@9n)Bk>l2_Pg=eRdNo{^^-+}zn2@(|oswy2h5EsBObWl=hy;nq+uZ#2 zrt)Oxde~Tib8%b2`J_09rse61Q(`!pWw&n(cwTtmd_$?($(0*ku5j2}<99-C(j`wG z-AnH>j%6S5z97?n@8Q>MX@|<6EY;rq=cdN4eO_9!2(-l;hK3JyT z(b#u`U;EL{7<&7V%jLfr+(=J|CWD+GAI3$w_a{AXTR~lth(>6-uX+7F+2s8 ze5J2l98MjWDW`R6@2xp!=PcQu^Jta9Y;DuEEEi9nm{>V^+4J)e0im|Ntv}UwE8gOE zoT?gbbthq6?c#lj?lyv3g$jd%Ybz^RXXQP6maTk>Y3fzhsmfO$6|IQn*&5!WcHRHZ zo_(KBKr0QRSDR+`q&RlC3F_Fna?s=ZgWSJ8q42GuF%PapNh*_-#S$CA~P zdt2U%ik~|}ec2Z=20i-RdLYQxMCZdP6Pt65H~Bi8-c;E*{rfycv-tU}cWZ8GU##3S z`Jn7$7vYtgAI+03%nFLX_&F>tNl>xx;+%PtqteW#hWS@D3kS(p9phJ+Hj_;^ENfNp z55b5HJ(D*6QHi!z%(eQ*wJdYqD?k4ms(}ZeT4<-7yAZUpkX@ze`MjxooEl3d%XciW zHM#4>`C!*#%OaVjTKijkoP3g^mRN7UFw0`?vrDRvSEq04GX3a$;R1tonH-1vVdFIa zxi+CIR|YM<{Cd~yZ#mXQCp>b!;!1UT=^`o}awm5(GTiWrw!O_VnX@#LgO<&cr zoGtYZ4JY0%yrCWR;=4qFYVE6vyPp_aZ!O^s;+pCE&*o`~NS5H_i>ltOcWg{U_N!is z*`Ip($;4IDZfxDWZ+rW%uSIh%&APHQZ(6ou$=#X3-*$^+E1%oI^T3mP!nAXmy;lY0 zK2ES)7x>7)^19Ml&-(}JjGr?fF@7QQb^eWWMUPsycv>=sJBwYqef##si-t)@I_Aug zDX823>{(h(a8y*+dGCqmcCB8$diUJ!z7V@8u);cP?LUj^8<(TgIw{Bm6?C z?8)HB$eG>?3(jVkM1_R3yzQ7TVczeewByM8@891mzT3NRpPg9u!(UUUPTje4=c4L| z1ron|s*mvAeXS$czkSP=7N>P z99y<++qQMl`tEKx?veiRH#Gc(a%Fh|%*LZ5zqg$Fsv*YZy)E94`81N^fA~e_WqW7s_ z*~fD?zm?qbUvRfuisu^@(7Ln7_UwMAVva9jcoJD1ek$Sb;>s9;hG>^RPFHSpb?XEU&jrchY<;UK&I{y(4iYaTFrHe>4+b7I@kmV6v z_jPr=V&}?r>yGUQ-J7Ae^NG+$WBXq(7N58Kt&>;%dhK>Dziqj<&2kDJ9%^mpmv{U0 zu~omuv0!5I@xH%*p4+>7ed+YCNqTo@=MEOndyo6=_obbkRsW;CeuhourX6_`MHPz= zE&KNV{{Ih$`5$lh*z@7>nVH6g`!6qBDB2r16Lk52quJ+~=WE!?RrsEtumAV?^LhLK z2l?v?Zf;6F@mxwu>feWU`#s<9ReLy36jgkAaBkg?!}9Cau01-HU&i7C=uFIOYa%Nv zEBkG~NtB7MyxnVluj2XK@^?2jGMnGoS8M%^onN@zs_>D^9Tw?7zpn4EyO}yYar^wL zSDH57JKlc19$$an_Pc`Mk$I09|GjXxpJkNFRraG*Jnq2UM;rCy_sRG_nCx%&^N6s2 z!uE}_Z#eTxFZ-H5oZZ7YJK_8fHh-gckFJKtyWZ-OSNEAwa6Ps>@jDCW0p&xN|6TId zfB3#he&XBM>bG0B-z}5=7om6CI^H4Hw$J-B^9F^DY8opqALU^?@J^$d?bfn$tM~o; z)oE(X@GIeT_r}uIX}*#xr-maQ10#e?QO9ePWxtJ7&Teo|l^5 z+N`r?Ufv_WwD{oMdm@vqXBF77GoD=@BzwT$WdE{NZbmPILtRg#YA0GYt~sy1-OitHUvF2?r{tmdiT~j92@@WkIx+d*xBUOt-tu1(Jb3Ki z)A)Z+pH7e8_ioqgg488mClbtZZ?%XBbIJ(0h@7ABR&lFSD^KS|?e%*;$^ZW-U!k)? zR!P|P*_WgGb%NFfU$2IrpJ~i~)k3B0{_lI=3x0mz|G)Oihk(h|&t|4?c)nu$La+AT zHL<(Dz1@EQ-k!?O^K7d(wC>uqtMv7?zu)Wsn_n_ovV4cKO2LWGVQZsWmF_pOa!=U) z@K^lrTh}+NK5_fQnFRHTw~}USyiYVQa860C*r{CTqSR6Ae64l6@H?j8+lrr`tN(kw z{^;K7{7}cEAGRc@*MHxAU$JtoVKSRn)eW_8^87zntzPFO`H9{B$3g$PPm?DqyT?_% zT)KkkQTY13-=ySjJ-7RA`NndNeZk#lb0YZ)S>6g83)rN$O}xNl@OV?;_L_5v?BK#>!=wXu^JJKVpzP|K&I*<3`-QCx=sL#&dSNn~3`_$E}7oy}l zx2T@-;$9xh+xoP4epSWg*X!TpSVdgFb>-5nE25ppL}bhI_4YjZHEY+;eXrlG{O~+8 zJ3haA%hBSi4VQcWZGR|Gpk8?Wf#{+SOXk}!obxKWp*f}Vt;B+tv*xdS+z@`w@*2m@ zd#1h_Pbwsf_j5P>J$iGNd7I_ywiQ8-efZBQ?kRP5c(qbohHb6gkpp>#hpNwfT2Z|1 z=adN|oEsW;)fG;dXJ;##sl~F#WM==;p5RIz+wHjm-Ts{)|1Ixf-*9u;(M>D?=YP2v z7^`1zm>qjkc9Y0 z@is$E-Xs5x`t?j%GTSz#MORy80{51MTS~6N@=7aOL|1@RI^JI*cET3N|)w{&W z(CHz2d#p_E#N7(>owxF6p1Zi%-Tv=O|M2#rX4$Dk2J;u7d z`~LlUed5oAN`={uv00Cg^`3aXLGa3fmU&xBUx)qa*zKU2^Zni36Uq}GHX1i5O|Vg{ zbus()z5f4q`TswT2mW<(~sM~ky2y4n3c|WNE-BxgM((m5< z8s_h~#A<%8&(h#fi4c+JCqxF2{}{;)ND+uNIEXL?xw?33~R zI#cZ7J2i_qEiFz#?%WSswy)2;^JCJ}(^*$!Zu|(ke|vpi|Ix`)m9_JCEZtTm6}chd z+vED0Mj%6uBv#Sq-!orifDtecA%S@pJ?3SF1!wyu z#=W}|xn#{DCNIUw4~mX&pX@KBuGaVWxagc&*%$8K`uR+|D=RajT6I}Qy#mK)nN2KH zZWhdO)#RQjJZZ;NWm(u*z~;)&&lDS-_cduh@TvOy>uW}I%%&91N%nuZwyI9KIiXLX z{Gh0qZdA**K$Czzd3(A4kBV7+CnTLXw)R5CkCpzlT=NZYNZF;OouAjMtt{%itf|^X ztm9L(qhn)jg3Jx}kmUvO@qb^1A2sOOBs|GDCCHfxPAEQmSJ$e`5YXZ~$eKk?zhn#j1gKKY5(N%?^-hubBkoR9Vu?CL+>{Vnp~)e954ekpxp5A{q; zIQnmKp;&ZYW~Sq@lT-Pd-YT3HIoDL7Q+~hJye#wUtE(rtC!Tr8rLlA2MKM;JLKlrC z4~4mBN^aAimazGRLSUftvCiLzf?aF`A5<)w5cx=2rDKs`i15c6E`EEJDL-_LF0#v2 z9JtGBWdFx z7f;JWe{erM;Z^bHytEXbx=GNQ)fvSB7Yoj2ZE2E__}H5#nPYNU)F}DX4F|g|avl5s zTrbuA&D}Zea?u8J{gNl!Zq3?dwPKZ4_B!*wS%$lh^Q;n*U$}7FuOF-Zb2>}GE;>rrzOXu9UhaGR^}~DB@8?=%CK(;vVzo!G!0KZ&dwsx!`S#V)fwbule`sM4y?=3&QH|cUt&IaH7WwV78I5iLWYfX?7^3dSqRB4&k@NzGU6T5Ws ztb=Ud?{(ivDSi3s-Jkns-n?DwcXX0r#HRb=?swk4J$LSn-_K{&pYJ)$JY2!R#~8@< zgn>)=*{=oJ3j{B;KRZ94Uyhkuc?Z)EnYt#UcI5>b8-6wV-zmKwdwQC#_2VAnXJ=+I zZ)@DgAFH@4r$C&?Y=ix^D_0sM9Br&$tyuhS|NpuVmKoj)93Mn`Oxsvu&+yigQEJKE z1VfRB7J2P|9=JUy{;?`lyTDE$fG0}e>Zi}2XMReMUCv<05W*kn+G#MMVQQ1~OQr1f z(Pw^4tgj7z`>IiS7Spct>I)a_Px{kr@a*d!2KOVXCk&R@X_jjHp8M)|KzD+kx(t4f=o@Xq%TL@)KNg)kRd_mAq@JtU{*z~B#G0n~OfNpCc`D=hHr<5t_L~zv zFVot;e(o2Wtvc!59LH}h5c^*wyC-(vx3ZnAI>)@qu1%R5(*9@e&iU=arq*S7$s6Tv z-kf3iBiH&+jnd8stVb@iZQQo()V$B%q>edF_CG)0KzH?~UC;MyzjjQ?((#G=dSAhl zM+H1hGAjPADsizmdSLZ)w(l#K&dI2qa4AqY;A~e{*Mc*NY)!{DJ@|Zn|Bpx9TbiWv z_9Q-NXk5{|LqNCidEeZJw>Dha^(|HU*&KO;e@o)j-tEhNuIF>Uq&scZ*1Y?1G26=h z&)=(Ecx3Ua<+1I;7sNJ&oSwR} z`8KA7VVhN-RJk5YY6@j>ioCmfqut+VA-^RjrLR~k$p?!lheoRMx3=EVY)O6U@}{NV zd-kqr`(7=X5F^`U$gqSfEaUFkv};(qh({yuD%Z!=>kHon89KSwop8uDphGUZGq@%tU z1GAJSg$XQKQ=6Zt!aCcfece+14TgIw`cx11^+=g=U17iJ*5A+nt4PLOaKY_^x46}= z`!PDRmh7;t{Idtj#J^frg%tn{&#Z?VSbcUO40m2a!Itp0ZL=WR1po@vKf zS47zC{JiQ_6VJRmVLFN3E;ezedm<`5ErsXqF3p-gb>`OXORn$~KIATcd24R#0keqE z(50!WGyEsBJ^XyqwZiO(tsqzU&$RtpEv&20?3i5KXTSLHI@zt+;wOrm(+=b;>Cf6A z{#)x=IR8PRg$W#IKTO~M=jp6aZFXL{n!jJo6ZW;tYS!uuE_-+9=NaSke_qG`uX?sp zJ>YNM$L{zAq6;iGJ^K(c?Ui1Q*vjaNW3!gbIv`Q(-1}+Ey!)0L?-hU05}ekxwEx<| zy?4Jl?mfgWd@;ZN_o>b2tZr|5tvgA0Q|O||t5>dBtBaIE{prcTooa(-unF>;XgU|_Eav&INZ+fzMuaX^J}>q%o?&s3~F^-R5PLi zIuA@Zp!-2|4$mTyA9s#(8Jy0#$o+)b&Fw?a_Ip*?PfkoskV{CG2wA{-=mqmOcF~8Q zPV1Ln)tR$iQ_zp$vXk6_KNs$1Z)!DUFyW{-oqw1;BM>ye5h2)T|NqZtVRgTjpcP-W zJQ_fEJ389_|1^F7fwV4f2mgr!QE-$ST7ke>MG;j8d|7*_#7* z3*C8g9_*e~o5d{^%oyh7?XB3cD`XR|;}zACZBa{R7q$4GHJhq)RH@P7(H-vPTV5Ym zntd~Pv)%m-yHpNecRY4{%E2wId^eR#zPJl;98TNkQo6*(`o3M_r3+WJuj|Hd%=OBA ze&^nsJ*SuL`F-oT=+^4rd~XcjUTNGgdtKbovUe*4ZJa;s;FHUY%(^anJN;B!%B_iO z%Hw0_&b3~bVKlqWYyG50rBjcZIz734=lH94q7P%`-;{hmbTiuNzt)kuvh1M6LT1YZ zm!_s}zgzZuR;c!`Z}Jt_W6P6;T4ybOs%^jJRN32gd%s21?0tKFyUq7I#qM&J5APJ8 zzkD~Rs6O}RN@*TydCmUs~#kEXlrOhW7(x+1bxJ-Q{jIYN|7q+8*%s ztM+EqzmHb@*`>DlUenJ93twJqJk?{>XWr;t;4iWJ>#oqP8MiNAKdpP~%(=O{d1NdY zX0D7+S=hwrxcKYO+JymPMv|S!J{+2ut`@7E)ai0(lk7*IGLe~zrz2(iEJIm%*;@~6 z&Ei%SoT7V1p3nVi^QY6oxq@5{lTx3GhF;2#O69e0lv$jSk(9COgpJ-BeR-i<8hj0Q z&u59el2E&R?DMYp%Wv0YPSM+1r}x$L>9bcV8n2c-pR=!jolCj<%WGlJm4z35oar^I zZhFxFpp_igJKm(l8~7hdyyuaX%Q5TNDOVdOuA*hD?DwS<9JG3F`2Nn^TGJWlK8Idq zI~;iE!_U;-71-|rMJ_nBGr zdhPb61H2&&n;Dy3-2Z@jicf;lrQ4z+T(>@XHtp_5m%w^yp3e`3;$vF(Kkyg$6Z4YK z-tmf#o}S&)DZvxcH$>|@URmCl>}cHF8?pP#EAENHF&u(dcwO2bS3Q+K7GhH=kliu8 z;!~d5|M&m@@pqkG6S+B{?8d=DCZD|$MI{}=Hmh@QZ<|~7YUQm*ceX94cHP_KS8ny{ z;?BJ(S?@ZgPuQ^9P2RHLgP_E*o3GdB#ckhnDPKfll2*Z6EwwxU{4yr`9T5th`Lk2f z*x#Z^>GrN|j}L#>t9!bCw%(tz_luHm9&mJb$rU@1l2#qIY0lZXzbkXsUe(ifc9@X7 ztjpt22wP2C-23e3A=8fBuP!e9&Zun7moVA?&Hqbl_;s~|7u+qJ?=gA*dWaZryzFl;+bcD7+p=Y0 zTxYcSHaj0}>D3bNc6HqUf${U4@6XT0?n=>IWw=A($>)iS-M+oN%YH?7UdQj+Is@G^ z*Df$9b}gQ&$ZDYCtJmGV{rv3jinFv>oX(gRESvWHqELKosopECyu0-d^(Ml1PRLL2 z+fn-F(yN^d)gEuDunFA1qm9Y#jqc6gFaP)-d}0vj;`i)at-V&1U~_iXjjSgX&fh)$ zYZ>hBjdp9Y{w*{!YEJU+rdM~_n&ce69Jkge%h<<%-?d~6sx(|k2So$b# zhhT`d%*A=^FIp!`<+1egE_V9;?QQzGIh=)j;`b^Z_uh(Tx^%0*?u+sbpYzu5ZI(5y z`tvrwo;jZ7B4a4i?}OnnOnl3QzpSffp1J$?yWRi4@Bgn@9W~$E_U^IU6T^2oA1via zP5Ir(F4wSz<6KuG7wf?X>|ESzcNRp{U5iY&{rP0_gINmcRgnw7J#?5Qaqr6`%M>}a zOo8|UQx7JM2fyF%|9?WcpGU%g!I{Ia;_KD$`!%0^_lQ4{f6ruobn?OV6;&SWccj#t zf6ps8#3^wo@-}1n^eG$@{q9X#Uh$iE!jwCGkDf^WO_cuo=3pj&Y0*S zA-sxRuI7RH{(rm@LKXdDSEk-9f16+T`SrTHyKIeKPy8l(OZ%Ow!@sXv(!Wp5-N6}PkP!4QGZ$J2@RntM^8YnS=;~QXrJuVGZ+TTJS}GG0%yVY-4by3NQ|emO&AN^Y_J2-U zVCDY1F#YJBzQZl6w}0Gni8Jv08;$L~A5Ju#QNFd+SK^YOuf(kz>*5y09&dTqS`e>R zoc{6E!YflhNG+}v+V-e;TG6_#UzwDgXPga4e#*hPjWLL|jq&%&Y267bR~Iw=;0j*7 z^~=cz1rHyUlG+pS;jZS4M~k1zfGdA{DQoO9obwT-nQM=WCc^dzqE zx+hey@*loCzv|V>mzS3>7XNpUzivVEJ;%ld8IH3I&AfX5AM)3CtUkbZaDqb5-Ll)c z4;(xm{=Wa;PC~9iC}++6f8Vw%dfzFz>}$cn*P`UGuStb1t&-pBYb zHg~Of{O;v1pWcx8khlNux9#`qr03eX>8MnHy&CSES*-7GeBH^$Vctg;y*(eC=CrvO zyn3Kj5GiwUdE$*7|9-vB-|>*G!0v;k?BX9EkITnzPUBsnwL_D|&tNBLWU69bfct^$ z_d6c<8K1LYRy~x!Y{!1+*JJtr5?^N322bA0%=GZ5!kt;~ayjCdS^OO`rOU58XnJSx zW}{`k-s3PmamM3G3&JE;WW3m+vQA@eN3>wQTgt1I!fG;e4>!H(6)!(iUA$EArIyRL z>GJPy?8%Bg-d7j#^3-bOYOgHo(l@`}zVErU*Lly!L&qK8iLY86CN+QC+0_{gceXsb zu=LZknlPKJko9?wZ?tsQn&n3btzF6Mpq#QYLrl)Nu!z&EXr^yg*7p4mvf{-;($Z#R z6xvpQo6_yr%Ii0CPLB8E#akS?lLIa)sJ)%KZPMJFd2jr3woY-V+M^fSG;LGK$w_^4 ztrliAu3oq^@zA$}zl+P>-THbu{!h`d9?2Q!6n?Mx)0x5YS#R0w=7Se4GoH6yx@0up z-&HzLHF{&xQ(yDHb?@ffw5|HO^WCo37w#!`?)`S_b^e~8ZKBQBT{Vh#VkYQ z{hrU~*x#Rb3*VgnectMIyS((nkG7^(dmFGGGIjxVYE|=k?=c^eTNW3)tK{F?{QCCD z`!mz$Mc&x=;otA~?v@`}418Vh3$5G!VCn_8jr(iPZC-OF-+0FB+FOge)mu~5HLQYt z_ZlAUzW$qQ;q9kEejyXC7%{x=rsY~HgTi&!y3`Oc?4!;y0Ub0qSw;|i! z?;`u#sPi_F7cK`c$$TBW_oP*D$ur1WkWmC;pxt#$U|MK*U zMpbNUe!MK(znrz1E&tdQj|8sM1rdh%|Bh{((0X7(0^=2HjR(Gs^#^uv*0mWPu2#Eo zJ9GKmwuuZ=oYvPd>stT+^ZDb?McsOrsw-b!@6wAn&T?^M!Pln-7ay72;jWtWtYe1c z;^eE2o4;5-sOh)+^`idYXZZ-L15XYlC;04n)TO;8UHgsui<|YICeJ@`W7XLy8=m}o zB);DvEU}x#nq_C>Q^7X^ZLu-j#XKy!1v~ct|NCCzXMx=&u5ZmnJJZ6J6hE2hZseMK zchVyk+d_Xm?@!9-E7bUHzX-62+Gw0;_i+EM*U)uv4|jF2QOMNK4-DO$CbhIM)UmB) zay`sZe$Mjwj=(4bxn`eamP?8M3#>PU8dyr~c9bj(?x+Dx=zS5B@{m8nFWKzHUM=vh zX(HQsMjHw7O=0|T=J)35KF;Mz)d&^7Yo+bkqIR;bp26RK+KLy~v@8B>*{9Qdwsz~D z6nCXYbInCT9>rp}W@a@`S!OH+}{ypl;$7N>%6t!AkEtjcVnJJOclgobE`|$g{ zyI*ZuwCLaA$nA@I=4K~{ZCxt%&+@8g>d7R(JL=CO>aTi5tySPs{B}Lz@Ry{v*xluZ z){L^Y#=%Bfw>R;=+wsX_bMkG!XHjuUGm4xhy>ejLoTD8kz5Da}@kJXO1GR%JlwWRMr5nVTDNr%Lek>*9ujT6A}r_oX~C1mGrZD< zueROJvwb!r`QnZVGdYF(K<$y;m5-|=bNz0-t9HAVbGqu|QE@~6&weXX{!Fh}lz)HU z3q7ZW3;1UAWM{9^x^V5^r|J9W6dVdM(YX1D>EQmqZ{N?awc780f8T@`7w#Q2nt0`= z@wtDu=hpu|-~9djEYs{aJ2txaSRXpM_GSB)%A?!&f8IR*?-uv|c^*Hl?;m_VUy=X3 z-S0c8(`&i!KG>3Z`GSgk-HSvM?GKh;?2V2*3*S6hIEw#U`}v*SPfd7o?Gxm#uIhVm zXtv*~nQQmgO?}LJp51g~c0&7HHr={eMpZXfCijVIPSu;K@L7-VOGfTVzgeax&ZW~Y zR4#v>E50t*`SL>*-P|?y7hcUxtDWY&?QWJ5JD2lDtGMTEiyq$AN>tn_a zmkUfE)Q=Y|-ogEYOKpwM$((zWFV1Y57*l-K)M~@-fW-TT>TL#WeT#ONeorw_50IR@ z;G1acm6FrC+Z}WZ%#9CN*8jRZ|HA)W@0R}PUNYfX`TpOrFBm=U?>?^0bMRK#%h-SR zrLRJAHLvYt`nmhfrqc)BUXX1UnV^=VVO1NEc;V>ob!7}csMcHH(A-XzJ!5c7If z-U(4RagJ#(?kr4IDm3Sps8G1OGWD_I^i3Iz%$3&PZX_S(isV{%gR?=QNj`gVzn-<; z!NV;L?4P%nv0RMt)i-tzJGjL0!2Ei@5czlK%W?dDMDB&gZ9iOa)_z_KN-ad%uc3 z6Uyw)%l*6Ib(!<6NXbufm%gw%DYQ;j_Yb@$D0WXdt;FKrdv-IA^1#E{^W6Tev3!4i z=I?_sUweYO11|njlQriovbI=VzE%6x|CP(8$t`wE~7eiaDbDoXm10ciBu;D6iyMe|TMxlH}tWd8=Fd zHrBUEyxsIFPx7^)#s{&2Gh0kv%X)sRsrq+Hcdmc)+y64#rY_nyd;hYi35r58W{PRi zQ=g_OC}*Z^SJ``-&+zbaHA``t{-!8+syYddaa(H%w$g-4$1hCl7AuU?$1XZ zd=HoHPR@V7{`->edb_U#=jP76!oFAM6zjWriyu7mO7}6Iw`Fpv(n(IX%bbTQp5$e& z^1tBXmCf_6(0qPo<}MlUUDqw=b$(jk*Ep$cQ=I;bTD3Ee(;CyempB})*eelrYwgsl z*$Wdg??senu6#NDX<`;K+V#@4p3P;;@FkuGPOS~2}$&ikNmzq~(tZ#!}(V&0SbwiWh?PY=a!TK%fo zvildmjA@06^tLs>kH3F!<}&TPN9E7k=Yk|N?>H>gxEpNye{t{LV_zgK3@)tnc0Bsc zMd4-Kt0gP{FMiczm9?6;Vov4Tf8XW`?Rw>u?<`gIwBfb+*wK1rnT>wCRUknd)wM>as6W| zyqiiiL^QNlU)aRxGt)!h(%f%i<@1A`)Xo*`o@ZOVWR2S@#b$0kd9#?#+f`tO)u4Oo6`w71e0iNea8Ley zy9$n3T**zXV!eJm#w%P76}?+GC(E?gxvsWues1mCi|;w^^L*RA-pAKkcc+he;)WTQ zg)?__O>>?WboQ8W((>-glT$9+nUqW`Zo264%q5opHrqOJ&!;`t9}BE_cgOI>&6O;{ zJD;6Y=8c&>&EEfd`HiiT3#aY*nUuIKG5PGVvpb6lj6zsKwfh8@#`h=8pLd4Cqx0O| zf2H#mGd_Q(HLo^k*Or40pV@3fOk|mqdv`5WJ^EU2$Cdh6u1A}M-)Cm-bjn{HDfM~7 zOt$5!nfrGgIaht>bj6*=RT&q}bWUXM+H)`Zh47cBvmRW#|1C~CeT|&@=XuK(-}F2^ z{bE6~kM{Is8F?2HYMpLX*-e*yRs2P$)V#J`v{v-phqDX(_*^&bpEPNIsw#{Bjj}D? z)91wfZCW$!?EeH)@tGOi2D3fOmZj?VO}w_La?VU6nF$*fFPmeqp~7(X-)FaSXJ_?R zl%3!)x|g7@vUQisojaTMmE4^EZAIp>6CZ8GYd3CRWs#r0#V=qkKoc43w zD&5+msttn4U1|C8&!_7J{M)7K_1AsL%Zb1LyS2>YD}8k(^YAUx(9qC_1#1`nS$}y} z|GehcD?7?A`2AIi+!V6G%gf8bd3VW6roYlj5;G>Oo4>*%qulDlg>!SQPoF+@x9&jf zmdU3kOmhjXJ#u{2s#g(9%#1g?KR-8jQDEl%E3HQzE^bVAH(0ghXHS&e@%6i2tvap$ zf131qmyL!J#iX{*u<#_9|MiA%5lPk0!+yX>KJUf#O<&%ft=*1D}}{zZ## zPIJkEVs2Mn!_7_WR%*@2nY7h(Yt;4Q>7w6`KC%&Q5Au)C-PszWo$t}|Eb0G`IolR% zPHf(M%SGqZBD3{Lh4VGZ&MCy|yj&r>J6S&po=6ty0s$#4h)NQt7_bs!^MJr}I{oQSSaKaPL zP1$K~XSO}MQ+Dlo;k8%oi`H}9y<044r56-z^?GJ_n(Y-+(R4r2c+k3&PuRD(&iH*zueX-5>(ZZ@(xhhkeYh$V%%GPK7(#tzj zZo4qO^ycz&25f9T_xc_RTux2_X)%Z%o+uw8LYI@V_1d zb00-c@%5K0wrp4ZE;(~+YA37wdRfz|fcZ*h2?fjj@5M`hDHYIpkm6-$8STF-^@Fjp zx?tMsY1id0>TZr+pJN>$?f;|s%zNMPf9f~)Ze(U#dD3yNtX0a3KmO12Z*9r^KF>CG zcS))8$6agu!nf(~`;l~dny#{Y-xTXUmHWFdY>m=g$h@WLomF9Wd2-FQPX)fYyvsuW zH3XaN3_BlI_&Bxv?UVps_D|eVUZuTvPDy@JD(BFz_k^k zH)dZicvH1#b!z<~UD={}lV>--d6;rGOjX!dWdh#{>Au~8k6b3LJDH>YXkrFSO6YxA z_0`7~G4X#4*?iTT`R_l55a;~gN-{||3kxpCJ%p<>?s6A3e1Z||z);GbLk zBc^MD>g7VQ`B&$PT>X7ILiv@4k^a5;QeTY&Hm`hQvhCxlIm=E}L7xSIC( z>(kzDco^G1&uBvi%j216+Ai&FJ6l_R^%ASJtB&yt{!_fsOSq-Pw;i-SHM4H|Dtn`~ zF2~NTy}J7P21oZz2M_OF7q!bSO4ju3mOhWNkXJ&?mbdq0{ucbl_||&k8>aZT>pU); z@YL@~X0$Bu4P3cF;QX;Z+21#k`*q{@)%@M{)kvoE;N)(0*;qRPo{+E*8=Kb;)#YlR z9O~Bp`E`BW-F0(?=L!7H^-;RF(V2Zp`uTab4+|pNdrQ9PK0UiD+1=3Y+4HA|zr4TX zGDCLjl-9gEUJ(Z!0$R&HtG<0K^Zc>1iIA?YZfK0x+Vm@i)ryVLehYHc$R&Co>_Ws`9*xhBN=Z&WDELvR2{>SLsT!D8inp7JeQ zp)}$D7fbhSF_~>)#g8=is?95EEvdFLsJ4^66mTzzeGPZc(+OvwhPvle3`K4(AKT~wm+{N=C`l8 zxpey6ibtIZr86THuUS1PmC4{KIvTAsajxtudxdV+o5y-@XRkhVX+vg_q_%@vlJvhH z9|Gs5#~EI@-+lD^rdPH)Q%?T!PqF;QJ?vp)lWr54hihZySwXg|NKYiKDOSQwR6p$ z1qT*Rb(?$jKyOHc)wGICAVyt~cZSl4~N%-YLX%Z}=Xrn`~{Y`pT8x@=f{!p7dEKLuD;RL=ka@4W#ZLcCTD!`*_-2MQTJw>aLA6gCQH67+WJD1ThuD=^s$Q2n=k5WBSS^C zZ=Ut?iY(&Rl+ZWW9NORdmfdAEFwz%WOGxrJ?1L?v&Ct^B)FB5B^wwe9o~t z)|V$vojiH=yuRMO!q>Um|2_)eU-jzc^6U9Gc)Dkrpa0aHz}}Iwg{SoWOP;qUl^*`z z#*=nXNb=^sH!))O4}W`eSI+z!+h%R&$m&hptBSdkÍO4Qw7@6-3R-P1O@zx)3q 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 literal 0 HcmV?d00001 From ce1261d82354ea37df213c1d611727f3684aae25a561bd9eef4d9f1d39ed5ac5 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 10:48:56 +0000 Subject: [PATCH 03/29] added placeholders --- ALB/_ALB.md | 3 +++ Lambda/_Lambda.md | 2 ++ NLB/_NLB.md | 3 +++ 3 files changed, 8 insertions(+) create mode 100644 ALB/_ALB.md create mode 100644 NLB/_NLB.md diff --git a/ALB/_ALB.md b/ALB/_ALB.md new file mode 100644 index 0000000..b402302 --- /dev/null +++ b/ALB/_ALB.md @@ -0,0 +1,3 @@ +# Application Load Balancer +Placeholder. + diff --git a/Lambda/_Lambda.md b/Lambda/_Lambda.md index ea8ea1f..1a73ff2 100644 --- a/Lambda/_Lambda.md +++ b/Lambda/_Lambda.md @@ -1 +1,3 @@ # Lambda +Placeholder. + diff --git a/NLB/_NLB.md b/NLB/_NLB.md new file mode 100644 index 0000000..5bc4496 --- /dev/null +++ b/NLB/_NLB.md @@ -0,0 +1,3 @@ +# Network Load Balancer +Placeholder. + From 8406b5c4b2fb617f77e44ad9025f3dd0b6e4efdb6a354a5e053425c3b5ca9c1b Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 10:49:09 +0000 Subject: [PATCH 04/29] added basic desc --- API Gateway/_API Gateway.md | 3 +++ ELB/_ELB.md | 7 +++++++ 2 files changed, 10 insertions(+) create mode 100644 API Gateway/_API Gateway.md create mode 100644 ELB/_ELB.md diff --git a/API Gateway/_API Gateway.md b/API Gateway/_API Gateway.md new file mode 100644 index 0000000..b1d78b2 --- /dev/null +++ b/API Gateway/_API Gateway.md @@ -0,0 +1,3 @@ +# API Gateway +Placeholder. + diff --git a/ELB/_ELB.md b/ELB/_ELB.md new file mode 100644 index 0000000..26517f5 --- /dev/null +++ b/ELB/_ELB.md @@ -0,0 +1,7 @@ +# Elastic Load Balancer +An ELB is a general term for multiple types of "load balancer" in AWS. + +Examples include: +- [[_ALB|Application Load Balancer]] +- [[_NLB|Network Load Balancer]] + From 824964738916c1232eb3b034b0654f2a6cc54ab253f744229dd52c546273e1dc Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 10:50:08 +0000 Subject: [PATCH 05/29] Added elb --- README.md | 3 ++- Route 53/_Route53.md | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 63a9e57..c60e355 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,8 @@ - [[_CodeCommit|CodeCommit]] - [[_CodeDeploy|CodeDeploy]] - [[_CodePipeline|CodePipeline]] - - [[_AppSync|AppSync]] - [[_ACM|Amazon Certificate Manager]] - [[_Route53|Route 53]] +- [[_ELB|ELB]] + diff --git a/Route 53/_Route53.md b/Route 53/_Route53.md index f38df5d..15e4e9d 100644 --- a/Route 53/_Route53.md +++ b/Route 53/_Route53.md @@ -13,4 +13,8 @@ You can: ## Use Cases Use Route 53 to get your custom domains to point at your AWS Resources. -![route_53_routing_example.png](./route_53_routing_example.png) \ No newline at end of file +![route_53_routing_example.png](./route_53_routing_example.png) +1. Incoming internet traffic. +2. Route traffic to our web backed by [[_ALB|ALB]]. +3. Route traffic to an instance we use to tweak our AMI. +4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. \ No newline at end of file From 73c1891a5fa845742bffb49d1876333e92cb35fac5637f18951fae2089bd9f9a Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 11:27:13 +0000 Subject: [PATCH 06/29] added s3 --- S3/_S3.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 S3/_S3.md diff --git a/S3/_S3.md b/S3/_S3.md new file mode 100644 index 0000000..f767192 --- /dev/null +++ b/S3/_S3.md @@ -0,0 +1,3 @@ +# S3 +Think of Stanley's Bucket from The Stanley Parable. + From ba9dda5a2cfb2e2c291f9586c46d81a50298ea0840670e1904adfa47f566d7e3 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 11:27:23 +0000 Subject: [PATCH 07/29] finished use cases --- Route 53/_Route53.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Route 53/_Route53.md b/Route 53/_Route53.md index 15e4e9d..301cbe1 100644 --- a/Route 53/_Route53.md +++ b/Route 53/_Route53.md @@ -17,4 +17,9 @@ Use Route 53 to get your custom domains to point at your AWS Resources. 1. Incoming internet traffic. 2. Route traffic to our web backed by [[_ALB|ALB]]. 3. Route traffic to an instance we use to tweak our AMI. -4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. \ No newline at end of file +4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. +5. Route traffic to [[_CloudFront|CloudFront]] which serves our [[_S3|S3]] static hosted website. +6. Route traffic to an Elastic IP (EIP), which is a static IP that hosts our company's Minecraft server??? + + + From d04ff809200b3cd4b5b0761e82c52bc14b0bb62b752159afa066e1fd591c2cc3 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 11:33:38 +0000 Subject: [PATCH 08/29] Moved use cases --- Route 53/Use Cases.md | 10 ++++++++++ Route 53/_Route53.md | 9 --------- 2 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 Route 53/Use Cases.md diff --git a/Route 53/Use Cases.md b/Route 53/Use Cases.md new file mode 100644 index 0000000..a08a3bb --- /dev/null +++ b/Route 53/Use Cases.md @@ -0,0 +1,10 @@ +# [[_Route53|Route 53]] Use Cases +Use Route 53 to get your custom domains to point at your AWS Resources. + +![route_53_routing_example.png](./route_53_routing_example.png) +1. Incoming internet traffic. +2. Route traffic to our web backed by [[_ALB|ALB]]. +3. Route traffic to an instance we use to tweak our AMI. +4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. +5. Route traffic to [[_CloudFront|CloudFront]] which serves our [[_S3|S3]] static hosted website. +6. Route traffic to an Elastic IP (EIP), which is a static IP that hosts a game server. \ No newline at end of file diff --git a/Route 53/_Route53.md b/Route 53/_Route53.md index 301cbe1..b79b454 100644 --- a/Route 53/_Route53.md +++ b/Route 53/_Route53.md @@ -10,16 +10,7 @@ You can: [^1]: See [[Deployments|Deployments]]. -## Use Cases -Use Route 53 to get your custom domains to point at your AWS Resources. -![route_53_routing_example.png](./route_53_routing_example.png) -1. Incoming internet traffic. -2. Route traffic to our web backed by [[_ALB|ALB]]. -3. Route traffic to an instance we use to tweak our AMI. -4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. -5. Route traffic to [[_CloudFront|CloudFront]] which serves our [[_S3|S3]] static hosted website. -6. Route traffic to an Elastic IP (EIP), which is a static IP that hosts our company's Minecraft server??? From f8d09222a570b684e936de4802e3ed2ec57f57975ebb41c46a2e1adc3d4c9630 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 11:33:47 +0000 Subject: [PATCH 09/29] Added blank file --- VPC/_VPC.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 VPC/_VPC.md diff --git a/VPC/_VPC.md b/VPC/_VPC.md new file mode 100644 index 0000000..b8d8526 --- /dev/null +++ b/VPC/_VPC.md @@ -0,0 +1,2 @@ +# VPC +Placeholder. \ No newline at end of file From 335b2548cefc5e622f4d2526d0ca1d90a1899bd4234cdd8317fee5d55b134218 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 12:02:28 +0000 Subject: [PATCH 10/29] added hosted zones --- Route 53/Route 53 Hosted Zone.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 Route 53/Route 53 Hosted Zone.md diff --git a/Route 53/Route 53 Hosted Zone.md b/Route 53/Route 53 Hosted Zone.md new file mode 100644 index 0000000..01eb345 --- /dev/null +++ b/Route 53/Route 53 Hosted Zone.md @@ -0,0 +1,15 @@ +# [[_Route53|Route 53]] Hosted Zone +A hosted zone is a container for record sets, scoped to route traffic to a specific domain or subdomain. + +There are 2 types of [[Route 53 Hosted Zone|Route 53 Hosted Zones]]: +- Public Hosted Zones: How you want to route traffic inbound from the Internet +- Private Hosted Zones: How you want to route traffic within an Amazon [[_VPC|VPC]]. + + +```mermaid +flowchart TD + DomainHZ --> RecordSet + RecordSet --> WildcardRecordSet +``` + +Revisit this. \ No newline at end of file From 968ef5744bc669fc5c211929e4f96ce10d4c742484cad73aa5cca5fcf8905591 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 12:06:57 +0000 Subject: [PATCH 11/29] Record sets --- Route 53/Record Sets.md | 4 ++++ Route 53/Route 53 Hosted Zone.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 Route 53/Record Sets.md diff --git a/Route 53/Record Sets.md b/Route 53/Record Sets.md new file mode 100644 index 0000000..d6a46cf --- /dev/null +++ b/Route 53/Record Sets.md @@ -0,0 +1,4 @@ +# [[_Route53|Route 53]] Record Sets +Record sets are a collection of records which determine where to send traffic. + +They are always changed in batch via the API. \ No newline at end of file diff --git a/Route 53/Route 53 Hosted Zone.md b/Route 53/Route 53 Hosted Zone.md index 01eb345..92015a1 100644 --- a/Route 53/Route 53 Hosted Zone.md +++ b/Route 53/Route 53 Hosted Zone.md @@ -1,5 +1,5 @@ # [[_Route53|Route 53]] Hosted Zone -A hosted zone is a container for record sets, scoped to route traffic to a specific domain or subdomain. +A hosted zone is a container for [[Record Sets|Record Sets]], scoped to route traffic to a specific domain or subdomain. There are 2 types of [[Route 53 Hosted Zone|Route 53 Hosted Zones]]: - Public Hosted Zones: How you want to route traffic inbound from the Internet From 9f825a0e77b4a87de7830618fc98915b3d6ad02b91a69c346c1b3df16f239021 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:18:24 +0000 Subject: [PATCH 12/29] added athena overview --- Athena/_Athena.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Athena/_Athena.md diff --git a/Athena/_Athena.md b/Athena/_Athena.md new file mode 100644 index 0000000..a9b5c5f --- /dev/null +++ b/Athena/_Athena.md @@ -0,0 +1,5 @@ +# Athena + +Amazon Athena is like a library with a massive, disorganised warehouse of books (your data in [[_S3|S3]]). Instead of hiring a librarian to manually sort and read every book each time you ask a question, Athena uses a card catalog system (AWS Glue Data Catalog). You write a query like `find all books by author X published after 2000` on a slip of paper (SQL Query). The catalog tells Athena exactly which shelves and boxes contain relevant books, so it only opens those boxes and scans those pages. Each book is read by a team of temporary workers (distributed query engine) who work in parallel, each reading different pages and jotting down answers on sticky notes. The workers then hand their notes to a foreman (coordinator) who combines them into a single answer. Crucially, the workers never move the books or write in them - they just read. They are paid per page read (data scanned), so you want the catalog to be precise to avoid paying for scanning the entire warehouse. If the catalog is wrong (a box contains fictions when it's actually non-fiction), the workers might miss books or scan irrelevant ones, wasting time and money. Athena's power is that it can query any book in any format (CSV, JSON, Parquet), as long as the catalog describes how to interpret it, and it never alters the original books. + + From 40c83b8a0844e0fe14460b2460c8ca669295b447959b74fa30e65b8bf90982f9 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:20:40 +0000 Subject: [PATCH 13/29] Added some glossary defs --- _Concepts/CRUD vs REST.md | 5 +++++ _Concepts/Glossary/API.md | 2 ++ _Concepts/Glossary/CRUD.md | 2 ++ _Concepts/Glossary/HTTP.md | 2 ++ _Concepts/Glossary/HTTPS.md | 2 ++ _Concepts/Glossary/REST.md | 3 +++ _Concepts/Glossary/SQL.md | 2 ++ 7 files changed, 18 insertions(+) create mode 100644 _Concepts/CRUD vs REST.md create mode 100644 _Concepts/Glossary/API.md create mode 100644 _Concepts/Glossary/CRUD.md create mode 100644 _Concepts/Glossary/HTTP.md create mode 100644 _Concepts/Glossary/HTTPS.md create mode 100644 _Concepts/Glossary/REST.md create mode 100644 _Concepts/Glossary/SQL.md diff --git a/_Concepts/CRUD vs REST.md b/_Concepts/CRUD vs REST.md new file mode 100644 index 0000000..56f8604 --- /dev/null +++ b/_Concepts/CRUD vs REST.md @@ -0,0 +1,5 @@ +# [[CRUD|CRUD]] vs [[REST|REST]] +[[REST|REST]] is an architectural style for designing web services. It represents state transfer through HTTP methods. + +[[CRUD]] is more general. It represents the 4 foundational actions of data management: Create, Read, Update, Delete. + diff --git a/_Concepts/Glossary/API.md b/_Concepts/Glossary/API.md new file mode 100644 index 0000000..0cac0e8 --- /dev/null +++ b/_Concepts/Glossary/API.md @@ -0,0 +1,2 @@ +# API +Application Programming Interface. A way that a program can interact with another program or computer. \ No newline at end of file diff --git a/_Concepts/Glossary/CRUD.md b/_Concepts/Glossary/CRUD.md new file mode 100644 index 0000000..5ef2de2 --- /dev/null +++ b/_Concepts/Glossary/CRUD.md @@ -0,0 +1,2 @@ +# CRUD +Stands for Create, Read, Update, Delete. These are the four foundational actions of data management. \ No newline at end of file diff --git a/_Concepts/Glossary/HTTP.md b/_Concepts/Glossary/HTTP.md new file mode 100644 index 0000000..e883f96 --- /dev/null +++ b/_Concepts/Glossary/HTTP.md @@ -0,0 +1,2 @@ +# HTTP +Hypertext Transfer Protocol. Web browser protocol. \ No newline at end of file diff --git a/_Concepts/Glossary/HTTPS.md b/_Concepts/Glossary/HTTPS.md new file mode 100644 index 0000000..84090be --- /dev/null +++ b/_Concepts/Glossary/HTTPS.md @@ -0,0 +1,2 @@ +# HTTPS +Stands for Hypertext Transfer Protocol Secure. It is [[HTTP]] with a layer of encryption, either on the Application on IP layer. \ No newline at end of file diff --git a/_Concepts/Glossary/REST.md b/_Concepts/Glossary/REST.md new file mode 100644 index 0000000..899313e --- /dev/null +++ b/_Concepts/Glossary/REST.md @@ -0,0 +1,3 @@ +# REST +Representational State Transfer. A kind of [[CRUD]]. It uses [[HTTP]] methods to provide data manipulation. + diff --git a/_Concepts/Glossary/SQL.md b/_Concepts/Glossary/SQL.md new file mode 100644 index 0000000..67a2fb8 --- /dev/null +++ b/_Concepts/Glossary/SQL.md @@ -0,0 +1,2 @@ +# SQL +Structured Query Language. Usually used to interface with databases by performing [[CRUD]] operations. \ No newline at end of file From d008d40094309f2299aedb8dd1f1029cfab8426aea10fb44facb2cf05765388b Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:20:51 +0000 Subject: [PATCH 14/29] name changed --- _Concepts/Deployments.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_Concepts/Deployments.md b/_Concepts/Deployments.md index 9ddec01..5df7af0 100644 --- a/_Concepts/Deployments.md +++ b/_Concepts/Deployments.md @@ -1,4 +1,4 @@ -# Deployments +# AWS Deployments [[_CodeDeploy|CodeDeploy]] [[_Elastic BeanStalk|_Elastic BeanStalk]] From 482c0d348f621ce15e52b6111246c0c1d0ad832be2999998df09695fbd6d2864 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:21:04 +0000 Subject: [PATCH 15/29] updated gateway --- API Gateway/_API Gateway.md | 13 +++++++++++-- Route 53/Record Sets.md | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/API Gateway/_API Gateway.md b/API Gateway/_API Gateway.md index b1d78b2..6e513ca 100644 --- a/API Gateway/_API Gateway.md +++ b/API Gateway/_API Gateway.md @@ -1,3 +1,12 @@ -# API Gateway -Placeholder. +# [[API]] Gateway +A front to some kind of application on AWS. +Can be one of three flavors: +- [[REST]] +- [[HTTP]] +- WebSocket + + +https://app.exampro.co/student/material/dva-c02/6956 + +Still a placeholder. \ No newline at end of file diff --git a/Route 53/Record Sets.md b/Route 53/Record Sets.md index d6a46cf..2c10a30 100644 --- a/Route 53/Record Sets.md +++ b/Route 53/Record Sets.md @@ -1,4 +1,5 @@ # [[_Route53|Route 53]] Record Sets Record sets are a collection of records which determine where to send traffic. -They are always changed in batch via the API. \ No newline at end of file +They are always changed in batch via the API. + From 58266b459b79475e2b0b49cad5db78cf2f7ffbb269f48710378103fdfe5417c1 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:24:35 +0000 Subject: [PATCH 16/29] added vpc deets --- VPC/_VPC.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/VPC/_VPC.md b/VPC/_VPC.md index b8d8526..9aca506 100644 --- a/VPC/_VPC.md +++ b/VPC/_VPC.md @@ -1,2 +1,4 @@ # VPC -Placeholder. \ No newline at end of file +Virtual Private Connection. + +A private link between 2 places. It can be used as a way to connect 2 different AWS accounts \ No newline at end of file From 07e433f39ddf1b61ab2bd6411d2244615e9a11a8b52b01f00dacd996db063ded Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:24:40 +0000 Subject: [PATCH 17/29] changed read me --- README.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index c60e355..1a6a0c3 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,4 @@ -# README - -- [[_CloudFront|CloudFront]] -- [[_Lambda|Lambda]] -- [[_X-Ray|X-Ray]] -- Code: - - [[_CodeBuild|CodeBuild]] - - [[_CodeCommit|CodeCommit]] - - [[_CodeDeploy|CodeDeploy]] - - [[_CodePipeline|CodePipeline]] -- [[_AppSync|AppSync]] -- [[_ACM|Amazon Certificate Manager]] -- [[_Route53|Route 53]] -- [[_ELB|ELB]] +# Read Me +This is a collection of notes I have written in order to aid me in my learning. +Use [Zettlr](https://www.zettlr.com/) to view this repository. \ No newline at end of file From 8daa473044c34e5782b7a7665f9b7779832e224b8c2f14623788ee82dc5ef22e Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:33:10 +0000 Subject: [PATCH 18/29] linking concepts --- AppSync/_AppSync.md | 6 +++--- CodeDeploy/_CodeDeploy.md | 2 +- CodePipeline/_CodePipeline.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AppSync/_AppSync.md b/AppSync/_AppSync.md index 3261b46..fdc3ab0 100644 --- a/AppSync/_AppSync.md +++ b/AppSync/_AppSync.md @@ -2,7 +2,7 @@ AppSync is a fully managed [[GraphQL|GraphQL]] service. Notes: -- It can support real-time APIs via Graph GraphQL subscriptions. +- It can support real-time [[API]]s via GraphQL subscriptions. - AppSync supports custom domains - AppSync has a query editor built into the UI @@ -18,8 +18,8 @@ Where data is being pulled from. - DynamoDB Table - Amazon OpenSearch -- AWS Lambda Function -- HTTP Endpoint +- AWS [[_Lambda|Lambda Function]] +- [[HTTP]] Endpoint - Amazon EventBridge - Relational Database (RDS HTTP Endpoint) diff --git a/CodeDeploy/_CodeDeploy.md b/CodeDeploy/_CodeDeploy.md index 7c5d058..ed93af6 100644 --- a/CodeDeploy/_CodeDeploy.md +++ b/CodeDeploy/_CodeDeploy.md @@ -12,7 +12,7 @@ The unique identifier for the application being deployed. Ensures the correct combination of revision deployment configuration, and group are referenced during deployment. ### Deployment Groups -A set of EC2 instances or Lambda Functions where the new revision is deployed to +A set of EC2 instances or [[_Lambda|Lambda Functions]] where the new revision is deployed to. ### Deployment This is the process and components used to apply a new application revision. diff --git a/CodePipeline/_CodePipeline.md b/CodePipeline/_CodePipeline.md index bb46864..cb8aed2 100644 --- a/CodePipeline/_CodePipeline.md +++ b/CodePipeline/_CodePipeline.md @@ -2,7 +2,7 @@ A fully managed CI/CD pipeline. - **Pipeline** is what encompasses all components. -- **Stage** represents a step in the pipeline. The most common steps would be Source -> Build -> Deploy. You may add many stages, so use your creativity. +- **Stage** represents a step in the pipeline. The most common steps would be [[_CodeCommit|Source]] -> Build -> Deploy. You may add many stages, so use your creativity. - **Action Groups** group several **Actions** together. - **Actions** do things. The can pull source code, build and run tests, deploy to production, invoke a [[_Lambda|_Lambda]], invoke a [[_CloudFormation|CloudFormation]] template. - **Artifacts** are zips containing files outputted by an **Action**. An **Artifact** can be passed to any future **Actions** and some **Actions** require to input an **Artifact** and can optionally output an **Artifact**. From da4e991d5d3df4070169b6111eafa76b8fe9f321ab43a7be47fafdd06f2e7a8c Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:33:15 +0000 Subject: [PATCH 19/29] formatting --- CodeBuild/_CodeBuild.md | 2 +- CodeCommit/_CodeCommit.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CodeBuild/_CodeBuild.md b/CodeBuild/_CodeBuild.md index 7ffae4a..bfcf08e 100644 --- a/CodeBuild/_CodeBuild.md +++ b/CodeBuild/_CodeBuild.md @@ -9,7 +9,7 @@ ## Workflow 1. Trigger a build * You can trigger a build with AWS Console, CLI, SDK or [[_CodePipeline|CodePipeline]] trigger (like pushing to `main`). -2. Passes the code onto CodeBuild +2. Passes the code onto CodeBuild. 3. You give it a `buildspec.yaml` file, which is generally part of your code base. * You can override it with other build commands. 4. Push into a bucket, or any other AWS SDK action (I think?) diff --git a/CodeCommit/_CodeCommit.md b/CodeCommit/_CodeCommit.md index 9e4bc71..cb66800 100644 --- a/CodeCommit/_CodeCommit.md +++ b/CodeCommit/_CodeCommit.md @@ -2,8 +2,8 @@ A fully-managed source control service that hosts secure Git-based repositories. (GitHub for AWS) ## Special features -- In scope with many compliance programs (HIPPA) -- Repositories encrypted at rest & in transit +- In scope with many compliance programs (HIPPA). +- Repositories encrypted at rest & in transit. - Can handle repositories with large numbers of files or branches, large file sizes and lengthy revision histories. - No limit on the size of your repositories or on the file types you can store. - Keeps your repositories close to your production resources in AWS Cloud, which helps to increase the speed and frequency of your development life-cycle. From 49b3b684be59b702eb3dcc6325b93d2df5c958ec7acee3dcaa55418773ae2e0e Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:35:05 +0000 Subject: [PATCH 20/29] more links --- CodePipeline/_CodePipeline.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CodePipeline/_CodePipeline.md b/CodePipeline/_CodePipeline.md index cb8aed2..250d97c 100644 --- a/CodePipeline/_CodePipeline.md +++ b/CodePipeline/_CodePipeline.md @@ -2,9 +2,9 @@ A fully managed CI/CD pipeline. - **Pipeline** is what encompasses all components. -- **Stage** represents a step in the pipeline. The most common steps would be [[_CodeCommit|Source]] -> Build -> Deploy. You may add many stages, so use your creativity. +- **Stage** represents a step in the pipeline. The most common steps would be [[_CodeCommit|Source]] -> [[_CodePipeline|Build]] -> [[CodeDeploy||Deploy]]. You may add many stages, so use your creativity. - **Action Groups** group several **Actions** together. -- **Actions** do things. The can pull source code, build and run tests, deploy to production, invoke a [[_Lambda|_Lambda]], invoke a [[_CloudFormation|CloudFormation]] template. +- **Actions** do things. The can pull source code, build and run tests, deploy to production, invoke a [[_Lambda|Lambda]], invoke a [[_CloudFormation|CloudFormation]] template. - **Artifacts** are zips containing files outputted by an **Action**. An **Artifact** can be passed to any future **Actions** and some **Actions** require to input an **Artifact** and can optionally output an **Artifact**. - **Stage Transitions** link the pipeline stages together. From f2dca9113d97c49262364845a3c1467a6a8d35d29d64e26373618627dd6fa06e Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:50:35 +0000 Subject: [PATCH 21/29] linkage --- ACM/_ACM.md | 6 +++--- API Gateway/_API Gateway.md | 2 +- Athena/_Athena.md | 2 +- CloudFront/_CloudFront.md | 14 +++++++------- CodeBuild/_CodeBuild.md | 2 +- CodeCommit/_CodeCommit.md | 4 ++-- CodeDeploy/_CodeDeploy.md | 4 ++-- ELB/_ELB.md | 2 +- Lambda/_Lambda.md | 3 ++- Route 53/Use Cases.md | 4 ++-- Route 53/_Route53.md | 10 +++++----- VPC/_VPC.md | 2 +- X-Ray/_X-Ray.md | 6 +++--- _Concepts/Deployments.md | 4 ++-- _Concepts/Glossary/AWS.md | 2 ++ _Concepts/Glossary/VPN.md | 2 ++ 16 files changed, 37 insertions(+), 32 deletions(-) create mode 100644 _Concepts/Glossary/AWS.md create mode 100644 _Concepts/Glossary/VPN.md diff --git a/ACM/_ACM.md b/ACM/_ACM.md index 92a3715..f466741 100644 --- a/ACM/_ACM.md +++ b/ACM/_ACM.md @@ -1,7 +1,7 @@ # Amazon Certificate Manager -Provisions, manages, and deploys public and private SSL/TLS certificate for use with AWS Services. +Provisions, manages, and deploys public and private SSL/TLS certificate for use with [[AWS]] Services. -ACM handles the complexity of creating and managing public SSL/TLS certificates for your AWS based websites and applications. +ACM handles the complexity of creating and managing public SSL/TLS certificates for your [[AWS]] based websites and applications. ACM handles two kinds of certificates: 1. Public - Certificates provided by ACM (Free) @@ -9,7 +9,7 @@ ACM handles two kinds of certificates: ACM can handle multiple subdomains and wildcard domains (*.example.com). -ACM can be attached to the following AWS resources: +ACM can be attached to the following [[AWS]] resources: - [[ELB]] - [[_CloudFront|CloudFront]] - [[API Gateway]] diff --git a/API Gateway/_API Gateway.md b/API Gateway/_API Gateway.md index 6e513ca..342fc5d 100644 --- a/API Gateway/_API Gateway.md +++ b/API Gateway/_API Gateway.md @@ -1,5 +1,5 @@ # [[API]] Gateway -A front to some kind of application on AWS. +A front to some kind of application on [[AWS]]. Can be one of three flavors: - [[REST]] diff --git a/Athena/_Athena.md b/Athena/_Athena.md index a9b5c5f..785a411 100644 --- a/Athena/_Athena.md +++ b/Athena/_Athena.md @@ -1,5 +1,5 @@ # Athena -Amazon Athena is like a library with a massive, disorganised warehouse of books (your data in [[_S3|S3]]). Instead of hiring a librarian to manually sort and read every book each time you ask a question, Athena uses a card catalog system (AWS Glue Data Catalog). You write a query like `find all books by author X published after 2000` on a slip of paper (SQL Query). The catalog tells Athena exactly which shelves and boxes contain relevant books, so it only opens those boxes and scans those pages. Each book is read by a team of temporary workers (distributed query engine) who work in parallel, each reading different pages and jotting down answers on sticky notes. The workers then hand their notes to a foreman (coordinator) who combines them into a single answer. Crucially, the workers never move the books or write in them - they just read. They are paid per page read (data scanned), so you want the catalog to be precise to avoid paying for scanning the entire warehouse. If the catalog is wrong (a box contains fictions when it's actually non-fiction), the workers might miss books or scan irrelevant ones, wasting time and money. Athena's power is that it can query any book in any format (CSV, JSON, Parquet), as long as the catalog describes how to interpret it, and it never alters the original books. +Amazon Athena is like a library with a massive, disorganised warehouse of books (your data in [[_S3|S3]]). Instead of hiring a librarian to manually sort and read every book each time you ask a question, Athena uses a card catalog system ([[AWS]] Glue Data Catalog). You write a query like `find all books by author X published after 2000` on a slip of paper (SQL Query). The catalog tells Athena exactly which shelves and boxes contain relevant books, so it only opens those boxes and scans those pages. Each book is read by a team of temporary workers (distributed query engine) who work in parallel, each reading different pages and jotting down answers on sticky notes. The workers then hand their notes to a foreman (coordinator) who combines them into a single answer. Crucially, the workers never move the books or write in them - they just read. They are paid per page read (data scanned), so you want the catalog to be precise to avoid paying for scanning the entire warehouse. If the catalog is wrong (a box contains fictions when it's actually non-fiction), the workers might miss books or scan irrelevant ones, wasting time and money. Athena's power is that it can query any book in any format (CSV, JSON, Parquet), as long as the catalog describes how to interpret it, and it never alters the original books. diff --git a/CloudFront/_CloudFront.md b/CloudFront/_CloudFront.md index 6bfc50f..7bd1132 100644 --- a/CloudFront/_CloudFront.md +++ b/CloudFront/_CloudFront.md @@ -10,7 +10,7 @@ - [[_CloudFront|CloudFront]] can stream [[Videos On Demand]] using [[ISS Microsoft Smooth Streaming]] ### Core components -**Origin**: Location where all original files are located. Examples include: S3, EC2, ELB, Route53. +**Origin**: Location where all original files are located. Examples include: [[_S3|S3]], EC2, ELB, Route53. **Edge Locations**: Compute located strategically close to end users. **Regional Caches**: Compute located in board geographical locations to speed up requests for edge locations. **Distribution**: A collection of Edge locations and Regional Cache that defines how cached content should behave. @@ -76,7 +76,7 @@ The more people hit the cache, the better the application performance will be. ### Cache Policy A **Cache Policy** determines the **Cache Key**. -AWS has managed **Cache Policies** for use: +[[AWS]] has managed **Cache Policies** for use: - `Amplify` - `CachingDisabled` - `CachingOptimized` @@ -117,7 +117,7 @@ Happens when there is a cache miss and CloudFront must reach out to Origin to re ### Response Header Policy Allows you to modify the HTTP Headers in the response that viewers will see. -AWS has managed policies for you to use and you can make your own also. +[[AWS]] has managed policies for you to use and you can make your own also. ⚠️ If you are dealing with CORS, you will be setting things here, as this will mess with them. @@ -126,11 +126,11 @@ AWS has managed policies for you to use and you can make your own also. Lots of drawbacks. Not available anymore. ## Origin Access Control -Same as Origin Access Identity, makes sure that an S3 bucket is only accessible through **CloudFront** and not the internet. +Same as Origin Access Identity, makes sure that an [[_S3|S3]] bucket is only accessible through **CloudFront** and not the internet. Overview: * Enhanced sec. -* Comprehensive HTTP support. -* Supports uploading and downloading encrypted S3 objects with SSE-KMS. -* Supports accessing S3 in all AWS Regions. +* Comprehensive [[HTTP]] support. +* Supports uploading and downloading encrypted [[_S3|S3]] objects with SSE-KMS. +* Supports accessing [[_S3|S3]] in all [[AWS]] Regions. diff --git a/CodeBuild/_CodeBuild.md b/CodeBuild/_CodeBuild.md index bfcf08e..01414ce 100644 --- a/CodeBuild/_CodeBuild.md +++ b/CodeBuild/_CodeBuild.md @@ -15,7 +15,7 @@ 4. Push into a bucket, or any other AWS SDK action (I think?) ## Build Environments -The Docker images that run the CodeBuild, can be managed by AWS or you. If you need specific software, you need to make an image and upload it to ECR and reference it in the pipeline. +The Docker images that run the CodeBuild, can be managed by [[AWS]] or you. If you need specific software, you need to make an image and upload it to ECR and reference it in the pipeline. ## `buildspec.yml` - Provides the build instructions. diff --git a/CodeCommit/_CodeCommit.md b/CodeCommit/_CodeCommit.md index cb66800..87d32fc 100644 --- a/CodeCommit/_CodeCommit.md +++ b/CodeCommit/_CodeCommit.md @@ -1,5 +1,5 @@ # CodeCommit -A fully-managed source control service that hosts secure Git-based repositories. (GitHub for AWS) +A fully-managed source control service that hosts secure Git-based repositories. (GitHub for [[AWS]]) ## Special features - In scope with many compliance programs (HIPPA). @@ -7,5 +7,5 @@ A fully-managed source control service that hosts secure Git-based repositories. - Can handle repositories with large numbers of files or branches, large file sizes and lengthy revision histories. - No limit on the size of your repositories or on the file types you can store. - Keeps your repositories close to your production resources in AWS Cloud, which helps to increase the speed and frequency of your development life-cycle. -- Uses IAM to control which AWS users have access to which repositories. +- Uses IAM to control which [[AWS]] users have access to which repositories. diff --git a/CodeDeploy/_CodeDeploy.md b/CodeDeploy/_CodeDeploy.md index ed93af6..ced2116 100644 --- a/CodeDeploy/_CodeDeploy.md +++ b/CodeDeploy/_CodeDeploy.md @@ -1,8 +1,8 @@ # CodeDeploy - A fully managed deploy service in the cloud. -- Can deploy EC2, On-Prem, Lambda, or ECS. +- Can deploy EC2, On-Prem, [[_Lambda|Lambda]], or ECS. - Rapidly release new features. -- Update AWS Lambda function versions. +- Update AWS [[_Lambda|Lambda]] function versions. - Avoid downtime during application deployments. - Integrates with existing CI/CD tools eg. Jenkins, [[_CodePipeline|CodePipeline]]. - Integrates with existing management tools eg. Puppet, Chef, Ansible. diff --git a/ELB/_ELB.md b/ELB/_ELB.md index 26517f5..5467901 100644 --- a/ELB/_ELB.md +++ b/ELB/_ELB.md @@ -1,5 +1,5 @@ # Elastic Load Balancer -An ELB is a general term for multiple types of "load balancer" in AWS. +An ELB is a general term for multiple types of "load balancer" in [[AWS]]. Examples include: - [[_ALB|Application Load Balancer]] diff --git a/Lambda/_Lambda.md b/Lambda/_Lambda.md index 1a73ff2..4197450 100644 --- a/Lambda/_Lambda.md +++ b/Lambda/_Lambda.md @@ -1,3 +1,4 @@ # Lambda -Placeholder. +#Placeholder +A Docker container or a runner that runs code for you. At a high level, it can run code behind an [[API Gateway|API Gateway]], interact with basically all [[AWS]] Resources (most commonly [[_S3|S3]], [[_DynamoDB|DynamoDB]], other [[_Lambda|Lambdas]]). diff --git a/Route 53/Use Cases.md b/Route 53/Use Cases.md index a08a3bb..c6cb93a 100644 --- a/Route 53/Use Cases.md +++ b/Route 53/Use Cases.md @@ -1,10 +1,10 @@ # [[_Route53|Route 53]] Use Cases -Use Route 53 to get your custom domains to point at your AWS Resources. +Use Route 53 to get your custom domains to point at your [[AWS]] Resources. ![route_53_routing_example.png](./route_53_routing_example.png) 1. Incoming internet traffic. 2. Route traffic to our web backed by [[_ALB|ALB]]. 3. Route traffic to an instance we use to tweak our AMI. -4. Route traffic to [[_API Gateway|API Gateway]], which powers our API. +4. Route traffic to [[_API Gateway|API Gateway]], which powers our [[API]]. 5. Route traffic to [[_CloudFront|CloudFront]] which serves our [[_S3|S3]] static hosted website. 6. Route traffic to an Elastic IP (EIP), which is a static IP that hosts a game server. \ No newline at end of file diff --git a/Route 53/_Route53.md b/Route 53/_Route53.md index b79b454..0cef2ef 100644 --- a/Route 53/_Route53.md +++ b/Route 53/_Route53.md @@ -1,12 +1,12 @@ # Route 53 -A DNS with AWS Services. +A DNS with [[AWS]] Services. You can: -- Register and manage domains -- Create various records sets on a domain -- Implement compex traffic flows (Blue/Green[^1], failovers) +- Register and manage domains. +- Create various records sets on a domain. +- Implement complex traffic flows (Blue/Green[^1], failovers). - Continuously monitor records via health checks. -- Resolve VPC's outside of AWS. +- Resolve [[_VPC|VPC]]'s outside of [[AWS]]. [^1]: See [[Deployments|Deployments]]. diff --git a/VPC/_VPC.md b/VPC/_VPC.md index 9aca506..8cf5999 100644 --- a/VPC/_VPC.md +++ b/VPC/_VPC.md @@ -1,4 +1,4 @@ # VPC Virtual Private Connection. -A private link between 2 places. It can be used as a way to connect 2 different AWS accounts \ No newline at end of file +A private link between 2 places. It can be used as a way to connect 2 different [[AWS]] accounts via a link that only these two accounts can use. Consider this a [[VPN]] between two places that is managed by [[AWS]]. \ No newline at end of file diff --git a/X-Ray/_X-Ray.md b/X-Ray/_X-Ray.md index 74adad0..94327c9 100644 --- a/X-Ray/_X-Ray.md +++ b/X-Ray/_X-Ray.md @@ -1,5 +1,5 @@ # X-Ray -AWS [[_X-Ray|X-Ray]] is a AWS Managed service for diagnosing issues (performance and failures) in a microservice architecture. The main idea is that you pass headers in your calls, AWS picks up on those headers and looks at the propagation of the requests across bits of AWS. +[[_X-Ray|AWS X-Ray]] is a [[AWS]] Managed service for diagnosing issues (performance and failures) in a microservice architecture. The main idea is that you pass headers in your calls, [[AWS]] picks up on those headers and looks at the propagation of the requests across bits of [[AWS]]. It's a distributed tracing system. @@ -17,7 +17,7 @@ flowchart LR ## X-Ray SDK - The SDK provides **interceptors** to trace HTTP requests -- **Client handlers** to **instrument** AWS SDK clients that your application uses to call other AWS Services +- **Client handlers** to **instrument** AWS SDK clients that your application uses to call other [[AWS]] Services - A HTTP Client to use to instrument calls to other internal and external HTTP web services ## X-Ray Instrumentation @@ -38,7 +38,7 @@ Comes with [[_Elastic BeanStalk]] and [[_Lambda]] by default. * **Subsegments**: * More granular timing information. - * Can contain calls to other AWS services + * Can contain calls to other [[AWS]] services. * **Service Graph**: * Just the UI graph in the Console. diff --git a/_Concepts/Deployments.md b/_Concepts/Deployments.md index 5df7af0..443686b 100644 --- a/_Concepts/Deployments.md +++ b/_Concepts/Deployments.md @@ -1,4 +1,4 @@ -# AWS Deployments +# [[AWS]] Deployments [[_CodeDeploy|CodeDeploy]] [[_Elastic BeanStalk|_Elastic BeanStalk]] @@ -9,7 +9,7 @@ | `CodeDeploy` | Blue/Green | Higher Cost | Make a new set of instances, install the latest version, start the latest version and then validate them. Once validated, they replace and existing instance in the ELB. The old instances can be terminated or kept running. | EC2 / On-Prem, Lambda & ECS. | | `ElasticBeanstalk` | All at Once | Downtime | Default policy. Takes everything out of service. Recreates the instances and boots them again. Fastest deployment for EB. | EB | | `ElasticBeanstalk` | Rolling | Lowered Capacity | Slowly switch out instances over time. Safer than **All at Once**. | EB | -| `ElasticBeanstalk` | Rolling with Aditional Batches | Higher Cost | You spin up an extra batch. Then you switch out the old instances over time until one is left, which you discard. | EB | +| `ElasticBeanstalk` | Rolling with Additional Batches | Higher Cost | You spin up an extra batch. Then you switch out the old instances over time until one is left, which you discard. | EB | | `ElasticBeanstalk` | Immutable | Higher Cost | You spin up an entire extra Auto Scailing Group, then once ready, point the ELB to the new ASG. The safest way to deploy applications because the old instances remain. | EB | | `ElasticBeanstalk` | Blue/Green | Higher Cost | You spin up an entire extra ELB, then switch out the URLs. | EB | | `ElasticBeanstalk` | Traffic Shifting | Higher Cost | You spin up and extra ELB, the split the traffic between the two, until you are satisfied your application works. | EB | diff --git a/_Concepts/Glossary/AWS.md b/_Concepts/Glossary/AWS.md new file mode 100644 index 0000000..27fc436 --- /dev/null +++ b/_Concepts/Glossary/AWS.md @@ -0,0 +1,2 @@ +# [[AWS]] +Amazon Web Services. Plain and simple. \ No newline at end of file diff --git a/_Concepts/Glossary/VPN.md b/_Concepts/Glossary/VPN.md new file mode 100644 index 0000000..cdf3232 --- /dev/null +++ b/_Concepts/Glossary/VPN.md @@ -0,0 +1,2 @@ +# VPN +Virtual Private Network. Secures connections between two networks. \ No newline at end of file From e20f28e689c05060ddacb6842f985c62593917ca122b7df292568177ef1d9003 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 13:53:37 +0000 Subject: [PATCH 22/29] links --- X-Ray/_X-Ray.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/X-Ray/_X-Ray.md b/X-Ray/_X-Ray.md index 94327c9..6de0816 100644 --- a/X-Ray/_X-Ray.md +++ b/X-Ray/_X-Ray.md @@ -16,12 +16,12 @@ flowchart LR ``` ## X-Ray SDK -- The SDK provides **interceptors** to trace HTTP requests +- The SDK provides **interceptors** to trace [[HTTP]] requests - **Client handlers** to **instrument** AWS SDK clients that your application uses to call other [[AWS]] Services -- A HTTP Client to use to instrument calls to other internal and external HTTP web services +- A [[HTTP]] Client to use to instrument calls to other internal and external [[HTTP]] web services ## X-Ray Instrumentation -Measure he level of product's performance to diagnose errors and write trace information. +Measure the level of product's performance to diagnose errors and write trace information. ## X-Ray-Daemon It buffers segments into a queue and uploads in batches. @@ -54,7 +54,7 @@ Comes with [[_Elastic BeanStalk]] and [[_Lambda]] by default. * The first request each second... * And 5% of any additional requests. * Idea is to reduce service charges when you are getting started. The default sampling rate is low. - * You can create limits for the rates + * You can create limits for the rates. * **Tracing Header**: * All requests are traced up to a configurable minimum. @@ -63,11 +63,11 @@ Comes with [[_Elastic BeanStalk]] and [[_Lambda]] by default. * The Tracing Header determines if the trace shows up in the viewer. * **Filter Expressions**: - * Applications make a lot of data, you can filter it + * Applications make a lot of data, you can filter it. * **Groups**: * Named Filter Expressions. - * Groups only update after you update them, the data before still remains (subsequent traces only) + * Groups only update after you update them, the data before still remains. (subsequent traces only) * **Annotations**: * Up to 50 annotations per trace. @@ -82,7 +82,7 @@ Comes with [[_Elastic BeanStalk]] and [[_Lambda]] by default. ## X-Ray Service Integration - [[_Lambda|Lambda]] -- Api Gateway +- [[_API Gateway|API Gateway]] - ELB - SNS - SQS From b8aeb037a14dc5b766b6e85ac19d32717449a4bad84716f92da7240b2bfb50af Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 14:04:48 +0000 Subject: [PATCH 23/29] added links --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a6a0c3..9e7a0b1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ # Read Me This is a collection of notes I have written in order to aid me in my learning. -Use [Zettlr](https://www.zettlr.com/) to view this repository. \ No newline at end of file +Use [Zettlr](https://www.zettlr.com/) to view this repository. + +TODO: +- Explore links: + - https://examprep.greglab.net/dva-c02/service/amazon-athena + - https://courseiva.com/learn/dva-c02/athena-dva From b0bd0dd71e8921ad5cfacbb7c525750c3a6bb8b83c6d537a9dd1826e3f12bbcb Mon Sep 17 00:00:00 2001 From: Ember Date: Mon, 2 Nov 2026 14:09:37 +0000 Subject: [PATCH 24/29] Add 20 numeric DynamoDB capacity practice questions --- .../Practice/Read and Write Units - Set 3.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 DynamoDB/Practice/Read and Write Units - Set 3.md diff --git a/DynamoDB/Practice/Read and Write Units - Set 3.md b/DynamoDB/Practice/Read and Write Units - Set 3.md new file mode 100644 index 0000000..44a7739 --- /dev/null +++ b/DynamoDB/Practice/Read and Write Units - Set 3.md @@ -0,0 +1,96 @@ +# DynamoDB Read/Write Units — Numeric Practice, Set 3 + +20 questions. Give a numeric answer for each, using `1 = `, `2 = `, and so on. + +## Assumptions + +- Assume provisioned capacity and steady workloads. +- All item sizes are exact DynamoDB item sizes, including attribute names and values. +- Each read accesses an individual item, not a Query or Scan. Transactional operations count individual items, not transaction API calls. +- Normal writes are non-transactional. All writes create new items. +- Ignore indexes, replication, retries, failed requests, burst capacity and partition limits. +- Questions 1–14 ask for exact throughput requirements: fractional RCU answers are valid; do not round the final result to a whole number. +- Questions 15–18 ask for the maximum number of individual item operations per second. +- Questions 19–20 ask for whole-number provisioned capacity settings. + +## Questions + +### 1. You normally write six separate 1.8 KB items every second. How many WCUs are required? + +Answer: ______ + +### 2. You normally write nine separate 0.7 KB items every second. How many WCUs are required? + +Answer: ______ + +### 3. You normally write four separate 3.01 KB items every second. How many WCUs are required? + +Answer: ______ + +### 4. You transactionally write three separate 2.01 KB items every second. How many WCUs are required? + +Answer: ______ + +### 5. You transactionally write six separate 1 KB items every second. How many WCUs are required? + +Answer: ______ + +### 6. You perform strongly consistent reads of five separate 5 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 7. You perform strongly consistent reads of three separate 12 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 8. You perform eventually consistent reads of nine separate 0.8 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 9. You perform eventually consistent reads of five separate 8.01 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 10. You perform eventually consistent reads of seven separate 8 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 11. You transactionally read five separate 4.01 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 12. You transactionally read three separate 11 KB items every second. How many RCUs of throughput are required? + +Answer: ______ + +### 13. Each second, you normally write two 0.6 KB items and three 2.4 KB items to the same table. How many WCUs are required in total? + +Answer: ______ + +### 14. Each second, you perform strongly consistent reads of two 5 KB items and eventually consistent reads of three 1 KB items from the same table. How many RCUs of throughput are required in total? + +Answer: ______ + +### 15. You have 28 WCUs available. What is the maximum number of normal item writes per second you can sustain if each item is 3.2 KB? + +Answer: ______ + +### 16. You have 30 WCUs available. What is the maximum number of transactional item writes per second you can sustain if each item is 2.2 KB? + +Answer: ______ + +### 17. You have 15 RCUs available. What is the maximum number of eventually consistent item reads per second you can sustain if each item is 9 KB? + +Answer: ______ + +### 18. You have 32 RCUs available. What is the maximum number of transactional item reads per second you can sustain if each item is 5 KB? + +Answer: ______ + +### 19. You perform eventually consistent reads of eleven separate 3 KB items every second. What is the minimum WHOLE NUMBER of RCUs you must provision? + +Answer: ______ + +### 20. You perform eventually consistent reads of five separate 12.01 KB items every second. What is the minimum WHOLE NUMBER of RCUs you must provision? + +Answer: ______ From 473b21d15727d7bc173f212131ab0e09b3090f21b0066a010fea5a694ae32580 Mon Sep 17 00:00:00 2001 From: Baldyga Date: Mon, 2 Nov 2026 14:15:53 +0000 Subject: [PATCH 25/29] clanker notes --- .agents/tasks/dva-notes-review.md | 276 ++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 .agents/tasks/dva-notes-review.md diff --git a/.agents/tasks/dva-notes-review.md b/.agents/tasks/dva-notes-review.md new file mode 100644 index 0000000..765ad2c --- /dev/null +++ b/.agents/tasks/dva-notes-review.md @@ -0,0 +1,276 @@ +# DVA-C02 Notes Review: Findings Report + +Scope: all 33 markdown files in `c:\src\repos\DVA-02-Notes` (read-only review; nothing modified). Images checked: `ACM/terminating_diagram_at_alb.png`, `ACM/terminating_ssl_e2e.png`, `Route 53/route_53_routing_example.png` all exist. + +Severity key: **high** = factually wrong, **medium** = misleading/incomplete (likely to cost exam points), **low** = typo/formatting. + +## Summary answer + +Yes, there are several real errors. The most important ones: + +1. **VPC is "Virtual Private Cloud", not "Virtual Private Connection"** (`VPC/_VPC.md`), and the description actually describes VPC peering / VPN, not a VPC. +2. **ACM pricing is wrong** (`ACM/_ACM.md`): imported certificates are not $400/month. ACM public and imported certs are free; the $400/month is AWS Private CA (per private CA). "Public vs Private" is also conflated with "ACM-issued vs imported". +3. **Elastic Beanstalk deployment policies are described incorrectly** (`_Concepts/Deployments.md`): All-at-once doesn't recreate instances; Immutable and Traffic Splitting use a temporary ASG behind the *same* load balancer (not a new ELB); the policy is "Traffic splitting", not "Traffic Shifting"; Blue/Green swaps environment CNAMEs. +4. **CodeDeploy blue/green does not support on-premises instances** (`_Concepts/Deployments.md` says "EC2 / On-Prem, Lambda & ECS"). +5. **Route 53 is not a CloudFront origin** (`CloudFront/_CloudFront.md`). +6. **AppSync auth list is incomplete**: missing OpenID Connect and AWS Lambda authorizers (5 modes, a common exam question). +7. **Outdated info**: CodeCommit is back to GA (since 24 Nov 2025), X-Ray SDKs/Daemon entered maintenance mode on 25 Feb 2026 (OpenTelemetry recommended), CloudFront Functions are no longer "only ES 5.1", OAI is "legacy" rather than "not available". +8. **REST is not "a kind of CRUD"** (`_Concepts/Glossary/REST.md`). This contradicts `CRUD vs REST.md`. +9. **About 15 broken wiki-links**, including CodePipeline's "Build" stage linking to CodePipeline itself instead of CodeBuild. + +--- + +## Evidence, by file + +### `_Concepts/Deployments.md` + +| # | Snippet | Problem | Correct info | Sev | +|---|---|---|---|---| +| D1 | `[[_Elastic BeanStalk\|_Elastic BeanStalk]]` (line 4) | Broken link; no Elastic Beanstalk note exists. | Create `_Elastic BeanStalk.md` or remove the link. | low | +| D2 | CodeDeploy In-place: "Stops apps on _every_ instance" | Misleading. Instances are taken down according to the deployment configuration (`CodeDeployDefault.OneAtATime`, `HalfAtATime`, `AllAtOnce`, or custom minimum healthy hosts), not all at once. | Note the deployment configs and minimum healthy hosts. | medium | +| D3 | CodeDeploy Blue/Green scope: "EC2 / On-Prem, Lambda & ECS" | **Wrong**: AWS says EC2/On-Premises blue/green "work with Amazon EC2 instances only" ([CodeDeploy docs](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create.html)). | Scope: EC2 (not on-prem), Lambda, ECS. | high | +| D4 | CodeDeploy Blue/Green description ("Make a new set of instances…") | Only true for EC2. For Lambda and ECS, blue/green means **traffic shifting** between versions/task sets using Canary, Linear, or AllAtOnce configs (e.g. `LambdaCanary10Percent5Minutes`, `ECSLinear10PercentEvery1Minutes`). This is heavily tested. | Add a Lambda/ECS row with canary/linear/all-at-once. | medium | +| D5 | EB All at Once: "Recreates the instances and boots them again" | **Wrong**. All-at-once deploys the new version to the *existing* instances simultaneously; no new instances are created. | "Deploys to all existing instances at once; short downtime; fastest; no extra cost." | high | +| D6 | EB Rolling with Additional Batches: "switch out the old instances over time until one is left, which you discard" | Misleading. EB launches one extra batch first so full capacity is kept, then deploys in batches to existing instances. At the end the extra batch's worth of instances is terminated. Impact should read "full capacity maintained, small extra cost". | See [EB deployment policies](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html). | medium | +| D7 | EB Immutable: "spin up an entire extra Auto Scailing Group, then once ready, point the ELB to the new ASG. The safest… because the old instances remain." | EB creates a **temporary ASG behind the same load balancer**. Old and new serve together, then new instances move to the original ASG and old instances are **terminated**. It's "safest" because rollback is just terminating the new instances. Typo "Scailing". | See [Immutable updates](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environmentmgmt-updates-immutable.html). | medium | +| D8 | EB Blue/Green: "You spin up an entire extra ELB, then switch out the URLs." | Blue/green in EB means cloning a whole separate **environment** (its own ASG, LB, etc.) and doing **Swap Environment URLs** (a CNAME swap). It isn't a built-in deployment policy. | "New environment, then swap CNAMEs; Route 53 weighted records also possible." | medium | +| D9 | EB "Traffic Shifting": "spin up and extra ELB, the split the traffic" | **Wrong name and mechanism**. The policy is **Traffic splitting** (canary). It launches new instances in a temporary ASG behind the **same** load balancer and sends a set percentage of traffic to them for an evaluation period. Typos "and extra", "the split". | See [AWS What's New, 2020](https://aws.amazon.com/about-aws/whats-new/2020/05/aws-elastic-beanstalk-traffic-splitting-deployment-policy/) and the EB docs above. | high | +| D10 | "the reregistered", "replace and existing instance" | Typos ("then re-registered", "replace the existing instances"). | | low | +| D11 | Five empty rows and a dotted row at the end of the table | Formatting leftovers. | Remove them. | low | + +### `_Concepts/CRUD vs REST.md` +- Content is fine. Note that `REST.md` contradicts it (see below). **(medium, inconsistency)** + +### `_Concepts/Glossary/REST.md` +- "A kind of [[CRUD]]": **wrong**. REST is an architectural style (stateless, resource-based, uniform interface). HTTP methods often *map* to CRUD (POST→Create, GET→Read, PUT/PATCH→Update, DELETE→Delete), but REST isn't a kind of CRUD. This contradicts `CRUD vs REST.md`, which is correct. **(medium)** + +### `_Concepts/Glossary/HTTPS.md` +- "a layer of encryption, either on the Application on IP layer": **wrong**. HTTPS is HTTP over **TLS** (sits between the application and transport/TCP layers). IP-layer encryption is IPsec, which isn't HTTPS. Also "on" should be "or". Default port 443 (HTTP is 80) is worth adding. **(medium)** + +### `_Concepts/Glossary/HTTP.md` +- "Web browser protocol": oversimplified. HTTP is an application-layer request/response protocol used by browsers and also by APIs (REST, GraphQL, AWS APIs). **(low)** + +### `_Concepts/Glossary/VPN.md` +- "Secures connections between two networks": incomplete. A VPN can also connect a single client to a network (client VPN versus site-to-site). **(low)** + +### `_Concepts/Glossary/API.md`, `AWS.md`, `CRUD.md`, `SQL.md` +- No errors. `AWS.md` heading `# [[AWS]]` links to itself (harmless). **(low)** + +### `README.md` +- No issues. + +### `ACM/_ACM.md` + +| # | Snippet | Problem | Correct info | Sev | +|---|---|---|---|---| +| A1 | `# Amazon Certificate Manager` | The service is **AWS** Certificate Manager. | | low | +| A2 | "1. Public - Certificates provided by ACM (Free) 2. Privates - Certificates you import ($400 / month)" | **Wrong**. Two separate ideas are mixed up. (a) ACM-issued public certs used with integrated services are free. (b) **Imported** certs are also free to manage in ACM. (c) **Private** certs come from **AWS Private CA**, which costs about $400/month per CA (general-purpose mode) plus per-cert fees. ACM docs: no additional charge for certificates you manage with ACM ([ACM user guide](https://docs.aws.amazon.com/acm/latest/userguide/)). | Re-split into: Public (ACM-issued, free) / Imported (free) / Private (via AWS Private CA, paid). | high | +| A3 | "public and private SSL/TLS certificate" | "certificates" (plural). | | low | +| A4 | Attachable resources list | Missing the exam-relevant constraint: **for CloudFront, the ACM cert must be in `us-east-1`**. For ALB/NLB/API Gateway regional endpoints, the cert must be in the same Region. Also "ELB" should say ALB/NLB (CLB too). Note that ACM-issued certs can't be installed directly on EC2 (except by export, see A6). | Add the Region rule. | medium | +| A5 | `[[ELB]]` (twice), `[[API Gateway]]`, `[[_Elastic BeanStalk\|…]]` | Broken links. The files are `_ELB.md` and `_API Gateway.md`. No Beanstalk note exists. | `[[_ELB\|ELB]]`, `[[_API Gateway\|API Gateway]]`. | low | +| A6 | E2E: "You can't do this with ACM by itself. You can set up Let's Encrypt for it." | Partly outdated. ACM now supports **exportable public certificates** (paid) that can be installed on your own servers ([ACM public certs doc](https://docs.aws.amazon.com/acm/latest/userguide/acm-public-certificates.html)). Also, ALB doesn't validate target certificates, so a self-signed cert on the instance is enough for ALB→EC2 encryption. | Mention both options. | medium | +| A7 | "Terminating SSL at Load Balancer… beyond the ALB is unencrypted" | Fine, but worth noting that NLB can also do TLS passthrough (TCP listener) for true end-to-end. | | low | +| A8 | "on each instances" | "each instance". | | low | + +### `ALB/_ALB.md`, `NLB/_NLB.md`, `S3/_S3.md` +- Placeholders with no content, so nothing is wrong. These are core DVA-C02 topics (S3 especially) and are gaps. **(medium, coverage gap)** + +### `ELB/_ELB.md` +- Lists only ALB and NLB. ELB also includes the **Gateway Load Balancer** and the legacy **Classic Load Balancer**. **(low)** + +### `API Gateway/_API Gateway.md` +- REST / HTTP / WebSocket flavours are correct. +- `[[REST]]` and `[[HTTP]]` link to glossary terms, not to the API Gateway API types, which could mislead. **(low)** +- Placeholder: missing stages, integration types, caching (TTL default 300s), throttling (10,000 rps / 5,000 burst account default), usage plans/API keys, authorizers. **(medium, coverage gap)** + +### `AppSync/_AppSync.md` + +| # | Snippet | Problem | Correct info | Sev | +|---|---|---|---|---| +| P1 | `# Authorisation`: API Key, AWS IAM, Cognito User Pools | **Incomplete**. AppSync has five auth types: API key, **AWS Lambda**, IAM, **OpenID Connect**, Cognito User Pools ([AppSync docs](https://docs.amazonaws.cn/en_us/appsync/latest/devguide/security-authz.html)). Several can be combined (multiple auth modes). Heading level `#` is inconsistent with the other `##` sections. | Add OIDC and Lambda. | high | +| P2 | "Full request caching: Self explanatory; caches all requests." | Oversimplified. AWS describes it as caching each resolver's result separately for all resolvers invoked during a request, keyed by request context ([AppSync caching](https://docs.aws.amazon.com/appsync/latest/devguide/enabling-caching.html), [API ref](https://docs.aws.amazon.com/appsync/latest/APIReference/API_ApiCache.html)). | | medium | +| P3 | "Caching isn't serverless; you must provision an on-demand instance." | "On-demand" is misleading. You choose a cache **instance type** (dedicated, ElastiCache-backed) that's billed hourly while it exists. | | low | +| P4 | "Resolvers… used to implement the state-changing operations" | Resolvers fulfil **all** operations, reads (queries) included. Also missing: unit vs **pipeline** resolvers. | | medium | +| P5 | API Types: GraphQL APIs, Merged APIs | Missing **AppSync Event APIs** (WebSocket pub/sub, launched in 2024) ([Event API docs](https://docs.aws.amazon.com/appsync/latest/eventapi/configure-event-api-auth.html)). "a collection of Graph APIs" should be "source GraphQL APIs". | | low | +| P6 | Data sources | Fine. Could add the "None" data source (local resolvers). The RDS entry is really Aurora via the RDS Data API. | | low | +| P7 | "Resolvers attached to specific fields" | Grammar: "are attached"; "used" should be capitalised. | | low | + +### `AppSync/GraphQL.md` +- "GraphQL is an FOSS agnostic query adaptor": imprecise. GraphQL is an open-source **query language and runtime specification** for APIs. "adaptor" is the wrong word. **(low)** +- "composed on" should be "composed of". "Allow for data to be create" should be "created". **(low)** +- The **Fields** bullet is empty. **(low)** +- The examples don't match: the schema defines `Query { me: User }` and `User { id, name }`, but the query uses `currentUser { name age }`. `age` isn't on `User` and `currentUser` isn't a Query field. `createUser` and `newPerson` aren't defined either. This would fail validation. **(low/medium)** +- Missing: GraphQL APIs typically use one endpoint with POST. **(low)** + +### `Athena/_Athena.md` +- The analogy suggests the **catalog** decides which "boxes" to open. Data skipping actually comes from **partitioning** (partition pruning) and **columnar formats** (Parquet/ORC) with compression. The Glue Data Catalog stores schema and location. **(medium)** +- "query any book in any format (CSV, JSON, Parquet)": overstated. Athena supports specific SerDes/formats (CSV/TSV, JSON, Parquet, ORC, Avro, Ion, logs, etc.), not *any* format. **(low)** +- "never alters the original books": mostly true for standard tables, but Athena can write results/CTAS/`INSERT INTO`, and with **Apache Iceberg** tables it supports `UPDATE`/`DELETE`/`MERGE`. **(low)** +- Missing exam facts: serverless (Trino/Presto engine), priced per TB scanned, query results written to S3, workgroups for cost control. **(medium, coverage gap)** +- Typo: "a box contains fictions" should be "fiction". **(low)** + +### `CloudFront/_CloudFront.md` + +| # | Snippet | Problem | Correct info | Sev | +|---|---|---|---|---| +| C1 | "**Origin**… Examples include: S3, EC2, ELB, Route53." | **Wrong**. Route 53 is DNS and can't be an origin. | Origins: S3, ALB/ELB, EC2, API Gateway, Lambda function URLs, MediaStore/MediaPackage, any custom HTTP server. | high | +| C2 | Origin Request row use cases "Add security headers (CSP/HSTS), set cookies…, customise error messages" vs. Origin Response row "Rewrite URLs…, inject headers for origin authentication…" | The use cases look **swapped**. URL rewrites, adding origin-auth headers, and picking the origin by user agent are **origin request** tasks. Adding security headers and customising error responses are **response** tasks. | | medium | +| C3 | Origin Response description: "After CloudFront receives the request from the origin." | Should say "receives the **response** from the origin". | | low | +| C4 | "Max Memory… L@E 128MB-3,008MB" | Unclear: **viewer** triggers are fixed at 128 MB, and higher memory applies only to origin triggers. The exact current upper bound (3,008 MB versus Lambda's 10,240 MB) is **unverified**; the AWS doc page couldn't be fetched (TLS error) and third-party sources disagree. | Write "128 MB (viewer) / up to Lambda max (origin)" and check against [AWS comparison page](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/edge-functions-choosing.html). | low | +| C5 | "Lambda@Edge… JavaScript" / CF Functions "Only supports ECMAScript 5.1" | Outdated. CloudFront Functions runtime 2.0 is ES 5.1 compliant **plus some ES6–ES12 features** ([AWS docs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-javascript-runtime-20.html)). Runtime 2.0 is also needed for CloudFront KeyValueStore. | | medium | +| C6 | `CloudFront will failover on: GET, HEAD, and OPTION` | Typo: `OPTIONS`. The status codes (400, 403, 404, 416, 500, 502, 503, 504) are correct. Failover also happens on connection failures/timeouts. | | low | +| C7 | "OAI… Lots of drawbacks. Not available anymore." | Overstated. OAI is **legacy** and AWS recommends OAC, but OAI still works on existing distributions ([AWS re:Post KC](https://aws.amazon.com/premiumsupport/knowledge-center/cloudfront-serve-static-website/)). Name the drawbacks: no SSE-KMS, no S3 Regions launched after Dec 2022, limited PUT/POST support. | | medium | +| C8 | "can stream Videos On Demand using [[ISS Microsoft Smooth Streaming]]" | Typo "ISS" should be "IIS". Smooth Streaming is legacy. CloudFront more commonly serves HLS/DASH (e.g. with MediaPackage). | | low | +| C9 | "Regional Caches: Compute located in board geographical locations" | "broad". They're larger caches that sit between edge locations and the origin; calling them "compute" is odd. Edge locations are points of presence/caches, not general compute. | | low | +| C10 | "Distribution: A collection of Edge locations and Regional Cache…" | A distribution is a **configuration** (origins, cache behaviours, policies, certs, domain names) that tells CloudFront where to fetch content and how to cache/deliver it. It isn't a set of locations (the price class chooses which locations are used). | | medium | +| C11 | "Origin Request always returns:" | Should be "always includes". The list (URL path, body, Host, User-Agent, X-Amz-Cf-Id) is fine. | | low | +| C12 | "⚠️ If you are dealing with CORS, you will be setting things here, as this will mess with them." | Unclear. Suggest: "CORS response headers (Access-Control-Allow-*) can be set via a response headers policy (AWS has managed CORS policies). To *forward* the `Origin` header to the origin, use an origin request policy." | | low | +| C13 | "charged pre request" | "per request". | | low | +| C14 | `[[AWS WAF]]`, `[[Videos On Demand]]`, `[[ISS Microsoft Smooth Streaming]]` | Broken links (no such notes). | | low | +| C15 | Managed cache policies list | Correct but incomplete. Also `UseOriginCacheControlHeaders` and `UseOriginCacheControlHeaders-QueryStrings`. | | low | + +### `CloudFront/CloudFront Functions.md` +- "Only supports ECMAScript 5.1": outdated (see C5). **(medium)** +- "They live directly at Edge Locations": correct. + +### `CloudFront/Lambda@Edge.md` +- Python and Node.js: correct. "deployed at Regional Edge Caches": correct. +- Missing exam-relevant facts: functions must be **authored in `us-east-1`** and replicated, you must reference a **numbered version** (not `$LATEST` or an alias), and there are no environment variables. **(medium, gap)** + +### `CodeBuild/_CodeBuild.md` +- "build tools such as Apache, Maven, Gradle": it's **Apache Maven** (one tool), not "Apache" and "Maven". **(low)** +- Workflow step 3 says `buildspec.yaml`, but the section header says `buildspec.yml`. The default filename is **`buildspec.yml`**. **(medium, inconsistency)** +- Step 4 "Push into a bucket, or any other AWS SDK action (I think?)": artifacts go to **S3**. Docker images are pushed to ECR by commands you write (usually in `post_build`). Also covers reports and cache. **(medium)** +- Build environments: "If you need specific software, you need to make an image and upload it to ECR and reference it in the pipeline". Not required: you can install software in the `install` phase (`runtime-versions`, package managers). Custom images can come from ECR **or Docker Hub/other registries** and are set on the **build project**, not the pipeline. **(medium)** +- Triggers: also webhooks (GitHub, Bitbucket, GitLab) and EventBridge schedules. **(low)** +- "Scaled automatically": should be "Scales". **(low)** +- Missing: `env` (variables, `parameter-store`, `secrets-manager`), `artifacts`, `cache`, `reports` sections, `finally` blocks, VPC config, logs to CloudWatch/S3, default timeout. **(low, gap)** + +### `CodeCommit/_CodeCommit.md` +- No mention of service status. AWS closed CodeCommit to new customers on 25 Jul 2024, then **returned it to full GA on 24 Nov 2025** ([AWS DevOps blog](https://aws.amazon.com/blogs/devops/aws-codecommit-returns-to-general-availability), [InfoQ](https://infoq.com/news/2025/12/aws-codecommit-ga)). Worth noting because study materials from 2024–25 call it deprecated. **(medium)** +- "HIPPA" should be "HIPAA". **(low)** +- "No limit on the size of your repositories": matches AWS marketing. Note that Git LFS wasn't supported historically (on the roadmap per InfoQ). **(low)** +- Missing exam-relevant auth options: HTTPS Git credentials, SSH keys, `git-remote-codecommit` (GRC), and triggers/notifications (SNS/Lambda/EventBridge). **(low, gap)** + +### `CodeDeploy/_CodeDeploy.md` +- Blue/Green section describes only EC2 (instances and ELB). It's missing (a) **EC2 only; on-premises can't use blue/green** ([docs](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create.html)), and (b) Lambda/ECS blue/green via Canary/Linear/AllAtOnce traffic shifting. **(medium)** +- Deployment Groups: "A set of EC2 instances or Lambda Functions". For EC2/on-prem it's instances chosen by **tags** and/or **ASGs**; for ECS it's an ECS service plus load balancer; for Lambda, the group holds the deployment config/alarms. **(low)** +- Application: "revision deployment configuration, and group" is missing a comma ("revision, deployment configuration, and deployment group"). **(low)** +- Missing exam staples: the **CodeDeploy agent** (EC2/on-prem), `appspec.yml` location (root of revision) and **lifecycle hooks** (`ApplicationStop`, `BeforeInstall`, `AfterInstall`, `ApplicationStart`, `ValidateService`; Lambda: `BeforeAllowTraffic`/`AfterAllowTraffic`), and rollback on CloudWatch alarms. **(medium, gap)** +- Consistent with `Deployments.md` on in-place being EC2/On-Prem only (correct). + +### `CodePipeline/_CodePipeline.md` +- `[[_CodePipeline|Build]]`: the "Build" stage links to **CodePipeline**. It should be `[[_CodeBuild|Build]]`. **(low but misleading)** +- `[[CodeDeploy||Deploy]]` has a double pipe and the wrong target. It should be `[[_CodeDeploy|Deploy]]`. **(low)** +- `[[_CloudFormation|CloudFormation]]`: broken link (no note). **(low)** +- "Actions are not restricted to specific stages": **wrong for Source actions**. Source actions can only be in the **first stage**, and the first stage can only contain source actions. Every pipeline needs at least 2 stages. **(medium)** +- "Action Groups group several Actions": I couldn't confirm "action group" as an official CodePipeline concept. Actions in a stage run in series/parallel by `runOrder`. **(unverified)** +- "invoke a CloudFormation template": better put as "create/update a CloudFormation stack or change set". **(low)** +- Typos: "The can pull" should be "They can"; "Deploy Actions is a Build Stage" should be "in a Build Stage"; "Pipeline are only limited" should be "Pipelines are". **(low)** + +### `Lambda/_Lambda.md` +- "A Docker container or a runner that runs code for you": misleading. Lambda runs functions in **Firecracker microVMs**. Container images are one *packaging* option (zip is the other), but Lambda isn't a Docker container. **(medium)** +- `[[API Gateway|API Gateway]]` is broken (file is `_API Gateway.md`). `[[_DynamoDB|DynamoDB]]` is broken (no note). **(low)** +- Placeholder: missing limits (15 min timeout, 128 MB–10,240 MB memory, /tmp up to 10 GB, 1,000 default concurrency, 50 MB zipped / 250 MB unzipped deployment, 6 MB sync payload), versions/aliases, layers, invocation types, DLQ/destinations. **(medium, coverage gap)** + +### `Route 53/_Route53.md` +- "A DNS with AWS Services": Route 53 is a managed DNS **service** (registrar, authoritative DNS, health checks). **(low)** +- "Resolve VPC's outside of AWS": misleading. **Route 53 Resolver** inbound/outbound endpoints let on-premises networks resolve private VPC DNS names (and the reverse), which is hybrid DNS. **(medium)** +- Missing: routing policies (simple, weighted, latency, failover, geolocation, geoproximity, multivalue, IP-based) and alias vs CNAME (alias works at the zone apex and is free for AWS targets). These are exam staples. **(medium, gap)** + +### `Route 53/Record Sets.md` +- "Record sets are a collection of records which determine where to send traffic": a record set is the set of records with the **same name and type** (e.g. multiple A values). **(low)** +- "They are always changed in batch via the API": `ChangeResourceRecordSets` takes a change batch, which is roughly correct. **(low)** + +### `Route 53/Route 53 Hosted Zone.md` +- Correct overall. Private hosted zones can be associated with **one or more** VPCs. "Revisit this." is a leftover TODO. **(low)** + +### `Route 53/Use Cases.md` +- "our web backed by ALB" should be "our web app backed by ALB". The image exists. **(low)** + +### `VPC/_VPC.md` +- "Virtual Private Connection": **wrong**. VPC is **Virtual Private Cloud**, a logically isolated virtual network in an AWS Region (CIDR, subnets, route tables, IGW/NAT, security groups/NACLs). **(high)** +- The description ("a private link between 2 places… connect 2 AWS accounts… a VPN between two places") describes **VPC peering**, **PrivateLink**, or **Site-to-Site VPN**, not a VPC. **(high)** + +### `X-Ray/_X-Ray.md` + +| # | Snippet | Problem | Correct info | Sev | +|---|---|---|---|---| +| X1 | X-Ray SDK / Daemon sections | Outdated. **X-Ray SDKs/Daemon entered maintenance mode on 25 Feb 2026** (security fixes only) and AWS recommends migrating to **OpenTelemetry/ADOT** ([support timeline](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-daemon-timeline.html)). End of support is reported as 25 Feb 2027 ([Classmethod](https://dev.classmethod.jp/articles/x-ray-sdk-daemon-migration-to-opentelemetry/), end date unverified on AWS's page). The X-Ray service itself is still supported. | | medium | +| X2 | X-Ray Daemon | Missing the key exam fact: the daemon listens on **UDP port 2000**. | | medium | +| X3 | "Comes with Elastic BeanStalk and Lambda by default" | Lambda runs the daemon only when **Active tracing** is enabled. On EB the daemon is pre-installed but must be enabled (`XRayEnabled` option or `.ebextensions`). On EC2/ECS you install/run it yourself (sidecar for ECS). Instances also need IAM permissions (`AWSXRayDaemonWriteAccess`). | | medium | +| X4 | Annotations: "Up to 50 annotations per trace" | Correct, but it misses the key contrast with Metadata: annotations are **indexed** key-value pairs (string/number/boolean) usable in **filter expressions**. | | medium | +| X5 | "Errors, Faults, and Exceptions" | Missing the definitions: **Error = 4xx**, **Fault = 5xx**, **Throttle = 429**. | | medium | +| X6 | "Tracing Header: All requests are traced up to a configurable minimum…" | This is sampling (reservoir + fixed rate) under the wrong heading. The header is `X-Amzn-Trace-Id` (correct) with `Root`, `Parent`, `Sampled` fields. | | low | +| X7 | "A Trace ID is the path of a request" | A **trace** is the collection of segments produced by one request. The trace ID is its identifier. | | low | +| X8 | Groups: "Groups only update after you update them, the data before still remains" | Garbled. A group's filter expression applies to **new** traces only after it's created or edited. | | low | +| X9 | Integration list "ELB" | X-Ray integrates with **ALB** (adds/propagates the trace header), not all ELB types. App Mesh is being discontinued (Sept 2026, **unverified**). | | low | +| X10 | `[[_Elastic BeanStalk]]` | Broken link. | | low | +| X11 | `[...]{.underline}` | Pandoc span syntax. It may not render outside Zettlr/Pandoc. | | low | +| — | Sampling defaults (1 req/s reservoir + 5%) | Correct. | | — | + +--- + +## Broken internal links (consolidated) + +Existing note names: `API, AWS, CRUD, HTTP, HTTPS, REST, SQL, VPN, CRUD vs REST, Deployments, _ACM, _ALB, _API Gateway, _AppSync, GraphQL, _Athena, _CloudFront, CloudFront Functions, Lambda@Edge, _CodeBuild, _CodeCommit, _CodeDeploy, _CodePipeline, _ELB, _Lambda, _NLB, _Route53, Record Sets, Route 53 Hosted Zone, Use Cases, _S3, _VPC, _X-Ray`. + +| File | Link | Issue | +|---|---|---| +| `_Concepts/Deployments.md` | `[[_Elastic BeanStalk]]` | note missing | +| `ACM/_ACM.md` | `[[ELB]]` ×2 | should be `_ELB` | +| `ACM/_ACM.md` | `[[API Gateway]]` | should be `_API Gateway` | +| `ACM/_ACM.md` | `[[_Elastic BeanStalk]]` | note missing | +| `CloudFront/_CloudFront.md` | `[[AWS WAF]]`, `[[Videos On Demand]]`, `[[ISS Microsoft Smooth Streaming]]` | notes missing | +| `CodePipeline/_CodePipeline.md` | `[[_CodePipeline\|Build]]` | wrong target, should be `_CodeBuild` | +| `CodePipeline/_CodePipeline.md` | `[[CodeDeploy\|\|Deploy]]` | double pipe; should be `_CodeDeploy` | +| `CodePipeline/_CodePipeline.md` | `[[_CloudFormation]]` | note missing | +| `Lambda/_Lambda.md` | `[[API Gateway\|API Gateway]]` | should be `_API Gateway` | +| `Lambda/_Lambda.md` | `[[_DynamoDB]]` | note missing | +| `X-Ray/_X-Ray.md` | `[[_Elastic BeanStalk]]` | note missing | + +All three image references resolve to existing PNGs. + +## Internal inconsistencies + +- `REST.md` ("a kind of CRUD") contradicts `CRUD vs REST.md` ("an architectural style"). +- `Deployments.md` says CodeDeploy Blue/Green covers On-Prem. `_CodeDeploy.md` describes only EC2 blue/green and never mentions Lambda/ECS traffic shifting. Both should state: EC2 (not on-prem), Lambda, ECS. +- `_CodeBuild.md` uses both `buildspec.yaml` and `buildspec.yml`. +- `_ACM.md` and `_ELB.md` treat "ELB" as a single attachable thing, while `_ELB.md` defines it as an umbrella term. +- `_CloudFront.md` and `Lambda@Edge.md` agree on Node.js/Python and Regional Edge Caches, which is consistent and correct. + +## Typos and grammar (grouped, low) + +- Deployments: "Auto Scailing", "the reregistered", "replace and existing instance", "spin up and extra ELB, the split". +- ACM: "Amazon Certificate Manager", "certificate" (plural), "Privates", "each instances". +- AppSync: "Resolvers attached… used to…". +- GraphQL: "composed on", "data to be create". +- Athena: "a box contains fictions". +- CloudFront: "board geographical", "ISS", "OPTION", "pre request", "receives the request from the origin". +- CodeBuild: "Apache, Maven", "Scaled automatically". +- CodeCommit: "HIPPA". +- CodeDeploy: missing comma in the Application description. +- CodePipeline: "The can pull", "Deploy Actions is a Build Stage", "Pipeline are only limited". +- HTTPS: "Application on IP layer". +- Route 53 Use Cases: "our web backed by". + +## Could not verify + +- Current Lambda@Edge origin-trigger memory maximum (3,008 MB vs 10,240 MB). The AWS comparison page failed to load (TLS error). +- Whether "Action Groups" is official CodePipeline terminology. +- X-Ray SDK end-of-support date (25 Feb 2027) on AWS's own page. The maintenance-mode date (25 Feb 2026) is confirmed by AWS docs. +- App Mesh discontinuation date. + +## Conclusions and recommendations + +Fix these first, because they're wrong rather than just incomplete: +1. `VPC/_VPC.md`: rename to Virtual Private Cloud and rewrite the definition. Move the peering/VPN content to a "VPC connectivity" subsection. +2. `ACM/_ACM.md`: fix pricing (public and imported certs free; Private CA ~$400/month per CA). Add the CloudFront `us-east-1` rule. +3. `_Concepts/Deployments.md`: rewrite the EB rows (all-at-once is in place; immutable and traffic splitting use a temporary ASG behind the same LB; blue/green is a CNAME swap). Remove "On-Prem" from CodeDeploy blue/green. Add Lambda/ECS canary/linear/all-at-once. +4. `CloudFront/_CloudFront.md`: remove Route 53 from origins, swap the origin request/response use cases, and update CF Functions (runtime 2.0) and OAI (legacy). +5. `AppSync/_AppSync.md`: add OIDC and Lambda authorization. +6. `Glossary/REST.md`, `HTTPS.md`: fix the definitions (REST is an architectural style; HTTPS is HTTP over TLS, port 443). +7. Update the status notes: CodeCommit is GA again (Nov 2025); X-Ray SDK/Daemon are in maintenance mode (Feb 2026), so prefer ADOT/OpenTelemetry. Add the daemon's UDP 2000 port. +8. Fix the broken wiki-links, especially CodePipeline's Build → `_CodeBuild`. + +Then fill the exam-critical gaps: S3, ALB/NLB, API Gateway, Lambda limits, Route 53 routing policies, CodeDeploy AppSpec hooks. From 3a745faea59b8d83d921c51a0df2dbd2c8cefb55768a81e52296b4e48de17171 Mon Sep 17 00:00:00 2001 From: Ember Date: Mon, 2 Nov 2026 14:17:07 +0000 Subject: [PATCH 26/29] Add checked answer key and calculations for all 20 questions --- .../Practice/Read and Write Units - Set 3.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/DynamoDB/Practice/Read and Write Units - Set 3.md b/DynamoDB/Practice/Read and Write Units - Set 3.md index 44a7739..57d423a 100644 --- a/DynamoDB/Practice/Read and Write Units - Set 3.md +++ b/DynamoDB/Practice/Read and Write Units - Set 3.md @@ -94,3 +94,35 @@ Answer: ______ ### 20. You perform eventually consistent reads of five separate 12.01 KB items every second. What is the minimum WHOLE NUMBER of RCUs you must provision? Answer: ______ + +## Answer key + +