From 297e429e5aed0a5517f44d3702927379433e2ec4 Mon Sep 17 00:00:00 2001 From: Salma <121863224+SalmaAzeem@users.noreply.github.com> Date: Sat, 7 Dec 2024 20:31:59 +0200 Subject: [PATCH 1/7] fix: Reduce High severity issues reported by SonarCloud #2865 (#3103) * fix: add UnsupportedOperationException in KingsHand and GameLoopTest * refactor: update DatabaseService to use constant for BINARY_DATA and remove obsolete test files * refactor: update timePasses method in KingsHand * refactor CandyGame.java * refactor: simplify boundary checks in CandyGame * feat: add getters for type and points in Candy class and initialize logger in CandyGame * remove class and logger initialization in CandyGame * Modify CandyGame.java * fix Checkstyle violations * Remove generic wildcard type in ThreatAwareSystem --- .../com/iluwatar/event/aggregator/KingsHand.java | 2 ++ .../iluwatar/filterer/threat/ThreatAwareSystem.java | 6 +++--- .../java/com/iluwatar/gameloop/GameLoopTest.java | 4 ++-- .../iluwatar/slob/dbservice/DatabaseService.java | 2 +- .../src/main/java/com/iluwatar/slob/lob/Forest.java | 13 +++++++------ .../iluwatar/sessionserver}/LoginHandlerTest.java | 0 .../iluwatar/sessionserver}/LogoutHandlerTest.java | 0 .../src/main/java/com/iluwatar/typeobject/App.java | 11 ++++++----- .../java/com/iluwatar/typeobject/CandyGame.java | 12 ++++++++---- 9 files changed, 29 insertions(+), 21 deletions(-) rename server-session/src/test/java/{com.iluwatar.sessionserver => com/iluwatar/sessionserver}/LoginHandlerTest.java (100%) rename server-session/src/test/java/{com.iluwatar.sessionserver => com/iluwatar/sessionserver}/LogoutHandlerTest.java (100%) diff --git a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java index 38bb04ea45cb..aa249c13cab3 100644 --- a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java +++ b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java @@ -43,5 +43,7 @@ public void onEvent(Event e) { @Override public void timePasses(Weekday day) { + // This method is intentionally left empty because KingsHand does not handle time-based events directly. + // It serves as a placeholder to fulfill the EventObserver interface contract. } } diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java index 6e9bf7af6df6..c0de663d3b04 100644 --- a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java +++ b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java @@ -30,7 +30,7 @@ /** * Represents system that is aware of threats that are present in it. */ -public interface ThreatAwareSystem { +public interface ThreatAwareSystem { /** * Returns the system id. @@ -43,13 +43,13 @@ public interface ThreatAwareSystem { * Returns list of threats for this system. * @return list of threats for this system. */ - List threats(); + List threats(); /** * Returns the instance of {@link Filterer} helper interface that allows to covariantly * specify lower bound for predicate that we want to filter by. * @return an instance of {@link Filterer} helper interface. */ - Filterer filtered(); + Filterer, T> filtered(); } diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java index 83c631db0f22..210892e6a022 100644 --- a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java +++ b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java @@ -24,10 +24,9 @@ */ package com.iluwatar.gameloop; -import static org.junit.jupiter.api.Assertions.assertFalse; - import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; +import static org.junit.jupiter.api.Assertions.assertFalse; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -46,6 +45,7 @@ void setup() { gameLoop = new GameLoop() { @Override protected void processGameLoop() { + throw new UnsupportedOperationException("Not supported yet."); } }; } diff --git a/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java b/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java index ea54592c99d1..66555a849b1b 100644 --- a/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java +++ b/serialized-lob/src/main/java/com/iluwatar/slob/dbservice/DatabaseService.java @@ -92,7 +92,7 @@ public void startupService() throws SQLException { try (var connection = dataSource.getConnection(); var statement = connection.createStatement()) { - if (dataTypeDb.equals("BINARY")) { + if (dataTypeDb.equals(BINARY_DATA)) { statement.execute(CREATE_BINARY_SCHEMA_DDL); } else { statement.execute(CREATE_TEXT_SCHEMA_DDL); diff --git a/serialized-lob/src/main/java/com/iluwatar/slob/lob/Forest.java b/serialized-lob/src/main/java/com/iluwatar/slob/lob/Forest.java index 1c14d55debd8..644dc5db7742 100644 --- a/serialized-lob/src/main/java/com/iluwatar/slob/lob/Forest.java +++ b/serialized-lob/src/main/java/com/iluwatar/slob/lob/Forest.java @@ -37,16 +37,17 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; - /** * Creates an object Forest which contains animals and plants as its constituents. Animals may eat * plants or other animals in the forest. */ + + @Data @NoArgsConstructor @AllArgsConstructor public class Forest implements Serializable { - + public static final String HORIZONTAL_DIVIDER = "\n--------------------------\n"; private String name; private Set animals = new HashSet<>(); private Set plants = new HashSet<>(); @@ -105,16 +106,16 @@ public String toString() { sb.append("Forest Name = ").append(name).append("\n"); sb.append("Animals found in the ").append(name).append(" Forest: \n"); for (Animal animal : animals) { - sb.append("\n--------------------------\n"); + sb.append(HORIZONTAL_DIVIDER); sb.append(animal.toString()); - sb.append("\n--------------------------\n"); + sb.append(HORIZONTAL_DIVIDER); } sb.append("\n"); sb.append("Plants in the ").append(name).append(" Forest: \n"); for (Plant plant : plants) { - sb.append("\n--------------------------\n"); + sb.append(HORIZONTAL_DIVIDER); sb.append(plant.toString()); - sb.append("\n--------------------------\n"); + sb.append(HORIZONTAL_DIVIDER); } return sb.toString(); } diff --git a/server-session/src/test/java/com.iluwatar.sessionserver/LoginHandlerTest.java b/server-session/src/test/java/com/iluwatar/sessionserver/LoginHandlerTest.java similarity index 100% rename from server-session/src/test/java/com.iluwatar.sessionserver/LoginHandlerTest.java rename to server-session/src/test/java/com/iluwatar/sessionserver/LoginHandlerTest.java diff --git a/server-session/src/test/java/com.iluwatar.sessionserver/LogoutHandlerTest.java b/server-session/src/test/java/com/iluwatar/sessionserver/LogoutHandlerTest.java similarity index 100% rename from server-session/src/test/java/com.iluwatar.sessionserver/LogoutHandlerTest.java rename to server-session/src/test/java/com/iluwatar/sessionserver/LogoutHandlerTest.java diff --git a/type-object/src/main/java/com/iluwatar/typeobject/App.java b/type-object/src/main/java/com/iluwatar/typeobject/App.java index d120baca0f2c..02058f05fdd2 100644 --- a/type-object/src/main/java/com/iluwatar/typeobject/App.java +++ b/type-object/src/main/java/com/iluwatar/typeobject/App.java @@ -1,5 +1,6 @@ /* - * This project is licensed under the MIT license. Module model-view-viewmodel is using ZK framework licensed under LGPL (see lgpl-3.0.txt). + * This project is licensed under the MIT license. Module model-view-viewmodel + * is using ZK framework licensed under LGPL (see lgpl-3.0.txt). * * The MIT License * Copyright © 2014-2022 Ilkka Seppälä @@ -27,12 +28,12 @@ import lombok.extern.slf4j.Slf4j; /** - *

Type object pattern is the pattern we use when the OOP concept of creating a base class and + * Type object pattern is the pattern we use when the OOP concept of creating a base class and * inheriting from it just doesn't work for the case in hand. This happens when we either don't know * what types we will need upfront, or want to be able to modify or add new types conveniently w/o * recompiling repeatedly. The pattern provides a solution by allowing flexible creation of required - * objects by creating one class, which has a field which represents the 'type' of the object.

- *

In this example, we have a mini candy-crush game in action. There are many different candies + * objects by creating one class, which has a field which represents the 'type' of the object. + * In this example, we have a mini candy-crush game in action. There are many different candies * in the game, which may change over time, as we may want to upgrade the game. To make the object * creation convenient, we have a class {@link Candy} which has a field name, parent, points and * Type. We have a json file {@link candy} which contains the details about the candies, and this is @@ -41,7 +42,7 @@ * how crushing can be done, how the matrix is to be reconfigured and how points are to be gained. * The {@link CellPool} class is a pool which reuses the candy cells that have been crushed instead * of making new ones repeatedly. The {@link CandyGame} class has the rules for the continuation of - * the game and the {@link App} class has the game itself.

+ * the game and the {@link App} class has the game itself. */ @Slf4j diff --git a/type-object/src/main/java/com/iluwatar/typeobject/CandyGame.java b/type-object/src/main/java/com/iluwatar/typeobject/CandyGame.java index 85d39c8c79c3..6e07a88a3b7b 100644 --- a/type-object/src/main/java/com/iluwatar/typeobject/CandyGame.java +++ b/type-object/src/main/java/com/iluwatar/typeobject/CandyGame.java @@ -28,6 +28,8 @@ import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * The CandyGame class contains the rules for the continuation of the game and has the game matrix @@ -37,7 +39,6 @@ @Slf4j @SuppressWarnings("java:S3776") //"Cognitive Complexity of methods should not be too high" public class CandyGame { - Cell[][] cells; CellPool pool; int totalPoints; @@ -85,17 +86,20 @@ List adjacentCells(int y, int x) { if (x == 0) { adjacent.add(this.cells[y][1]); } - if (y == cells.length - 1) { + if (y == cells.length - 1 && cells.length > 1) { adjacent.add(this.cells[cells.length - 2][x]); } - if (x == cells.length - 1) { + + if (x == cells.length - 1 && cells.length > 1) { adjacent.add(this.cells[y][cells.length - 2]); } + + if (y > 0 && y < cells.length - 1) { adjacent.add(this.cells[y - 1][x]); adjacent.add(this.cells[y + 1][x]); } - if (x > 0 && x < cells.length - 1) { + if (y >= 0 && y < cells.length && x > 0 && x < cells[y].length - 1) { adjacent.add(this.cells[y][x - 1]); adjacent.add(this.cells[y][x + 1]); } From fc07a38ed6c0d504511ffe44a33c095ec9878e3e Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sat, 7 Dec 2024 20:32:50 +0200 Subject: [PATCH 2/7] docs: add SalmaAzeem as a contributor for code (#3132) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] --------- Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 9814ea55b889..3289d1952b56 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -3285,6 +3285,15 @@ "contributions": [ "doc" ] + }, + { + "login": "SalmaAzeem", + "name": "Salma", + "avatar_url": "https://avatars.githubusercontent.com/u/121863224?v=4", + "profile": "https://github.com/SalmaAzeem", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index b1f0bb4481ae..d695f079197a 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=coverage)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![All Contributors](https://img.shields.io/badge/all_contributors-360-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-361-orange.svg?style=flat-square)](#contributors-)
@@ -540,6 +540,9 @@ This project is licensed under the terms of the MIT license. Juyeon
Juyeon

🌍 Mammad Yahyayev
Mammad Yahyayev

📖 + + Salma
Salma

💻 + From adbddcb51872d704d551c7c0bd26a77fa8a78ddc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Dec 2024 20:34:41 +0200 Subject: [PATCH 3/7] build(deps-dev): bump org.htmlunit:htmlunit from 4.5.0 to 4.7.0 (#3104) Bumps [org.htmlunit:htmlunit](https://github.com/HtmlUnit/htmlunit) from 4.5.0 to 4.7.0. - [Release notes](https://github.com/HtmlUnit/htmlunit/releases) - [Commits](https://github.com/HtmlUnit/htmlunit/compare/4.5.0...4.7.0) --- updated-dependencies: - dependency-name: org.htmlunit:htmlunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ef3a39265d53..db06c59a9479 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 2.7.5 0.8.12 1.4 - 4.5.0 + 4.7.0 2.11.0 6.0.0 1.1.0 From eead12d308fde02d12b3dd43d5be357ca9c30770 Mon Sep 17 00:00:00 2001 From: Maya <111644421+mayatarek@users.noreply.github.com> Date: Sun, 8 Dec 2024 17:26:46 +0200 Subject: [PATCH 4/7] docs: added arabic translations to README files (#2273) (#3107) --- localization/ar/abstract-document/README.md | 188 ++++++++++ .../etc/abstract-document.png | Bin 0 -> 96228 bytes localization/ar/abstract-factory/README.md | 234 ++++++++++++ .../etc/abstract-factory.urm.png | Bin 0 -> 82368 bytes localization/ar/active-object/README.md | 126 +++++++ .../active-object/etc/active-object.urm.png | Bin 0 -> 19466 bytes localization/ar/acyclic-visitor/README.md | 167 +++++++++ .../acyclic-visitor/etc/acyclic-visitor.png | Bin 0 -> 49064 bytes localization/ar/adapter/README.md | 141 +++++++ localization/ar/adapter/etc/adapter.urm.png | Bin 0 -> 25425 bytes .../ar/aggregator-microservices/README.md | 111 ++++++ .../etc/aggregator-service.png | Bin 0 -> 41498 bytes localization/ar/ambassador/README.md | 210 +++++++++++ .../ar/ambassador/etc/ambassador.urm.png | Bin 0 -> 49248 bytes localization/ar/api-gateway/README.md | 170 +++++++++ .../ar/api-gateway/etc/api-gateway.png | Bin 0 -> 18323 bytes localization/ar/arrange-act-assert/README.md | 142 +++++++ .../ar/async-method-invocation/README.md | 178 +++++++++ .../etc/async-method-invocation.png | Bin 0 -> 36923 bytes localization/ar/balking/README.md | 135 +++++++ localization/ar/balking/etc/balking.png | Bin 0 -> 21427 bytes localization/ar/bridge/README.md | 216 +++++++++++ localization/ar/bridge/etc/bridge.urm.png | Bin 0 -> 43639 bytes localization/ar/builder/README.md | 147 ++++++++ localization/ar/builder/etc/builder.urm.png | Bin 0 -> 94868 bytes localization/ar/business-delegate/README.md | 194 ++++++++++ .../etc/business-delegate.urm.png | Bin 0 -> 50060 bytes localization/ar/bytecode/README.md | 264 +++++++++++++ localization/ar/bytecode/etc/bytecode.urm.png | Bin 0 -> 86123 bytes .../ar/chain-of-responsibility/README.md | 207 ++++++++++ .../etc/chain-of-responsibility.urm.png | Bin 0 -> 134845 bytes localization/ar/client-session/README.md | 118 ++++++ .../etc/session_state_pattern.png | Bin 0 -> 50158 bytes .../ar/collecting-parameter/README.md | 222 +++++++++++ .../etc/collecting-parameter.urm.png | Bin 0 -> 55073 bytes localization/ar/command/README.md | 245 ++++++++++++ localization/ar/command/etc/command.png | Bin 0 -> 51106 bytes localization/ar/commander/README.md | 136 +++++++ .../ar/commander/etc/commander.urm.png | Bin 0 -> 322274 bytes localization/ar/composite-entity/README.md | 159 ++++++++ .../etc/composite_entity.urm.png | Bin 0 -> 91799 bytes localization/ar/composite-view/README.md | 353 ++++++++++++++++++ .../ar/composite-view/etc/composite_view.png | Bin 0 -> 19092 bytes .../ar/composite-view/etc/images/noparam.png | Bin 0 -> 72495 bytes .../composite-view/etc/images/threeparams.png | Bin 0 -> 78650 bytes localization/ar/composite/README.md | 222 +++++++++++ .../ar/composite/etc/composite.urm.png | Bin 0 -> 35715 bytes localization/ar/context-object/README.md | 188 ++++++++++ .../ar/context-object/etc/context-object.png | Bin 0 -> 67111 bytes localization/ar/converter/README.md | 102 +++++ localization/ar/converter/etc/converter.png | Bin 0 -> 19389 bytes localization/ar/crtp/README.md | 139 +++++++ localization/ar/crtp/etc/crtp.png | Bin 0 -> 122701 bytes localization/ar/data-locality/README.md | 30 ++ .../data-locality/etc/data-locality.urm.png | Bin 0 -> 68133 bytes localization/ar/decorator/README.md | 164 ++++++++ .../ar/decorator/etc/decorator.urm.png | Bin 0 -> 23530 bytes localization/ar/delegation/README.md | 119 ++++++ localization/ar/delegation/etc/delegation.png | Bin 0 -> 25260 bytes .../ar/dependency-injection/README.md | 101 +++++ .../etc/dependency-injection.png | Bin 0 -> 22493 bytes localization/ar/dirty-flag/README.md | 28 ++ localization/ar/dirty-flag/etc/dirty-flag.png | Bin 0 -> 9192 bytes localization/ar/double-buffer/README.md | 245 ++++++++++++ .../double-buffer/etc/double-buffer.urm.png | Bin 0 -> 35073 bytes localization/ar/embedded-value/README.md | 131 +++++++ .../embedded-value/etc/embedded-value.urm.png | Bin 0 -> 107518 bytes localization/ar/event-aggregator/README.md | 167 +++++++++ .../ar/event-aggregator/etc/classes.png | Bin 0 -> 45639 bytes localization/ar/extension-objects/README.md | 149 ++++++++ .../extension-objects/etc/extension_obj.png | Bin 0 -> 38018 bytes localization/ar/facade/README.md | 216 +++++++++++ localization/ar/facade/etc/facade.urm.png | Bin 0 -> 62013 bytes localization/ar/factory/README.md | 140 +++++++ localization/ar/factory/etc/factory.urm.png | Bin 0 -> 29351 bytes 75 files changed, 6204 insertions(+) create mode 100644 localization/ar/abstract-document/README.md create mode 100644 localization/ar/abstract-document/etc/abstract-document.png create mode 100644 localization/ar/abstract-factory/README.md create mode 100644 localization/ar/abstract-factory/etc/abstract-factory.urm.png create mode 100644 localization/ar/active-object/README.md create mode 100644 localization/ar/active-object/etc/active-object.urm.png create mode 100644 localization/ar/acyclic-visitor/README.md create mode 100644 localization/ar/acyclic-visitor/etc/acyclic-visitor.png create mode 100644 localization/ar/adapter/README.md create mode 100644 localization/ar/adapter/etc/adapter.urm.png create mode 100644 localization/ar/aggregator-microservices/README.md create mode 100644 localization/ar/aggregator-microservices/aggregator-service/etc/aggregator-service.png create mode 100644 localization/ar/ambassador/README.md create mode 100644 localization/ar/ambassador/etc/ambassador.urm.png create mode 100644 localization/ar/api-gateway/README.md create mode 100644 localization/ar/api-gateway/etc/api-gateway.png create mode 100644 localization/ar/arrange-act-assert/README.md create mode 100644 localization/ar/async-method-invocation/README.md create mode 100644 localization/ar/async-method-invocation/etc/async-method-invocation.png create mode 100644 localization/ar/balking/README.md create mode 100644 localization/ar/balking/etc/balking.png create mode 100644 localization/ar/bridge/README.md create mode 100644 localization/ar/bridge/etc/bridge.urm.png create mode 100644 localization/ar/builder/README.md create mode 100644 localization/ar/builder/etc/builder.urm.png create mode 100644 localization/ar/business-delegate/README.md create mode 100644 localization/ar/business-delegate/etc/business-delegate.urm.png create mode 100644 localization/ar/bytecode/README.md create mode 100644 localization/ar/bytecode/etc/bytecode.urm.png create mode 100644 localization/ar/chain-of-responsibility/README.md create mode 100644 localization/ar/chain-of-responsibility/etc/chain-of-responsibility.urm.png create mode 100644 localization/ar/client-session/README.md create mode 100644 localization/ar/client-session/etc/session_state_pattern.png create mode 100644 localization/ar/collecting-parameter/README.md create mode 100644 localization/ar/collecting-parameter/etc/collecting-parameter.urm.png create mode 100644 localization/ar/command/README.md create mode 100644 localization/ar/command/etc/command.png create mode 100644 localization/ar/commander/README.md create mode 100644 localization/ar/commander/etc/commander.urm.png create mode 100644 localization/ar/composite-entity/README.md create mode 100644 localization/ar/composite-entity/etc/composite_entity.urm.png create mode 100644 localization/ar/composite-view/README.md create mode 100644 localization/ar/composite-view/etc/composite_view.png create mode 100644 localization/ar/composite-view/etc/images/noparam.png create mode 100644 localization/ar/composite-view/etc/images/threeparams.png create mode 100644 localization/ar/composite/README.md create mode 100644 localization/ar/composite/etc/composite.urm.png create mode 100644 localization/ar/context-object/README.md create mode 100644 localization/ar/context-object/etc/context-object.png create mode 100644 localization/ar/converter/README.md create mode 100644 localization/ar/converter/etc/converter.png create mode 100644 localization/ar/crtp/README.md create mode 100644 localization/ar/crtp/etc/crtp.png create mode 100644 localization/ar/data-locality/README.md create mode 100644 localization/ar/data-locality/etc/data-locality.urm.png create mode 100644 localization/ar/decorator/README.md create mode 100644 localization/ar/decorator/etc/decorator.urm.png create mode 100644 localization/ar/delegation/README.md create mode 100644 localization/ar/delegation/etc/delegation.png create mode 100644 localization/ar/dependency-injection/README.md create mode 100644 localization/ar/dependency-injection/etc/dependency-injection.png create mode 100644 localization/ar/dirty-flag/README.md create mode 100644 localization/ar/dirty-flag/etc/dirty-flag.png create mode 100644 localization/ar/double-buffer/README.md create mode 100644 localization/ar/double-buffer/etc/double-buffer.urm.png create mode 100644 localization/ar/embedded-value/README.md create mode 100644 localization/ar/embedded-value/etc/embedded-value.urm.png create mode 100644 localization/ar/event-aggregator/README.md create mode 100644 localization/ar/event-aggregator/etc/classes.png create mode 100644 localization/ar/extension-objects/README.md create mode 100644 localization/ar/extension-objects/etc/extension_obj.png create mode 100644 localization/ar/facade/README.md create mode 100644 localization/ar/facade/etc/facade.urm.png create mode 100644 localization/ar/factory/README.md create mode 100644 localization/ar/factory/etc/factory.urm.png diff --git a/localization/ar/abstract-document/README.md b/localization/ar/abstract-document/README.md new file mode 100644 index 000000000000..bf1599124f26 --- /dev/null +++ b/localization/ar/abstract-document/README.md @@ -0,0 +1,188 @@ +--- +title: Abstract Document +shortTitle: Abstract Document +category: Structural +language: ar +tag: + - Extensibility +--- + + +## الهدف + +استخدام الخصائص الديناميكية والحصول على مرونة اللغات غير المتغيرة مع الحفاظ على أمان الأنواع. + +## التوضيح + +يتيح استخدام نمط الوثيقة المجردة إدارة الخصائص غير الثابتة الإضافية. يستخدم هذا النمط مفهوم +السمات لتمكين أمان الأنواع وخصائص مفصولة من فئات مختلفة في مجموعة من الواجهات. + +مثال من العالم الحقيقي + +> خذ على سبيل المثال سيارة مكونة من العديد من الأجزاء. ومع ذلك، لا نعرف إذا كانت السيارة تحتوي على جميع الأجزاء أو جزء منها فقط. سياراتنا ديناميكية ومرنة للغاية. + +بصيغة أخرى + +> يسمح نمط الوثيقة المجردة بإضافة خصائص إلى الكائنات دون أن تكون هذه الكائنات على دراية بذلك. + +حسب ويكيبيديا + +> نمط تصميم هيكلي موجه للكائنات لتنظيم الكائنات في حاويات من نوع مفتاح-قيمة بشكل فضفاض مع نوعية غير محددة، وكشف البيانات باستخدام طرق عرض مهيكلة. الهدف من هذا النمط هو تحقيق درجة عالية من المرونة بين المكونات في لغة قوية النوع حيث يمكن إضافة خصائص جديدة إلى شجرة الكائنات أثناء العمل دون فقدان دعم أمان الأنواع. يستخدم النمط السمات لفصل خصائص مختلفة للفئة إلى واجهات متعددة. + +**مثال برمجي** + +أولاً، دعونا نعرف الفئات الأساسية `Document` و `AbstractDocument`. في الأساس، تجعل الكائن يحتوي على خريطة من الخصائص وأي عدد من الكائنات الفرعية. + + +```java +public interface Document { + + Void put(String key, Object value); + + Object get(String key); + + Stream children(String key, Function, T> constructor); +} + +public abstract class AbstractDocument implements Document { + + private final Map properties; + + protected AbstractDocument(Map properties) { + Objects.requireNonNull(properties, "properties map is required"); + this.properties = properties; + } + + @Override + public Void put(String key, Object value) { + properties.put(key, value); + return null; + } + + @Override + public Object get(String key) { + return properties.get(key); + } + + @Override + public Stream children(String key, Function, T> constructor) { + return Stream.ofNullable(get(key)) + .filter(Objects::nonNull) + .map(el -> (List>) el) + .findAny() + .stream() + .flatMap(Collection::stream) + .map(constructor); + } + ... +} +``` + +بعد ذلك، نعرف `enum` لـ `Property` ومجموعة من الواجهات للنمط، السعر، النموذج، والأجزاء. هذا يتيح لنا إنشاء واجهات تظهر بشكل ثابت لفئة `Car`. + + +```java +public enum Property { + + PARTS, TYPE, PRICE, MODEL +} + +public interface HasType extends Document { + + default Optional getType() { + return Optional.ofNullable((String) get(Property.TYPE.toString())); + } +} + +public interface HasPrice extends Document { + + default Optional getPrice() { + return Optional.ofNullable((Number) get(Property.PRICE.toString())); + } +} +public interface HasModel extends Document { + + default Optional getModel() { + return Optional.ofNullable((String) get(Property.MODEL.toString())); + } +} + +public interface HasParts extends Document { + + default Stream getParts() { + return children(Property.PARTS.toString(), Part::new); + } +} +``` + +Ahora estamos listos para introducir el Coche `Car`. + +```java +public class Car extends AbstractDocument implements HasModel, HasPrice, HasParts { + + public Car(Map properties) { + super(properties); + } +} +``` + +وأخيرًا، هكذا نبني ونستخدم السيارة `Car` في مثال كامل. + + +```java + LOGGER.info("Constructing parts and car"); + + var wheelProperties = Map.of( + Property.TYPE.toString(), "wheel", + Property.MODEL.toString(), "15C", + Property.PRICE.toString(), 100L); + + var doorProperties = Map.of( + Property.TYPE.toString(), "door", + Property.MODEL.toString(), "Lambo", + Property.PRICE.toString(), 300L); + + var carProperties = Map.of( + Property.MODEL.toString(), "300SL", + Property.PRICE.toString(), 10000L, + Property.PARTS.toString(), List.of(wheelProperties, doorProperties)); + + var car = new Car(carProperties); + + LOGGER.info("Here is our car:"); + LOGGER.info("-> model: {}", car.getModel().orElseThrow()); + LOGGER.info("-> price: {}", car.getPrice().orElseThrow()); + LOGGER.info("-> parts: "); + car.getParts().forEach(p -> LOGGER.info("\t{}/{}/{}", + p.getType().orElse(null), + p.getModel().orElse(null), + p.getPrice().orElse(null)) + ); + + // Constructing parts and car + // Here is our car: + // model: 300SL + // price: 10000 + // parts: + // wheel/15C/100 + // door/Lambo/300 +``` + +## Diagrama de clases + +![alt text](./etc/abstract-document.png "Abstract Document Traits and Domain") + +## التطبيق + +استخدم نمط الوثيقة المجردة عندما: + +* يوجد حاجة لإضافة خصائص أثناء العمل. +* ترغب في طريقة مرنة لتنظيم النطاق في هيكل مشابه لشجرة. +* ترغب في نظام أقل ترابطًا. + +## الحقوق + + +* [Wikipedia: Abstract Document Pattern](https://en.wikipedia.org/wiki/Abstract_Document_Pattern) +* [Martin Fowler: Dealing with properties](http://martinfowler.com/apsupp/properties.pdf) +* [Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing (v. 4)](https://www.amazon.com/gp/product/0470059028/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0470059028&linkId=e3aacaea7017258acf184f9f3283b492) \ No newline at end of file diff --git a/localization/ar/abstract-document/etc/abstract-document.png b/localization/ar/abstract-document/etc/abstract-document.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc0b29a4e77680d8eda277c93b97277bbe7193b GIT binary patch literal 96228 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∈MtPMEwTr6eK$ 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 لإنشاء مملكة نحتاج إلى كائنات بموضوع مشترك. المملكة الإلفية تحتاج إلى ملك إلفي، وقلعة إلفية، وجيش إلفي، بينما المملكة الأوركية تحتاج إلى ملك أوركي، وقلعة أوركية، وجيش أوركي. هناك اعتماد بين كائنات المملكة. + +بصيغة أخرى + +> مصنع للمصانع؛ مصنع يجمع بين مصانع فردية ولكنها مرتبطة/معتمدة دون تحديد فئتها المحددة. + +حسب ويكيبيديا + +> يوفر نمط المصنع المجرد طريقة لتغليف مجموعة من المصانع الفردية التي لها موضوع مشترك دون تحديد فئاتها المحددة. + +**مثال برمجي** + +ترجمة المثال السابق حول الممالك. أولاً لدينا بعض الواجهات والتنفيذات لكائنات `Castle`. + + +```java +public interface Castle { + String getDescription(); +} + +public interface King { + String getDescription(); +} + +public interface Army { + String getDescription(); +} + +// Elven implementations -> +public class ElfCastle implements Castle { + static final String DESCRIPTION = "This is the elven castle!"; + @Override + public String getDescription() { + return DESCRIPTION; + } +} +public class ElfKing implements King { + static final String DESCRIPTION = "This is the elven king!"; + @Override + public String getDescription() { + return DESCRIPTION; + } +} +public class ElfArmy implements Army { + static final String DESCRIPTION = "This is the elven Army!"; + @Override + public String getDescription() { + return DESCRIPTION; + } +} + +// التنفيذات Orcish بطريقة مشابهة +-> ... + +``` + +ثم لدينا التجريد والتنفيذ لمصنع المملكة `KingdomFactory`. + + +```java +public interface KingdomFactory { + Castle createCastle(); + King createKing(); + Army createArmy(); +} + +public class ElfKingdomFactory implements KingdomFactory { + + @Override + public Castle createCastle() { + return new ElfCastle(); + } + + @Override + public King createKing() { + return new ElfKing(); + } + + @Override + public Army createArmy() { + return new ElfArmy(); + } +} + +public class OrcKingdomFactory implements KingdomFactory { + + @Override + public Castle createCastle() { + return new OrcCastle(); + } + + @Override + public King createKing() { + return new OrcKing(); + } + + @Override + public Army createArmy() { + return new OrcArmy(); + } +} +``` + +الآن لدينا المصنع المجرد الذي يسمح لنا بإنشاء عائلات من الكائنات المرتبطة. على سبيل المثال، مصنع المملكة الإلفية `ElfKingdomFactory` يقوم بإنشاء القلعة `castle`، الملك `king`، والجيش `army`، إلخ. + + + +```java +var factory = new ElfKingdomFactory(); +var castle = factory.createCastle(); +var king = factory.createKing(); +var army = factory.createArmy(); + +castle.getDescription(); +king.getDescription(); +army.getDescription(); +``` + +ناتج البرنامج: + + +```java +This is the elven castle! +This is the elven king! +This is the elven Army! +``` + +الآن يمكننا تصميم مصنع لمصانع الممالك الخاصة بنا. في هذا المثال، قمنا بإنشاء `FactoryMaker`، المسؤول عن إعادة نسخة من `ElfKingdomFactory` أو `OrcKingdomFactory`. +يمكن للعميل استخدام `FactoryMaker` لإنشاء مصنع محدد، والذي بدوره سينتج كائنات محددة مختلفة (مشتقة من `Army` و `King` و `Castle`). +في هذا المثال نستخدم أيضًا `enum` لتمرير نوع مصنع المملكة الذي سيطلبه العميل. + + +```java +public static class FactoryMaker { + + public enum KingdomType { + ELF, ORC + } + + public static KingdomFactory makeFactory(KingdomType type) { + return switch (type) { + case ELF -> new ElfKingdomFactory(); + case ORC -> new OrcKingdomFactory(); + default -> throw new IllegalArgumentException("KingdomType not supported."); + }; + } +} + + public static void main(String[] args) { + var app = new App(); + + LOGGER.info("Elf Kingdom"); + app.createKingdom(FactoryMaker.makeFactory(KingdomType.ELF)); + LOGGER.info(app.getArmy().getDescription()); + LOGGER.info(app.getCastle().getDescription()); + LOGGER.info(app.getKing().getDescription()); + + LOGGER.info("Orc Kingdom"); + app.createKingdom(FactoryMaker.makeFactory(KingdomType.ORC)); + --similar use of the orc factory + } +``` + +## مخطط الفئات + +![alt text](./etc/abstract-factory.urm.png "Diagrama de Clases de Abstract Factory") + + +## التطبيق + +استخدم نمط المصنع المجرد عندما: + +* يجب أن يكون النظام غير متحيز حول كيفية إنشاء وتركيب وتمثيل كائناته. +* يجب تكوين النظام مع إحدى عائلات المنتجات المتعددة. +* تم تصميم عائلة الكائنات المرتبطة لتستخدم معًا وتحتاج إلى فرض هذا الافتراض. +* ترغب في توفير مكتبة من المنتجات ولا تريد الكشف عن تنفيذاتها، بل واجهاتها فقط. +* العمر الافتراضي للاعتماد هو مفهومًا أقصر من عمر العميل. +* تحتاج إلى قيمة في وقت التشغيل لبناء الاعتماد. +* تريد تحديد أي منتج من العائلة يتم استدعاؤه في وقت التشغيل. +* تحتاج إلى توفير واحد أو أكثر من المعلمات المعروفة فقط في وقت التشغيل قبل أن تتمكن من حل الاعتماد. +* تحتاج إلى الاتساق بين المنتجات. +* لا تريد تغيير الكود الموجود عند إضافة منتجات أو عائلات جديدة من المنتجات إلى البرنامج. + +أمثلة على حالات الاستخدام + +* اختيار استدعاء التنفيذ الصحيح لـ FileSystemAcmeService أو DatabaseAcmeService أو NetworkAcmeService في وقت التشغيل. +* كتابة الاختبارات الوحدوية تصبح أسهل بكثير. +* أدوات واجهة المستخدم (UI) لأنظمة تشغيل مختلفة (SO). + +## العواقب + +* إخفاء حقن الاعتمادات في جافا داخل كائنات الخدمة قد يؤدي إلى أخطاء في وقت التشغيل كان يمكن تجنبها في وقت الترجمة. +* بينما يكون النمط جيدًا في إنشاء كائنات محددة مسبقًا، قد يكون من الصعب إضافة الجديدة. +* الكود يصبح أكثر تعقيدًا مما ينبغي لأنه يتم إضافة العديد من الواجهات والفئات الجديدة جنبًا إلى جنب مع النمط. + +## الدروس التعليمية + +* [Abstract Factory Pattern Tutorial](https://www.journaldev.com/1418/abstract-factory-design-pattern-in-java) + +## الاستخدامات المعروفة + +* [javax.xml.parsers.DocumentBuilderFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html) +* [javax.xml.transform.TransformerFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.html#newInstance--) +* [javax.xml.xpath.XPathFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/xpath/XPathFactory.html#newInstance--) + +## الأنماط المتعلقة + +* [Factory Method](https://java-design-patterns.com/patterns/factory-method/) +* [Factory Kit](https://java-design-patterns.com/patterns/factory-kit/) + +## الحقوق + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) diff --git a/localization/ar/abstract-factory/etc/abstract-factory.urm.png b/localization/ar/abstract-factory/etc/abstract-factory.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..836858a2c652f55723cff879d1058248e1d2799c GIT binary patch literal 82368 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 MUHx3vIVCg!0PQSJ00000 literal 0 HcmV?d00001 diff --git a/localization/ar/active-object/README.md b/localization/ar/active-object/README.md new file mode 100644 index 000000000000..842570a2604a --- /dev/null +++ b/localization/ar/active-object/README.md @@ -0,0 +1,126 @@ +--- +title: Active Object +shortTitle: Active Object +category: Concurrency +language: ar +tag: + - Performance +--- + + +## الهدف +يفصل نمط التصميم الكائن النشط بين تنفيذ الطريقة واستدعائها للكائنات التي تعمل في خيط تحكم خاص بها. الهدف هو إدخال التزامن باستخدام استدعاءات الطرق غير المتزامنة وجدولة لإدارة الطلبات. + +## التوضيح + +ستحتوي الفئة التي تنفذ نمط التصميم الكائن النشط على آلية مزامنة ذاتية دون استخدام الطرق المتزامنة (synchronized). + +مثال من العالم الحقيقي + +> الأورك معروفون بوحشيتهم وفلسفتهم في عدم العمل الجماعي. بناءً على هذا السلوك، يمكن القول إن لديهم خيط تحكم خاص بهم. + +يمكننا استخدام نمط الكائن النشط لتنفيذ مخلوق لديه خيط تحكم خاص به ويعرض واجهة برمجة التطبيقات (API) الخاصة به، ولكن ليس التنفيذ نفسه. + +**مثال برمجي** + + +```java +public abstract class ActiveCreature{ + private final Logger logger = LoggerFactory.getLogger(ActiveCreature.class.getName()); + + private BlockingQueue requests; + + private String name; + + private Thread thread; + + public ActiveCreature(String name) { + this.name = name; + this.requests = new LinkedBlockingQueue(); + thread = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + try { + requests.take().run(); + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + } + } + } + ); + thread.start(); + } + + public void eat() throws InterruptedException { + requests.put(new Runnable() { + @Override + public void run() { + logger.info("{} is eating!",name()); + logger.info("{} has finished eating!",name()); + } + } + ); + } + + public void roam() throws InterruptedException { + requests.put(new Runnable() { + @Override + public void run() { + logger.info("{} has started to roam the wastelands.",name()); + } + } + ); + } + + public String name() { + return this.name; + } +} +``` +يمكننا أن نرى أن أي فئة تمتد من ActiveCreature سيكون لديها خيط تحكم خاص بها لاستدعاء وتنفيذ الطرق. + +على سبيل المثال، الفئة Orc: + +```java +public class Orc extends ActiveCreature { + + public Orc(String name) { + super(name); + } + +} +``` +الآن يمكننا إنشاء مخلوقات متعددة مثل الأورك، نطلب منهم الأكل والتجول، وسيفعلون ذلك في خيط التحكم الخاص بهم: + +```java + public static void main(String[] args) { + var app = new App(); + app.run(); + } + + @Override + public void run() { + ActiveCreature creature; + try { + for (int i = 0;i < creatures;i++) { + creature = new Orc(Orc.class.getSimpleName().toString() + i); + creature.eat(); + creature.roam(); + } + Thread.sleep(1000); + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + Runtime.getRuntime().exit(1); + } +``` + +## مخطط الفئات + +![alt text](./etc/active-object.urm.png "Active Object class diagram") + +## الدروس التعليمية + +* [Android and Java Concurrency: The Active Object Pattern](https://www.youtube.com/watch?v=Cd8t2u5Qmvc) \ No newline at end of file diff --git a/localization/ar/active-object/etc/active-object.urm.png b/localization/ar/active-object/etc/active-object.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..c14f66144ee297261111c1c05529c5d00ebe393e GIT binary patch literal 19466 zcmZ^~bzGEP*ETF7AR(womq7>!gGfl1AWC-+APvIM9n#VzAl=Oyzd|LUVE*z*KzD1dD-_5aL94)+`04MgXBBKJ9p5)z|ZqO zCeYFoX!{EIgJ!4rUi41s0Ocm|&pi_n8Ie18Dk5;N^f7?{v8^RF?C#vbZ@c}WbwctD z@7$3}`|wUg*%`c(f}Je0deeEs68AZX)(~3*M`MJ3E6=YdI`bQ`hUVAD8GfJX42I~> z>88VsNTp6vXxqwUzKzhw;+RF{?0E?e&aLy>tD+*m8iC z{cbK>ZeIAUJd}!OJ=XD1=IPjFVd0t z3FchZu*KBT3u@W!Mb;o)T^6NR9r0va-plqLQNDN8l{ta0B|+j22ZeNv`@U!NIrYY| z6pp)XPrY8GRDQ*n+ej`Ag3ifjpX}_l+?>dWgTaC=k!mM{hC=i*iP>u|*XQd-6U7>p z?&r4STSiV|pP3Bds55xPYH8zcG%g4#KfsH4#i&~RoddEkrja6r(D2R~6DAbtG!@ydFdS6q$d>__jr7|P&JpE4l@ zKSvNhRCkNlnouXROesQMp1{jq%G4)VE>wJu%4VSsf`@%?R2Jsy?Nk=RsrXhd5M^rX zYui5tRcj;03sqt=!~%PQ2pPusBNtMsO5`UGH?kr=2I5nVos)BzMwW5>kelgfPzt-wZ(WLT`ZGIk9^dSkbiJ6zw)m{PKzEgljMw%2NYaKLiOV0 zOTR%n4OQ&wDQeB`E{saKp$(Gu3vPQ&d2zV30=oJ1xYLKt*B2IEsS8#GiaE*`(Ne4m zn;jt}MI7NWx|H4B-94c;vZZyuaUAem1prf1Iux!e89!GqYaSnG*NGVDP2w(Nj|EId zJHhm6Lh0m+6TTx}gLIlw^7|C5A3mO_V>K@w?`dH+y=)ulsnUfAL}{b!HR@ECQ!d{D z?mUqdL2s_xr>U-ejb+O4{r2HKwUUm$R5HdE;s4^e_*soUe zSwmO0Arh;2b_|#%xD$g!JN*RPmLl4)0UWbPHZtqPiRT^~)*h}G25~R6chHkuP_tP=n09ED&Jz-$2l)-=!$N3{u<@Sm;J^kSP8k|;h zZ#fr3K+Rpd0i_dv7OiY10YPIa^{wnMi{V(6fi!%DyUWN#5fAb6I}{<`Xm zd}*s?whHg!<|htd=|<;iTK}0%FE5p^(loFI(+~C|h|K5eDn26OvDlJ7g4WxYT7Ade zGbUc!+nHuG-f`KG7#TU-^x&M2uuf(uYQEg%GdkIr_yp``=E<;0O){CoWW$Ey0mOJw z{Ku@p0kdYO1()}$8I9j*1Yx=;9{2uuQLJPh3+e(Nxj*ko?q8yvzC% z{n32_Sn}HC$t(nQ?ws>O#21sPMIww`F<<^!ECHc}P)^*g6ZCSoQH9)F?&$oE>Lzhs zHD|6-19eKxZf)Es54%oT_a0t7l`lBYV=AVk#>)JMcMd|$=dQ^HpyN#_b2m=>S7L|^kO~p{TK6G zkGITc8;lArWyMMiWCYuCm0aUX?444`Y~PVyyV=o2ETi=EoVE91BBXV$t_yEsm2Y)Ca-k66IB z0x_JZR@9;ra4?>5)RHfOJ6%09o_^c)Qg{gP0meU%)o{0Xz)LQu<4KSDg@-2vvMIdV zR$mo{of&(4e_1STgm?jtYHI$WZzfXl8&Yj9PjjyuDL%<@fP)Xx*=X@!(6SwU z-Wn@l8o-pWUD^?2x>z-Zl77L5Q@t?`W!Dvz92m|1KzIzJ4YA_uAb^iwNVUw$iu z#QzH3pnnhdU;gEc{mjn~zi(0|99ASo{hPTBF;N0!6?cnNOB5%cmcDlj33evD0&8%A zUl~@ii7PyD(465zn)6@4k!(+1C~UXgF@pkWi+=QpEY#uacj`2+>w0#*OE%#@Y0UTR zCc?6`GH{dT12n($nLxA=XU5>nU$i?Z=$Lr&Vt4eLP5+P9Gmh^lC6p?lgWFz3$luId zKz>p<9VpTXjGml^bUni>rCn1%9M9SNjUO{n#?M zt@lYri*FjEAHMJe$8Qz!WCQ_e6|ot7UV#3Yr7Q8X@NHS?bfltkU3M4=$z;pT?$h=t zn#n#u^QW&Gy zD^NZ+9>>!-l!PSc7KPF3I4d=Xe1m>in}F)XIc?IVv7|6D$XPjoQ%N(zoXl??F-`br zrBg86u6L#>*8*fAg{hlUvv=E^g|0x0CV|fb+NbkcX3gV!=JoTit7#Rjp1G}(75K`B zaKy9LVHjV|qICklOQpqszQM7e#Gq(&XkZqgS(?!I!Tkf7B^%pfv8{~Jw3u915d1SL zAed`m+V}A{WJ5yUU%9KuK+;Y|Kf$1s9UmLscPO7K5Mspfk1p1&h%g1YpLap>wFHZ1Ws0FhqIR^w^lUBGPYZ| zb?%1c8-*r^>Lfj0t?PVmw&u=O&zC5*ba}MSRbw^FjDSoYOVC4Ik81UU^+D!%ZADq* zLF&!7a<4?;Ir(f%nxRhb%S;Tf;c|TB8%kLhg^0>4y4BTwqL{05!nh{74%U~{L(c2= zh!++#JMg+DVLa-quXB!CVr1+quj`K|0hWdV+fM9$SJQcd&0umzkxNdvKj0Yc<9P4UoAN(tIOx#l(DTJ%-9;oR9Y}QU@Korx(RRm!$|!lOL~<;~8{SDocz%?z zFhE@(a<0!wSjZV-nd3Q`PI>>;am)c{q|0ndShc-B`&L6cI#=Gom+TUV>VgGT?fSd* zfm*2$;;^gD46(-U)p#|9QMQRU18>`OF$FJPe!wAO();hJzZ|F43n3vGwbluj^6anR zf2h8w-A25Z=GDvqq~G6sFb1Qd=|Y&+RwULL8C5<5ec_<@(0DQ2`FcUt#zY zl)2QD8P{0Wnq#PRP_VGHm#Mn2r(Gombxyjo-}TeV)}}g`-34`o*PDM}2IN2Vg-5_{1Se(92o0K&Q<)P$<<+>0^xBwUwC2db?p+S?cpHfvRlt;ey+C)4g}nU zzH$}m-T-*8t7l=*m|c#|Wc_Y^?gw-S%TM>o@aj&g9deZGN0`c-yAO?K;xrQC5fkrg zjAyicA={??l>=1x6qHna#DLi6BQ0;KP;?OMmWrX^GyvLn9y5$n(zVt_bcD@ zH5jU21Kp*nw7nuVA$;%%T3?gxnDnZte(he^q|U9UdTAcY{h-}kvcSG5`*RAyG#B=C zLd<{7+(UM@8;1kz^w;mOgUho_gfxa%L_S=n`DP@R+hx3}Yxd1PVMEN)ZN95UQVSh5 z7H;@`fd@uhm`m(pUp|t7g*ZbgtPr%!5KnpHCZWY?ZS)GG@a(H~K@BephHC0Oz-eU8 zI6KfW+%r5@nqF20oXi)q%+<#Hk&?>mejE0i7g#aX6=$pWG~|)Q)s!;a_Md(^J4Jku zCrW8&Xe1;wh3en&sOm+`F-n0TFAx{_k(`GN-O*L>FONXlZ^RZ--YBS^cuEkD1D)M$fEP9r@2gUzGrR88rWn3jLb3)Gg0_=!XzwRrH)c`_PO4#-dOCXIz(G?8 znTvF-myModXmp5!A?{w-#|$@pdHP&7*Zkwm!H3nv?$h4sb;LbD(-a&Fk~T~#P4h9y zj=h_vxzBtA7yUUQ>!w&(rcm0Mbfm<6JZ!D6!?^hLI1f!PhDGLcJ{^B#>hVg2x@3>! z#O6q#5^c?zdMV>S6wZix;vv;1%e_L`6Z23csOvG}u)>=g9|6cwyX^l!8zNiBRXciauQT%biBs-Fkn@-ePCe zTMmwe`xQ{I)-h6u0o}t~S=V816~qXFlzv|sOe^1JVRRHheu0G?vp}I?z;JcHgQZr- z)!uY|*qNygv)_zvrlyj2{oU@Z*zC?&znNR4d<|(SiNE#l)zJ#eH16d_0S?aCHpO_;Q*&3%;fp;|?g_+Lk_?l`^dPvVZ;8VAK`Rg*lf4Nhsf_WuVDVCDr35{? zSc5at4mFx#b?Q&z+C>-tEhdqZx#%G3h1*51bop*XDvZS61~0#tS*rIs&`rA za%fl$c^l`6;=PD?GgT?OE&?LKBZv5XPubHvQ91=}%7bkP$>A zf}V{DZ*-5=xy@{=UxBYGg#;Y7*o=sI!&Z-u=IXI+;bCfpW`~&skqD1r3|vrF){@dbVaY4m)JQloNGz7-7r?t~E*- z@MQ!{XnEo{i%v!;uNA+Z9TUO3Y)$A1M6Eudh9t-V?r*c&pTwYa!^e8X?=lb3Mh*N*f9T%#oQGfpP^12mepdjL)ZI17Pghnxo^QgZpk zx!^L!2~?~7^_2_C$n@z_y}yUx!_SMJ=SC$LdFc_WqjKx#w^}_pe28;v)pI!!w{dz7 z9<6Klir`(o2lRMLg=DpF1(~aBw%;b5d4rDN+L?XN zTXeZ*3~i08hA=+?HZc$@#U@Q?R62EXR8DqAD(Wz&W`JWj&DmsCS%It78tR5#_ z3f+8;0g@AiV|244Ml5#jrJDIguf^=R;X|vLqZ;L6byyl#YlF9v9&#(weV=wnw`fncMd)c^^^$rJWG}vR0&$Bu2zaW!d^TyJY%=t)iPV+I0 z=BD@?qn$U9^7P{!1~km0F4fK&x#a`+Dx4NQSlSMreiH;EPNE$7!u8e-;jj;i^|l(v z>7^!vZeyMf4orImXbh=GPc=FX+5<1B1QV}u)q2z zu)#2YnR!0eU~ATqiy%MFt}-2dDds{8`2L45^DeT?e&?WC^@bxA2NH#xk1m|N&lwiB zvyl>{5)2{y9N@>6fSbdEBPFQ+dU&2Y(lNT}Un&1Sv3uxg$HLy;fHYp;bg?4rzoh

u3{XB7|?*1W-<^RZoBy^>X=c-He5OG|u6^*DFPMZgk9-~D)+ zSDHr5Dk*;wQ@D0Q(5rGr3qqGRJIJ8qL6JmM*}%djks&YoDgTi=2!m)L5gda2LC--3F4CAM{wvm>yIJ!s4B|mp3DGEp*eN!1~yd3Ut z4M@8ngWNPr9<)m15?)2lt($Xtj}sWVT%D@(ECf%RS;VRQWbXZW6HRagZ_DpyKJN;L z)uYRO(<9eL%X;r4&ARPAruQCoSP((`C+6sNG~E*@-~w!MQ^33N=opGEUPsF_La#*s zF0jF;RWwpa1Z&>R@yw{)6(mqaB{-22 zHtRC&S+%Z|5j{D%L)!py^t&MH6AV>L!Q4vs0x8iuQ&O829rY2C>^Yl7J^}Zi@LYZ@ z(RKxVqq+$aCcz-w+Bc_E1;0%Z) z4nT}SQnh;MD8N)$EF}YcaGd8TO>?vIc;20d=IiDPIb%OZ@sr8xpKbh{?|vt~l$9=q z2sQjYAz>L%lojVOwIBVdvY1Hu8C47&HVG}mDl~uKlj*hEY0+z9BbVgu{%bn4hCASw zfKg@#_v2I-VW!Ki<(R1ocyU`ie@vPECPod&8-;=t*SaM}eNp!Uk+y%JIm{t|wC8B& z^PvEFxkW$*cCG>4GqdZ4u`%W}@ZX=Ldp--MdMzd=DW#=IGQ!Bm9l9ju8;3O;e$Aj2 zu43IKtGfeICAm@XtSK{!4#s^KvBUIJkQJ@g!jorgV)>|`F&~eRLjp8G$bT7NcEdU6 zR{JEEeU>=3TU?xai$Wj|gqQ(zO75Y;P07nPgP{5$7G`E<0F<6tGO)6;f^m;2N%3eM zwg62%KOn&^kAghu}3Vwc>F|^NxBNT4cb~fjsiue@%dkY{lzCe8sEaI8n zMY4KA^}AWCnZ1A>_JF~&RoQ()0j-1zs#e4ox6|EhI~B&5MD5yrfKY?EP6wQ^jg8($ zM$ZL!*gx$VKJVDhiH_@m_r2;err|A@Oa(Q;v;?vj7;=07j?;;}s<+Nmkb?HRB%=asGaKa;Y+@U4S!NUQH~4Doy<^=S(U?gfX1-)A$7M+DRGhCG;g0F$OFq{B}9 zoyFW7k_0j=SNm@2tU|W^2K7tPMpK&nQ{Y+49*#(xl^72-8SWnPMEX!QG z3;?e7lB@fwm$d-W{6clh6F|xrufZeWiaJU=MG=;6!+y8n(0!}^x3>-bFSsd$CKlSm zNPY9(n0x;Hohj2H-xS@EJF>@k{G_x@sFPxfJX(`huzfunpFp~~7JDpnxF(Q7UiPKo zJqmv(o}ZY6DixERb6SE zB-DU)v;*uIqVx&eXuQn8XR4to$_cy8MY;6Y`8If8=NTU@&x6>DT9&l5ie`N(%~IT4Nh<1^B5j^L^I`uKkG+y)olDWr z)M9UI2X#D7^xHs%bYh|*0H>gHcwx}C-iY#vg zIe&7TYeK)jY!dRQ36rAEW$p>j6NVmD7iN7h)wg$eKdM;!{ZRF5o(HC!=7tR?-{Wo7 zx(JU`CG%2EpS;)-3&3FlEVjjM@1W76owU;^I^p{Iftng}o8inLTaTxC*$Jw0;4^K( zXSxix|NTxl#)PTxm;E}=bCVY@-ui7e)BkSoDZq=fS>qxE2FosI;(@ogOe*YEjkNgK zMKh~DN;W^@d6Y!u|Hob(0gkGilMMGHguYC%6(r_WOXA+>`Ph-$=6%OKXQhF2x#zl~ zB5f{M=u=JEVm7U*hJ@`-boyIP&~j%Cq!Rn$J9BtLV9fh#mZ2o%SV2O)!z!+o-`t!Nz!$!UZ!Dee^E6)7C<7u& z{3~<82lK0n>tH)mdDhlOEobT;z-}Rl-LyDPiW*0;$J7>FP|$_wvi#j zz-&N}QLudHBx6nSR53o;(Q){7yHc9le33tUssN@iQ1YaZuD}ZfEAJb^p1srlcy9o+ z@G5exFz>+$AYmjxuyd7UkrleqReK3}FXahXU4BnjUW&|F zdR_M1pmbmKTqY6+dI9R!G*`1egaNAsTj1N(7^x{YoQyh6GU2m+H+URkrWHD8D zx~x;rUGK39%C$pfrXB4eq{U4R?H2FUdJ`e)6;^jOlLfr%LS_0eaeK{9cjn43&pdmOq#Psf9r^lW-iEBz+RWN% zq{<0R_?O~uw&kl+P8@4sX`mmc+8u|wW0>`r>yD#l1K^NrJtQOI3kyDnB`khGs#O3Sy>H=E>`mUsR}|!Ds28i_*7#4}P`Y@Mqr#J^L({ z>&u?!0}2GlDE(yY^OQ~<22-~jUdV*hyL(@rZ@Ze#DHZ8(4MA4lLS<8~Lfn9RRVlYv z1RM=@$|OFi*!zrqL1u z)Yqu^PRV(zFwehl6lj_P%7j$OQ~K`HVOatFtW~Atx1Vi{7}+4QZEZQtAiq&SY;dnBw!o&F#?9aa}oQZ#4+tH2{}$c07Y=MQG8w02%6M@NN~v z+RmRIf&vtP986R$-LXA1c@|Fr8_EY&u%YBUj=!o~za(@Um=Yts-pFtS`~`q%fzbGm z-yZ@+JCxsNa!~U8JaBPYd7=iyZ}MJ!*^(ahZ~);&r)r0Wwy_GmZ@ zWeY%bYueju%_rIx&GJ;-^7+{I0UWLirWL)5NKrCYZ4PFYg-KFK&2pxPq?Os$#6G`f zh>yCNF)4V==jFks$?s}sd3~i#MivIQp8n<;5~sp%t>taKc&p%pyIi$<2OoNb_pCsp zhwHYgF1x8bn2}2cgzE^s!nmKe#v6PRSu$4w)|z9`8o}C1M!A$L>ymU$T}Qlp>Vq~t ze!bc`{nC1&I)NYqyql$qactP*%a!H{bcSW?F2mF%6tnXc(lzAOxEh0_xtnUV7g3q7 zNt}j;KxP6M0KON{@T8bnLuh^Xty^^gxWqI zJCN-w!Q2oP+Zk)e@FJ(gCt90B>7=!emILe>8e6fRy8Ru?Q$)H-?t88DbX|rE?bQS? z6%^_oKfcPVo_+=kuemeK*n#LXBvt!G%+72dk#WQKD5j$>QMLUoh3FJs&Ih0AoRxB;~=eGg=6?lX_ zJ(&mX-hAXKA5JHLV{8d6Zjl||6W^N+xB%+Dv_Hm?7n zo*b@Q9;|Hi39d>iP4Ft`?v#k&+jaydb>k87;gCB#oZNQN~KP95qEipj8rSSZgywwLya45HeX3Lo7n)dq}{hH6LM3fRp>BNLc!Lx%aqMcrjOpXoLu`@!Q%>N%a;0xvi@r^e|v zA`HL06$Ir{4+@YpaiM}u1wQk0W?fUBKJjm~cOUWQQ*SqxStZ$)JJ|6$ZxI*1Umrc) zUkZtYPSiT91J6fi_l0y!*X_<$iWkZLgsHLyd{Dd0!~|GunKPW${T{^(D&Cy+o^9(i zGj8$cMnnS+Y?QT1&Yt;Xh4e&D#q(=Pakz$Lal}Q4zOK_^#fNhkMezNH^h&=z4u3#z zTwDE_6+J9mobp7a809HCCwb=Bo^;7Ff;(ia30RO~p&N>|M?|Q&C&?g%A@dw@Rvn#P z>e^P=+=|!NL`L~)t{{uRyLs5t92=4K2DsrxsjM)8EAg}S;b!aw4xOW=5YlV$S(}0W zBQTvt_Sv%ys?*uyOu@-aY5aINcq>QJgt0ipoF}6PEzY{#-HC$4Pd1QE3K~1 z=z8T)*7ujuO1@_tdWCwq4}$OyF_OqWgj%75`B+sqJe$&&&?35|8?R1D=`BthsRuhAj zh#t53jy2%PnAeg8Kx_MpEsX9Px#(<(RvVu(%@AD#ytlq$uh&Jo`X!fE1EL%tv5*_8 z@OYzaF{n}4+8P++$)Y8o)X}9eQ%xAuSaSi-K>JVXkngtWauqydn}FXWdY63knzv+x zOy>Au;eF+Adx!OMpj~&nVV#(4696#3@!BH{E*4=N&4#|z1+W?0_#dLlJ8s{0km}dc ztA^K!3Dsu`pPDk6#N4+96gzv~D;8#c_X9X%;injv>#9w_>1sM=&myb)zN-(c2! zCzDKvi1PC4-&%^2_Fw>iJcIKL+O9kv>b32c77oghttXZD*he8{7fKRi z$&!5wVPs9R8>MgvG1ilP8ItYLgt2Dq$xg^H*|H5;vP;i3dON4{d_M1A@B7|=&F42W zzvcej_jP}-@AbW|oB5vY?5RB7dec(V@#r8mDQEGT9#6?|#X0^m>=6}X&g7-=VDn+i z^GVY^8D{6yJROTXbiAA9?pv{%q9oR}u_@W=^o8n%9PZsBYu82Pv4=s^QUzMEzaQdd z8nYG|Ue9QHujKIhgbCZCyVNAvlaNXXs+T_~n+HfO% z_siQ2P;db2v84x3Nr{)G2{a-y5@IJdKJ*XzZ%H=`G3B2+p0U=Oic=Hxs&#%sCmg>s zZlzMZx1!BH)l9?dix+Oxc}^wX=s-Knj7NCt?4ql_StfnvniZ=D>B*od`zk33Uirh4 zAc{Rq;naMA5o#<}?EQH1Dx!dJa~3317Hnty*vQ4-=BRsLZWkV6Baz%M6Lu@S!uNJH z|GKR#nwaf8ip}5u%ndNVG4}Oxy3?q@2boF{}ZN{xV z?L6r*cvL~)C*V6x&@$f&WPYUW4~{bBN&a7slW3K4Ya7-k>VI&RaOD^Zq8cj;(6ZLG z455&if#-|W{=TLE`7bgr_}BDfUexr3Qo0g+c94Eu`HNiSDKyyc;{V0*SZN(arJ&A^ zUFFUlXx??Un5Uwr5U8fDD-1cl9@mtU-&jH0oz``20C8_%2^y3&rb zIMz?6`ZvW1o)63F)pgg&jq(n(k1iN*hZ5w@d)xD25PhAW?H}kb@R)4z4k3gXRb{F) z{yZ?|)EMRDrolb$j0+Fb(@43Tz*GIvftg2LeooQ4+D_P5p3u-I&*@) z4sc+}&A%&NP;FbkV9}qebIvH_OSW6Z+X!5#9O`zOut_2=RMrZS+Ls zs5^8iq$)h-g^Ose8L-Vi#v}4-Xv^F6k*QMsPL#qFDX2_Nv|nJR$|a2Z8xdsT=rb~< zS=?9n8Y(@6u}y;p1Ast!t9SGTjb;js#2ybkpy`UcalJq3zJ*mS!d7QNhi zyPF5&g%)fM*>s3X0`L~(=JDEHX=7kM0a6DA4@RdqpKGTb=T@d5ntevvwgdHH@3(8- zJrhBJL;Ww7Nj?u_IH0`SZyq_5qsc!1h4-mjK#UN}oV~6xSUCHagC|Au?G1W=`)3oXA{26I@izKG-5q|TeoFeU6S$^(hmZ1;PBt=Zj0CG@w4cSWrq#FJB`aa;wyDd z^xHVV-Wimvi&7T`)2?prq%jPY8BISWTJU2AB9s|roXNR(`#y(Na|tO&to;1K8Qay( z0GGixk4A2$5Rr5@Qw;o;>Zk__zb1pHW?Q^ZBPEZZzdkr;PO6gWNR|moCh9;=Lrk@* z`$nNkva}d+uO-v%(=ijGz(|thTJ>umeiPe!+wK-&7*+^n=niBGqo4Lv!d*b=f zcd7E|wm2_x%`NbeviZ!tqgi+&8M(agho7*P5vrUbghw$?O?_I|Ds5mojJ`I7i;EE<|sCRIo(#&B5vsIg3z#`AkJuDZRWHSy|wsIrwau+ zD+E+lf3-j!0Ss*T+G%8SeW7Zj9vD1zz75Q-u$f-ILAu4YGtz50%5N+W=t8mx7(UmZSF$<_Brvcp9W6`gQ87FQnYcR= zAL|*;)p$j-nIn>vNkuy=s>$Fo8Kt#ni`}u^(Y{sgwF=WQ+!`;#v$5Dijj3eAY;455 z)GO$mm>8LqJG`KM9BeWxSNE`GL^x#pVkRfSV|Sy;DbEM-84 zesR6O!*9GloTJwLHR2&~@Q2Zp`p_>`b{!Ukxxr%fYr$wfnTP87PTbh#fubT7oK9m( zaej*2YdK#}!3E|cHl?pi7z8&^n3lvbS92OLx9$*gqAcaw6qs-Xk+I@jFD~sEoBg}2 zQ>8pf3d8=&egG3l$M>hTbhJ~qLcCa^smxP$m7F!uIi$lUD4Z-zs0+SAiq$iDAwE(T+%65-Nn2HkPagG(g;VwIdcatllmAh+7|_=yNzn|udZ&)Z7h=(WV- z{AL0oc=4A^7U{G&DbXdE^+*aK%AEE4`{3-iHRffVBbu8j;?~{huQlzh%b*(i1k>Js z(}G4UMYgh9Cr6Kbzau1MkxZ-Pc61jwWU`t69$slvL<@M@iKeyq(JIg7jT*m77%)9s zqKzYK^Q$!|Z}K27lCBSC!cb191i3)`l$1AR7P29s5T6`)nnrSd+hqXgTRIxKILU$R zZx%Us(!j19J4<{l*o#(Al8n?C8j`8TP`Uryd(F={G`p@{_C;xU*wQ(?j*5ynFH@Ys z_sCDfpp@TDD`o5y&s%pB_qHh~wJ~$hPT_%z)^Z8+UERp{ip#_PvjepRZ1kxkoem@x zmTny;zs!JGB)MWqrDeeenS#`uS$HU+u3t+^lKf5vq|XT zj{dcB?r*Azu=BHhZ+7dac6mzlXk9fiU)+JR`4;D_x=|~6C=)zxN1*f{6ysXYMi_ao zla=jE(7WgEpveq4`nD#wjNfeWy9A=XTjN8``iN(0Og{$97-t|0cM%dumIQ+EsG{0v&*^nCXU|1J;T|!*HH}x3(cS~ zGWAn6zw&7R6C^}VQil}Yn7#$mdG9>G!k>X}u0#WUTwHV`16j%c*wAS4+0)8p;4*2q z@7mklQmH0_jS)D@g~9lYHW*urS>Xk$*%W?W@H7~a_5gLDWX60Cc7Z~KVg0o3^1l^$ z|DM{^B*NP#m1RB7EVi#r5FT(`gcE_ERH^e#$LWL9+vON)ss&xZV-@A%#lt^^33hl0>qN*XTy1$lLC6kKt69Ory8t$2;; zI}1m=Y}$`YTPvm`%QR9LuTx_D0uCW}eppFO42r5-G@})^nQ1zJz3EnbxS58Zw_@Ke zxPtgvWo2chq@<(*@(2+J9;9z6y^8o`hC=bnbBQrTFlr*dcjKf&PY`DE^XHrQTL^@J z4(6MOV&tCNiIPz7yNOT3!X|CAKGlg(g@!ooU)BUPj~LYYCM0W#!nrRVx z>i@Xqj8#HH!b$0?^v8}JJNoyz<5N;P{^Q(z$vB47k}j0|9cWj4v{rQOAr)i4@iX*A z;U*>~uv_Tnh%@Zs4hFEWP+A%m5O|U0H?*xqbZNf*W)!$|l-70k q5PUy~0mc9KkH`~{ShC-)sBHT;mF7Cf9N=c898kHgp;)MJJK*01VQy6b literal 0 HcmV?d00001 diff --git a/localization/ar/ambassador/README.md b/localization/ar/ambassador/README.md new file mode 100644 index 000000000000..b70fe071eb31 --- /dev/null +++ b/localization/ar/ambassador/README.md @@ -0,0 +1,210 @@ +--- +title: Ambassador +shortTitle: Ambassador +category: Structural +language: ar +tag: + - Decoupling + - Cloud distributed +--- + +## الهدف + +توفير مثيل من الخدمة المساعدة للعميل وتفويض الوظائف المشتركة لها من مصدر مشترك. + +## الشرح + +مثال واقعي + +> خدمة بعيدة تحتوي على العديد من العملاء الذين يصلون إلى وظيفة تقدمها هذه الخدمة. الخدمة هي تطبيق قديم ومن +> المستحيل تحديثها. عدد كبير من الطلبات من قبل المستخدمين تسبب مشاكل في الاتصال. يجب تنفيذ قواعد جديدة +> بشأن تكرار الطلبات جنبًا إلى جنب مع فحوصات التأخير والسجلات من جانب العميل. + +بكلمات أخرى + +> باستخدام نمط Ambassador، يمكننا تنفيذ تقليل تكرار الطلبات من العملاء جنبًا إلى جنب مع فحوصات التأخير +> والسجلات. + +وفقًا لوثائق مايكروسوفت + +> يمكن اعتبار خدمة Ambassador وكأنها وكيل خارج العملية يتواجد جنبًا إلى جنب مع العميل. +> +> يمكن أن يكون هذا النمط مفيدًا لتفريغ المهام المشتركة في الاتصال من العميل مثل المراقبة، السجلات، التوجيه، +> الأمان (مثل TLS) وأنماط المقاومة (*) بطريقة مستقلة عن اللغة. غالبًا ما يُستخدم مع التطبيقات القديمة، +> أو التطبيقات الأخرى التي يصعب تعديلها، بهدف توسيع قدراتها في الشبكات. يمكنه أيضًا +> تمكين فريق متخصص لتنفيذ هذه الميزات. + +**مثال على الكود** + +مع المقدمة السابقة في الاعتبار، سنقوم بمحاكاة وظيفتها في المثال التالي. لدينا واجهة يتم تنفيذها +من قبل الخدمة البعيدة وكذلك خدمة Ambassador: + +```java +interface RemoteServiceInterface { + long doRemoteFunction(int value) throws Exception; +} +``` + +## خدمة بعيدة ممثلة كـ Singleton (مثيل واحد). + +```java +@Slf4j +public class RemoteService implements RemoteServiceInterface { + private static RemoteService service = null; + + static synchronized RemoteService getRemoteService() { + if (service == null) { + service = new RemoteService(); + } + return service; + } + + private RemoteService() {} + + @Override + public long doRemoteFunction(int value) { + long waitTime = (long) Math.floor(Math.random() * 1000); + + try { + sleep(waitTime); + } catch (InterruptedException e) { + LOGGER.error("Thread sleep interrupted", e); + } + + return waitTime >= 200 ? value * 10 : -1; + } +} +``` + +## خدمة السفير مع إضافة وظائف إضافية مثل السجلات والتحقق من الكمون + +```java +@Slf4j +public class ServiceAmbassador implements RemoteServiceInterface { + private static final int RETRIES = 3; + private static final int DELAY_MS = 3000; + + ServiceAmbassador() { + } + + @Override + public long doRemoteFunction(int value) { + return safeCall(value); + } + + private long checkLatency(int value) { + var startTime = System.currentTimeMillis(); + var result = RemoteService.getRemoteService().doRemoteFunction(value); + var timeTaken = System.currentTimeMillis() - startTime; + + LOGGER.info("Time taken (ms): " + timeTaken); + return result; + } + + private long safeCall(int value) { + var retries = 0; + var result = (long) FAILURE; + + for (int i = 0; i < RETRIES; i++) { + if (retries >= RETRIES) { + return FAILURE; + } + + if ((result = checkLatency(value)) == FAILURE) { + LOGGER.info("Failed to reach remote: (" + (i + 1) + ")"); + retries++; + try { + sleep(DELAY_MS); + } catch (InterruptedException e) { + LOGGER.error("Thread sleep state interrupted", e); + } + } else { + break; + } + } + return result; + } +} +``` + +العميل لديه خدمة سفير محلية تستخدم للتفاعل مع الخدمة البعيدة: + + +```java +@Slf4j +public class Client { + private final ServiceAmbassador serviceAmbassador = new ServiceAmbassador(); + + long useService(int value) { + var result = serviceAmbassador.doRemoteFunction(value); + LOGGER.info("Service result: " + result); + return result; + } +} +``` + +بعد ذلك، لدينا عميلان يستخدمان الخدمة: + + +```java +public class App { + public static void main(String[] args) { + var host1 = new Client(); + var host2 = new Client(); + host1.useService(12); + host2.useService(73); + } +} +``` + +هذه هي النتيجة التي سنحصل عليها بعد تنفيذ المثال: + + +```java +Time taken (ms): 111 +Service result: 120 +Time taken (ms): 931 +Failed to reach remote: (1) +Time taken (ms): 665 +Failed to reach remote: (2) +Time taken (ms): 538 +Failed to reach remote: (3) +Service result: -1 +``` + +## مخطط الفئات + +![alt text](./etc/ambassador.urm.png "مخطط فئات Ambassador") + +## التطبيقات + +يتم تطبيق نمط Ambassador عندما نعمل مع خدمة بعيدة قديمة لا يمكن تعديلها أو أنه سيكون من الصعب للغاية تعديلها. يمكن تنفيذ خصائص الاتصال في العميل دون الحاجة إلى إجراء تغييرات على الخدمة البعيدة. + +* يوفر Ambassador واجهة محلية لخدمة بعيدة. +* يوفر Ambassador سجلات، انقطاع الدائرة، إعادة المحاولات، والأمان في العميل. + +## حالات الاستخدام النموذجية + +* التحكم في الوصول إلى كائن آخر +* تنفيذ السجلات أو السجلات +* تنفيذ انقطاع الدائرة +* تفويض مهام الخدمات البعيدة +* تسهيل الاتصال بالشبكة + +## الاستخدامات المعروفة + +* [بوابة API المدمجة مع Kubernetes للخدمات الصغيرة](https://github.com/datawire/ambassador) + +## الأنماط ذات الصلة + +* [الوكيل (Proxy)](https://java-design-patterns.com/patterns/proxy/) + +## الشكر + +* [نمط Ambassador (وثائق Microsoft باللغة الإنجليزية)](https://docs.microsoft.com/en-us/azure/architecture/patterns/ambassador) +* [تصميم الأنظمة الموزعة: الأنماط والمفاهيم للخدمات القابلة للتوسع وموثوقة](https://www.amazon.com/s?k=designing+distributed+systems&sprefix=designing+distri%2Caps%2C156&linkCode=ll2&tag=javadesignpat-20&linkId=a12581e625462f9038557b01794e5341&language=en_US&ref_=as_li_ss_tl) + +## ملاحظات المترجم +(*) تشير النسخة الأصلية بالإنجليزية من وثائق Microsoft إلى مصطلح المرونة +وفي الترجمة الإسبانية يتم ترجمته إلى المقاومة، على الرغم من ربطه بالقسم الخاص بنمط الموثوقية. انظر: +* [نسخة الوثائق الخاصة بنمط Ambassador من Microsoft باللغة الإسبانية.](https://learn.microsoft.com/es-es/azure/architecture/patterns/ambassador) diff --git a/localization/ar/ambassador/etc/ambassador.urm.png b/localization/ar/ambassador/etc/ambassador.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..9b50a02ad356106d5bde0979fcef0bbcafabb1f0 GIT binary patch literal 49248 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 LQ نحن نطبق نظام خدمات صغيرة وبوابة API لموقع تجارة إلكترونية. في هذا +> النظام تقوم بوابة API بإجراء استدعاءات إلى خدمات Image و Price. (الصورة والسعر) + +بمعنى آخر + +> في نظام يتم تنفيذه باستخدام بنية خدمات صغيرة، تعتبر بوابة API هي النقطة +> الوحيدة للوصول التي تجمع استدعاءات الخدمات الصغيرة الفردية. + +تقول ويكيبيديا + +> بوابة API هي خادم يعمل كواجهة أمامية لـ API، يستقبل طلبات API، ويطبق +> حدودًا وسياسات الأمان، ويرسل الطلبات إلى الخدمة الخلفية ثم يعيد +> الاستجابة إلى الطالب. غالبًا ما تشمل بوابة API محركًا للتحويل لتنظيم +> وتعديل الطلبات والاستجابات أثناء سير العملية. يمكن أن توفر بوابة +> API أيضًا وظائف مثل جمع تحليلات البيانات والتخزين المؤقت. قد +> توفر بوابة API وظائف لدعم المصادقة، والتفويض، والأمان، +> والتدقيق، والامتثال. + +**كود المثال** + +يوضح هذا التنفيذ كيف قد يبدو نمط بوابة API لموقع تجارة إلكترونية. تقوم +`ApiGateway` بإجراء استدعاءات إلى خدمات Image و Price باستخدام +`ImageClientImpl` و `PriceClientImpl` على التوالي. العملاء الذين يشاهدون الموقع +على جهاز مكتبي يمكنهم مشاهدة معلومات الأسعار وصورة المنتج، لذلك تقوم `ApiGateway` +بإجراء استدعاء إلى الخدمات الصغيرة وجمع البيانات في نموذج `DesktopProduct`. +ومع ذلك، فإن مستخدمي الأجهزة المحمولة يرون فقط معلومات الأسعار، ولا يشاهدون صورة المنتج. +بالنسبة لمستخدمي الأجهزة المحمولة، تقوم `ApiGateway` فقط +بالحصول على معلومات الأسعار، والتي تستخدم لإكمال `MobileProduct`. + +إليك تنفيذ خدمة الصورة (Image). + + +```java +public interface ImageClient { + String getImagePath(); +} + +public class ImageClientImpl implements ImageClient { + @Override + public String getImagePath() { + var httpClient = HttpClient.newHttpClient(); + var httpGet = HttpRequest.newBuilder() + .GET() + .uri(URI.create("http://localhost:50005/image-path")) + .build(); + + try { + var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); + return httpResponse.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + return null; + } +} +``` + +إليك تنفيذ خدمة المصغرة للسعر (Price). + +```java +public interface PriceClient { + String getPrice(); +} + +public class PriceClientImpl implements PriceClient { + + @Override + public String getPrice() { + var httpClient = HttpClient.newHttpClient(); + var httpGet = HttpRequest.newBuilder() + .GET() + .uri(URI.create("http://localhost:50006/price")) + .build(); + + try { + var httpResponse = httpClient.send(httpGet, BodyHandlers.ofString()); + return httpResponse.body(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } + + return null; + } +} +``` + +هنا يمكننا أن نرى كيف تقوم بوابة الـ API بتوجيه الطلبات إلى الخدمات المصغرة. + +```java +public class ApiGateway { + + @Resource + private ImageClient imageClient; + + @Resource + private PriceClient priceClient; + + @RequestMapping(path = "/desktop", method = RequestMethod.GET) + public DesktopProduct getProductDesktop() { + var desktopProduct = new DesktopProduct(); + desktopProduct.setImagePath(imageClient.getImagePath()); + desktopProduct.setPrice(priceClient.getPrice()); + return desktopProduct; + } + + @RequestMapping(path = "/mobile", method = RequestMethod.GET) + public MobileProduct getProductMobile() { + var mobileProduct = new MobileProduct(); + mobileProduct.setPrice(priceClient.getPrice()); + return mobileProduct; + } +} +``` + +## مخطط الفئة + +![alt text](./etc/api-gateway.png "API Gateway") + +## التطبيقات + +استخدم نمط API Gateway عندما + +* تكون تستخدم بنية ميكروسيرفيسز وتحتاج إلى نقطة تجميع واحدة لاستدعاءات الميكروسيرفيسز. + +## الدروس التعليمية + +* [Exploring the New Spring Cloud Gateway](https://www.baeldung.com/spring-cloud-gateway) +* [Spring Cloud - Gateway](https://www.tutorialspoint.com/spring_cloud/spring_cloud_gateway.htm) +* [Getting Started With Spring Cloud Gateway](https://dzone.com/articles/getting-started-with-spring-cloud-gateway) + +## الشكر + +* [microservices.io - API Gateway](http://microservices.io/patterns/apigateway.html) +* [NGINX - Building Microservices: Using an API Gateway](https://www.nginx.com/blog/building-microservices-using-an-api-gateway/) +* [Microservices Patterns: With examples in Java](https://www.amazon.com/gp/product/1617294543/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617294543&linkId=ac7b6a57f866ac006a309d9086e8cfbd) +* [Building Microservices: Designing Fine-Grained Systems](https://www.amazon.com/gp/product/1491950358/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1491950358&linkId=4c95ca9831e05e3f0dadb08841d77bf1) diff --git a/localization/ar/api-gateway/etc/api-gateway.png b/localization/ar/api-gateway/etc/api-gateway.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3ec2e2e1a824699a539c89f362d2573e3860c9 GIT binary patch literal 18323 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 نحتاج إلى كتابة مجموعة من اختبارات الوحدة كاملة وواضحة لفئة. + +بعبارة أخرى + +> Arrange/Act/Assert هو نمط اختبار ينظم الاختبارات إلى ثلاث خطوات واضحة لتسهيل +> الصيانة. + +WikiWikiWeb يقول + +> Arrange/Act/Assert هو نمط لتنظيم وتنسيق الكود في طرق اختبار الوحدة. + +**كود المثال** + +لنلقِ نظرة أولاً على فئتنا `Cash` التي سيتم اختبارها. + + +```java +public class Cash { + + private int amount; + + Cash(int amount) { + this.amount = amount; + } + + void plus(int addend) { + amount += addend; + } + + boolean minus(int subtrahend) { + if (amount >= subtrahend) { + amount -= subtrahend; + return true; + } else { + return false; + } + } + + int count() { + return amount; + } +} +``` + +ثم نكتب اختبارات الوحدة الخاصة بنا بناءً على نمط Arrange/Act/Assert. لاحظ بوضوح الفصل بين الخطوات لكل اختبار وحدة. + + +```java +class CashAAATest { + + @Test + void testPlus() { + //Arrange + var cash = new Cash(3); + //Act + cash.plus(4); + //Assert + assertEquals(7, cash.count()); + } + + @Test + void testMinus() { + //Arrange + var cash = new Cash(8); + //Act + var result = cash.minus(5); + //Assert + assertTrue(result); + assertEquals(3, cash.count()); + } + + @Test + void testInsufficientMinus() { + //Arrange + var cash = new Cash(1); + //Act + var result = cash.minus(6); + //Assert + assertFalse(result); + assertEquals(1, cash.count()); + } + + @Test + void testUpdate() { + //Arrange + var cash = new Cash(5); + //Act + cash.plus(6); + var result = cash.minus(3); + //Assert + assertTrue(result); + assertEquals(8, cash.count()); + } +} +``` + +## القابلية للتطبيق + +استخدم نمط Arrange/Act/Assert عندما + +* تحتاج إلى تنظيم اختبارات الوحدة الخاصة بك لتكون أسهل في القراءة والصيانة والتحسين. + +## الشكر + +* [Arrange, Act, Assert: ¿Qué son las pruebas AAA?](https://blog.ncrunch.net/post/arrange-act-assert-aaa-testing.aspx) +* [Bill Wake: 3A – Arrange, Act, Assert](https://xp123.com/articles/3a-arrange-act-assert/) +* [Martin Fowler: DadoCuandoEntonces](https://martinfowler.com/bliki/GivenWhenThen.html) +* [Patrones de prueba xUnit: Refactorizando Código de prueba](https://www.amazon.com/gp/product/0131495054/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0131495054&linkId=99701e8f4af2f63d0bcf50) +* [Principios, prácticas y patrones UnitTesting](https://www.amazon.com/gp/product/1617296279/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617296279&linkId=74c75cfae3a5aaccae3a5a) +* [Desarrollo basado en pruebas: Ejemplo](https://www.amazon.com/gp/product/0321146530/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0321146530&linkId=5c63a93d8c1175b47caef50875) diff --git a/localization/ar/async-method-invocation/README.md b/localization/ar/async-method-invocation/README.md new file mode 100644 index 000000000000..05173d7d6104 --- /dev/null +++ b/localization/ar/async-method-invocation/README.md @@ -0,0 +1,178 @@ +--- +title: Async Method Invocation +shortTitle: Async Method Invocation +category: Concurrency +language: ar +tag: + - Reactive +--- + +## الغرض + +الاستدعاء غير المتزامن للطرق (invocación de método asincrónico) هو نمط حيث لا يتم حظر الخيط أو العملية التي تستدعي الطريقة أثناء انتظار النتائج. يوفر النمط معالجة متوازية للمهام المستقلة المتعددة ويسترجع النتائج عبر +التعريفات الراجعة (callbacks) أو بالانتظار حتى ينتهي الإجراء. + +## الشرح + +مثال يومي + +> إطلاق الصواريخ الفضائية هو عمل مثير. يعطي قائد المهمة أمر الإطلاق و +> بعد فترة غير محددة من الوقت، يتم إطلاق الصاروخ بنجاح أو يفشل بشكل كارثي. + +بعبارة أخرى + +> يستدعي الاستدعاء غير المتزامن للطرق الإجراء ويعود فورًا قبل أن تنتهي المهمة +> يتم إرجاع نتائج الإجراء لاحقًا إلى الاستدعاء (callback). + +حسب ويكيبيديا + +> في البرمجة متعددة العمليات، يعتبر استدعاء الطريقة غير المتزامن (AMI)، المعروف أيضًا بـ +> الاستدعاءات غير المتزامنة أو النمط غير المتزامن هو نمط تصميم حيث لا يتم حظر مكان الاستدعاء +> أثناء انتظار انتهاء الكود المستدعى. بدلاً من ذلك، يتم إخطار خيط الاستدعاء عندما تصل الاستجابة. الاستطلاع للحصول على إجابة هو خيار غير مرغوب فيه. + +**مثال برمجي** + +في هذا المثال، نحن نطلق صواريخ فضائية وننشر مركبات قمرية. + +تُظهر التطبيق ما يفعله نمط الاستدعاء غير المتزامن للطريقة. الأجزاء الرئيسية للنمط هي +`AsyncResult` الذي يعد حاوية وسيطة لقيمة تم تقييمها بشكل غير متزامن، +`AsyncCallback` الذي يمكن توفيره ليتم تنفيذه عند اكتمال المهمة و `AsyncExecutor` الذي +يدير تنفيذ المهام غير المتزامنة. + + +```java +public interface AsyncResult { + boolean isCompleted(); + T getValue() throws ExecutionException; + void await() throws InterruptedException; +} +``` + +```java +public interface AsyncCallback { + void onComplete(T value, Optional ex); +} +``` + +```java +public interface AsyncExecutor { + AsyncResult startProcess(Callable task); + AsyncResult startProcess(Callable task, AsyncCallback callback); + T endProcess(AsyncResult asyncResult) throws ExecutionException, InterruptedException; +} +``` + +`ThreadAsyncExecutor` هو تنفيذ لـ `AsyncExecutor`. يتم تسليط الضوء على بعض من أجزائه الرئيسية أدناه. + + +```java +public class ThreadAsyncExecutor implements AsyncExecutor { + + @Override + public AsyncResult startProcess(Callable task) { + return startProcess(task, null); + } + + @Override + public AsyncResult startProcess(Callable task, AsyncCallback callback) { + var result = new CompletableResult<>(callback); + new Thread( + () -> { + try { + result.setValue(task.call()); + } catch (Exception ex) { + result.setException(ex); + } + }, + "executor-" + idx.incrementAndGet()) + .start(); + return result; + } + + @Override + public T endProcess(AsyncResult asyncResult) + throws ExecutionException, InterruptedException { + if (!asyncResult.isCompleted()) { + asyncResult.await(); + } + return asyncResult.getValue(); + } +} +``` + +الآن كل شيء جاهز لإطلاق بعض الصواريخ لرؤية كيف يعمل كل شيء. + + +```java +public static void main(String[] args) throws Exception { + // الآن كل شيء جاهز لإطلاق بعض الصواريخ لرؤية كيف يعمل كل شيء. + + var executor = new ThreadAsyncExecutor(); + + // يبدأ بعض المهام غير المتزامنة بأوقات معالجة مختلفة، اثنان من الأخيرين مع محركات استرجاع (callback handlers) + + final var asyncResult1 = executor.startProcess(lazyval(10, 500)); + final var asyncResult2 = executor.startProcess(lazyval("test", 300)); + final var asyncResult3 = executor.startProcess(lazyval(50L, 700)); + final var asyncResult4 = executor.startProcess(lazyval(20, 400), callback("Desplegando el rover lunar")); + final var asyncResult5 = + executor.startProcess(lazyval("devolución de llamada callback", 600), callback("Desplegando el rover lunar")); + + // يحاكي المعالجة في الخيط أو العملية الحالية بينما يتم تنفيذ المهام غير المتزامنة في خيوط أو عملياتها الخاصة + + Subproceso.dormir(350); // هيه، نحن نعمل بجد هنا + + log("قائد المهمة يشرب القهوة +"); + + // ينتظر حتى اكتمال المهام + + final var result1 = executor.endProcess(asyncResult1); + final var result2 = executor.endProcess(asyncResult2); + final var result3 = executor.endProcess(asyncResult3); + asyncResult4.await(); + asyncResult5.await(); + +// يسجل نتائج المهام، يتم تسجيل الاسترجاعات فور اكتمالها +log("الصاروخ الفضائي <" + resultado1 + "> أكمل إطلاقه"); +log("الصاروخ الفضائي <" + resultado2 + "> أكمل إطلاقه"); +log("الصاروخ الفضائي <" + result3 + "> أكمل إطلاقه"); + +} +``` + +Here is the output from the program console. + +```java +21:47:08.227 [executor-2] INFO com.iluwatar.async.method.invocation.App - الصاروخ الفضائي تم إطلاقه بنجاح +21:47:08.269 [main] INFO com.iluwatar.async.method.invocation.App - قائد المهمة يشرب القهوة +21:47:08.318 [executor-4] INFO com.iluwatar.async.method.invocation.App - الصاروخ الفضائي <20> تم إطلاقه بنجاح +21:47:08.335 [executor-4] INFO com.iluwatar.async.method.invocation.App - نشر الروفر القمري <20> +21:47:08.414 [executor-1] INFO com.iluwatar.async.method.invocation.App - الصاروخ الفضائي <10> تم إطلاقه بنجاح +21:47:08.519 [executor-5] INFO com.iluwatar.async.method.invocation.App - الصاروخ الفضائي تم إطلاقه بنجاح +21:47:08.519 [executor-5] INFO com.iluwatar.async.method.invocation.App - تنفيذ المركبة القمرية +21:47:08.616 [executor-3] INFO com.iluwatar.async.method.invocation.App - الصاروخ الفضائي <50> تم إطلاقه بنجاح +21:47:08.617 [main] INFO com.iluwatar.async.method.invocation.App - إطلاق الصاروخ الفضائي <10> تم +21:47:08.617 [main] INFO com.iluwatar.async.method.invocation.App - إطلاق الصاروخ الفضائي تم +21:47:08.618 [main] INFO com.iluwatar.async.method.invocation.App - إطلاق الصاروخ الفضائي <50> تم + +``` + +# مخطط الفئة + +![texto alternativo](./etc/async-method-invocation.png "Invocación de método asíncrono") + +## القابلية للتطبيق + +استخدم نمط استدعاء الطريقة غير المتزامنة عندما + +* يكون لديك مهام مستقلة متعددة يمكن تنفيذها بشكل متوازٍ +* تحتاج إلى تحسين أداء مجموعة من المهام المتسلسلة +* لديك قدرة معالجة محدودة أو مهام تنفيذ طويلة الأمد ولا ينبغي أن تنتظر الدعوة حتى تصبح المهام جاهزة + +## أمثلة يومية + +* [FutureTask](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/FutureTask.html) +* [CompletableFuture](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html) +* [ExecutorService](http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html) +* [Patrón asíncrono basado en tareas](https://msdn.microsoft.com/en-us/library/hh873175.aspx) diff --git a/localization/ar/async-method-invocation/etc/async-method-invocation.png b/localization/ar/async-method-invocation/etc/async-method-invocation.png new file mode 100644 index 0000000000000000000000000000000000000000..764895d7a217b838e4c884ced9df9d0d4888d28f GIT binary patch literal 36923 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 في غسالة الملابس هناك زر بدء لتشغيل غسل الملابس. عندما تكون الغسالة غير نشطة، يعمل الزر كما هو متوقع، ولكن إذا كانت الغسالة تغسل بالفعل، فإن الزر لا يفعل شيئًا. + +بمعنى آخر + +> باستخدام نمط _Balking_، يتم تنفيذ كود معين فقط إذا كان الكائن في حالة معينة. + +تقول ويكيبيديا + +> نمط _Balking_ هو نمط تصميم برمجي ينفذ إجراء على كائن فقط عندما يكون الكائن في حالة معينة. على سبيل المثال، إذا كان الكائن يقرأ ملفات ZIP واستدعى أسلوب _get_ على الكائن عندما لا يكون الملف ZIP مفتوحًا، فإن الكائن "يرفض" (_balk_) الطلب. + +**مثال برمجي** + +في هذا المثال من التنفيذ، `WashingMachine` هو كائن له حالتان يمكن أن يكونا: _ENABLED_ و _WASHING_ (مفعل و يغسل على التوالي). إذا كانت الغسالة في حالة _ENABLED_، فإن الحالة تتغير إلى _WASHING_ باستخدام طريقة آمنة ضد الخيوط (thread-safe). من ناحية أخرى، إذا كانت الغسالة بالفعل تغسل وأي خيط آخر ينفذ `wash()`، فلن يتم تغيير الحالة وتنتهي تنفيذ الطريقة دون القيام بأي شيء. + +إليك الأجزاء ذات الصلة من فئة `WashingMachine`. + + +```java +@Slf4j +public class WashingMachine { + + private final DelayProvider delayProvider; + private WashingMachineState washingMachineState; + + public WashingMachine(DelayProvider delayProvider) { + this.delayProvider = delayProvider; + this.washingMachineState = WashingMachineState.ENABLED; + } + + public WashingMachineState getWashingMachineState() { + return washingMachineState; + } + + public void wash() { + synchronized (this) { + var machineState = getWashingMachineState(); + LOGGER.info("{}: Actual machine state: {}", Thread.currentThread().getName(), machineState); + if (this.washingMachineState == WashingMachineState.WASHING) { + LOGGER.error("Cannot wash if the machine has been already washing!"); + return; + } + this.washingMachineState = WashingMachineState.WASHING; + } + LOGGER.info("{}: Doing the washing", Thread.currentThread().getName()); + this.delayProvider.executeAfterDelay(50, TimeUnit.MILLISECONDS, this::endOfWashing); + } + + public synchronized void endOfWashing() { + washingMachineState = WashingMachineState.ENABLED; + LOGGER.info("{}: Washing completed.", Thread.currentThread().getId()); + } +} +``` + +هنا الواجهة البسيطة `DelayProvider` المستخدمة من قبل `WashingMachine`. + + +```java +public interface DelayProvider { + void executeAfterDelay(long interval, TimeUnit timeUnit, Runnable task); +} +``` + +الآن نقدم التطبيق باستخدام `WashingMachine`. + + +```java +public static void main(String... args) { + final var washingMachine = new WashingMachine(); + var executorService = Executors.newFixedThreadPool(3); + for (int i = 0; i < 3; i++) { + executorService.execute(washingMachine::wash); + } + executorService.shutdown(); + try { + executorService.awaitTermination(10, TimeUnit.SECONDS); + } catch (InterruptedException ie) { + LOGGER.error("ERROR: Waiting on executor service shutdown!"); + Thread.currentThread().interrupt(); + } +} +``` + +إليك مخرجات التطبيق في وحدة التحكم. + + +``` +14:02:52.268 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-2: Actual machine state: ENABLED +14:02:52.272 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-2: Doing the washing +14:02:52.272 [pool-1-thread-3] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-3: Actual machine state: WASHING +14:02:52.273 [pool-1-thread-3] ERROR com.iluwatar.balking.WashingMachine - Cannot wash if the machine has been already washing! +14:02:52.273 [pool-1-thread-1] INFO com.iluwatar.balking.WashingMachine - pool-1-thread-1: Actual machine state: WASHING +14:02:52.273 [pool-1-thread-1] ERROR com.iluwatar.balking.WashingMachine - Cannot wash if the machine has been already washing! +14:02:52.324 [pool-1-thread-2] INFO com.iluwatar.balking.WashingMachine - 14: Washing completed. +``` + +## مخطط الفئات + + +![alt text](./etc/balking.png "Balking") + +## القابلية للتطبيق + +استخدم نمط _Balking_ عندما + +* يجب على كائن تنفيذ كود معين فقط عندما يكون في حالة معينة. +* الكائنات في حالة معرضة للتوقف مؤقتًا، ولكن لفترة زمنية غير محددة. + +## الأنماط ذات الصلة + + +* [Guarded Suspension Pattern](https://java-design-patterns.com/patterns/guarded-suspension/) +* [Double Checked Locking Pattern](https://java-design-patterns.com/patterns/double-checked-locking/) + +## المراجع + + +* [Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML, 2nd Edition, Volume 1](https://www.amazon.com/gp/product/0471227293/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0471227293&linkId=0e39a59ffaab93fb476036fecb637b99) diff --git a/localization/ar/balking/etc/balking.png b/localization/ar/balking/etc/balking.png new file mode 100644 index 0000000000000000000000000000000000000000..f409eaacbb951b01f4bbeb5b6b6f51bed1a86179 GIT binary patch literal 21427 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 تخيل أن لديك سلاحًا مع تعاويذ مختلفة، ومن المفترض أن تسمح بخلط أسلحة مختلفة مع تعاويذ مختلفة. ماذا ستفعل؟ هل ستقوم بإنشاء نسخ متعددة من كل سلاح لكل تعويذة من التعاويذ أو ببساطة تقوم بإنشاء تعويذة منفصلة وتحددها للسلاح حسب الحاجة؟ نمط Bridge يتيح لك القيام بالأمر الثاني. + +ببساطة + +> يتعلق نمط Bridge بتفضيل التركيب على الوراثة. يتم دفع تفاصيل التنفيذ من هرم إلى كائن آخر مع هرم منفصل. + +تقول ويكيبيديا + +> نمط Bridge هو نمط تصميم يستخدم في هندسة البرمجيات يهدف إلى "فصل التجريد عن تنفيذه بحيث يمكن لكل منهما التغيير بشكل مستقل." + +**مثال برمجي** + +نقلًا لمثال السلاح المذكور أعلاه. هنا لدينا واجهة السلاح `Weapon`: + + +```java +public interface Weapon { + void wield(); + void swing(); + void unwield(); + Enchantment getEnchantment(); +} + +public class Sword implements Weapon { + + private final Enchantment enchantment; + + public Sword(Enchantment enchantment) { + this.enchantment = enchantment; + } + + @Override + public void wield() { + LOGGER.info("The sword is wielded."); + enchantment.onActivate(); + } + + @Override + public void swing() { + LOGGER.info("The sword is swinged."); + enchantment.apply(); + } + + @Override + public void unwield() { + LOGGER.info("The sword is unwielded."); + enchantment.onDeactivate(); + } + + @Override + public Enchantment getEnchantment() { + return enchantment; + } +} + +public class Hammer implements Weapon { + + private final Enchantment enchantment; + + public Hammer(Enchantment enchantment) { + this.enchantment = enchantment; + } + + @Override + public void wield() { + LOGGER.info("The hammer is wielded."); + enchantment.onActivate(); + } + + @Override + public void swing() { + LOGGER.info("The hammer is swinged."); + enchantment.apply(); + } + + @Override + public void unwield() { + LOGGER.info("The hammer is unwielded."); + enchantment.onDeactivate(); + } + + @Override + public Enchantment getEnchantment() { + return enchantment; + } +} +``` + +إليك واجهة التعاويذ `Enchantment` المنفصلة: + + +```java +public interface Enchantment { + void onActivate(); + void apply(); + void onDeactivate(); +} + +public class FlyingEnchantment implements Enchantment { + + @Override + public void onActivate() { + LOGGER.info("The item begins to glow faintly."); + } + + @Override + public void apply() { + LOGGER.info("The item flies and strikes the enemies finally returning to owner's hand."); + } + + @Override + public void onDeactivate() { + LOGGER.info("The item's glow fades."); + } +} + +public class SoulEatingEnchantment implements Enchantment { + + @Override + public void onActivate() { + LOGGER.info("The item spreads bloodlust."); + } + + @Override + public void apply() { + LOGGER.info("The item eats the soul of enemies."); + } + + @Override + public void onDeactivate() { + LOGGER.info("Bloodlust slowly disappears."); + } +} +``` + +إليك كلا الواجهتين في العمل: + + +```java +LOGGER.info("The knight receives an enchanted sword."); +var enchantedSword = new Sword(new SoulEatingEnchantment()); +enchantedSword.wield(); +enchantedSword.swing(); +enchantedSword.unwield(); + +LOGGER.info("The valkyrie receives an enchanted hammer."); +var hammer = new Hammer(new FlyingEnchantment()); +hammer.wield(); +hammer.swing(); +hammer.unwield(); +``` + +إليك مخرجات التطبيق في وحدة التحكم. + + +``` +The knight receives an enchanted sword. +The sword is wielded. +The item spreads bloodlust. +The sword is swung. +The item eats the soul of enemies. +The sword is unwielded. +Bloodlust slowly disappears. +The valkyrie receives an enchanted hammer. +The hammer is wielded. +The item begins to glow faintly. +The hammer is swung. +The item flies and strikes the enemies finally returning to owner's hand. +The hammer is unwielded. +The item's glow fades. +``` + +## مخطط الفئات + + +![alt text](./etc/bridge.urm.png "Bridge diagrama de clases") + +## القابلية للتطبيق + +استخدم نمط Bridge عندما + +* ترغب في تجنب الربط الدائم بين التجريد وتنفيذه. قد يكون هذا هو الحال، على سبيل المثال، عندما يجب اختيار أو تغيير التنفيذ في وقت التشغيل. +* يجب أن تكون كل من التجريدات وتنفيذاتها قابلة للتوسيع عبر الوراثة. في هذه الحالة، يتيح لك نمط Bridge دمج التجريدات والتنفيذات المختلفة وتوسيعها بشكل مستقل. +* يجب ألا تؤثر التغييرات في تنفيذ التجريد على العملاء؛ أي أنه لا يجب أن يحتاج الكود الخاص بهم إلى إعادة تجميع. +* لديك تكاثر في الفئات. تشير مثل هذه الهرميات إلى الحاجة إلى تقسيم كائن إلى جزئين. يستخدم Rumbaugh مصطلح "التعميمات المتداخلة" للإشارة إلى مثل هذه الهرميات من الفئات. +* ترغب في مشاركة تنفيذ بين عدة كائنات (ربما باستخدام عد مرجعي)، ويجب إخفاء هذه الحقيقة عن العميل. مثال بسيط هو فئة String لـ Coplien، حيث يمكن لعدة كائنات مشاركة نفس تمثيل السلسلة. + +## الدروس التعليمية + +* [Bridge Pattern Tutorial](https://www.journaldev.com/1491/bridge-design-pattern-java) + +## الاعتمادات + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) diff --git a/localization/ar/bridge/etc/bridge.urm.png b/localization/ar/bridge/etc/bridge.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..785585bf8163e4802bf9b84f03e3c1bb172dd695 GIT binary patch literal 43639 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 Ae*gdg literal 0 HcmV?d00001 diff --git a/localization/ar/builder/README.md b/localization/ar/builder/README.md new file mode 100644 index 000000000000..1edfb4b826db --- /dev/null +++ b/localization/ar/builder/README.md @@ -0,0 +1,147 @@ +--- +title: Builder +shortTitle: Builder +category: Creational +language: ar +tag: + - Gang of Four +--- + +## الهدف + +فصل بناء كائن معقد عن تمثيله بحيث يمكن لنفس عملية البناء إنشاء تمثيلات مختلفة. + +## الشرح + +مثال من الحياة الواقعية + +> تخيل مولد شخصيات للعبة تقمص أدوار. الخيار الأسهل هو السماح للكمبيوتر بإنشاء الشخصية نيابة عنك. إذا أردت تحديد تفاصيل الشخصية يدويًا مثل المهنة، الجنس، لون الشعر، إلخ، فإن إنشاء الشخصية يصبح عملية خطوة بخطوة تكتمل عندما تكون جميع الاختيارات جاهزة. + +ببساطة + +> يسمح بإنشاء نكهات مختلفة من كائن دون تلويث الباني. مفيد عندما يمكن أن يكون هناك عدة نكهات لكائن ما، أو عندما تكون هناك العديد من الخطوات المعنية في إنشاء الكائن. + +تقول ويكيبيديا + +> نمط البناء هو نمط تصميم برمجي لإنشاء الكائنات بهدف إيجاد حل لمضاد النمط الخاص بالباني المنطقي. + +مع ذلك، دعني أضيف بعض المعلومات حول ما هو مضاد النمط للباني المنطقي. في وقت ما أو آخر، رأينا جميعًا بانيًا مثل التالي: + + +```java +public Hero(Profession profession, String name, HairType hairType, HairColor hairColor, Armor armor, Weapon weapon) { +} +``` + +كما ترى، قد يخرج عدد معلمات الباني عن السيطرة بسرعة، وقد يصبح من الصعب فهم ترتيب المعلمات. بالإضافة إلى ذلك، قد تستمر هذه القائمة في النمو إذا أردت إضافة المزيد من الخيارات في المستقبل. يسمى هذا مضاد النمط للباني المنطقي. + +**مثال برمجي** + +البديل الحكيم هو استخدام نمط Builder. أولاً، لدينا بطلنا `Hero` الذي نريد إنشائه: + + +```java +public final class Hero { + private final Profession profession; + private final String name; + private final HairType hairType; + private final HairColor hairColor; + private final Armor armor; + private final Weapon weapon; + + private Hero(Builder builder) { + this.profession = builder.profession; + this.name = builder.name; + this.hairColor = builder.hairColor; + this.hairType = builder.hairType; + this.weapon = builder.weapon; + this.armor = builder.armor; + } +} +``` + +ثم لدينا الباني: + + +```java + public static class Builder { + private final Profession profession; + private final String name; + private HairType hairType; + private HairColor hairColor; + private Armor armor; + private Weapon weapon; + + public Builder(Profession profession, String name) { + if (profession == null || name == null) { + throw new IllegalArgumentException("profession and name can not be null"); + } + this.profession = profession; + this.name = name; + } + + public Builder withHairType(HairType hairType) { + this.hairType = hairType; + return this; + } + + public Builder withHairColor(HairColor hairColor) { + this.hairColor = hairColor; + return this; + } + + public Builder withArmor(Armor armor) { + this.armor = armor; + return this; + } + + public Builder withWeapon(Weapon weapon) { + this.weapon = weapon; + return this; + } + + public Hero build() { + return new Hero(this); + } + } +``` + +إذن يمكن استخدامه كما يلي: + + +```java +var mage = new Hero.Builder(Profession.MAGE, "Riobard").withHairColor(HairColor.BLACK).withWeapon(Weapon.DAGGER).build(); +``` + +## مخطط الفئات + +![alt text](./etc/builder.urm.png "مخطط فئات Builder") + +## القابلية للتطبيق + +استخدم نمط Builder عندما + +* يجب أن يكون الخوارزمية لإنشاء كائن معقدة مستقلة عن الأجزاء التي تتكون منها الكائن وكيفية تجميعها. +* يجب أن تسمح عملية البناء بتمثيلات مختلفة للكائن الذي يتم بناؤه. + +## الدروس التعليمية + +* [Refactoring Guru](https://refactoring.guru/design-patterns/builder) +* [مدونة Oracle](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java) +* [Journal Dev](https://www.journaldev.com/1425/builder-design-pattern-in-java) + +## الاستخدامات في العالم الواقعي + +* [java.lang.StringBuilder](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html) +* [java.nio.ByteBuffer](http://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#put-byte-) بالإضافة إلى غيرها من المخازن المؤقتة مثل FloatBuffer و IntBuffer، إلخ. +* [java.lang.StringBuffer](http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html#append-boolean-) +* جميع التطبيقات من [java.lang.Appendable](http://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html) +* [بناة Apache Camel](https://github.com/apache/camel/tree/0e195428ee04531be27a0b659005e3aa8d159d23/camel-core/src/main/java/org/apache/camel/builder) +* [Apache Commons Option.Builder](https://commons.apache.org/proper/commons-cli/apidocs/org/apache/commons/cli/Option.Builder.html) + +## الاعتمادات + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Effective Java](https://www.amazon.com/gp/product/0134685997/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0134685997&linkCode=as2&tag=javadesignpat-20&linkId=4e349f4b3ff8c50123f8147c828e53eb) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) diff --git a/localization/ar/builder/etc/builder.urm.png b/localization/ar/builder/etc/builder.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..d77808d36097165cace8b972de6a97d260f70cc5 GIT binary patch literal 94868 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

D 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 E9~Pz?ng9R* literal 0 HcmV?d00001 diff --git a/localization/ar/business-delegate/README.md b/localization/ar/business-delegate/README.md new file mode 100644 index 000000000000..13fe05b32db3 --- /dev/null +++ b/localization/ar/business-delegate/README.md @@ -0,0 +1,194 @@ +--- +title: Business Delegate +shortTitle: Business Delegate +category: Structural +language: ar +tag: + - Decoupling +--- + +## الغرض + +نمط **Business Delegate** يضيف طبقة من التجريد بين مستويات العرض والأعمال. باستخدام هذا النمط، نحقق ارتباطًا مرنًا بين المستويات ونعزل المعرفة حول كيفية تحديد المواقع والاتصال والتفاعل مع الكائنات التجارية التي تشكل التطبيق. + +## أيضًا معروف باسم + +مُمثل الخدمة + +## الشرح + +مثال من العالم الحقيقي + +> تطبيق للهواتف المحمولة يعد ببث أي فيلم موجود إلى جهازك. يقوم التطبيق بالتقاط سلسلة البحث من المستخدم ويمررها إلى **Business Delegate**. يقوم **Business Delegate** باختيار خدمة البث الأكثر ملاءمة ويبدأ في تشغيل الفيديو. + +بكلمات أبسط + +> يضيف **Business Delegate** طبقة من التجريد بين مستويات العرض والأعمال. + +تقول ويكيبيديا + +> **Business Delegate** هو نمط تصميم في Java EE. هذا النمط يهدف إلى تقليل الترابط بين خدمات الأعمال ومستوى العرض المتصل، وإخفاء تفاصيل التنفيذ الخاصة بالخدمات (بما في ذلك البحث والوصول إلى بنية EJB). يعمل **Business Delegate** كـ **مهايئ** لاستدعاء كائنات الأعمال من طبقة العرض. + +**مثال برمجي** + +أولاً، لدينا تجريد لخدمات البث عبر الفيديو `VideoStreamingService` مع زوج من التطبيقات `NetflixService` و `YouTubeService`. + + +```java +public interface VideoStreamingService { + void doProcessing(); +} + +@Slf4j +public class NetflixService implements VideoStreamingService { + @Override + public void doProcessing() { + LOGGER.info("NetflixService is now processing"); + } +} + +@Slf4j +public class YouTubeService implements VideoStreamingService { + @Override + public void doProcessing() { + LOGGER.info("YouTubeService is now processing"); + } +} +``` + +التالي، لدينا خدمة البحث `BusinessLookup` التي تقرر أي خدمة بث الفيديو يجب استخدامها. + + +```java + +@Setter +public class BusinessLookup { + + private NetflixService netflixService; + private YouTubeService youTubeService; + + public VideoStreamingService getBusinessService(String movie) { + if (movie.toLowerCase(Locale.ROOT).contains("die hard")) { + return netflixService; + } else { + return youTubeService; + } + } +} +``` + +يستخدم **Delegado de Negocio** `BusinessDelegate` بحث الأعمال لتوجيه طلبات تشغيل الأفلام إلى خدمة بث الفيديو المناسبة. + + +```java + +@Setter +public class BusinessDelegate { + + private BusinessLookup lookupService; + + public void playbackMovie(String movie) { + VideoStreamingService videoStreamingService = lookupService.getBusinessService(movie); + videoStreamingService.doProcessing(); + } +} +``` + +العميل المحمول `MobileClient` يستخدم **Business Delegate** لاستدعاء مستوى الأعمال. + + +```java +public class MobileClient { + + private final BusinessDelegate businessDelegate; + + public MobileClient(BusinessDelegate businessDelegate) { + this.businessDelegate = businessDelegate; + } + + public void playbackMovie(String movie) { + businessDelegate.playbackMovie(movie); + } +} +``` + +أخيرًا، يمكننا عرض المثال الكامل أثناء التنفيذ. + + +```java + public static void main(String[]args){ + + // preparar los objetos + var businessDelegate=new BusinessDelegate(); + var businessLookup=new BusinessLookup(); + businessLookup.setNetflixService(new NetflixService()); + businessLookup.setYouTubeService(new YouTubeService()); + businessDelegate.setLookupService(businessLookup); + + // crear el cliente y utilizar el Business Delegate + var client=new MobileClient(businessDelegate); + client.playbackMovie("Die Hard 2"); + client.playbackMovie("Maradona: The Greatest Ever"); + } +``` + +إليك مخرجات وحدة التحكم. + + +``` +21:15:33.790 [main] INFO com.iluwatar.business.delegate.NetflixService - NetflixService is now processing +21:15:33.794 [main] INFO com.iluwatar.business.delegate.YouTubeService - YouTubeService is now processing +``` + +## مخطط الفئات + +![مخطط الفئات](./etc/business-delegate.urm.png "Business Delegate") + +## الأنماط ذات الصلة + +* [نمط تحديد الموقع للخدمات](https://java-design-patterns.com/patterns/service-locator/) + +## القابلية للتطبيق + +استخدم نمط Business Delegate عندما + +* ترغب في تقليل الترابط بين مستويات العرض والأعمال. +* ترغب في تنسيق المكالمات إلى خدمات أعمال متعددة. +* ترغب في تجميع عمليات البحث والمكالمات إلى الخدمات. +* من الضروري تجريد وتغليف الاتصال بين طبقة العميل وخدمات الأعمال. + +## دروس + +* [نمط Business Delegate في TutorialsPoint](https://www.tutorialspoint.com/design_pattern/business_delegate_pattern.htm) + +## الاستخدامات المعروفة + +* التطبيقات المؤسسية التي تستخدم Java EE (Java Platform, Enterprise Edition) +* التطبيقات التي تتطلب الوصول عن بُعد إلى خدمات الأعمال + +## العواقب + +الفوائد: + +* فك الترابط بين مستويات العرض والأعمال: يسمح بمواصلة تطور مستوى العميل والخدمات المؤسسية بشكل مستقل. +* شفافية الموقع: لا يتأثر العملاء بتغييرات الموقع أو التهيئة لخدمات الأعمال. +* إعادة الاستخدام وقابلية التوسع: يمكن إعادة استخدام كائنات Business Delegate بواسطة عملاء متعددين، ويدعم النمط التوازن في الحمل وقابلية التوسع. + +العيوب: + +* التعقيد: يضيف طبقات وتجريدات إضافية قد تزيد من التعقيد. +* تحميل الأداء: قد يؤدي الإشارة الإضافية إلى خفض طفيف في الأداء. + +## الأنماط ذات الصلة + +* [محدد خدمات](https://java-design-patterns.com/patterns/service-locator/): يستخدم Delegado de Negocio ( + Business Delegate) محدد خدمات (Service Locator) للعثور على خدمات الأعمال. +* [واجهة الجلسة](https://java-design-patterns.com/patterns/session-facade/): يمكن لـ Delegado de Negocio (Business + Delegate) استخدام واجهة الجلسة (Session Facade) لتوفير واجهة موحدة لمجموعة من خدمات الأعمال. +* [كائن مركب](https://java-design-patterns.com/patterns/composite-entity/): يمكن لـ Delegado de Negocio (Business Delegate) + استخدام الكائن المركب (Composite Entity) لإدارة حالة خدمات الأعمال. + +## الشكر + +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=48d37c67fb3d845b802fa9b619ad8f31) +* [Core J2EE Patterns: Best Practices and Design Strategies](https://www.amazon.com/gp/product/0130648841/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0130648841&linkId=a0100de2b28c71ede8db1757fb2b5947) diff --git a/localization/ar/business-delegate/etc/business-delegate.urm.png b/localization/ar/business-delegate/etc/business-delegate.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..4dca6c263b99ddc3898218250c4da67fc6d71314 GIT binary patch literal 50060 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

X|h62V?2|OLQYYg$LNG z^H?Q~mK)+IyHL@8h>I$x$W(^puW{wZ)vVg;fA#wt1r;=WPPf(Ka2wPD%*Wz+V6>QI zr^T+JYYg=MJ}Btk7>6xnXkrK60id%bUE)Wuqu!TjC-0}aWYOj+1&c1fW1DeE>M_os z#e7WJ9wXRZ)?zg)4(x~WQ-EtOu-v_@+0lL=dbnCqQNJAjQ#;LU>Ahfz8KxtgjU{Cw z`JXVd3d;h;hUVK;2&H@^An&fU9KvMM+qrNG& z@n@H+1L$veg#esXXo)`6{IU?Ev<(G7*eZ3l`W5}`l;lR0+W9Iv5Z)a;rkssCv}-B6 ztv;|^5!5$}HH2u_?HUbK2jFPV#B>BQqJ@BvKd7RbhCT=W#UqrbKz_yMb)z4HR{ro? z#)c|dR)yCTuoYJsVz%%PPlDHS^OB)Y{C&}UR4=PlDB25rT-dmDOajj{QRL6nU`xRH zf1BiU(H}E@CgdXBHz@r(TSSyn1VUFv2czlsiry@}N>duc57JnE#Fdqoza^fTen||L z=SJ>uK_?a3lDF1siMh{U4>7jv+smurz2$u6t!Vp*@k+NI-aJe79og4dZH#DB>v&1r z62xB*H!@IG*HFw#PUm9ehUbJHeB+I|-K0+bg8VdTP`a3xv0;OfUR|?7 zp!Gt(<{f*5<@2x$@Z`R|C+^`{(raXOQCV9m_I~--z;Ae%x%5!<;zx)7_S3Kh`*xpb z{rEg1OITFU4&8@Eh22UmIw?mZiLjCItL_xuB4&DV5>}Ln4WeKhS0hB+0x1;ZZrUse zc^HTjXK`3p7>KQ9xh=ZnhNUoaExzpy7}p|GH%{byQ2GIlGSVG3#N~=%Vm$g1hB@P_=ERAhAXT3r!ToJENd`UK`EqHajjIuHNpUqnlk>YA1I`&5vijBOnr>eD&<6lBt(~XD-3t-zN5V(c>EQl#Aq(Ys*_Gzmv zYYD}^#m7H-Dp!h19G;sy4NBW`@M&>NSQsug-a;>w$9laU;F3!LGaSp~rJ2D1m4*P#ZyVIHxvE$gou(v?d5anSifA^nm zc>Ck_`uF<UQP8G010;P*~5LHOV3*&MfwE5|FKV`Qy z2VuZ{m@KpJx!8ldZNqM18`mLVg2}!GD+hb_K5a@Ito#BC! znD_6c!2Z%%3BN~pR&7c+pg^k)Qp@mF3$I#L_%{Ff4nytxx;x=bZ;B8Lf*(YD$lN%N zf%3!bohS<y`mi}GrQ2k=yRg>2RRh@1$QpelDBqYTyOACf8D*=m8 z)XY67l_W@o8yV%aw%)1-=(jCaT%V9@jH(C3!0q5dpHxj(RdF`ZQa{9!9|1`ewR~Nm zGc)&T7842K_Sd|Z>8-3LRv2QHvRU2`H1j)PVPdWOkR<|Qst_!kfqq>+)sc%ICQ`tc zi|hM&EP#0Gf`>9xy)Y{tGTEDNl&LiepcI#b!jnGEe|+Sqw{-QO{cTz0=wxFabMAj% zn=a@k{?D~Mv`2PJy9yA9KqNaw=li5|_Hlq;;i8#k4k>0|H7M(!3sjAHAiVz zwlmp0Y5jC93B!Br0pP^os&&D&JQWfMLmU_$SK-_*Gf`AU&E5D^_Aft)`k7{DWV{k54U z@3RjuR4DKs$i5Ry8Sfo$w>!ab4qSMUE!Uy=^yBw~9z_^8_4hXq1iU>gZSFWVRPbzZ zHe1IpDNh8lV7!|$GGMLTeLw7f8@$E6YmzvO*+RP#av24z*MD8&U?lk1in ze{N*d-?bV6WZs*<6wk{%a!v!ohaB+dE^{ImE=8Bf|GwPP=DB5K;b|7EV<=%z7oyIh z&tsE`h<|Up#KGYg#?_YVhlLyn4_e5E{A3Y79#xtG7Zo(GMbG6}XOMMSwGBCd3Pu7D zbT&kO`S)Vpu{8lLCPH6j2GFhxKR^Q77U&^}XTqL^rrN3*2tlOAL`4L>p!+-W6#u_2 zeYYiH_wS`8h&w(1-W3pdDF1b-Ou^58?%HPqWWvl2*OfdwwtxNlwY3G&JVtWkGJP2tF%iN5Xe9Z-zeZSL4NrIgG&3tf_EqKPB_v(XjzhBlgADA--gCqN&8x&^w_=p ztVYEBW(o-8>9lyF4Eq2m$&t<+kOV>8<`|T@&?Q(uVEaO27BMa4+}+)8Z?0LGnVDHw zfQHq@Qrmqufl^uk(3~C}ZO_#og47tA2oO3nFf^1)14SJjC@_|+PsDsAhudm~(`+aM zNWK6iFr*cLUQu)a0ZzFCw0)qkg@QvjH9h?i5J-@CR*e!ZO6T9t0HTD?0_ElBZ>Q+~ z{{8*p8X%~E4v8WJ@~z+9OeswePUGVf4eqB;?VOzz<>kMAI2oiKY1k_C*t3iPWC!9{ z%vBKklDOmUaQ1^vn1qYU*n(o!Dkv_ccnI_<#~WStLbRnJddM)1MA@FsPT=VQ z9u1?L7IQ9{+lrWw(Dg?r%@JCnTfr>t2g0CIwhBmdN!_caX>EI; zgeBb&c#yi}c=GhoE$!cTk*s~IA22KvbvE!|?(FO=OX}SLpDvgXZa~_R z&UkRF(-92~jqs(Q$4U5L6k{PRP@sI0UJRtjC@8N672Z4aD%aWm0P3=j{|7tPs{01( z>dj(H>Z0Y|LNgH1W3QQN^$`ho(rI!P+rG*q6?83=ji$=rykflvx+mf&(a!LvSSBK{ za`5@I=jaw%@R{jTFfNk1tuCP2)WYDxruBNFR9D2sSbZi=T z<8vhX?cC!d1EM3;kywNp~9CInD8w~Ob~OLl>xEMWt=gfcFXv(P#s7< zmRDAia2O%GH4j>#%+V@`RaRCGF$i)h7nHW%%yf4nX^C}(tjeDMv~ymIX#G@z2mSq0 z5Iz%-P=p+>(1#>!_ijW!J^`S#A@z;O>m?ximXCG|M2t6Blpzm^!iHiX$u7d@KRM(U z!{udvr(98zx-r1$XP4VsDDr<@7GJv;oK(|NWlo>7N1ryc_mmjh#UK_~Z$4r7r>P|1 zN?Krr5hHO7;}8hB6s`;=R$2%4oHrbJgb@R1GL*CFZ=YwwK(b~8*pdi1FABrRCG79c zFE_C)MmTcR4&S!#+FA9Co?{{hw7?bv0$HL~!Ok2h+t5$G(&+k<*s2X{sZ+Ou+|m@7 z?vG&0-@PEZwp=K}+bAV+3Feh?OZR8+zC(tv#TL0>u^5$k+1qjHF_2vL9kRhqh--2?;uK;<48=Wg zH`9_WSf7+QsZ5UQeRIBU7k6BVbsh>oie2~n>YX|bc4)uAUU#0d9a6LngWkXLd6Mga zre5k9ak$Jton?t`38s}t!@<_%Kyj}+NAHdt!&CZiax85A4>_hbCAI-bbl{-v|09z} zBU!%E6DdKlB68*5`v8!CF+_|Srst(Qd)_>vgdTZ(THCJ zyI_$9x-4K=-rDK|JTC+e!qhKA0jL7V^MF-$YHFC|X;P0Al^M*idm-Umgb})rCPakd zLx~NrjkQlq3>1r%MQa0pXr=;%J>=BnsF$P@st5dt)RB0Plv zEoN9Y$T5V$*gkP@_R%mkU5l6hecT)lK)%`Tq7KER^l${=1KtVWFRIh|G1-`-sF?wK zAvq_GKjqJX3ID}rIel%)=nLtw82ASkq0of?lSUp$yQ?k%HUtrd6qIifx(AR&pCOc5 zjVyFjHJJl>CH#rF`QVfOm>;sXfGs;znSB)u%}dqJUFo@g<>C8}R9?i`lPr+`0lD@s z;UDHpbhZUz+>)E$;qh=|-@^_3dg#seb9c%2B=IARAd~nHK~~}qlDcRkqqllHZuDbT zm(Dg5X%bm+41W2vh+s~3n7VuFxqjdMAo~{Ul zoF1sXkPFmAf}I9#B{7g)L6>AO zg+p2g5Sal>s&l^hLJiKsOC|+6 zZSLn{!gTGnRR8GOy}ri8KAC?#`|b{F0yV~h`r@~M+`(=%>lXrQY#VTHSx%d(W7U=( z^+nL-wQ-<@yz(Uo-SYgL1>R6vS{^8m&?}K$Ela6FXRL=p^Ygj>5Hf?cHnFKGpMj_= zvB7nl|LxPKjEOPJY!)=fa4gfUKG`2Xx{0?3`!r$+vBuQDpvM>zfvI#6FrPtRv8uZK z)7KqOs?n$Slo$hG@^;#iShB_tfT zTQ@30mY2D4RzQiZm`E=xFx!5%O52wIg@f5|C)fab{|svoB(yScRjBg{B7s~AC?TU_ z3CQY^;@Dfb#*qWz%p+;~D^}T5?7v-jMeZ>Pr`|Ozg%eKv1PNCeOHBedL7ukEzd?xpQ{dUniD zCr;Nlp7w9=CLc3SkBCr4;gyxGQqYTvl0$;6}(@M3N}YULD{q47YMoZg?p{#bEXvd>Q@U3vnj$RjO?kPnyc3LCYNbSwp=H9{qMb6BO|t#6%qI7THJ0nt`Zm2_BR$WyY}k ze4$i6NH2GpIoY1(Tl9iDetlgL+I8A~S1Y5Oz0LZ^*qEa)R3Blk{Qfb&kpMYc?HdMS z2TDnt0T*#`UsCREPs5kSKK=FsS_f?xK>Wd_TED~R=~@^l^*$FuKLqM|2#k;zY0Z6n zcv9j+r2jrodItUBOzX#7%vHD0h=_rOS8OHTtHUwPn&MXW@D1=I03z}7u(-X!V}BE@ z!Z!ufQL2o;Y01vjVZq1ZVLPyC9|*bG(;MBK?LQ2^mg`k7qJ8}u<$KcW=jp=B-;-k# z6H(&XF1xyR*5f*=qiU`%_u4VYmyw@wEN2FQ$_KVr?D!)9e`L@od8k0=`rgq)^#!%% zB=_s)3#AeEg%zsA%v5%A_X|$qPcmo(5!B8(pF^Qke9Dm3!5qfQ>`&kI84<3@CPNCc z&9a9)wDx07?cW*4cN$(dLgM_>j`*~p^cGaDWSp*-xu;BO6zCeyP03fM-Mw}U3 zB@Q+5apX)>5G^)ZEeoSg7OzA9z-8mV>HA)GI9=&Xib5;M1+MU6PyT`Z`fYCM0g zW1&L6->)eCy@7nThINTbMx=$~O|zx)ck3veK!gIuzc1JWUXY6T5wF=i+j?oe%zfv_ zAt&(KD8j$odR;ums-`p5y*fxvdQ53#zf;}y+pxR|{iiNh`sazH)2_-Pxlj(@ki*9GdH)_ASf97XZGPqc4_tf^0-&Ir z^K?(C(&DGOWYX&LvY?)59^kuJp`167B0<=fqj|&b?tpqoGf*eSIaI1NQAZ~ptEnl$ zA#K*qSD?!bh$J7h-N^ugobSLVPpOhTfo<(;{|lWa2KMDBzhF846!;bWrKGs^JSvC) z{5mU5ht<`q$%MoGj^-PKza*rk;p8Py+aag^9N3{Z-_=glZj9r!f{F-w8m97p0;h>& z*vl*esoLNTK_gj>kkG;O9)^76q$-y^Rn@apfd`b^G47Ma$xrQ#*i3TG&1INgUThw1 z&gXywK_XB-_8Fb-7EhMmzBA6TuSPI=_~;P}k4>6{*En`2yzwZBEDfM#`ZA}X;us^4 z_?xHH)WQsA=m9i@b~x?4K-ON5Nn{v@*FX}GQ1WR)$v^Lt_4WDA)_mWZsYZM_PWcw~ zCBk!%kBM6-lnCyQ!og;*6L#L#HOYm8vj$t&hU%1Rbg=}iXF!;4fJ0Rmr~~z(B|V5m z%AyrV{Q8L}N)}WX#7I~XVxWlE5QMtgrQ%F9DbmWA3KrEr?}PL*E+vtO+K{r5t%gxW58RenCp>N)$v_fAgV z=xAI~Uv`G2u``vvDu;i#1L~AgxnmkK5boa>ve$S(B@n(F_|@nDD2DP_2iWdZ#Q}9y zRB_c7Pokm!?pDetEWVuuFUVLlXI{M;%h#SY0;r4869hIwF-^@$x7(X4zYP?_A4upH zINwfo4mGPQeCv>g>n$ho>FA`{lWMApuPsxy3j(;^}s$zcH0IXO1!QW%tid(L-&F{rEKjdgT( zHkhrc(X1UZ{F;UC?zyj@ z)q@|s@B2)`rt^4oa*~#h5~;23BWnO2exSYhB>^+x?B|yQHl*}4~8n# zoXA0@jr2l|`=V+aYp=>iqmmS1v%LU%aOL(;vWmw>Q9S9<6AW_cmqo8A`S>tLG;8{; zK+n=X-p;=Yka9USkE*kyMvz34K5cq}@p-%0iJ#&kvTS^Y4^aI3Vm9m43 zq$1cm()`|@_9_#&W&@pv1RFErB3c5ri!ZXHlP*s2th(Zv>FG~8sbfBMQ1xpc9kn0` zgh-;cXDKVHzk2vcr?CI4zeVFNnm(X@&B2@7vQR<^QL$PO z%rhTNndK4%w(bE26~&LWYE`jUxL;9rTpW_+y_&USj5XF&|{gyb#%Qk1rh1>62W}+EixuoopvFMZO)ueur&ynat0-2TA2Ri4A7fbhs{T` z&vAmTm@0V@=E>ae6EF&^{+4ty`sLGSHX0H3NibOy^BiAJ^L?>E_Y zyHmZunKd_}^Sp*XQ2TJzB!f_egr=>#+jEeNz?uv({N3zx;bfJn5AqNyDsFV}?d8;3 zCG!}6wY4Vudz)YRw3lqV`E^;PFTNa|tGuHN{LbY>-v5N&aSUt*OE$Zk=<9DW`YLt% zO+6$Ys~7X10iNN`d?V?!{2(O5?OVJOG5=WGzyJsPQ0g1t{hES)C+7M*3w+Fu;MxQH z_G)%bDI8)XRa4`az_{P~kOoZ3Rv{#zk1|u7d*V!YUR>=oxfupw>`heUqF@_5YBQnh1Ip2*{GW7t%bwbp@234~(H)0Ji+2jBx0yV#wV&{I%~Tmdhp{FsGO zmxU%hd$GdUI+l)4mt_@%2_Vz8p5rg^?flRu8zCalXtvRXktR*}JvTSE=hYc|4*J8R z-FX4YNwl5F$VJHQyMJHrC}#IC3x628jNM$-Ua>Iu26W-=jbp8KaW8?s+lr0+S2!@( zD?J!svY(&qFjjmlpgpRL8_D(Q?+w8~h2CGesIjs_0n5K{!TnmylE7&uaS)$)T(YHS z=e2$su%uxrudbe|GUuM|^kAkTk$oh0`fD5?ie`mGeU-Zf^!JH`jK!#oVLo7H1XR`G zJ+*@l$MF(;rW*=rHIH@5crHZIF^Hlt@09kY#e)FSqgy7?@8nEo1lB;|^sX`NhJKj* zI#!nL)&zQ@6AE5?by-#C;2_w*#;1Ay4XHHxt5si>dF#=}F!3j`9NPs$-#5UGh~iW* z&~yKgn)<5g3?m0q+)U)!%7I4p1U5^-^tz?99@ZTW7GxvB;muB(r2vbJp5Q{Q&1EPK zY3O{f>}{JrvaG9HG0pzz&9yB@R4^gBX5Y^?JTnwGWwD;+sVVKIKwB1E8A$I=5wO7& z&2EP&pPt|PL;_!=r3MtsKTYN5qW#(_gdbxy{#k^=ZU>6_K|*J`qWr1p!WfvB)TbL! zvQ{vo239UOcbz%?dVSZ|@o6=h(g&z0A4ve~Szu%Vt%q`Ti23u6N;uiJ&_?k(ea$w8kN^W#ZJ8Vu{B%yd4u6D6LgM=K zOLS!2W_~Q+9p2B(DJrs$0>S zn1h2Ys99A;XHKI^a<}-YL84H5aYd5Y1>o$cA{C?~cOk7&L6R1rDuo8@hOI|yK;BYP zZduPE_w_4GmFd&DJi%r({1b)%4tXEe{de1iD}SOyz=hno?q-2;%v!vxPqx1KQC(Qn zQ>`vEL$=1B`Ku=;5TcVWyicaoWfrCGYlzbF(0}#Tq^x(AMZu;bVUhT-@zJMduS2j~ zJ#=egN)Jw`qorFXm(TbG-1E9X1`}_LdgMM2NHVXOGS&9IgVsw@YrQtQ--+^F)VUSX zJMsDUBf94XjH2()p$|sCS<+q`QY?XECV+6i^hndopBfNU+g>Tz1qo%*%n7DXekMO_ z;S^w<;4~IP8mhUu$aF(@r72Zc2C_cZV1?Nge&1qNZ^;3YG}y%Vy1@sx*edeeGW4Pd znTVwETdyqnj5KOyAItl(t>xv1nLZssiC}9b@G*9TdvCzhyyS2Gz7Me*{u-s()H?~Pw)0Qxvp-kga1A7PP=*N2t z-(PejVA@1KsdR=-lozka+T`ek+8{OuMK`d%_Rro?xChH*O zTm|R71^4TV)>qOC)|m(HprIec_kO3b2Q+Qz9dM)Y>bEa#j>;(48%Bde-+(u-xSeA$ zBEn-6qMq?d5d1$aLgiwlY>Vv_GXo_wkQv3#K~VRTHxkU4aCj+k z;zDw3Kcn0rNSB|US8CQ;BRfzNPWm&92r&I-emS%d`>V;=Btsc8b`My{>WTHl`2Mif z*A5H7SzBz`j@2}KF0I3oIc6>;OQ%185MQEf-tX?)=*+S?S$h957OoUYV2RuU$LlTe zk+lwmT;O2GM7*DuO2a`emM^Fynv+Kp9bv(xFXK35`2A=PMIvF*iJek3IH1UKxP7L_ z6wfNBI>+ZWq7z;yd#MWdmmFQI8|e0q$AyZdFQ~+AlVHM-)zqb?1%4-F&!Y!5@nL>7 zzeOnhismaEiSyP##8_((#BgjnJEe*%S}$-B`DWl86{SyLAHT*rm?$2CML`AB59=JA zzO^sK*K(>itCbu8_gKF(B<;vgZ){Rp9A!vqRR>Oz3Yk^hm}4?f?Xg{edal~s!v*=o zfZ_f3B$Uk5Hnqxb%>_+y|CvFdwqS#)rUu`(ss8~}js*iq2_t{1*PE{Fk!myVn~gme z0^dnT2T%J_>Z_oKn@}2P`>aP(@tPHOp~5ds`tX>aEU|x_2?Rpd<8M6fBxpX_lcNrN z;jMbEb>RDTS8vmf#X|o12cvSS0$H!`>Xev!U9L)mbmw`<=-Xpa*S_~Y;qM2gi|no;eX-*sv7c3 z0a(xnv9)pmO6k%aoCXK0Y)X+Ro1gWO7e9ae&enSLs!Wf$_*Ik8mz_TN#~igr32Scy zMEQQZ{2EJtCkbI_S-`Pisg*0@K*394mrtv`vvgeJ*v7IVZ+`!NrLc%AjsF(dPGf}y z9HhxMwV0;nJmJ65fWta3Ajzku5;}U{HSzf~v%^e$V@j`(K8GEtLT=xVP&I6`2{`^B zx|0?E9~(&$H_&!ycp=!NIpRkT3c5hW&otPrGmV4*{}3#dY`SE5>6l=DN4`Z(1ukxC zV1>q{*s%}?iK)qq1I`>g>$kEGUy>p7bcqXPP zY)xXX-ml6Yif=uOpV8e#L|o%B#il$HuX%F9AsAcFsa+RQZoa%84_nr(3T`Bf4+g3f z)z5pSAi>yO0{j9PtROj2TpSqtf;$0lrE0RtF5iKX zD3_@lY&M7@ic<89PUG*&M7-;tXqm6@DEXVVL}26Rk3(5PS}bz%2Y$XZ;Y4x_Dkd^r znF#;cFKLXNmMw^5T4pWJ?H|$qKu6B;>^^N1INmkoo)OL-zo9*-iT%eSa=H__SjmJ{ z{=KJf=TPP&5DU{~N+y!x1!ISdf#CvN2F;Tx2gUC+A@M?~4@cxvEqXcx%-7 zN7JTJ`8bue_+vjJ6b;#^#hf_i@<80In&M|ce|(at zz&vj7r`25ilDj|szi(_(`mkhbYye=!|J}EEjpT|-oY|UcP@KfdBf>U1y7F0_>mD)T z#^%OGRFxlMX`RhFvPwJNJruMu1e$joyN|m%pM^=GOn!iUhX<3`7X+q}t>$p7- zvaRcvU-!OAjdEH;TMLl?yW6383#U6-zQnC`fOl_`mO`T_VS8IJgpgb)%&(2(^|(Z` zK(Jh97u9~aYAhG+pLL)wY^5;KQb1it=C1W!&+mbl7A;K>X`BR_rA>v_G#S9iGLgLIg`kU5stse%L7z+-fOw?Pk-0=f?eT|`k*j}-Z#6%Oo*DZSgt4A!oAYBTYG!bi%D zutgaT|3*D(wy?2~aK76>p^gR{D79`erT2QZ;IXGlQc1&&`j$S7Tny-|nw9_AP>CsG z{A;JgV@_Y{%-^0yz5ZqpSD$8ESpKPZ!a3)Rb$)2bsSNMLV)5o%tZGK>sl0#yL`KGg zfWWj%L)b=C)SeHX)_;%nL=;`ej#Asz_@4Q+|3Ti&9G}9UjTWn2&Vq@% zX$zbbwO!z85e#cjkW4zOF}{X~iZi^fx98v?!7iZ5g}%7+KMUe0q^MuRAGG<0@H;7h z?etDh!grGE?-ECf?_T=<<1;IdqiJkxmwPJ-5)PD-*kjn>C>_|gjgbo2+7XxiM4PVD z?1ddGOSs!IZ<;xq_WGOipcbm>ebr`OyUbc^fxYP`)6QH!Q(i6@Lp=teZ8g-!{i%&A zkQ_fFXgk6fs*?oTlHhOYe7vTnre7z=7sqTh+Bi$&wq>X3kSXOEqYxTQC5q2EIXPv9=;Fr8Xuy2S z`-K5vsvk5{fyyM?I@R7j^)-#!JY_s)$j+sUO|1%B+5*lMJQS;FA(WVM6ltPra?hU| z_Yens&A^AkzwGYmk(g&s`Yo1^0uDIszjTjG>Z-BCZL&B$Nvut>lIkVEl%R+a74*$N zINE&STqKtN&?1wT-SaI}|1sR?2sQGt=u}xVD$Cwr=76+C9lXO&Sq;3w7d!Wz#zYaX&uy^&?g7W|n4g){PJl#YVK5_1HOruC{)Z`qvsbQX;kG=af zP+{yOXlk(+D2utiY>b>D;UvevNZ}uGemo2K*f2oPggjP$Jsthtr@5LXs#y%b_a@eS`R2IEt zZf7NyU>m)nyNfTGt$(H$))Mji)siI9$3IrUpq*YvR`B$a4z83wu6o@6?|+YeCXGt` zEH9q97lv9gvIB(t-w1%t2cni$kCY-((Mo27R_f!tTaLD;*7{03rU7iM!V9vr1RRTA z$j`RoiJfDb#VmjSUMirr>b`3XkjxxrrMYVP)!*CorjXmW=rCb_8}DvN5x`xMBeMqr z5{@p8ezAD?$Nd0JQWb2Ug54HSYi4M|&E5nSGg~UFL?=i)5?^=y=`YPEF)T5WUxLPH zV(zWlJI|rkynGV9zx{H6KXQ|38y$2*26!f_pr9?2-1gg;d-p`Y%Sno<6`3sd*OE_> zRN=|YM2xNzV1ls)+bLJk`^(Qm>>}x(hHj%n!;M@9D_dFaCbSrgL`WfPS(-EAsd?GB zf3kkP^mX1gRR$p||1FftK@d5dPuWy-;?nU1skkT8Jz{W~wGuW8q9EV>Ojy_pC40}b zoB&L)bP?T@W|X@@fCsGA056yA#5obkl)5CVo~nKR4d&fcLe8hH=+Z9j^^fzf6j@F# zh0kC}sA_Hw-4dk2lmZ8;x=~#ZS5i<1|1>QH#)Odfa<;%S1yBByqT*s8!q`#sne6o@5tzywYo}7S=&GXKiaOwk03X0Pm%J)pjug2uGcn-?WTtZjyjbFAG=B_?Gz6llR>50z zw$I3b5Ln#L1PQn8qKB&*kgy>x`pfH&6_*rpg)>~p0pXOUEQx|{2UF#@x2jSt(y6#o z3{-_*)i1rTj zh_+Pam}$o@V>w%VQTPM^R@{3Q#k80PCf}3B3tr@bWADdHb#Kr1S2}M%hX6Uv#H6HO zo10Dm!x=~wNO$;{ZPXWogoMPdOvvtiseG&cI+*Y$i%N?srgOEtO_`k`dS>!PAs?Ky&8`X#U&(Z-2V(aT5ilKuraQka{JgSNv91kmKO z^6{MmWE=JCE#1PR7w)URo8ynO+vs26vP=OAyS%c}*P5{m>Vj#|RqDXm!8%2mJa7k+X+r%vkyy&JT>w;yaBgttfiq;{dQ0JbHw zBfF``gu**S1Bu!y^UsAU@}ZM6-YiHwXQM*SePOf4c13K24+&T!O@%}j9yQDK3gVIF_m9Tg&m>A zd50K9M|=&s5JRt<+jdEGBlzcFy1=U6R4_Wp$*fJQ z7(5ht)5aoH*?WT@(_T5gsHliVv*s;dU(I<&^IPHy4c?+Ww+u=$xt$iV$$x zeK9a~#^2(&xVWy@;&po?Wx){~uWJEIg2yC^dsdVZ_gKgsmuhnDo9+Y|II$Sz!@Y)s zlO4?|g6`p5`HxJxErR{7Cp(weMS&JSk(f8+&A=fziP9#|C~$9XF84rLihtIx$x@}| zB;|8X9qoPx^4kmdy$+Th<>~Xf#@u_#0%Nl!+5(^UhqGlOA|ik(1tS8hj&NhY;d9A< z#Fx3YGh3?*RutF>wQ{Wpv67IGTm%X&lqd&UruFFZ=?O<|CJ~q`d0#rIdBd8&mA;^Ri4<@$xa30QMS#|eC8HQVvs(pyL-x`vi>Q|sy3EfJu|#ep|L zSTXYKO1}2I;(|?z)cn~AaJjY>0`G+{f)6t$n(}ZwP(;x6VD&71(hmjOTi3~{i#5jE z+?}_rlnCdZIzlew;mRJ4AK-dJZ3-rC)@J7Ch;7|Bnn*~zB%ZtbL3w2LpsX@ZA3J{He>? zmDgwoi}WZtf+Q|Vnk0QxvNmuQGLB3S4xr;T0)EL@8E9aD%1X0r6y&8C#B-g0l-A zOH0PP+}wn_AC=JBcE1?o%Q5rx9D`Jy`LV{u8C(!kdVqlCFsd`&_H?Jbyj)IB&Xzmp z)29~i;uwPNp{@~C1zl<*AaiR(7IU^-ImALkgD?;TB&2yMH!$LGS^jeck-41n^84S- zDu#I%uaA$PZhvryCUicq89MzvRZvTH(x&e0O+zl{IsMEsF)zKG|(T@ZN##U?mPBbFW zxOKeGF6UmS?+D{J2YUW`QL9n*auJm3&Ur=4|7qy^$(Zf_PHMwXuE|rE4W)jss3oUR z-3+=F1Fz=9qd4U}_jQ&~_odDqvh*f@617SdC>AdZl*RM(USB^aNN9J%0 zpI`%MVu{lK%-&B?m0h3{`6(meLHc8n_nNpd%Kc~UPIe|IdDPdtwFcQRh38LtdVZ>j(Rb?qD8zZzVyo>rVcMwS>q)HK@gq8CQ1K!9F`LfO zkC`t0wky`V*X*{Cb2f;2Nj`CX6gaCL7SFs-dLPqk%8ve2*u&PpWv=$^ukmNVk?RLs z;i|6E;2KDZY`YT`LC4>^!GV&jGR7A{v7BC39$-4W{)it9Hh|)PDdNuLPGOnW3s#Z z2L}M;GxfJIWJrz0?eWT*;X*9Y^QM6d4bIQVPIyn$izeB; zJ{2V``1EI>Uf|W)J=oB!)qsZc6e#mMAnI~VVfw3*q@_gzT??UNGtlEmPGkSU2;d4=NwZFo5 zeSULo{_NQbI5pfJLmjS7AYdu`{sZnPM|E|09{S7!XqK=y!RRFNw8V>Q8s}x*mVwd4 zOrwTNW)9cK{QA6BbNKcCB#v*(Y_3*c7jcL|K(3$k6CI#NRNSgphqLp+$>SQIk8nZ) zl4sS*!pTL-UOi0(5sx3DbYSb%NH$nJFsYXoS64+Rgi1(w#3`z1X9u67?D& z7c#0bU%&dkR2=d3y*l7#fEEgHT*oP~eI19->7NsG*kw^`lNK0*Gr*9L+%qCT4pvo} z`JF*GLEJlxh?`1wVf1u<0rRhKE<|t6O~nAzIn?|j?`E#r63w8=Td3|u-Y0gFx57sU zP`U6WnPt1B)jo-z{dNY<$h=QD?4MniDx3TUaz3LLapk&gL^LK3fg1-#_UTNuz@^Ze`G|KU|-_rvF*kilLTR2g-Q{_H* zxZko8_5;@pS}(j%S4RC8ZY5{XjmXd(xp)yjtPG_3=VUW8Tl6RMAi)bA$pKmy2ghMd zTb2wNB;7U^=#?Uby@=;?+OleI*blmJd70Yi+6%HRdi0ZBX-4;dS0flP`ssQn$?W^{hs z?mRJ>Cci>Q6EZYe*--2*{RYt+AqNwT{zsbvQi_URA^B*1_rV;-#$1vf5fifnsYum! zuM)cd%;?TWNwnJlQ4@x8^I>GB&n71A?>Ph&Ky~mdV{E{W+O!^%2sN;QsFzqij#=MY zC$&ua{bvw`<{gyMwzXMi2C|Fkk3)dG`&%(iWicnr7pz)mx1{H-w`p?L^H&#^rS%Rn zIMfA?rq!%?6kLGd>${t=c0`xJ&&xmaqW$0ti%%2Ziqts!OZn+w*!^ zXp-Lqs_q=HrK8#LOH^}5Dou5D@C-+0J#wR?g=w`&w>GVzGtuNe%yxSVl!ReA^~*}( z{rikw-_n%xU*UI!voRA~5;`)6D|JL(maWsO>Cj?=OkNo&9cm}9rz=kvlp{p!C1ev45)s+igp6z{ zqau6ny&`1qJ+epk=Di-O-}n8!@B91X{mwFSP&S-iGZV2mVS?rAvw*rFRQsJc8z&@FtA6>qctcmP7g569@S~tz>fTJ<;j!d&#W)Q}ayA~C05$~zmYQk5vn`$yrWU!0(%bEEIV`V@dJ*&LxW{FIR^?QMbC;o@=lrVTYyPI=C zwXtn#!|jQ?r_LpSc`Gg7KlOaI!>DcYgL?7SnXQRS9tZ+F%&eIL_&ThUo%A!V zV$yAiSP7@Yn8v7NHtWLq%)G^HoU+&a31Lf8iwSUQ#1sew-d;0wIRBD!hgr9y`3=Q6 z7ZVjrO&PM6{MVO93FGpL6Yk;5ojxDLziA|weT{BiNfoQ0@0^j?c~0azLNq=tx^cvO z>>U5JnZGTT#7F@Gfn@hF=%qMzEB0SD~FUN6?&sD+e$;{>B3728rk6Lr?DTSW?{EnLI zbv&48|J-Sm!~H*fe$^XnVxlqbC-t^o-$tc<0>4;Q?bH)oR&xz;pQt6Z$`Vk#jPl)2 zeyWlvX-_LTnRhcq(wAda@7c8zFAh!%6eDt^;Q^ARUhn?%JOJJO-_8gB)8_^a*^SLt zk4O3B?*&8)Y=U?{0kBUfd6MLvLr5WJ8ELy---!Cot)D3-zOxL0U}l^ApXkXTxUP{R~!_5M3_6N@ah&|t)tE*R|fHMuGAJ&#N zujgnXIVWYuHT{lSGMpn%mrMythvP=iFag%KsB+rg698_#<+Di9A>UrKxCRWxqVpLH zkFk)Lb3oyd>CCD>MXqI5n-Jibn+zAzrr@#g^_csI6s~^x&3@;2y7%uy&{R8fu-U5x zMF@0-qrZI0K6kmVzbXzy!x?sMdQ$IOiQY$bunA{h0mz)8=&vVg&#gTObanieu`LQv z_}G{9PddM9FS}I6Mhq>R1O99jW1QmCZGJo~YJuFKkV}*$z6|bq{t>9>PFoA_g)_Jx zG<`lXYk zOunnL^O24_Q=aKFjFR5;=Vx33$UOcwXp3YooXq2IgJ8P?VohT-@WSYDi2~|~^DmOE zOTwN~tcq@{*=Tb8#_2X9%_epReEICWyv!_4U~)FLM91Oz?Se~;rJ4GsG=1vkrHGR) zt3g?|T%4KEu)+sr?BZPp?L!Jt(TVJCgnkvXp@SHytnA4ggH*ije}0CD|L-SbbPtE~$r#wX)wyFRZUpdYS^nd0osU+<4c#D|e_VMSZx4 zzy|;Se)eiUVMw4zf&D&H+T!Al*@b)@P}Dp;G*q<1eygx6<*DJ*r%>2w71TK#c8Ia> z2vjwd*@suN8yeOF?WxAgX40^Ml%%(=>1RxIRl9*96F~H|XMJ-j>o(8V6DSKrGAsx}HW(w6Sm|?Wz58Mi{Hl7X6m<2xZ4YPfKitLIlT0 z!2+6}c-fXgxbC)T3ESVrm*19`8y56vK0SiHVC+0G z$sRr(Sone;u|9%`;j3Q{PRehXPM?X_lwldh)ZI7g+=qV#+4g40&|ksh+4RLH+>$MlX7x? z9i5i!D$}Ky?wIieGL|bAki+|YN_$@D;`Cq*`$6TtHP=b~gNExftGnk+>yt`mrSnz| zfSZ>Y2QHoatoXb~)n-FbSw!g9FH|n(=6f4v53nQz;P!gPyNHa!iu-gms)rR6_dbXXD|CK*jWeABNf%2=xF~Rhr}FK zIENV(6_k!SzDEwlrwv~l)@Ipu^BKd^k_se9f^35vwyY``|odc8_>#i-*_gSa!sZS9kJWFPff*L)Qo0N)Xc` z_-o!2u<*0`aFi6in37U4Mx6Blv@dnwg@~{}=+sfh5OK1*fe}DdUv$KnmW^bm#Pli~Fv_!$# zmS&*tkq3=WR_&XiNxFM=ye~d>=05u=#2y#fm-G>o0e70=TZZt($U{c^`nT&xVGD-E5pBk9(^shIxvG zhIF@Eu1EUD&MK9BRF@YbHPtxCE4|bJD9}!g!5kb7$OGf{>ZnH^!KfEwy*j<)pVv!> zPRiGJ3n?wlEX;{RsEMuMe)J4rYdJP3*jmJ0;7FDf-eT=RjC>f&{)1ZkK)azypH9!S z@aJ7U%)@M?^9!MU6Kwx0L28?jz-ngtz9)>Il|>M@_8+4FzzALN@gOY6#eIR-G@@}h znc-xAdZf79Df%x4|34iG{`--EtpmkNFT4}Aw^!VqOdb_U-V5$1V9EL1a6W4fG?IpD zH{BzLJHG9yn;kv)=Wu44pqNKt>I3*kEU$G#8eh~$!8A@9GI%!@mFR4QOw!pbqtkaH zT}xOi3j1_oEv+qnJKLx6`J<8Y_0NCy^KGyAdoKLONc@;3gIe@Bkgx-pRo~i5QXdB} z+3RXNAK%>^$~$JhlZt+{@o<;>>6W6c%IJlG`;n5{Iy?ekmm50aU_VkexT?lnUq~{q zS?a>mT++?$b7Y zkJw+^Ox072NNy($Nn+3v@Cy=gadR`R`kLt0Q`mh+@$K4AU1!zz|Me)7bPN6B*Yj0a zL$$dJY29z}PB#ZQ=LhaGHIc8pmd-;srd3DpbR21(HYw}t zM?{C}WTywkZ)))#pI?+f=3;rI?551$pNo-lUwilGZ~~yOC%2xydk;{5e}7vLzHexf zb^noZI!|ZynCezJ-k;15RPOD6I$Qtu@4=ZxK~Tv9F8a5P$JfCjKlgO(hx0J6;nw+p zL;EWB)}I{V{}qjzSl-i-(nPjGAyi75I&H?Hw>-p#bO@@iBRp$YK;Fn}%q@B1No%v| z(gCHEfuXjuvs1h&%QEq4%SZb=KXnElVa%G(TF)MYgj~#*eM>P>_-QRV+uR4b$>By|=e?1x4AppXxRFq}O6o;%eds z;R>#D`hP8up&=&Cn(gv;*X6 zex5YCCLz_i;d3#^05wJRJ=uCS^x^7vrt44D&leH*_u@Q8a_3@#rW^4*NVj300U*~U z5O;$=n6Cq_6#lrc8XMMtu4H&=5ES`{>CWUyOs=j~`{N91p8(sgFwakip|P+=KbHcq zDPb3ae@wMNB>nnuW4^J_18bVwLwYsdiXsogMFBQE3@_WyM=3x?`X<4s+c0ExQ zxV<4+&p$ccQ<*fapp<_=`osU#2TR*k5meuZ0kn{P7Jw6i%X@Y&@-?+yTkk!P&inXy zr4xmrb%!G0LHr{cC6oZofdK^6YW4V~gooBtIw)OOZ}kOJ%Z4x`AKxW@n-5ExqLcS!p9#Jc|K*4fP(6ae_E z2Ca`N*V<sQUNOU{M9|Vid-Ga!6;w9rx|@rK7ogvHQEI=za)?KzdXIMRB(hV z++ldV6J7y|lFK_GZoG`B4macSS5n?`PTAg5nN4ECS1*&^;Yd}k=&Q0srfiqb*t?T) zk2>L`4^Z*`YVn0j&l>xLP4sNVHZal8VH0s6-qTYYUhXu|d+in%K=gg4g_Tg}=scg^ zc?N)!c&ZZ#4mjQR9{pmgZcs`MIN&1ajGED&NGvNqkjBfO{nCjO$Ep$ zEt*!mToNv`Ya02zyPhJ;7m!awVw4L~v7)Ku6*vEQ&c&RIb9b}&l59l}}%a&NX#)BFG82kS4 zSWkVOj#X&#^|lBGYk#7M)6Wr4(JQqu_b<^NwsU)zez#Y6bdV`VMIEWJv#`R-F4)&o ziUPA0-Yu9}RXJI}v(Rz&(%a5LxpphQmb|R0o)Yl$+P-^t2?ZPTJ7Sa8xp^6+%^kiK5#wNY_zoJx;H;0(*WuU*N?8mb&vKi&{OnL2px=wn;Q~6i zfIg`?6~-Q$?QB_*Q$QITX@@Wutw_^TbxZU;be1z}XWmw$8vYr>*k=nSz!jYSfa-fW zeA0&v3^y0`{SF!OZ*JGQxV^%T`II%zEtypS!!HBF-~HNd%>m#|$7usK*|Pf$Q*WEz z0m#0EOE{nc0n^=I-sw8vwG}}U(nxS*^qy}nrG;JJK`IeVq%|&0hCf%F+;HZ+h8`M2h(5gUH9aB1glu-}Gd_%^nuAp2T|P?yvw zI@i9k6;3YM%b{mZ^SU%FfrO#blT+ClpEn3VHCQ5!jQ%R|XIKI}>^Scl{@Dzb=zeS3KJAz!QCXQ^=Q zipf~dZ;UbMYuHg64i}38D3f15&Px`1fY`4esP>rr5QA;Oog!jOB!##X%Lp%J3H4Gc zJ5ZxqeiJB#(&gV6`CoDkbCiyw?X{#gH@l;<#H;Z{+@|~j1ILikPEBPh{eU<2rg z+ru`)l9@ZTb|gyEDR!L}-OSqmF^}bn(#)oWI2AK&`18fei4+m5?=*8>$_~ z^P^ab;xXW*`V1N?yv|22HY%0|`q@Bh5P=E+fs#w8;5)5iD_6)$K)UD#lH;U+*j4H2 zH1!!Z)h=eJHQbxdMlB*t5C)i!UrkrV3?ZNab%vdG*KUyk;r1~IW@%!L!}%?gXU;gKNKSYa31iRjC+oH4987H$|Q zM%73G2@Fk*57B%t6pLO;LZ0~nmE)~w-j?N_v~G7?HxOVGWdI$UAOiCU$Yyi%^19c6 z?BKK236a~*)bw4ik!I@=UYWq+{(WYavC&~Sn}&yyLaqQ4>eX>Ytcv2cEhb16;F8G3 z!IZ;AO*vWF0}~=#Ekq3oE@K`;$CC8tVNroA$cBZ{3VIoA>ADS9m@+@b&8*ryb(n6qP~1 zVYy|=hELy!hH#uXQlur%B$0@`BlL*W7!&KQ|L~XC1Cw6YYM`tuP50-_8n&b=r#Jho zWzsj?L2)Q!KI}pDPFhH_|0v_@&eYW`Hh*~wBxHC%C+}q)O$SuyoA1lQZG_T)WNr6v z$rqIi!bDbmIukdmhQ&f(hJ$rm1gh+p}8tc)qcJs>FI)9Upp%o6L7&Rc_1lm=7x94gvWCPWD8;*qIRfS) z+d#JFvMU*FM-b;tzi`=578yFO-(A;;C@I$=Rj9)wKT0#0XM%eX$#pMgkDH)OH&X;e z@e=PP$ei^Kz2Ot5ekO8`9PP!fl>*ZHD96yBPSBNwm|pcP;oeKDSOLiM%~m&F#+ov( z@#Nshv9)8rs)jtbUhhw==cT$b2In7JN{+7E)3j*1dSV~hKoHQgh@vQ3%I3OUn(DnV zkGC!T?qGqy(N4m<&bG=j!e!d3nJ&%zjd6T`WhdkS!3=$p7dcS8PEYUD6jpSD?&r~- zYB|#5C9yi~z(D`wj!0cOA)93*mhEY|KZ>Rh;}QS8x%wC@DC+0pH1Dh5W9%Chm9pUu zKz`tQKEN@ht*-71v5v0=NPm4ZS|#B=(C`KQffV#l%#rlpE7v(em}-!l=q zNPvLZ@gZO0HwL0y%)3S>AvMLUi(rbPPfXDaqn$@o_~m{_7k&=()i<>K1RqcmcvNLE zWGKnP^SoeDR6vx-`~1e)vrwOpm6lN4p6oOC)&i)9&$fRk-Nq^bd^R#FkKPCf3-;1>Qw>@-g7hw(tH#BXc8HfCkT2BjR^X&)9lWh9`{qXDLf5xv`csAxyFpT`R@BTc{VMLIb%=l4 z0OUUB1ujk7Ha4c6Z=PYSgrvnyQ`G`UV&*b}rXcxEDGAdK5RF+koCTF+seontI;}Da z(O)A@?VX+S(hZNNL3sEA2nQ0=Oipe??8}zSN_-lXBTrL594_etDS$hY&uw?tc2IeM zY*6Sm(Sh`vYX_)0)g}i87C1!ATCI#k{UF>1be#rB8qtV+bfE&HB)a9Q_Lig*6byKF zNvDM%rWD};(vh8!--h^tTR*n!<`L!+tDU=x!DeGkjY%lzEIjjwFRp%_H{cbHDD&my zH_ILbwa6KMkce##3=S^Uk&3t)w69iL7ff~kzijyTm}$6qdfzqHh!qRaDYWr!+K8bU zil(V{iFj}r=pNefkgE1xwm=w=`{nZ0JamW zl%`-}SG=~%h7;oz8M%3fi^ucwG-M<|+VQ;7+XsEG&DIOO(2~C zUp8(F*xg4k_=5W1QakSGA$OQxY8SS=QEWmFN>Gt1qTw(6g)CfgtD%-j%$NMIXSqweaCDv!dyE?) zfAz12!Q2yk`M+tv>U#n#TlVKd#ZFJy^uI2Zr!h(w{rd!I-oL{G?&`mRjc4rbDMX5j z8DD)rtO=73h0X`x7wU_H$vlfPncCBgCMTely!R(!uwq8Is5j!ElP?Y{T&Q&eE+RxV_d}FvHrcyD1G4g$6*>j?KA)CBr}-0MHOrI@R>2Et6` z`sL48P#|fNWD#CdqY>U_01SuRx)3f0A?G2{Z-0 zW>6B#&&hFjJUq~_WmAkvS-2=I7s=(Y^VXomRj~=AIsq{#}8+|wg#wSIZzTBLdp8i`pyT!3h zLwo!E*DC#8Vr`5P)U${*oH2wxgIBtfHn%E$e3#u~jci@ANAZgVw8f$wlZWf1*@Q{V ztP2?D`=FRDm-P*@34DATwd9pcs;uVLfI^{BbGyB$B!{B|-gmCHxU{->n(-v)8f*29_nZrN6DET9)Du;Dm+vn< zR8i4V-tu6c?4f>m8*g)SG%Vbik!5DulaurbUVi_8BaK}RT~^jYsC)%sdtH0NC;I}V zyumNpZYf%=QZg^YbJWd)rMsFHH)q+|m!B8RWMPLeZHY}FNH)Lj^mTNoP>E5;<02Bg zy?aC1?d+quxJFcXH_uz)24NRVu%0PoSUu<+v2BbD$|<*%F)<0sxq zmY|>suup4WD6{uA0Kn>gL{zb-XZ)MnH7^K@2Mai)x;fT94wr}^=;}Ed_DV;gdHJt;oN=V2E1OR9SI(?NwHW;PI_fDa zdqGliSDHRJc)}emQ(Zxti<@Trf(H72X#uJ(51zt=TXs=3i6IG45w{IJ;$m4zJU^nWFw;;VCGUs zVk53+rOIL+SRC#ZRaME_EL-j6cl@2?v9e@;E}2D~JsljpVt27{V%u2RTx8*t82#~z z=E&G_*@e@8xL3u>dK0uUs%7z1{N8TUrZeNoS4(cSR_?J@ir~z-G4)nkU=|T?KO3z0 zrt|H4--mwuzxe2AtZ>_ftYnxo`%RTo@={V3ROna>_sB5FaIH%;g@kc%o#FR4`1yUf z2Rl36aKFSfV5bYF3)iFFajh9w3?M>Q(-bpY9Q*JtAYgK8;%66f3Zs`wh2{wwy{@&j z^4}Z0QNRB|dFcIsX+Am~P2uwC1K7i5|9wA)VUrLcwP?Lh5JaS5qv7a>?&n@tC%L(E zh2a1$L8(;jv*A9HWdHq_Q})0!&H2R*unn Y%N4F4Gn;|10UDZ&q=G~`Qpfdw0UUnbEC2ui literal 0 HcmV?d00001 diff --git a/localization/ar/bytecode/README.md b/localization/ar/bytecode/README.md new file mode 100644 index 000000000000..d5c046b4fccf --- /dev/null +++ b/localization/ar/bytecode/README.md @@ -0,0 +1,264 @@ +--- +title: Bytecode +shortTitle: Bytecode +category: Behavioral +language: ar +tag: + - Game programming +--- + +## الغرض + +يسمح بترميز السلوك كتعليمات لجهاز افتراضي. + +## الشرح + +مثال من العالم الواقعي + +> فريق يعمل على لعبة جديدة حيث يتقاتل السحرة مع بعضهم البعض. يحتاج سلوك السحرة إلى تعديل دقيق وتجربة مئات المرات من خلال اختبارات اللعبة. ليس من المثالي أن يطلب من المبرمج إجراء تغييرات في كل مرة يريد فيها مصمم اللعبة تعديل السلوك، لذلك يتم تنفيذ سلوك الساحر كجهاز افتراضي يعتمد على البيانات. + +بكلمات بسيطة + +> نمط Bytecode يسمح بسلوك موجه بالبيانات بدلاً من الكود. + +[Gameprogrammingpatterns.com](https://gameprogrammingpatterns.com/bytecode.html) يوضح الوثائق: + +> مجموعة من التعليمات تحدد العمليات منخفضة المستوى التي يمكن تنفيذها. يتم ترميز سلسلة من التعليمات كدورة من البايتات. يقوم الجهاز الافتراضي بتنفيذ هذه التعليمات واحدة تلو الأخرى، باستخدام مكدس للقيم الوسيطة. يسمح الجمع بين التعليمات بتعريف سلوكيات معقدة وعالية المستوى. + +**مثال برمجي** + +أحد الكائنات الأكثر أهمية في اللعبة هو فئة ماغو `Wizard`. + + +```java + +@AllArgsConstructor +@Setter +@Getter +@Slf4j +public class Wizard { + + private int health; + private int agility; + private int wisdom; + private int numberOfPlayedSounds; + private int numberOfSpawnedParticles; + + public void playSound() { + LOGGER.info("Playing sound"); + numberOfPlayedSounds++; + } + + public void spawnParticles() { + LOGGER.info("Spawning particles"); + numberOfSpawnedParticles++; + } +} +``` + +بعد ذلك، نعرض التعليمات المتاحة لجهازنا الافتراضي. لكل تعليمات دلالتها الخاصة حول كيفية التعامل مع بيانات المكدس. على سبيل المثال، تقوم التعليمة ADD بأخذ العنصرين العلويين من المكدس، وتجمعهما، ثم تضع النتيجة في المكدس. + + +```java + +@AllArgsConstructor +@Getter +public enum Instruction { + + LITERAL(1), // e.g. "LITERAL 0", push 0 to stack + SET_HEALTH(2), // e.g. "SET_HEALTH", pop health and wizard number, call set health + SET_WISDOM(3), // e.g. "SET_WISDOM", pop wisdom and wizard number, call set wisdom + SET_AGILITY(4), // e.g. "SET_AGILITY", pop agility and wizard number, call set agility + PLAY_SOUND(5), // e.g. "PLAY_SOUND", pop value as wizard number, call play sound + SPAWN_PARTICLES(6), // e.g. "SPAWN_PARTICLES", pop value as wizard number, call spawn particles + GET_HEALTH(7), // e.g. "GET_HEALTH", pop value as wizard number, push wizard's health + GET_AGILITY(8), // e.g. "GET_AGILITY", pop value as wizard number, push wizard's agility + GET_WISDOM(9), // e.g. "GET_WISDOM", pop value as wizard number, push wizard's wisdom + ADD(10), // e.g. "ADD", pop 2 values, push their sum + DIVIDE(11); // e.g. "DIVIDE", pop 2 values, push their division + // ... +} +``` + +في قلب مثالنا توجد فئة `VirtualMachine`. تأخذ التعليمات كمدخلات وتنفذها لتوفير سلوك كائن اللعبة. + + +```java + +@Getter +@Slf4j +public class VirtualMachine { + + private final Stack stack = new Stack<>(); + + private final Wizard[] wizards = new Wizard[2]; + + public VirtualMachine() { + wizards[0] = new Wizard(randomInt(3, 32), randomInt(3, 32), randomInt(3, 32), + 0, 0); + wizards[1] = new Wizard(randomInt(3, 32), randomInt(3, 32), randomInt(3, 32), + 0, 0); + } + + public VirtualMachine(Wizard wizard1, Wizard wizard2) { + wizards[0] = wizard1; + wizards[1] = wizard2; + } + + public void execute(int[] bytecode) { + for (var i = 0; i < bytecode.length; i++) { + Instruction instruction = Instruction.getInstruction(bytecode[i]); + switch (instruction) { + case LITERAL: + // Read the next byte from the bytecode. + int value = bytecode[++i]; + // Push the next value to stack + stack.push(value); + break; + case SET_AGILITY: + var amount = stack.pop(); + var wizard = stack.pop(); + setAgility(wizard, amount); + break; + case SET_WISDOM: + amount = stack.pop(); + wizard = stack.pop(); + setWisdom(wizard, amount); + break; + case SET_HEALTH: + amount = stack.pop(); + wizard = stack.pop(); + setHealth(wizard, amount); + break; + case GET_HEALTH: + wizard = stack.pop(); + stack.push(getHealth(wizard)); + break; + case GET_AGILITY: + wizard = stack.pop(); + stack.push(getAgility(wizard)); + break; + case GET_WISDOM: + wizard = stack.pop(); + stack.push(getWisdom(wizard)); + break; + case ADD: + var a = stack.pop(); + var b = stack.pop(); + stack.push(a + b); + break; + case DIVIDE: + a = stack.pop(); + b = stack.pop(); + stack.push(b / a); + break; + case PLAY_SOUND: + wizard = stack.pop(); + getWizards()[wizard].playSound(); + break; + case SPAWN_PARTICLES: + wizard = stack.pop(); + getWizards()[wizard].spawnParticles(); + break; + default: + throw new IllegalArgumentException("Invalid instruction value"); + } + LOGGER.info("Executed " + instruction.name() + ", Stack contains " + getStack()); + } + } + + public void setHealth(int wizard, int amount) { + wizards[wizard].setHealth(amount); + } + // other setters -> + // ... +} +``` + +الآن يمكننا عرض المثال الكامل باستخدام الآلة الافتراضية. + +```java + public static void main(String[]args){ + + var vm=new VirtualMachine( + new Wizard(45,7,11,0,0), + new Wizard(36,18,8,0,0)); + + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_HEALTH")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_AGILITY")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 0")); + vm.execute(InstructionConverterUtil.convertToByteCode("GET_WISDOM")); + vm.execute(InstructionConverterUtil.convertToByteCode("ADD")); + vm.execute(InstructionConverterUtil.convertToByteCode("LITERAL 2")); + vm.execute(InstructionConverterUtil.convertToByteCode("DIVIDE")); + vm.execute(InstructionConverterUtil.convertToByteCode("ADD")); + vm.execute(InstructionConverterUtil.convertToByteCode("SET_HEALTH")); + } +``` + +إليك مخرجات وحدة التحكم. + + +``` +16:20:10.193 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0] +16:20:10.196 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_HEALTH, Stack contains [0, 45] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_AGILITY, Stack contains [0, 45, 7] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 7, 0] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed GET_WISDOM, Stack contains [0, 45, 7, 11] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed ADD, Stack contains [0, 45, 18] +16:20:10.197 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed LITERAL, Stack contains [0, 45, 18, 2] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed DIVIDE, Stack contains [0, 45, 9] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed ADD, Stack contains [0, 54] +16:20:10.198 [main] INFO com.iluwatar.bytecode.VirtualMachine - Executed SET_HEALTH, Stack contains [] +``` + +## مخطط الفئات + + +![alt text](./etc/bytecode.urm.png "Bytecode class diagram") + +## القابلية للتطبيق + + +## القابلية للتطبيق + +استخدم نمط Bytecode عندما تحتاج إلى تعريف العديد من السلوكيات ولغة تنفيذ لعبتك ليست مناسبة لأن: + +* إنها منخفضة المستوى جدًا، مما يجعل البرمجة مملة أو عرضة للأخطاء. +* التكرار فيها يستغرق وقتًا طويلًا بسبب بطء وقت الترجمة أو مشاكل أخرى في الأدوات. +* إنها تحتوي على ثقة مفرطة. إذا كنت ترغب في التأكد من أن السلوك المحدد لا يمكن أن يتسبب في كسر اللعبة، يجب أن تفصله عن باقي قاعدة الكود. + +## الاستخدامات المعروفة + +* تستخدم Java Virtual Machine (JVM) bytecode لتمكين برامج Java من العمل على أي جهاز يحتوي على JVM. +* تقوم Python بترجمة سكربتاتها إلى bytecode، الذي يتم تفسيره بعد ذلك بواسطة آلة افتراضية Python. +* يستخدم .NET Framework نوعًا من bytecode يسمى Microsoft Intermediate Language (MSIL). + +## العواقب + +### المزايا: + +* القابلية للنقل: يمكن تنفيذ البرامج على أي منصة تحتوي على آلة افتراضية متوافقة. +* الأمان: يمكن للآلة الافتراضية تطبيق ضوابط أمان على كود البايت. +* الأداء: يمكن للمترجمات JIT تحسين كود البايت في وقت التشغيل، مما يحسن الأداء المحتمل مقارنة بالكود المفسر. + +### العيوب: + +* الحمل الزائد: تنفيذ bytecode يتضمن عادةً مزيدًا من الحمل الزائد مقارنةً بتنفيذ الكود الأصلي، مما قد يؤثر على الأداء. +* التعقيد: تنفيذ وصيانة آلة افتراضية يضيف تعقيدًا للنظام. + +## الأنماط المرتبطة + +* [مترجم](https://java-design-patterns.com/patterns/interpreter/) يستخدم غالبًا داخل تنفيذ آلات افتراضية لتفسير تعليمات bytecode. +* [أمر](https://java-design-patterns.com/patterns/command/): يمكن اعتبار تعليمات bytecode أوامر يتم تنفيذها بواسطة الآلة الافتراضية. +* [طريقة المصنع](https://java-design-patterns.com/patterns/factory-method/): قد تستخدم الآلات الافتراضية طرق المصنع لإنشاء العمليات أو التعليمات المحددة في bytecode. + +## الشكر + +* [أنماط برمجة الألعاب](http://gameprogrammingpatterns.com/bytecode.html) +* [برمجة لغات البرمجة](https://amzn.to/49Tusnn) diff --git a/localization/ar/bytecode/etc/bytecode.urm.png b/localization/ar/bytecode/etc/bytecode.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..51335fa0a4b40a73957b56e79805aa9aed7e4cd1 GIT binary patch literal 86123 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 الملك الأورك يعطي أوامر بصوت عالٍ لجيشه. أقرب شخص للرد هو القائد، ثم الضابط، ثم الجندي. القائد، الضابط، والجندي يشكلون سلسلة من المسؤولية. + +بكلمات بسيطة + +> يساعد في بناء سلسلة من الكائنات. يدخل الطلب من طرف ويتنقل عبر كائنات متعددة حتى يجد مديرًا مناسبًا. + +تقول ويكيبيديا + +> في التصميم الموجه للكائنات، نمط سلسلة المسؤولية هو نمط تصميم يتكون من مصدر لأوامر الكائنات وسلسلة من كائنات المعالجة. يحتوي كل كائن معالجة على منطق يحدد أنواع أوامر الكائنات التي يمكنه التعامل معها؛ يتم تمرير البقية إلى كائن المعالجة التالي في السلسلة. + +**مثال برمجي** + +ترجمة لمثالنا مع الأورك أعلاه. أولًا، لدينا الكلاس `Request`: + + +```java +import lombok.Getter; + +@Getter +public class Request { + + private final RequestType requestType; + private final String requestDescription; + private boolean handled; + + public Request(final RequestType requestType, final String requestDescription) { + this.requestType = Objects.requireNonNull(requestType); + this.requestDescription = Objects.requireNonNull(requestDescription); + } + + public void markHandled() { + this.handled = true; + } + + @Override + public String toString() { + return getRequestDescription(); + } +} + +public enum RequestType { + DEFEND_CASTLE, TORTURE_PRISONER, COLLECT_TAX +} +``` + +أدناه، نعرض تسلسل هرم مدير الطلبات. + + +```java +public interface RequestHandler { + + boolean canHandleRequest(Request req); + + int getPriority(); + + void handle(Request req); + + String name(); +} + +@Slf4j +public class OrcCommander implements RequestHandler { + @Override + public boolean canHandleRequest(Request req) { + return req.getRequestType() == RequestType.DEFEND_CASTLE; + } + + @Override + public int getPriority() { + return 2; + } + + @Override + public void handle(Request req) { + req.markHandled(); + LOGGER.info("{} handling request \"{}\"", name(), req); + } + + @Override + public String name() { + return "Orc commander"; + } +} + +// يتم تعريف OrcOfficer و OrcSoldier بطريقة مشابهة لـ OrcCommander + + +``` + +الملك أورك يعطي الأوامر ويشكل السلسلة. + + +```java +public class OrcKing { + + private List handlers; + + public OrcKing() { + buildChain(); + } + + private void buildChain() { + handlers = Arrays.asList(new OrcCommander(), new OrcOfficer(), new OrcSoldier()); + } + + public void makeRequest(Request req) { + handlers + .stream() + .sorted(Comparator.comparing(RequestHandler::getPriority)) + .filter(handler -> handler.canHandleRequest(req)) + .findFirst() + .ifPresent(handler -> handler.handle(req)); + } +} +``` + +سلسلة المسؤولية في العمل. + + +```java +var king=new OrcKing(); + king.makeRequest(new Request(RequestType.DEFEND_CASTLE,"defend castle")); + king.makeRequest(new Request(RequestType.TORTURE_PRISONER,"torture prisoner")); + king.makeRequest(new Request(RequestType.COLLECT_TAX,"collect tax")); +``` + +إخراج وحدة التحكم. + + +``` +Orc commander handling request "defend castle" +Orc officer handling request "torture prisoner" +Orc soldier handling request "collect tax" +``` + +## مخطط الفئات + +![alt text](./etc/chain-of-responsibility.urm.png "مخطط الفئات لسلسلة المسؤولية") + +## التطبيقية + +استخدم سلسلة المسؤولية عندما + +* يمكن لعدة كائنات معالجة الطلب، ولا يتم التعرف على المعالج مسبقًا. يجب تحديد المعالج تلقائيًا. +* ترغب في إرسال طلب إلى أحد الكائنات دون تحديد المستقبل بشكل صريح. +* يجب تحديد مجموعة الكائنات التي يمكنها معالجة الطلب ديناميكيًا. + +## الاستخدامات المعروفة + +* التفاعل مع الأحداث في إطارات واجهات المستخدم الرسومية حيث يمكن معالجة الحدث في عدة مستويات من تسلسل مكونات واجهة المستخدم. +* إطارات عمل الوسطاء حيث يمر الطلب عبر سلسلة من كائنات المعالجة. +* أنظمة السجلات حيث يمكن أن تمر الرسائل عبر سلسلة من المسجلين، مع إمكانية معالجتها بطرق مختلفة. +* [java.util.logging.Logger#log()](http://docs.oracle.com/javase/8/docs/api/java/util/logging/Logger.html#log%28java.util.logging.Level,%20java.lang.String%29) +* [Apache Commons Chain](https://commons.apache.org/proper/commons-chain/index.html) +* [javax.servlet.Filter#doFilter()](http://docs.oracle.com/javaee/7/api/javax/servlet/Filter.html#doFilter-javax.servlet.ServletRequest-javax.servlet.ServletResponse-javax.servlet.FilterChain-) + +## العواقب + +المزايا: + +* تقليل الترابط. لا يحتاج مُرسل الطلب إلى معرفة المعالج المحدد الذي سيعالج الطلب. +* مرونة أكبر في تخصيص المسؤوليات للكائنات. يمكن إضافة أو تغيير المسؤوليات لإدارة الطلب عن طريق تغيير أعضاء وترتيب السلسلة. +* يتيح تعيين معالج افتراضي إذا لم يكن هناك معالج محدد يمكنه معالجة الطلب. + +العيوب: + +* قد يكون من الصعب تصحيح الأخطاء وفهم التدفق، خاصة إذا كانت السلسلة طويلة ومعقدة. +* قد يبقى الطلب دون معالجة إذا كانت السلسلة لا تحتوي على معالج "التقاط الكل". +* قد تنشأ مشكلات في الأداء بسبب إمكانية مرور الطلب عبر عدة معالجات قبل العثور على المعالج المناسب، أو عدم العثور عليه على الإطلاق. + +## الأنماط ذات الصلة + +* [الأمر](https://java-design-patterns.com/patterns/command/): يمكن استخدامه لتغليف طلب ككائن، يمكن تمريره عبر السلسلة. +* [التركيب](https://java-design-patterns.com/patterns/composite/): غالبًا ما يتم تطبيق نمط سلسلة المسؤولية مع نمط التركيب. +* [الزخرفة](https://java-design-patterns.com/patterns/decorator/): يمكن ربط الزخارف بشكل مشابه للمسؤوليات في نمط سلسلة المسؤولية. + +## الاعتمادات + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Pattern-Oriented Software Architecture, Volume 1: A System of Patterns](https://amzn.to/3PAJUg5) +* [Refactoring to Patterns](https://amzn.to/3VOO4F5) +* [Pattern languages of program design 3](https://amzn.to/4a4NxTH) diff --git a/localization/ar/chain-of-responsibility/etc/chain-of-responsibility.urm.png b/localization/ar/chain-of-responsibility/etc/chain-of-responsibility.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..af1bd105455b7b9bdc540248ce3b9d3d4220d541 GIT binary patch literal 134845 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

vrI-9HR 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

P$|nVfGFUS8`f=q!dG_>ob#|ia2?5Us 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 UzM=;+L_r37y85}Sb4q9e01i2RNB{r; literal 0 HcmV?d00001 diff --git a/localization/ar/client-session/README.md b/localization/ar/client-session/README.md new file mode 100644 index 000000000000..a6892e80b239 --- /dev/null +++ b/localization/ar/client-session/README.md @@ -0,0 +1,118 @@ +--- +title: Client Session +shortTitle: Client Session +category: Behavioral +language: ar +tags: + - Session management + - Web development +--- + +## أيضًا معروف باسم + +* جلسة المستخدم + +## الهدف + +يهدف نمط التصميم "جلسة العميل" إلى الحفاظ على حالة وبيانات المستخدم عبر طلبات متعددة ضمن تطبيق ويب، مما يضمن تجربة مستخدم مستمرة وشخصية. + +## الشرح + +مثال واقعي + +> ترغب في إنشاء تطبيق لإدارة البيانات يسمح للمستخدمين بإرسال طلبات إلى الخادم لتعديل وإجراء تغييرات على البيانات المخزنة على أجهزتهم. هذه الطلبات صغيرة والبيانات فردية لكل مستخدم، مما يلغي الحاجة إلى تنفيذ قاعدة بيانات واسعة النطاق. باستخدام نمط جلسة العميل، يمكن إدارة عدة طلبات في نفس الوقت، مع تحقيق توازن في تحميل العملاء عبر خوادم مختلفة بسهولة لأن الخوادم تظل بدون حالة. كما يتم القضاء على الحاجة إلى تخزين معرفات الجلسة على الخادم لأن العملاء يقدمون كل المعلومات التي يحتاجها الخادم لمعالجة طلباتهم. + +بإيجاز + +> بدلاً من تخزين معلومات عن العميل الحالي والمعلومات التي يتم الوصول إليها على الخادم، يتم الاحتفاظ بها فقط على جانب العميل. يجب على العميل إرسال بيانات الجلسة مع كل طلب إلى الخادم ويجب عليه إرسال حالة محدثة مرة أخرى إلى العميل، التي يتم تخزينها على جهاز العميل. لا يتعين على الخادم تخزين معلومات العميل. ([مرجع](https://dzone.com/articles/practical-php-patterns/practical-php-patterns-client)) + +**مثال برمجي** + +إليك كود مثال لوصف نمط جلسة العميل. في الكود التالي، نقوم أولاً بإنشاء مثيل للخادم. سيتم استخدام هذا المثيل بعد ذلك للحصول على كائنات الجلسة لعميلين. كما ترى في الكود التالي، يمكن استخدام كائن الجلسة لتخزين أي معلومات ذات صلة يحتاجها الخادم لمعالجة طلب العميل. سيتم تمرير هذه الكائنات مع كل طلب إلى الخادم. سيتضمن الطلب كائن الجلسة الذي يخزن التفاصيل ذات الصلة بالعميل مع البيانات المطلوبة لمعالجة الطلب. تساعد معلومات الجلسة في كل طلب الخادم في التعرف على العميل ومعالجة الطلب بناءً على ذلك. + + +```java +public class App { + + public static void main(String[] args) { + var server = new Server("localhost", 8080); + var session1 = server.getSession("Session1"); + var session2 = server.getSession("Session2"); + var request1 = new Request("Data1", session1); + var request2 = new Request("Data2", session2); + server.process(request1); + server.process(request2); + } +} + +@Data +@AllArgsConstructor +public class Session { + + /** + * Session id. + */ + private String id; + + /** + * Client name. + */ + private String clientName; + +} + +@Data +@AllArgsConstructor +public class Request { + + private String data; + + private Session session; + +} +``` + +## مخطط الهيكلية + +![alt text](./etc/session_state_pattern.png "نمط حالة الجلسة") + +## قابلية التطبيق + +استخدم نمط حالة الجلسة عندما: + +* التطبيقات الويب التي تتطلب مصادقة وتفويض المستخدم. +* التطبيقات التي تحتاج إلى تتبع أنشطة وتفضيلات المستخدم عبر طلبات أو زيارات متعددة. +* الأنظمة التي يحتاج فيها موارد الخادم إلى التحسين عن طريق تحميل إدارة الحالة إلى جانب العميل. + +## الاستخدامات المعروفة + +* مواقع التجارة الإلكترونية لتتبع محتويات سلة التسوق عبر الجلسات. +* المنصات عبر الإنترنت التي تقدم محتوى مخصص بناءً على تفضيلات وسجل المستخدم. +* تطبيقات الويب التي تتطلب تسجيل دخول المستخدم للوصول إلى المحتوى المخصص أو الآمن. + +## العواقب + +الفوائد: + +* تحسين أداء الخادم من خلال تقليل الحاجة لتخزين حالة المستخدم على الخادم. +* تحسين تجربة المستخدم من خلال المحتوى المخصص والتنقل السلس عبر أجزاء التطبيق المختلفة. +* مرونة في إدارة الجلسات من خلال عدة آليات تخزين على جانب العميل (مثل الكوكيز، Web Storage API). + +العيوب: + +* مخاطر محتملة للأمان إذا تم تخزين معلومات حساسة في جلسات العميل دون التشفير والتحقق المناسب. +* الاعتماد على قدرات وضبط العميل، مثل سياسات الكوكيز التي قد تختلف حسب المتصفح وإعدادات المستخدم. +* زيادة التعقيد في منطق إدارة الجلسات، خاصة في إدارة انتهاء الصلاحية، التجديد ومزامنة الجلسات عبر الأجهزة أو النوافذ المتعددة. + +## الأنماط ذات الصلة + +* جلسة الخادم: غالباً ما يُستخدم جنباً إلى جنب مع نمط جلسة العميل لتوفير توازن بين كفاءة جانب العميل والتحكم في جانب الخادم. +* [سينجلتون](https://java-design-patterns.com/patterns/singleton/): ضمان وجود مثيل واحد فقط من جلسة المستخدم في التطبيق بأكمله. +* [حالة](https://java-design-patterns.com/patterns/state/): إدارة تحولات الحالة في الجلسة مثل الحالات المصادق عليها، الضيف أو المنتهية. + +## الفضل + +* [DZone - Practical PHP patterns](https://dzone.com/articles/practical-php-patterns/practical-php-patterns-client) +* [نمط حالة جلسة العميل - Ram N Java](https://www.youtube.com/watch?v=ycOSj9g41pc) +* [Java الاحترافي لتطبيقات الويب](https://amzn.to/4aazY59) +* [تأمين تطبيقات الويب باستخدام Spring Security](https://amzn.to/3PCCEA1) diff --git a/localization/ar/client-session/etc/session_state_pattern.png b/localization/ar/client-session/etc/session_state_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e23be957669215ed6829e444cc31fa152e58e3 GIT binary patch literal 50158 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 + + /* + * Using numerous sub-methods to collaboratively add information to the result collecting parameter + */ + addA4Papers(result); + addA3Papers(result); + addA2Papers(result); + } +} +``` + +نستخدم الطرق `addA4Paper` و `addA3Paper` و `addA2Paper` لملء معامل الجمع `النتيجة` بالوظائف المناسبة للطباعة وفقًا للسياسة الموصوفة سابقًا. يتم ترميز السياسات الثلاث كما يلي: + + +```java +public class App { + static PrinterQueue printerQueue = PrinterQueue.getInstance(); + + /** + * Adds A4 document jobs to the collecting parameter according to some policy that can be whatever the client + * (the print center) wants. + * + * @param printerItemsCollection the collecting parameter + */ + public static void addA4Papers(Queue printerItemsCollection) { + /* + Iterate through the printer queue, and add A4 papers according to the correct policy to the collecting parameter, + which is 'printerItemsCollection' in this case. + */ + for (PrinterItem nextItem : printerQueue.getPrinterQueue()) { + if (nextItem.paperSize.equals(PaperSizes.A4)) { + var isColouredAndSingleSided = + nextItem.isColour && !nextItem.isDoubleSided; + if (isColouredAndSingleSided) { + printerItemsCollection.add(nextItem); + } else if (!nextItem.isColour) { + printerItemsCollection.add(nextItem); + } + } + } + } + + /** + * Adds A3 document jobs to the collecting parameter according to some policy that can be whatever the client + * (the print center) wants. The code is similar to the 'addA4Papers' method. The code can be changed to accommodate + * the wants of the client. + * + * @param printerItemsCollection the collecting parameter + */ + public static void addA3Papers(Queue printerItemsCollection) { + for (PrinterItem nextItem : printerQueue.getPrinterQueue()) { + if (nextItem.paperSize.equals(PaperSizes.A3)) { + + // Encoding the policy into a Boolean: the A3 paper cannot be coloured and double-sided at the same time + var isNotColouredAndSingleSided = + !nextItem.isColour && !nextItem.isDoubleSided; + if (isNotColouredAndSingleSided) { + printerItemsCollection.add(nextItem); + } + } + } + } + + /** + * Adds A2 document jobs to the collecting parameter according to some policy that can be whatever the client + * (the print center) wants. The code is similar to the 'addA4Papers' method. The code can be changed to accommodate + * the wants of the client. + * + * @param printerItemsCollection the collecting parameter + */ + public static void addA2Papers(Queue printerItemsCollection) { + for (PrinterItem nextItem : printerQueue.getPrinterQueue()) { + if (nextItem.paperSize.equals(PaperSizes.A2)) { + + // Encoding the policy into a Boolean: the A2 paper must be single page, single-sided, and non-coloured. + var isNotColouredSingleSidedAndOnePage = + nextItem.pageCount == 1 && + !nextItem.isDoubleSided + && !nextItem.isColour; + if (isNotColouredSingleSidedAndOnePage) { + printerItemsCollection.add(nextItem); + } + } + } + } +} +``` + +كل طريقة تأخذ كمعامل معلمة جمع. بعد ذلك، تضيف العناصر، المأخوذة من متغير عالمي، إلى هذه المعلمة إذا كانت كل عنصر يفي بمعيار معين. يمكن أن تحتوي هذه الطرق على السياسة التي يرغب فيها العميل. + +في هذا المثال البرمجي، يتم إضافة ثلاث مهام طباعة إلى الطابور. فقط أول مهمتين للطباعة يجب إضافتهما إلى معلمة الجمع وفقًا للسياسة. العناصر في متغير `النتيجة` بعد التنفيذ هي: + +| حجم الورق | عدد الصفحات | مزدوج الوجه | ملون | +|-----------|-------------|-------------|------| +| A4 | 5 | false | false | +| A3 | 2 | false | false | + +وهذا هو ما توقعناه. + +## مخطط الفئات + +![alt text](./etc/collecting-parameter.urm.png "معامل الجمع") + +## قابلية التطبيق + +استخدم نمط التصميم جمع المعاملات عندما: + +- عندما تنتج عدة طرق مجموعة من النتائج وتريد إضافة هذه النتائج بطريقة موحدة. +- في السيناريوهات حيث يمكن أن يحسن تقليل عدد المجموعات التي يتم إنشاؤها بواسطة الطرق من كفاءة الذاكرة والأداء. +- عند إعادة هيكلة الطرق الكبيرة التي تقوم بعدة مهام، بما في ذلك جمع النتائج من عمليات متعددة. + +## الدروس التعليمية + +الدروس التعليمية لهذه الطريقة موجودة في: + +- [Refactoring To Patterns](http://www.tarrani.net/RefactoringToPatterns.pdf) بواسطة Joshua Kerivsky +- [Smalltalk Best Practice Patterns](https://ptgmedia.pearsoncmg.com/images/9780134769042/samplepages/013476904X.pdf) بواسطة Kent Beck + +## الاستخدامات المعروفة + +يوضح Joshua Kerivsky مثالًا واقعيًا في كتابه 'Refactoring to Patterns'. يقدم مثالًا لاستخدام نمط التصميم "جمع المعاملات" لإنشاء طريقة `toString()` لشجرة XML. بدون استخدام هذا النمط، سيحتاج ذلك إلى وظيفة ضخمة تحتوي على شروط ودمج النصوص مما سيزيد من صعوبة قراءة الشيفرة. يمكن تقسيم مثل هذه الطريقة إلى طرق أصغر، حيث يضيف كل منها مجموعة خاصة من المعلومات إلى معلمة الجمع. انظر إلى هذا في [Refactoring To Patterns](http://www.tarrani.net/RefactoringToPatterns.pdf). + +أمثلة أخرى هي: + +- إضافة رسائل الخطأ أو فشل التحقق في عملية تحقق معقدة. +- جمع العناصر أو المعلومات أثناء التنقل في هيكل بيانات معقد. +- إعادة هيكلة الوظائف المعقدة للتقارير حيث يتم إنشاء أجزاء متعددة من التقرير باستخدام طرق مختلفة. + +## العواقب + +المزايا: + +- يقلل من تكرار الشيفرة من خلال تجميع معالجة المجموعات في مكان واحد. +- يحسن الوضوح وقابلية الصيانة من خلال توضيح مكان وكيفية جمع النتائج. +- يحسن الأداء عن طريق تقليل إنشاء وإدارة كائنات جمع متعددة. + +العيوب: + +- يزيد من الترابط بين المنادي والطرق المنادى عليها، حيث يجب أن يتفقوا على المجموعة المستخدمة. +- قد يقدم آثار جانبية في الطرق إذا لم تتم إدارتها بعناية، حيث لم تعد الطرق مستقلة في إدارة النتائج. + +## الأنماط ذات الصلة + +- [Composite](https://java-design-patterns.com/patterns/composite/): يمكن استخدامه مع جمع المعاملات عند العمل مع الهياكل الهرمية، مما يسمح بجمع النتائج عبر هيكل مركب. +- [Visitor](https://java-design-patterns.com/patterns/visitor/): يستخدم غالبًا معًا، حيث يتولى Visitor المرور وإجراء العمليات في هيكل، بينما يقوم جمع المعاملات بتراكم النتائج. +- [Command](https://java-design-patterns.com/patterns/command/): يمكن للأوامر استخدام معلمة الجمع لإضافة نتائج عدة عمليات يتم تنفيذها بواسطة كائنات الأمر. + +## الشكر + +- [Refactoring To Patterns](http://www.tarrani.net/RefactoringToPatterns.pdf) بواسطة Joshua Kerivsky +- [Smalltalk Best Practice Patterns](https://ptgmedia.pearsoncmg.com/images/9780134769042/samplepages/013476904X.pdf) بواسطة Kent Beck +- [Wiki](https://wiki.c2.com/?CollectingParameter) +- [Refactoring: Improving the Design of Existing Code](https://amzn.to/3TVEgaB) +- [Clean Code: A Handbook of Agile Software Craftsmanship](https://amzn.to/4aApLP0) diff --git a/localization/ar/collecting-parameter/etc/collecting-parameter.urm.png b/localization/ar/collecting-parameter/etc/collecting-parameter.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..785d6ecc2da1db937e309089917138e578927fa0 GIT binary patch literal 55073 zcmeFZWmJ}J*DiX42q+4o0@9@jA|Nd-(jXlo2%-Ygog!fZ0@9t5f;1={N_UBLcS|>{ zdE@g6&+~rYx5hix+GFfJ#{LD|+*h3Eb)It`^Ei%qxy#9joj*%-7J)#Vmk<|LKp;?4 z5r|U~n5giHsOI)4{GhWEQMGz%YG!Ywqicl_(=pMpcxR+ zm9?=E<5N>(+*@2EaF*NpN~%`>`W%4*r?HDjQ~G8ydh0@o*eJPZ#6^Y}zjm_Nlp9!` zDK{}~^b3^uLbQn<%-!~Vnq%;JA#dsG1-CN;B}(t9dR8Z!R=2!NEt-1WE!v7EE6 zP~P(=Bbelj6KA^jwp`AV@Y%gAH1->IhFpk`TK3o#H~Sb-1}POED(txmzP?Z%Tlyl7 zJIvMjYd4cf?3^+dz6d>y9orhgO`*Udo@oVNm+V?$#wt5ZamU@~60*!wW z8l4$y*SXPrrtAlr7kRXi(zb(`{zY0W#%=mZW$$EDr<}m4rZmB)h81tVZRgO>T->ZG z84WW~mYEn&_j>-qV0Iwvqs`iDI=i;`AGD*YNy&F;aD2@Texe5Re*Z++TorX-@7ku?y(LntvlL^ zezyPgjl8@^q;>Pu;l+1(V-B>4s4*w?dz9D7eetNGI>ytamv!x$-xy!nyGp-;b}Hl< z?e(#xPW1lz^Y@eQeG+NbX6HdLVhm(Fthk7$|FW}@aEz7puA*p&C|ehbXLhOc2#+Go zQz0iDM1o?NW(nG@7iI^jzv>qf9(Oh~BM>eK31LAcJI(pXGj@0)g_}a!5-#Et7lJTf zmj}MNb_eqUx{tJL)n_5OGqQHDM-+Tm^>SK@@QeMFKHE{(L$QCzXTMUs|5LqF*>UH`ZbpZr48|TN zELnv5MG79|Pc0k@$a$X!Ve)`~XF9IzaDQn<|2zUQ zEP9zrtIqFQ-hhod0+Gk^@#9B2I=aJ6=fmsKLvUm|rH4yghfOa`trPYdn!wu_IG#|^W&b@d`Oawj$$`dF*Cc>Q}cmz?6E>|0fULnVt?p4 zgP{39`ulz*Rx=9OEm3?@Hrm=(dmcG$PcS(xd-R!>MQ-%L!NtYAgQ#Kz)zmoT{QcQF z4Mj_(yJ`gKiaAf8X{^t6E&WXEgJYWZ1yVM?&syZWR_9o>Cn#UlsbD1a5w0k*kzdGqlN z2R+o@ymvSFHv22ycMIR63(dH#Um_zV#G;2%qdu8=#ZtY0Z#vGqHh*)_q0Xcu@%%MB zwLM>Hdij+O8T&xzgVku~osQ^Q2`S5DTwIOr06N8#loZB?`DRb;n!MfHbd_zE2KNVS zhZcs)qURqStOTcu=MiKT=GGbY>g(uCOg4p|dV}jr6w{Qfn8Z!;;nCqvSG5{EhTC}i zlbmH|F2tXz*ja8935z~QgYi=N@z+4{r@>B@$YHfoBnib~#$3B>?^*V3@RL0C%A*2{ zxAX8g{7LcgtKWB9?FEL>jmy8WJ@prDIo zkJursGvdpaf21gXhUfQE`6K%i1%-m~2aJbBB)7~*g`cJ^kJTvRCevnP z;E*-GPbDX(_vP*zrx1V5?tYn=?G-(QXD#6Jy2SdpFBISN~#whmXHec}aF}J;QmzNzKQ4X%HC%1C%@; z{j?b3cigdx=68Jc`n5h&-&f;H9!|wUTOA!8&cz!gF0N$H-GZI=mTTJD+F+fQZB;QH zz#3MV@g!ueEqm4y1(Edio{%dx`x*ZYoi)4JkiF>_-5N?tmzDK zU_l(F zXgqiBMzIA_A%38COM5^NO1PQtxNDP5SCCB=Jds1Km~DIlJ~KKvdwgj=nm zfH2}y)$c#I0og1F72(o!`}x`@-s`9tACYHv((O!977-Bvgpf(@ zu({Y&U+j*ba^TssWp<$kduZ-{4gZ?&bNgX$MH^1{Q< zkch?xovQp9au6=jFEJ5|a`F$dmP$C28l!$X*S5qJihMEXe1Cv*g~jZ7d*i0%U`9%c zA3eg%9|d=q_4oDept%s`%%u%DVr+Qq+eg<-No(wjPByqc8rT%Tm=@?6cPDL4IvfxX z__c^qK!o7DbOD852stf#=iniu=uGIyHiosA*sgtF*ALjTc2*)9D5{xH(!H;wR4a`z zvqYS{(yW4}Cjaw!$BL!0XHzu~swyQPokY1Oy`9A^&~&k?$xRN z>VS;BxLSwBvd!eAXg^}qVH(8WzWHS7Wyyep*wXFA9ahA$_ozelMtyU0Q243xp*v_> z=l(T?<=o23%I3D4oMkw7HpRZ6bJ}*z;MlD>^(1NDT-FC`0o!yIaW_Q0h}iYpH0 zfzJ@eVa%;lfBEdK%~M*Z|8`GFQhAI_fEx$HeFDkj$8HCVeiP=s;rN;zj; zGvp(Vg^BNPu^LOCuN#b2d;J&p0Y(BqT=vc0 zz${baXi7&Oo0+R3Gzrak8Oy|6mXqg-uK74XuTy+Hy^Z{dXMbwo- zVuRQpYwfI{pzz`aFIMX|N+znXON$&bhzXp+MWiY!E3?~8Ul?OT*WI6KIt-L#gjI`zfO_T!3op?goXAQ~wtDVdvRjWgZ2@!r!jULlO|t5HvTyTp?x zRAp!}tN&Odj7An^M2AZ)s-y=gL`X{1bOK*eR)hGg&7FMuZt(w z)FCAGdB-`op%&vjbMo7W^5&Cq2SWF$6JZd6m_K*&Ss^kZ zy#Fhxy1S&Q=P{l}Aa=8i`#An=U0u4PTzBQq2N0?dT95*c=K|pp`SQe)`e$xHbi;fd z$GQLMV3UiuX7k<5J*Q33Ak~>3hw%K%C{tyOff}8znu8|?l?jNh#a1(ZB(nmQ<{HIz%&e@e{QL*c z&8phYa0ASlw z7}(n3{j%-PNC-;e{LaF1g8`1irHtR|RxNA(}5!sRINskvV=MmvA#TBK-pn=x-ceJ6#*( z5!vd2M@T4vC9U?5=KA&PG&B~@ckiNdLBZ0%Q4qbN=;Y+2tlas5l!vy?T!7V0I-EmC zTRR{q2p=CmT|MuE5gGN@p3nC)TKIQ8yPiOengRf@@u$vB|BVbWb+^1%KXf5@B}iz# zfk_@Zo@6VkJH;2YEaY7@Qyq6Vn2Ta!C}5B8dXoz_yhz@n#Fbi_KGoK+RKjDG_44t=mJIh zK~EBDwFm0j6ODYcmpuU*M4Tp#`@u|)@GJ5KAH!uh^xLoAp`fL8t8p`KFHJeO|FKFB zs`pTauXHA1xz2pOcZ>1t(#p%rfBpI;;ZGA7uos_zYUYN>KXV)_1E|VFR=l!Z1ex$# z4DP2tg!*OjU`{aXUgE0a>_t{Wu@vG+a(;e(Tbo0v+AQX*SFc`WV)Ax$ z<)@~8+7>JFgTgp5F%g@LSM{uJtEAO%`AcF>lhl-y*!4v>TG)U&+rAt*nq5!<8`Q->Nc4|Y-T;YoIY$Nk=h2Cnl1!SFDe^P;` zm~iyx(0~Aobzq_RP|+o$m9j;}ouOe}jm174N65 z`}0i6bFj{yjg5_M+#mgds0PSv4!p~-^6~SF#MH~*Dt+tPo{uShsHN>u91w78w?2^m+qZ9%2LSAXf`eJZ1;fWL^TAC$ zIC)d58%0fzXP(lOZClNLWZM~f-gz5f=(FaC$9ZTLEfWpF>Uk!P8}kobS$n3&$A5{h zu&PhtU}5dfe$EJKqP=<3Xt20o8tT55*}jb&V2S?Ts~ zgU&}{^cy!)^7BN`tVwvo?)Lo83vJv6reNfvWb`2r^Gvlon?o{@`pr zrB$fdC4Kz(hTISXoT#;r9zN`c01Z^6l*s)I&4uo)xHX~gRK?Q%)m2TYsW(>u?uc0h z1qJaRY>fe|0Jsr;>oKZxwtPAJ?2qJ27cbrwdHeS56OrgF=fi`M3fBfrMJtRq9WjEZ zdM3^e>YkrfbN%4_Z@uf0Y&Zu4CFRTQszONejg5`t0;cm%J!MsG$b(&*F*6ii z7vh5eGSmBI4ye`UXaU)bT43V`5~ag~A2~hvP=w3LqmrY>9+R4y3OU!RbYfz{cbtKi zR<-m6S4lol=zcL#5mR)!cDZ`?3wk3W->KTC@ z#YDFjWl4ZgSXgl%eEUaaCF8fC$^j_y@)Sn*#|Nc;$+?*HV9hKNr`{M#)Xp%=JQI4kHR@xX(xS6M?z8xvi~ogD9@Lned5v zz8Pf>A?OyY=kSd zo7rK}?6Q!_p2;Gnif1RdsY<~GFi1i}=c`iNgjotP)5@U3QdV&1V?8n6&QnTL2v*OU zk)*NdH*e{RJ{omA*H~SB-y8ptS^ck|zrp>th@Vir|G2^V`FpL=zLu|!PO%CY!eU|> znk8W>thw*RrKJ<>{kQL@sxCLOw)jLV=;oOWY&ob;Igk5_X*%y)>t1r$n77{=aScuD zJDo9?ZSHC*^RefRXMB7-R8E#<;*TFchC(5f;ivU&f@C&wsPPJ-Ex?wYSIZHqQ7zDtLf0-M1j%4=pjkR%P@Bse@LBBOXI@D>j(%mYx5}Ou-7!Pl~O^lp5 zydq)5@0wKiGmc8g12b5T;5D3$5X&t1==9cj2E zCjItwzIIlgim^lf_`64L9C^9H5;PS9)+ zxNAJ!y%)lZ#%nKbY+BhopMOVa(dyMI`B^5CyAeN$SFL5)HosZc-HS=uP4G23;p)q= zYK<#NI2vOCM!=hh6W)%Pv&)8@C``*Kr>pbz_BA{L0!5mbK+a9G_=97iZ$;0+Q?yZuZzB2Ha40P+qI8oSAk5H{@28p+Ro4St90^I z$1QGmdUahB&mx^s!fB0$X`tXpn0qG?-mkCFwO9OvR_yuOwEO@b%AY_jdL5OBvD9?r zBO4hjJH`Mw(jSe@4SSfuRC@E{sO!E1{X!pZa0>Gdi}T^Oob=A2PrT zg$~3^TpA=2q`yMOG>Bcds2*=k$)H*w`mr$g=LmD5hPbr5#wfMl-tU>AcY4!sf3-N> zA`{s5%MSEy5U>Yn2uDk=3U$%5c#e8^T{QN0r1MU~o36UZWXG(RB^9Up^+#C4$PWt5 zZNe+wY*Di)JC=9sN%BW-Exb#YUSvx)bkcN(jo{{_fCqB&-EHgRY!it&?ZXUsV>o#; z=!U=<)gl{XU@7#@I|9wuktDln8yVuwq)|BDE?azfusi?Z>ds*^&yrc034y3k*A|ok z5&m`7;%1pt=uMJPhj7_0l5GAe6uq}o@k~}NS?*bgbWYiF5e{}Iqu$$Gh@|=X`7<3! ztg-`z)>VduzXxwIlh<8B)YaKj{cWY_&TY1CNYN}jSFgSyKU;q%AS=XpJ|z8q?qqsu zYCuH&VnKhfMF$|gD^8{;Q?%9?7c+|BTAf_1^hN4AMSE$(mQEz@+#kd#=}OP zASAp*LpjTR9Pwq)jQE#n%C2k89&8snpz6((3%nFCA4PNK+*lmgU2PF~w((KO_2CX7 z8)bWLcaki5TXNsqHaQNb$wopODT-B|2)Z)sxu5fX@fF+lOL5-(J2e6az8JU9b-Z_z zaJI0p2$AMV(6|+DL2S&TE}Z8PC+58po0)lQS;`MNUP5nA_n{}71`qE)W3BuK1$l?n z%^<&aB3`>&ISy;nlup7eW%9bnAwzr`t>HSSv-xmQszAT_Js$lQpNo~BY!olB6E5-3 zbaiPg-=|GXO%;*ISdS4_qv^Ap9k5H=vL5)Qq>*4uLh7p73gW1g4EmqK1@LdBp>zFW z_6FzV5OxgvGNe)3w00xLK@YKJNEF~KQ0tRdu$_5kG*lXSu@8jE8{F1Kw}|Si>Avu8 z_FLX`$@xtN`Y!hk9Y9bleR#nv{)2nSnyV7#LKurQh@OX0%A%s^3m+ob&L<=$uB6f| zyi)i9g^*rJw&j$JQ=B41b=t?jt_(27CwhvB_QnUAXljx*SmGDmA1jnp=jw*oX*K(U z4q{nAf0YM89uR`54{~6yX15bOdLdu@pv6vrl+&u@`9{yP8MHV86NuQwg||rtUo|+= zaW;MYreM*VZ~hbjE37p!fY9@AY`&p(H~A?^5;}rKfzefQzz#R)W~ec8!mJNwqlia! zt>+C#h-KC|W5j~lk?g_i#W#{BTiJ-?AXCTOFAd0ao>38B zQMf$2*U86O*);pJvxj@yQ8*)c-uk#G$frX^)YRWo(tt&;H`Bsdl7%%arboK8(&ghK z=H~9s^V)!q+VQGG z#<6U+rGeJ!9Cp4d^#L_r8UR$l`hJSST{L26udo~Zh?nr+GR?WAwDqZpOyJc_uJi?}Yg9(=972Yy25A zq_k0-kjKgaMLuB{z0Wnxz#_*wcP_pf3Y@wK5`5hRhnwBc2O#76l!4HZQM@9lrltng zgC!Rs)^7NO;bFc{k0(&KYYTnBJ$tOg&%G8)cTEm%kqurlxy@D*Tfy$Mw*~c(%}o2- z{k2zY5R2+cJ!=&2&cCY#F&6(Xv|L9{OQCGV1t`uVWX~wmE(POLGm7pN?+V$Pwli3Y zHbOm#>xGk3fpsnDHC0s;lauwD*N-!oJEp4RTIUDCOT>)Zo9Tw+9eg|#u&!X)=7xP_ z7d9}s(G=cT_N40lvncy_djTv}SENgUU*jmwf)HV(_z_k9kLO(eLnL`-1U^xkURF}UsJf0EY6Y)97dk`4YfkL9D-wBFe&uD5yAy;h2+{APgXp|CTI@RJr6Mx#6BYDp^lb?u?OT2IHUYfu-`S4Czn zd4rKL@!lPJ)5Q_-{hq(rBiaP!aQq^Wxf*FI*DUw8%omf^&r2J>@Tb(kYF#+0Ag;?q z$n6w#JlRZ958fZ-Cne9`7GpvJz}$I`0#TXQ6J04~TcaM3Kw0{_nKd%R1>Bw9-6k;! zpO>=dO)C%Xq5^&ZFL>aI?-2$Hrl_)sSLD0nj7{tPx;r49n8w&5Ndj4XeI%hP`C@$^ z?c_A*9p3%^ba#@GEBnoU6R!_Z(c^a{jZNicEi5QkN6gER(7hmGjcKa2X#ptrpgQgOXHk zK27*F`gyx>ZMR*&a~c`7K9$j9)gxwo+K=kT^iMy}s>ISfr#7E0HhKG8S^t4of#7P*8jl{BVcCCZpQg`m1^79^(b<^ELo=8nMru8F78ZazW>& zE-_Ey99~*M0)`Sd+kj;O(?lW{q@2A$)Mj65u`NFGCx*GU!4=6S#TJh9w@BZb6sznN zn%JeJH{0lmO1ioYO5gqQw`w4tepP%UHPx#Kqh&jU@Gbbb#WV`x=XRR9@C zEK&B8g!mNJ_bTHB;_vEprP3YneFnOrmy}DNNK#r_*$Jy{^k?cZ{am+!3#` zotDmbm_FjBv8gzhfJ*W2m>Iu`%{xQwOa1$ykv)T-zeXw&T8xmz1-8%_BoL)8yP^m3 z^0*U}H%crf>cM_NR|;C>Rf0qKS((1wGaoXa z?a53NV&7v&zkw6GG~aX*rlH)>n%og{~p*{z=mb{d5!A*(OLS=9@!b#|~eteSmr;#2NXr-|LaDA}9>#-c` zxI9|b*m&=NxP)Kyd03{Hnf5^S@4))~>Aqh#W!$P*LIApf8g<%x8gfUZD+2{cWCyGXg-tG#!k- zR;in83Fuh(e%q0j_*rX20~xjO=X(cNEJVTU5+nHf1IX~zQi>OwdiM&JX!a@TI$}jU zfDModWf6IyEq~-ixMJ-&{$Z=3^0#qe{(gT?MtM6CGY3b|-p$F@k3xHNmZ|S8AWx0@ ze&j0o?PvJ01@{)}U-3QF%KNl>M$zL6^c7Ci!M(uyni5h{Sm)1AkecbC^MFbDEfxVw zxH+iGPyn$MWoNT+aTO?kRsng-cF2*_nTmYr3@1sLX4?pnfYS?jf<;y{-<_N#h_Fq+ zX+NqSqocGD(*Es`@QI+mpFS>&=Xay`A>{h5l^pfdD-C26YiqkR3o3__$)})j252SynNUqAJ~6SqxNeVL zCDm>+^jWPeo#Ko756y?Q)ZWDhJ9CXR8z7PXs=#4Y&%@H}(iy{^inyC|2I*mISL{r7 zBSmA@%q49WxzQxn$T1@e-3V!`pWGD0!Q`}R+M7#9P5nCPE2uRmndd0VT|7sHtN#hC zCgn8ghgsFDPrL_&mN2)<6O4e@Uhm&Se~EWU(@47+^p%VXIZpr2oHK#*)>T*S^oFEM zGw*;WdAH2vpujVlY+``~lvS2OU5SB6)MRcI0lDWnr^MgsrNfO;>e0A21mndqF9I?# z({f=CRT!Dq$E}k%yUy(ebZ@o4iAgA6Cch2$YQEFTE>lNCMfED+WktaUFg2x41NH=s zLnl-;;+=3&etrlGN?LJ&EA{%bp;E_2Mq1jKfNCSPd2o#|hhOMu0dIFf^iNKkOz{yFp8{Tw~PD|TuxnKFL6P>QOkj-V5x;QIyfq~|UNBywaJS#%nl_x?hTctTw5 z!0yeaV;)CUZroP0Wk)QW1asWX@!Ay{shV0r8Cvi56gGZ-Sm+yj1LBvSKX^cxQ+BXp z80_?9yw-QEkS9W5&9Q}V)2vJ=2P^KQ;fvoAvKEJ+jfzT8h5hM(pmigW(R}k8XYxh0 zw6yH(wvd%R^)AWIK`YVQ9<~B_@*zDS*pH;)=Dr$P9$oO6FBMTEXnz%GcsWHXa{Moz zIrdgUG!Gz3U|+q>whf}Xl(D~p74M1ZH6k{>^1iD={lVJP&qdIO2weY-XKsiJpSqPh zX>ps~Etvn*nA5xEzo_@}^RD`wR)19)l2@-?6It_5!90H+uRh~Ay-W+2M>2U52%HI7 zZ+52p!!-ZrINIlM#FZR>iDzutkKu7UIln`@WPoRY^zl zN7~Q+OrzKA=tSaxc|WPLs>ROy^kxq1prO;>KYjy`Mqm#mCFP!+9D1y0l@U^hiDl1Q z3ovj^bT|S@;FWqeq+ZTtF^*X_C1m8av53?i?x%Z`CdRdTb-jPobzZi!vj@9LeC9%1 zk%U{}u|))!RwlAO+#vpU1DEa`Qmc5~AG~x&3gh6+p8KWiTSZyGg-1IdaOL2Ta*wyS z#GLU>tO6^)o6G>C=ez7>NEeyvsG&n6#p}tyHG@vx5T^qO_B zQ#A<8bXg@kv!7!Xfj|ZERG|S1%No?%NH;O3Y1Fuq3_a)xLO0&nNQctU(YZUf+<X1Xt4p7lZ?Ijf6Ck zc?gl<4-ANkl95~l2@dHp_?g-R^YdWFgQ=8uF!fn+^atWXO}^dv9IIDtSb5fSDw-N3 zkav!1j#e!?F5~|Etdx}5wV4iTQBO>pyG2?k^STl@5KWuJB0@$#ih)DDry0fUCB{469`d3kxZV0rEUCsS8lSv9r}-cp0k8}v@D ztDhf$Q74!`r*q-E-tBWHfmWVR zu->ybiH;dG9x4hz!6xkS_UHak$^WUl>)&wmj}T}^tYZX+*a>{egsW97)>RAe5gLAU9=-gzGaMFi_JZ2A=QL{32if75pJRz6HT#4z^p znB6h$W^i_?S+BEeuH0!kj7o8^L6oS1u#bs_WjI*8O`lQh2WC$qA~oRDpq$Be@xLzn zfsC&ZimzP1#r}d-FumK0m}u+jeuYk-Tesv=?SKb3aA9}V=lKl{_wrh&TB3(QqydzU zY)M>tyI*Y}CnslQbhC;z$&E1%0|Vnxp_RL76cFfq?sX6t*EpHmb_IS1Xo8>$*>a|V zsqAVS1^TeAf>oCqAz!Fg2Ve`WoSeM2|2lJ z&ySFW+WhD1H*h8oz~(1DXR5&icG*d00N+<}L!>+HRaI2*djQc#LIhs>bthO!MP+hw z5@`n|<<5n~2}YQwPUfBpoDV<9bjfB(>*sv>M9apeM2m*7L!1=dxl6X_fl%5m(@5C8 zTHdeuTVOs;`@}hsj0^IG6D!{zeJRjw9eMrJEZ|6RUyp0QBr$HK+dw^}drOTty3*;2i z@0LHL!{Z6KY$d7e*|TR-3D{Gvv!Y37z{fV#(>wBlhHt|3#3kLof4^%ZONA(ZeH_2J zaqko#O!ZG6I#FrQFgcipq$?q?9jV4S7>0m8vf5tJsV}YP8Me~TfV?F3fn>xfc;OcG zIIw_R?&o(=G7E+|nE+ZZlKiP!Ly|uO_A06}w?)?? zr=s<|#^zRHdUT=Ps}G|0?s>{#B7PxGZu-nuAqfE-43@yFLvtXVrQ#$ja@=twbQ?`N zJQ2{xSqPRFf!&@Kco>RhPL7k%*_-elHipilOZi#VWw*XoeERgs4m4JYS8|GAF@sn$ z-gO{x0VK;$02;A{tTi?(rF8_PM`!eSx5xeOQXT;U0D8 zmHz}9MeEY@AY_|Pj^8iaQHCf*GIAPh*O_PP_ZVd#*Ha+woYw>E?0h@)Kmnn-UQeIl zV?|3(ub!iO-k6&No2$9w#PTqGe8BY*M7vpVD~sUFAS~XKLC4GQ6=UzGfR3UiJ6-at zU5e@Ln>Xi(*rwrY{oCKMn81zg-_u_Jn-|3DpP%n9rR5DiAw$QCVc&<*G7|Hfjw7ARvRHM?(+WT(5m#i zD?VXiVNp@d^IKb65E_x1sx0sFo6Gj=v&tsnc{42km^EZX8hWwX1a_gr=)>*kemeA! z+jE_tZD-oA>B>fOulvjLZ$r;Ghe>~TnX@yUUrY&bn8nN0#7KtFFr(xrc#L9VVl1bc zvlI+wn>dH|<{lkNF8orf=SUMfF>K^*w^|gNk5$8q2$;6-Zv<{@&fF6h*Xz!t%mMl@ z8Q0)F%Rcli#fziUy%QsMWV?AY6_A@$FypleW@K++5j0$K|{oB9QB_f^nCqtm*Djhz8WSua494%k(NjEiI&`^fu3jh&I(D=In?qfa39#c zh6#jBoPH`FGse~t47Q)vp3@>?@Q=UsLlXB+zw_ZfbX{NXK)HuT!fS`@c9P{=4< z_{2cFTEtsJ_Zp(6JK&M}{lg8@Ls4#*a|#GtTwIVT_?-`m|N0`bN!lhJ1_KEaPH_#_ ztcKJUc7P@LDlIPjzA7@B`ojA+6n2(?L8iYBEXzKuMJ5asgaPhRtF#O0HjoC$<;Hxv z732<>`+C>}y>E}2tF;t$TcVnT5p*tK<87!q@p)$&rm2l~7=0_sc3FgrqV%QG}FUqQTIoi zVhL>}4vkI*HX~IjHh7XMt z;R%EBjzRL_y7$EN?;j>mvr!b?lv7jV{=2uHfPkPuuw3Zxch`7tr{(&jH2V#gqFA2QaRw?8 znMeUX9jEvG(_Uzp$@@_KgocJLFE4j_dx+wvp-cqec=J(dF%&#U zHu#s}Ha5UMmcKkzCC(yFpLZS zT)?#*6kJLTXguAYv)N*5JKsx}{Vd?JgmsaaZ7^{OE}daeK!9A>xX76^XL4!5HC>lGVgir}-V!Q=?F(3Pho$R8E=t(ef=Z>$tc$=v}`$Oa!fN0KP$zx3TO4ou5rplJU@&v?(K zyt@vkjfXzhzN2SGwq&KKYp~Xt{^?LJztE1&e7nT^dyL z#8Qf$RGoFgp_n)Tl?&D_I3Q`@9ZFnPTYGyiO7#;Q>Hj%t6r7xSL*=*WzAV-E#qGV< znjbDz7?1h(I(1LRWxnv8QYEML0eJM_B~Kfyrw9oNflh=8{MZBp0Z@HX-_EI};*i`n z`@0104+dC#Ip9HH8Oi zUpYmt5nH@xrhoL@38Pl8vW;bN*Wv?KKa>xw54`)q%KrNS-O zi>tt#0Oj!M3HSkXAiIuEx5Yi6+uaZZt{<$1;32L0JlC6HQateY9gNi29jdC8HhWMq zqPsyV8d6{DLAm-+(`j3$2a6Zw#QriCK|rGx?@Dl7s(^^u&~=Pa^7qkD-1lF|aNnUioJM2}QH%d;#^Y}Yj$~8_jBb*Z_jTCXINIs>fL*94YrY_Oy z>F6_OQ>UF~5A`mjPmby%!sX(LH4^TD5Vf({0O1g0fR9#xM3H!~e`OYwN85W`R`d3CeN|Gl6EByM8{D{auF(}M`HNyW00D(yGIRD(Nx{iX#hdSI zLjRll>@TDm20)+vIV^wZdy|AQX;%}x`Q%?0cay?3JD5}Gv9@f54gr%6p1ZVJ@4H_O zfk5;}RhLs$rN!Vf=jsmg`kb3<1ymkr=Qz;PcnB|rfX>UH*DmNMo{uH2*=&Pfy6j@& zp~W|8mk=zCNs(*ppC_(WHUn@z(fj@_|9_Wh&Yn2!C0w}&%GQVNwmsxM7Fqrv)q0W( zlmdaEQE0V2{2C`jQS$B!f6qTHPeh#VU`x%+%mh`toh298tFBnjZV=g_zXEXi!cn7B zJEP~fN~nMI{D0!x)$roZp!yQyUQzsjm z4{niSac+}-)A?{VM%P3sg>WFU)HAhE=ttqbIexP&>a$V#$%fGw;^FmM>ZE@g#Xp+r z8^bwGL6r{30{TQ~#)r%LjEm=+H)v`P!Djh0A6cGxdV03Ew}1cs9XJ)=CPVqy`j!@W z56+Wx>h`XKrBQB#gAb>*L){lCv#0;U!LYGtRu zu2Q+3JhBNtsLM|=7*QLOkTXrd3H9nliaQLex9UZC?-@zYD4~NP-B)@}P3_w%wgN=iB@XrR0st3IzY1Z``!5(dZuM)@5<@XtB$ z^J;(XPR!SDKUmkpTF!$ekUywc5?AZqw&;WMn7}7GItk;KFWs@X=NkHP4IO=gl9|EW z>Wgq$JDqX+chKodz#$I3Fq}cK2EPJvZ}>A6obA7$w?KmfmX`^pijU3J*tyqu&~2|U z0LCbyFVmDCNVwWF9tr4rERPx*Ak)|1t}c4C)p(Lhem-B}7$e_K@IZwE=f$^r+)H9w?a$*U=AKHuE0tqpIc{I^txR6ryTetFubR4kt zF-llNf84hvl=yxD`;~Dp{)1s1NPCu~D@>({D!q9Zoj)T%*mm0KJL^X;of;PLq>54F z1(^#{N79!8Fi&kuYtJ(lLsMhezUw){*n2Y7O|Xo?)F!VBIO?9XG%3__ES{$C-nkC*_=_~OR6<2)P#KBr-O#cstH_ATPO?K@rAesF zY?YNHvO;JeWN#T|%ckt{J1$i3_kDjp-~WD(-{bdqeEa8q=ho|WUC--!p3n0<&f_>v zpxIm^ypgpBk=nxfEL>vcv*?D4&ILDm?yznb_*^!z_0D!*M_S^#&27B=^o#sumfzrj z&!h+h^&DuF_$Za3zpJEaKQ zM?XK?8ciFCUzJKQ;)~u$A};`sTAv8n1o`g6l30y3&sKc%^7cj{y;o4sx*^pZhJ<0~ zR+GsK6^XXS#z*? z90rP0n3FyFr?w=eddRHL9-o~W0L!NV--&l+rq9gD)Afei;OzPyZU(He(UQ0M zk#;=kFzH!B!c}l2vAt4Hk*+L$FZ9p8HrE9VN~Nve-b^{`oOa^BbP~NSExIC~n;Qay zE(ndSxB5|uLf{F+&r{LcccgrJa&n0gE9EA%-O#tPQCF{*njNBfySkQU9&pwAB(y!7 zZLfv%dadwfR&H1)SbTb@UIMuisWtc|&<)$c8fAf>p^<{-^ZTOQU?8nXJjmgfy<(%BzrEwD{00w|_gVtk@dD)D~zBrN&=s6@ddZgaid` zWoDMV@=ZE9f5vMYVPdgq)0u_l8{e+Gx5J+kdIs3rJyuOabQPwe7n91(5m;e|@}u)@SO;0qk~An4UpD_WJe1OGgsy9=ww0w90d1v;oWi1POi+ zkbXX28dG}%h2qfi73NT$=7g+b?U!lbuWKbjvuf&b(fsl(Kdx|V;;8#IyuC5T8rPaz zcJ{se`fOo%jY9B?n7W;T^mP#rNaZ24`gy$wbbzD!rLIq>Zpw9A5SeafWYkbb2|#eh zR(lG*t$5xKRPRJCjC4Lnyt*p2f4o4Y4YKMM7ges70CxK}1#=|^v!z)!rwRJJiz@^( zTH^3A(|T@Sb-8%|jWEXOwI27#EJ0EtOk20kKmz%BX*ToXCg^u1sVnmaB%DGm@mAZx zBtuwU$*;U52n|N+b)oHBJj#;tgV?QdXl@z)$~V1qvgEDjp`K%-o0#uzJ3c7yDWOG_ zpZM;_y^tzv$6Z;&ym`~6O?X2f>6#5}C(X<+#dfIRPh_oEyiaNYh4T55K|8XRW1xe8IKa8YxYPVl_T-66wroa7(dZ?L_;CXVGzj=Go3c!alv`u&uf z&0^6SEV4Xq_q^5QJ8P^yDuHKyNb2-f6fB2f3WOD(9lR^`d1+|!BD91hC-jYI6+OXO zVKMiMwTM4<1V?0$e@g(9VwFlg2y)+2YEG#KiQ8R0aNxZkuO8q2{o%)Mb{J$DUi46H ziM`@!S?J6)@sq+g9^|beveExhU(O|v6v4H64Xs85zZiYj!rc$4{Hp0$n zp}tG3pJzD#yS!s71kHKSB~3zAsA(m(%UN)pf0p0t(h>;DN{fp~J=>UeB0a4;6jch+uop;^+qc*M+? zT(&Ay>u}rG(AU1m6J_n{$_M{{~So2pQh*Lapb)?L|Zs zkf_s4kG7cAkDo*`fg6$e=Ov*690J)J6@>EWP4z`kcK$v zb#OU~QZtFYOOsaob3xr!AY0qrzvgA*KflB5a5g+ECPqT$&i(z4t0VWw3;dDG>m7Db z60UuOB68Itbe(Z8U_0x#Eq@NVgXhnOF}3Z?t{Pd!_9$q15}hg*VbNBz1IBmp|p3!|Pvpdyt9Gr1mvHDPGEJ zrK0lLDb3fvBF`6DX?^%?a~TzR%@YI4%xi<@LwS$cLtngbDcGqEX`rp>9x02C2Y$zw zaD0a(~OL9rO zKVf!J051dVj+1=gyt8br;qL^!%fzXJY%I&K{79F6o&on3sK;PD$YY9BGUCH+IeHWk2Y|B_tN_ z1ZmrKczU$$u3dl8@hB}xuyUAPdTrx#m6P1}m8=+CC3cxIZr*(M^y%$KKBJ8@-t$v; z78%^cQ??O}$IXOTbe437e$VbB(lqLk)Y-e1)k`dXj$i<}w6v5kHIPxLw?-y5EkRbE z3c29-BYUpGg3%=(s_eLE>`y#HFr8F?RM#zzp#C+1S`{lw=t@ z`}=S4`PSCvg;K;g`e|Nn?r>33hndlJ=nMr|Oum%rUbygl6NQ995Ied5I~b#HnU;z@ zeK}x2nSCeGpS0?1JoPbISqlpbJ)X{*sw%hu0d;rXj({S8WcEtHNofS0N#UFi=?R}D;%39B$H6k|zC6+DAyvSc z?Y_H5%%Ai+j9!q!bX`y$8oj67>vO@J0dD!}*o6yi09A=c$jMKERN7W8v{7l{O&P7B zN=$&S2s#OVZiefanVW1Sx(?#k;PL!5%_@dz>D1!=lu{*@B4r1BUgx(Ab}oh)%$Dz~ z=eL+WY98nwG_@#3Wfrzs7&Xa2L_>%IaF0LVMHi-}>CYBcrId=47$_e=##-5Rm4*>^ zOKRlC#n;w=lB8Z7A)k%D_Er`ao}=%X_srkcwkcyuBD=iHRsGo1G?r}&|6}Is(`zA{ zY|8vqfC8;vC_g{V%?`|AEf)V#ShXP~(}US8BnWo{L@m3%_4iAHc0U?@AU83h1r*br zcfWkM5Y*EMhoHd*%)P6X&#leRU8<|-!|7mUgM z<$=DwojpBpG2C&foNOeAf&{s4P+%as<+(SRWYO9g8Xb+0g>?b@TmnmbppRMl^_gof zQ{&@A0l>{&R8iqMKoY@7fw^Tnd_ugvt56Oilfi-W3w4k9N{ro(a%bVB_ zw;ez9ai}~sG0`ipPWl=*xdk}VCA|}C;Z|uL>u3;=cafU+?Yn08=b@q5AJnLDnI~mu zAY=I!K>72?!qzerpl~eDQ>>HF&ktkk-PJu)+4bxG)zi*1Q)3m>mm%1KOVs$1sF;`@ zWMI&9gv(xPT`MFaDmpnisSqswL}B~Hi~4$X!Aq_VS3sY*7`R+QTzve?EroGg_v%1# z16_@wJr_lt+VwKG1t}%)x>j_vGgho6`ek`ZqhY4ZzHH-()>p(f{9wkhF!7YS+LW^T zm8O{PrxpIH2mlIyt}=*W&ieZe{w6A}sjr31vaRhqoo_J5QZ8A79tvSwdHVDR7U>*a zZB0#6!M&2hC!VXQ2kdTDHqY7q{;aV^dn%%2M%rs(o?DjX$7@I)BTVLHk5k#E*!K!r zX~f2#Wq-_FClrexaLxaKx6ys!$<|V#UBk}Kj=+9Ii$XN?cQhua^M$Mnp*~iq9pk`G zE*>4Pn8JZOO~KE>@dL~u6Nhiv6mQJC%g$ZMU-C{>oS*+E_~QBIv zjy+K7Ig}@>R1_=`Fjp8@EoqPwkY?7RtCUi;CE()rv&PMdE%J@}=JC;AjoiAek?gd& zvL|Lxk7L%v9O_GPAWT+PR>PvDYZgxG=T%heUQC|q2}##8boe=W_~LTu;o)JNVVatn z(Mvw(=dWjx?heeYsi`R}G=_D>rB+og=E@7HZ{J#B_)G3jTTy5;)3{t7Y!w?N8f*!P zwUwsctx%2*sfP<|?!Ue!LNNqBmBkjHWMXZV#^leL{76>Ut2p3n-Jp~BLX(N7(S84= zFW+#Luc<@d0X*FJ>z=B^uF&zDlv}-C=We%^Xh}XKSlCuc=^K|PVfkAsX`fdDjZ8hUL1&_2K@Q*)vFFytSyim9Q}}u6H^Sj$B@Bz zSNSjN?(Qb4CZoi^yZ`9%FdmZnz|b7 zUjz=@5p*@+DVYBD?NTZ#LIKAf(X#xQ`Y6UzvGBT#;_!a652l2HDPPFUtujXVD}y*>h_Vp|o5Q};UP@&Y1cejTx^$pT*N zSrfHu#p>1k3hVTBmh3SIoCs*1?f^km{K_{X^)KAsqF#nkGX~dQAail`+*jbZjP0VM zuNn2l4bmf_M2-?o4RGR=v~)H+cbG0e4gMBv-*0Yd`COgz(rk!z(riuE>_zc@I5vh< z)YYA>Kf$EI{Jfsn$^Jz}MX-I;%Y6c(f<}hzP^x+Bfit9?<-O@U&MeV?0u7#t<4yQ2J+oRwyE?n!wx(fmzxNl><27jnY0nW|p|N zX^t_BuWp$2keCk$yY`ne1d*tM|HlH36Y_g`#c*-yzt7dkSUwx>0&VN01M>XIuuGeS z@!y&iE4tt*j5y~smfj45?t8^y6Rwo7)?;z}Sw=u7*aUa(+(}>!k{GCa(}@hs5!7ON z-!lhAz{w8X3|EJJ4&zr^sU#x|C+s)KE6Pd`N_eNq?p>p6572KE8XFuGw(dQnso97G zM()2ZNg8diwug_9PmA)PrQqS}x@sm^#NraVJAoHuG1{pgU{tLwTt5?Qk%6uipiu5U zbnsx8TpG5I&*f`+c)O-+m@eKQ+2ge#RJ_0+YzhL&Vr#>lWJcP1fgDhMjXG;&! zl&wa?22?UZg>S7$w7}*$yOLwS6nZIOnxiq9V0~+8PLWMtJ>ABQhj;zNUW314P>dJFuXn&(VTAuAkkvhHE}x$VZ6mH% z&P4#V0;BHatlpA+M;BfI)SOL{Ln-f_?5Z8R53x%M`oR;&*4}<!aa~Q$$OCn6R?nk9iU5l`O*YnH2)>@G*@CG z8j$bGl~C%+`SV9385R=qog@YC)5#`@21M>3hbjmUc|@3zP=>QqC0O^V`+q7O{3SkZ zzv?Z-=itn~j#oV;6dyxWnjs+Z!9MM>sm?wSq5^N~QvJO1j)`ETW??2(h4#2=lUo%Efx;y^4USg%nVs4Y~N>EwyRO2_N~xk(QbEubW8kJ@7xCQ0mmr}w23Nk1|dH)=SmRi$aZ!a&mrG4F2y3!+j=<4J5-@piB4fVWE z9~nRHV2^~BW#j<*myAl(1LfhaUeW=;WM@Dk;U^RX6Za)A4%Z2bYU^un)-T=rgWdX< zYVy*Fjd4*?sYy59OVbPm2M1$GaxG~|I@|ty?N9j-R!Q2y56hiSOVUcSy-iM5br*c~ zvVeEZxbF|Gw^wtjs#H#}!U53ngvJ;gp#+qGrS;$OwyChS&YrT%#zTeHYk(T+Q3=P%M5e0U z(=C3>V78&B=f91WRr&-gnvBm*OcP_P;6gv$X8*s`@%p>>?(J~(>3zXA(bUugG=Jlc zix)3SN=o8Bm&udP-2U@QevUcXoMv1^ds&uwwZ_2-gOPtD@rKc=qghi_VZH zBPd6&sdnv(gy>vdmM$o{-8U*JM!v}7-o4NcXSdDjNQpM?2o*w2&#_n}+-J|;fO8wI zOJqI}Mlp(6a|NZpNlh4Z)!Tx1e_X&%(oxjOkd>R;Euw{I(CKH{QLnQnPiE6^KCxKv z?|}!d0ah!KW})C`q550!YhxP=3P|zto=Ph>Fb9?S->YJDp0?CPS6}A?azd0iJC3@Q z+D+%WF}6pU!tN9IeB#03BS)AKgZ}*_P2Unp$McHIvunx8df=r1%(`Aj>LdCiw;*aN4|d$9RqE{M4iIk`PWS5l)jD&s1(eN632-e73QmYnzohur_e#ICzQh@FdL-G1c}TA`I6+%e1_6X6To?NcXwA%Pypts zXFhr((~_PMb-k~zzWB%g0V1fN#ooU7;TDlGGNZDbOJs32Qp<-I@wgBzAJD79k`jg; ztEJZ6-xztKx1%Fht!(|oi4g~$q%Vt_zBQ_>f_(hk>zcAAoJC~f|+#lPiiIWlCxJ0sHdL19V;p8p(X0l z;xbsBz0XCi(SG|z3n8{M%xH1BefXsVYQ$V~(YMe2i&`Hjy9kRG5;kg##`3~A>&)Xe z#cI+mV6px`UC601-rnA5P6h)P*0zF!Qf76p$~J}YBrN&#+2v(~J+A(aPb%_heW-05 zG!M{{RKxz%r^T*L>4VZ+%qZzu)cfQ4wG{X^okK}AnZO(5KJsDyOu1rie%?I(;UMpt zDB;aSR&!iW)FOQUIK1JG89zaSgxnL($S7R%dT%8%Ixs63tL;%Zy7SWM=#ig4H|~fS z64|GS;D}nVh_q`MGpLbnecPzhH0;-QRtUy0t5- zgLmi&d4eSlhY!K|A7m#hSlgWsUAdEfrvleb2d-t|GNMV1Kp^0eh?H8S7618a&FaZ?}@=Ps5u5yp-uc+4ucFU`4USbq6l;%MpP)atdeU-4p}zVtaMO3gYSt#+(cm$fx9!Ao5MMH`dnZ|y^5LH03M>tBbc7B zu(06G8@h2t-QM8%Ipe$GrU0|@;c1mL7abYQf%xv>QG)3n2Y6wtC(3N0W_>{(SVxkGTv-Z%^E2&y$Q8!1#i zGrd;e?+%G#lLv?A?-{YqpG5XK^mnrpAUMMoR^EX@u}p5V~i+R)gDqU^Ke>O4Q^w>D4iSE#>=h#)FLjOIl;5!Q^_9Pomd zr%5-;$*ub@t!5;Au<04&ga(pXZkG4GyEqY8RGVD)k2}YK`)RqO`8kjfp;~zOFnfo* zZnDp&bg-L23C5%d7Z(>JV`EuaS>MOU03lZCpXh(wF~m_l+@G+!Swgba|#tNFjRnKii(JU)8@7`$8gOHSHa-llbB*s z(Z7A-)RdWMk4k7-{D8W02aE6(vXd{({>84~hhzIKQfAg2CWiQ?>#jL6k~qv=_?Wxd z8oIiTV?#rAu+dak_m7O+)l6~FqC6}gxy3@I<1``Q~7_Y@$ zKUcT>B^uxu_d^UZ#-W{~I8ahtT>SZSRCF|&wa=Kgyb)G>n0x0=Nox3VgL%x`@`yd? zgJ^sH48=J~9F&qdK6!Q7I>S$ML}1W2?n^`X-nKOFVeQlMTq}>JAIhXHL8;AudW-iA zaVMKpXLEGz?9I-aE666Jls`&{&ggJXJi+W=2zpYN%v=TvKC%rJlCG zzGwG!8Hr|>Wy)<{=FI%&Wi5f=EQfh2;P`s7ed;l@^Qp~13For_$(-&j=|nZ9QczK$ z^uW*hE6t5u6h~P}@8!iuk{c4_8&w?)$=V?;$>)%(@m-e2?)%foBTII-=IB#yXx4~w zVE^VW*8feO6f`n)_t*=?mR7!9l6Ql4@i~_m_WdgvG^tPb!oC;YoInRu zvg$tjR)4k$s204m&PB?sbXi|Ky(tiy*p(nP1bZ3WOzoJWNdzz0{&IDsu)D=l^ z5K-|$euVAJwYvlPuuyj?SN_=OCh(J!8b=T5JXqC+m=N$T_Ns}4<%xg2 z@h8=^Q+}SbM%n~C-{wlSr`b&F!@x3DBpSTDa9MFtzX5*NZ0VEVr`UPff1hG=TT*nR z*F{#P85nAaR)ilN1@E`Arlw-z=lt0d8WC}aO;|((Zo1{_9CyJMzeE!oJprkq^4mJU zFd5Oe4D;8xE?zf3H)YJnbQE}e-7q|P{uCDK^5pgoST!TXzyJUcltskE-sk{{LL&g^ zA;$CNx^J}yBa~iIR`%Hn`?7kM@PmP>Jx|?u+)qHVo3W0GNse*Z(xn7>UGRactDbS4 z#wR37aE{KxDBR4q)zk7tksZg=h7IS-v0J=N7X72lH|c4`URtd($_X$p6tqWAg6$vi z^k1hBohWrvs`)dfB)9)OhAtTt9U}d+DmqWQZr!?vo}NmJCs4AbDu+Hf`9E5;iHv_A z(#cf;WSq-jC8VaMO^%Pt!CGl9l5|EF5Gj_^M9vvgrTDdI`j-9U$oardBCW<}oLDGn z=T9gM8u6ZvTv}?mP`??#k1RJtbUDc<{mSpjd+>#3uEEf_xEk zUqT)~9){@mvy(bW9`H9lIT0R?zMt+50QA#~uafTYBgtVM5Qb}D~P<#f>V-)}Q z*Gd1MuT0m{#`yM!*vm)O8n!A47;qMRV~<@j8lkssG8T$D6>=4 zN+7isd5)+rUwDMfC4%FZO_km9bbaztk6n}eMV-Lm_ zV8-6T2Y@nB7b-3OPW#<`K=r>K9s8O!`zsE>0I)+dQ&Vo5h{#AZeEi((_KAt5!;>Ag z_CN;I3;VckD0~79w)6Y<^(-uN7Z+?R*^SrD`+-`6UY;WNKP=?LdV)5AeP}T$-OBotEbB2Ek|@ARq@cN@3cLmZJ%G5iwmIOYOtn8L*q@^YDK>O4-g* zWD<5=VRy&p>NtB|@d;m_CX6%R41vpJxWV70UDl1?CXx5Y<;jWkq~1I8F;r}uPu1vUv?i~9zJ~V7 z6#_5VEl9C3GRa{*srPr zsU&$>B?VY_oUE+h;E#G0AGm5E(u&Q2I8UgR5$199oT7y;pT%eeB&|C;DaZ>nGtxDT z$lA^^hsj%hPR1p#@fb}@cnIw0=l62#qa@WXK<%O0KmfH-#t;M0=}0;@3%`Gz zXj2hR29m5Rq-nfo%os0jqK8_Nf(N{HP-^?P} zlJ#`p?Nqm2$*b#}7On4VZ01HBC*}2A4$svz9@4#Y*-8Iy#%5BsJOW#N2%w!W4(6B6 zD35^y{(%h-Aoj%jNrxrZ|0woB*n7S8`a+X&hIQ9U4)6Mhu5Bc z$@Z0!+&=$n@b~^Wu=Vn}Z_U%qjjfT2tGlY+dCEp+E}`svr7#gU)xUWY-S%*qW{a_- zQ<9H&nSS|BI9H{nr=u8&fB8~Q!AM%a!LY|D7l=pVFA7`{!cfuYeKB%$>4}OTPlHaCqaa-o`{mDzomypeuUWRD- z(ywB<=tM<1hX=DQ{eu}hMD%9eOKjdvemACh;GrZ)k!UJs@<7~B@AR+O*jOtIi`Ezb z{0@$edb+a`_s_hJR>ROQU(`&PV~7UbnTL9Yp#7tR0XjZmzclwEG_YdW6oFXrU;Vt{ ztt65x(QXzx`0=0+b3KRmD6^xJjFb7EC#!5P)JQe;FqAuGf799HnY>llAQTsn(a(pC zpnPrO1~2s3-Jc?2$U) zi&(O&Yay&iIXE~z;S%1=KN}>24l(0fqZ8+{+~+)ITbiaFd^ZZshM785ji?Pjce`Je z@?Uk|(sT@J-rV`VtIJ@h=fm=~(~3O0x(dwv@qNI84X?Bp&~5Sc@fj9YTt=#x{}K@1 za!aTHpx?k3i0&0yo+~wXot>5caBw2;-2f2R7BI+jFnCa_s;+i<@*iBJ2D{%}q;QH^ z51N)_k`59+vUMx^@m3vQogSS?SCkf-be*a&c6E!%{Q2gZe#gC2JMb3lKXo8n#i8u6 zEkf}p-4ZZ~VtGk^NGL-a{iK{`dn-jw8?ua54s`PrS48%FY3I2-`IXU(F3U6CzOOO< z(Bzt4o{N(E2kPFAbQE|BUV3^{{q*akmIe5*!!DDR@m9VQ4*bI@{nv}11M)~$bj z9G)voANqi_*y>FrIe<^4!H@*5+055gbZ}&D z73*vpbK~aqTaSM&sGuNc60IA3;D^40Q@0v-wVjCjH8LvIXhe@IK#2r6D zFp>)t=KVg_+Qh*(XLjSOQ-<1O!Y^oJ+e zvXDrAWIVjBF>!GvB_$zvgl5-A0>Hv?a&jVq=E;WMIZ6__77m>(Vv*0D zkQKOkOqyZW-7TCvJfPZL!;u7-{^N%a;3#tFZ{ih;q&wS_@KS&VUwv52fKtKnEFGWT z@);ksGZ9d3?%a6+q$v0?#zjZl4ZIrz0W{OR^@vDZd^J~8bsCp(5yq#AmQ@Fk(Zs{834R2uZ17XI=N=?$eB`WDEe?5|Z$-wGo%s%RN@f)k5$6g{yoScb2 zSRCL)yO~KVdU4R>&z)oXB@I9e*p8TW?>9z-Sm>L<)qnIV8$jHU9R@7BC;ejA>06!` zJ>48NWy2}0XJ@rUYdVU2iiOZ-0H0pAY*~U1*g%AT6KDE?nWF2uC@}FnVhmr~4z=X5 zI0fcR1YV+jF0+MDpre$9z(MyWb>i`3$3EkQ2KWf34PkUZUz27KE8Ki{o}0f~U1O0R z`o?ylv1Hhccn9y}U*KY=vjb-Me?+#1ktuA&L2y72+mx z%hob|&TD{j4HV<-+(ZPvZQ5*Gw_yHNO!8N%*U(nKaTF~{^C;Vcc}$j^|w;?Bz{FTWAf6fOx-+_hMAdp zEoHFu=sc#>vkCN;8Wr?xSsEPZe$v5U(A3x<}UJ!T}H!T7PC z7}_BIzI0IaJq#4z@T#2CIvKqVXlep)NQKGGu&@oTOTF{B4+m6MPIor5fVBlr$=qCZ zhFH2zhDH=07k7ZjQ4gIzuw{ap=H+G3XR&`Ra-;fZg7s8^lL;>d5``#(>vg9OnRm-j zv_4fq&)eCuMRxg~SK%DOu)7k(^e2W8^+-<>!H$3cc~+<`)R$Im=>4JF3jPdmd|$Vu zz3QCBJpPlx=;FSK|6Eh!+o9hIXUAB_%emXItL-a~1d!Rk%NV0y1NWM+H*Lf#Xp`dY z>pM2k>;#4{!`^d{D1nJMG(23Np6N9m-gYZ#X*bEagsO7lS6QclfUAtXbsoXTQz|E|wu0HL_kI_SaF6n}r zJcQwrRmlXkXk`&C;6GxP6F5D1#59b8y?{pAVtyb%fAIr19w2!@an-6`P^CC(e~ zT$`|$L?6Ka!I)0@Q8kAPNG|^Bv}$TKutdOIlf~WX7>vPi@?9Mrf?!%1@thIo;o%V$ z_S<{=6`RqW#L=_HQg{c7YZ2`6rwC#5ZxCFJUX9@PYtCoG!U{1MqhdZAG5a$ z?Wv=hk9Vr5+A2lH~Q#xH$RVChu@&@!0lP@XZZ5ZiWdI#EL zr@o|`FU5x2LzI@SsbBuo>b5~nQGeS)&)t9qyeH?IH?4bX-wR>vaqoQIr?)C3n1V#^ zFzk^hP3?WpX!T=&=7Q~3-4J@Y$a-`D(BJf`cCno|^6wm!0=wt*&BU(KL6scn9AaW) zK_=_FMNRws)yVQc zzQPNOQEpdvExPAKkVA7H{tqDBx|(h#krMp{8>#N`Q2E)OBG+saT?1i;W2^U75#O82 z0Xb%EJ#}v)y;!-+b>N&};(*oQ!TR&AdMa*+m4n5 z)9t&C3-JJ7L6kr68&0i~pI`fJU!$wg@}>tiCs?9m&R}T>Mz~(FvGLs?E-ubQ<#6!O z$NfK0Mpz1p!^05Us{DRZV(dRj?VXhcDYu++Zy0E9Q#XGjc08)}IFKC-JrlgwS@8`7 z1M$ee*V6jftbu-??hKS2T?lM&+Z)BE-yGL&`_P3Y&Q#eGDQP&>p+iNqvTE{0PO~aE zR=y4hVDxx%0BIynp1Rsw;F0ta*uf&g2Y!u3K` zwVJRm0{U-!TF$t<7_Ou$iDm5HDt%QPBj2qbtfX&cagpU&xv9qE=1t02T|I;8+-y97 zp|h7on=k5_$3Q!8E-1<`C}}^68J~`Jfol#PI;0pPS(LjS(FAKfD8rF$(_p@wal{nf zv3t*@X6HixzfUYuHIprI?ctu4WiA1Y$F;S!XZ>X$My&2De;%})M2azZCNJ$dILWJ% zO@`B5DRmFQFnr?sVpZ%@T7w@;YFj{n{WO+NF!O}%J&etlOQ|8ElUzc2vI! zme{uNLdG@m@$u1ft3zKe!?s^QzzS0mxNyO}pgs{UzI&q*6ZyHh`!Ge=C%LG&I6{~W zO1U49uL}PAGV`;urRz%|M)>jNlMT;PWN@i{y)URgmy|^ERX{AJ`e8!-QEEZypy&*W zH@p~791yy7$SCObOXxAR5yzkt_-E7G4PIlI4Z`7%otWS)(;k>NaSQaUr&O?^Lhf+d z`{EFC*NmU#vdZhRv%A}bVO1|>SDeD8tZm3`O1QZb57gD`fb;0@Hwr@)8PFK;Jt!m( zixXS(i2k2)M{;t@JkjamOGzAHwNFONr~_gd6b!t0QoK>qw9+#Ve~&g5N4QZ7)}y2=t3>VV{muC`o|2{QxJ2s zoL4ab)28UgJYP}KOO0joOKzfi&9gD{ROIZ2^LO@M#u<*19T8gD1M5)S zg7gU(V1y2Sh*7UIKj}4#V67%Q#s-YG$AZHYW@w&pf9313GlP^`x zy~ljG&ThZ{rWlgA;+E6D+FkiE<#Z3m{%!s=u;0WeDS7f14nHB&H0pKQEA|aNC22N* z7G6iFag3~6f6Wo9L%1kNIF2+Vn7wxlW^IJEh2@i=`9EMi2&wrye9 z(;2%@pX%haw$X+im1iC>i9B}u`0-2 z4xfn;G|nk1uRqDTmPBGTB%)Jk4jy}1zGzS=96rP#uFC;-4L{WGw#?8_X@?~`i0_!m z!=}V3%{Xj(b9VD$*PYa)J10gA6tOM-|XgH%sMIu+%to0|+YH$BinggycwA8Vv=Ll}W+^`Kq zfOsXa87sO?PM$2qaWB{D`CI*+1$E$X+|sAhf7IfKKKiaxRZ|<0N8@pzwe{ovI93ml^UtONy7}O4Oyf=<`m%~1dWJ`IQSh2B+vRwT`krFO+^Gf zLOFX&+?xt-QtXa^Z`k9dxfauACMb1vwoedXb+ zv}LMXi=AmVY>0Y3^dsDRfFQ7gMDl$C1VNK8l~q+xf>t~k!`u?sH>bj0Iym1#a^`0R zQkPk;)ao{$ZyJ9UhEB&Hhe1>AvZcY4ho66wlURHx*3>sW(l-smrVpuI8F zwN>U(@g1BXb+*`7;I(0(F&xFX;G|h4%NfEEuDoJ%W>`6(fiER*?ATRGp{*!wALftE z=RU8yyuOeZ;uy=nHEx>~z9b;=cL}^&vw_g-jbpvg#xs%IRrEVp#Y=OH96EH!@R6I$ z=^H=6f@s!PQ&O@3kMT8ciJYQhC(pYf@O4&T14op)LRN#9Q3>X_eWHy1vS@&^w6LH6s03yVCtEAd92J}+5cNe9Qnu}DL6&_s+i`ISY%aait)Ao zka>S12G&L2aDF>b-BTIu$;5ZJr0#*Kca!5-BW%|`m#IQbGW2DC$@tV1Aau-y+6P}-gPmr?6|V}UWWhjh{w6&i>UApy53i>ULiL@jpw~z{blr+#haQJY_$Htx0+oy z;ZOkrk$;@NB8@9nxaL8+kLo#D&*11zP(}tra*EsxO{3X1)xGld@`C zm%Md3)gbT8R$yr`QEO0d+*p)4I>BC4t7oaAuO@D9;1*ih8J zBysd8XR$!*tBckO$A4d7aJ7mG6#E5d*vLlNbZA)Uy zQ|F6LI|9vb8IIoCo~dego6)SWyf$_7^6M~WL{xv9p6;=Ee+Odo>6-^yCxz^5wtErQ zRP_%p_t$9I7xf0R4~twZ4RvHySG%X$(5qn7cw?(_N-A}PSv!5xyCU{uu4~;`gbw!& ztz?-OYe{NvOzLL;=GKyNnKMsfp8u8jM~%hWxU+I!xk|2@8;ex%EMG~W2w?_rxqiMY zbZuzpU?9hQN61;d_>W(SL6Kp8vWMiP0Tf6{l$H!3uyhQXbrIWVTF)=~gm9!69BqVKb<(z=S78H422kePs zu5f6>Uvc zU3xXRZp65Qa#PdqrZ2qBsAHFur5#Lcxny&?XYETXS7TmB&XmD^Q^5o3mIl+Q=kF&w z+(v>J=(1{Ijf(|5e#_|f-)H`um(jOs#3v*?ekCtj)DmMWmP z?a#~DJK7G=ehn74d%Vn&{#YwaiQ!hzokVg$Vi@4I=gI8qaSr#09}9fv;klLZ_jlQCwkGpz?RKN^l{4EvsHjx6(b0SM<1Y5Ja z>o4i01ta4Qr;6=qew?lfPRTrlMd3nGarD2IYUfNehnYF|zu!l$GM~6X0-;c&s<)&q zwHq>HU_RC=4_YFpxKD23@ilh~P<^9gRh~~9^l?a~((C^J-oi69YRVlpH9RyVce4d; z9}_vT2B68AF3h@JCVWWqnQg{9)F;?SkBZX+^-%`uQ>p2`Mc@V40jYgd4La zZWv&ZGQEdP^$ln+2%}Ts?wwI5BDc`gQD@>GZ3s1g{xd31n=jOUsfTf&9Fp%G`=sXt z%;fo{<(CC#^w3OQZ}UC2mwekwPHBBF*lhcH^YUWXHJZ0TxAzLQnqlNhH7+x~)>khe zm}%MlxK1Q#nEQLE`R|Rpg}*<0?Us~O`ryzEZw=cq!2nin(M=MU{n|_K#9c9BpLauu zk{6u2>_Fln%62Xo?`?fbGE)256kZr$7NHz##Hx|z0DkUoy(#JV_rW(Ed% z?U39=!Acj-`y#o&H(3pIaJ+OnLu-zhU^QgDY`Ej2Q2GP}{R@74UcL294}Fd9r0V7G zjbBY}zVEu6-AZp%s3xqrj*j7cJ2%SfGZs5*?Cr$u6-hJw@kTe<2B_B=YVPs*)GcW< z`O`4-Ghy#g`}OM-PBdKypj;+$w9BZdUK1V~yQnexDaY|-hem?br@XwQ4k23`!=l&5 zFXm;Jh`j7zJ;kXh(OkTqw0R#4`rcMQI=$nAmiTrQMezIBZ+S`DsYLe{GdmK6{9I(R zEfyZrEF+&90XEXl-+d8t#9`w@v8j*E-ED6(#?fi7GewN~$iP_9SDs=8fE25 z2ncEkKmAMdaAWmvY$)1ld39P&(xzSaQm(EVXu3qZ`iRXE=9H5fnIF1uj(=5V!z!@G zF+29W5>QO#w%cdYxW8a+wvJ`n_E=6CPK8)vl6Ly}1sLsc5j){RG;AM`l&sr2cGJO1c&}b{uGr zH8H4e)M&7~c=LWb1>>d)^(vpZD;%7bXFn8Z^oCKt-UZ;{nT2F#l$BXUdFAwIlqS;- zDe84e7fQN&?`GN6X6}g-eZ4=`TjMM|uEyDSt@kGj-t|u>tT4=#3Xdp_e0_#otH8s> z_(w3ID-TfA_e69@Daw;Ecr)<4hnL#c+RY6GvG-T5oO6;vtGzxDT^D$0CH(&PqxKKv z8%O?wyR7L@v6)1^9TiH9B6n{BYxHjys}gx`+vAt=XPe!bqo#u$<<1DD7bsUp# zOaqMxnh3#o9bR&mkD63}^C+|3g&Y?;Xu6fBh!YvmF3=~D==)%hblsX~YZ?fFzq%${XtUJ(L3Nl-)##qXM6cycBds%3r1a;6EP&)+ z@|`_%9R2W8GRIyO1NsbXRpbF^>(t=rt$0E(A!tR##74dlexN2?nC^TGaB!Vpi5zGh zC?|I%ul=v3i6YHuANt0^@F zBGq{HvL&nfF(?2Q{KYvH6%{$`*}_EmoOtX#G>e2WqMRTr4g{!(Uc$-&EX0tIX2i&> zseZ9N+#oj}$iCU~1vwDc=VS6D`$#ZnS?0r+j)3la!J=Wgn6EgKz%ZM5T1#~@uzFaA z^m)U=+IfPpbSuDm&_7QhsQ+dV?`C7WT`-quSTW7Gnpu1t zL)#wVQWv}qNfMK=tU){Xy(k&3d2aA<{3pG*{P}Uvi$yJW&#lFbI<M_2X8qT}#WLB=x$_@A=X=P@3CN?0#BKMbUMG_!(I+?A5D& z*b-?Wt2%9<2}I`V3X?eWCuSK*uNOYd^aGA5IK`TfO79XCYs3H3+LedJxWE0U5luNQ zgi?|$m5wE%v?+D8pq&<^IF^wTN{hBh5hqg|OPjQjN>SR5wkee4w4v0bg*H^uzE1Og zCg(NzUGMU{-s|;;t8Jcn=J_u7_r5>N{lsiafk=h(5F9fdNRi?%1+Nn>4#3{~qqwMR zr#%i)&f}&w<@J~S`maBW=B1h=u2D$Q2B{O$(U3~8{6;#|2LfyaX#(^Ih+!JcsiDSe z1JXt+sjake@ptX~g-tOtUeznz66ZR6MQpzMMzzB)M|lLxqYgZ_uc*lk{G>!%t<_go znktyxRvO`J4dzJ7F826nM%X?wD1>9vpHW6j=5Mssea$ld@NPUNQ+v*wRjf+?E{jK{ zX4FW~Nq+o&hyihy5ElOEBdO5#@z;UxBxE|h^J^bHDF1X%xZ1qB6`Q!K%BFeS8N4p_ z+$$@?$0j@iY7WPXg?P3L9x;`ackN&4zC2YIANJ-ykEQz&Z|SR7;`7B!v&tr&h>x)N zTP!+Q9kkzF<$8rp(lza>j+vh|o&AKo2QPWhnt4v$j|%pib4Pn0?T?`7#cleVZ%@YB z6%I5Qd0DM`M9tziATl<7ACvQuo4Js7rfJ7sF&gacS8C?2sx19>byBeDy3C%$2ao77 zM@Fd6d+64a+pJp)d@J9_X!C&A36SvC&6}5b%`N_$YU08ko!0#zAE)5NGW}4G85B<5 zxN$F-rf`z<=>?cty0;A7PBp!~-=@FkR{oGX>vO}Q&U|6@&Xi2aB_bC8peRSD3C)T^ zl9Kd8#ebmPo=FcKrog7Auc2^jTlp97&!2?8RDImG%(+!SbIq9R_}KgQUZ>0tpSi>W zl{0!mKWMk<)9@gYD$^aG|6Q+c*Q7d9(I|Z5?WgTrX}rr&?>~9+q`fBxky-8W9g(rT zt@yI6>^GwC&{Zz(54z%}^I>jIyGv^3|(>p&{Dk%Q4%5YJ)3L z@DkSPUY?$A(i3aXwfOSX?QL&+!lLKr^8fK=#{eO)U_M!nZ;m_f9R1r=zULvb55y1~$M71tkoHRHH z=V&SQxn0gH$z03AQVUjaQ|B*P!~NU#3J0;tK+PN-7H`mbE-l z`c;-IHLCsdi%dzrzkcE8YHV!WeZ)!?E`mrCcc(fw=D-AEA>h&R&r(P}!5@j;b2Qx@ zcvmug+Jiq8yEo*{$oJoNv;uOWoN{tfSPS_c=o3|n^?TPgM22lXVgCE?aW!tOHwalC z%Qd%P>j$m;amlZuLL|+N2fcL3#HuZpQ`uzFxBuQKMyb$pxZ>V~5r!~olw9f4ZVF#x*G!{U$-wSN^t$&KC$qo(;A)2Ns-s7@P zJJzi>Tlw@yZlCqO!FO+@Licj+z}CMht#=U&a4x_}6YdOe9*MJl8Xj;V{%#(h+rTaV zCtbKoW3-2QCHwWDc)roPl7)=sW)?_F$!r&6yd5YI$&GK{E)W$hWx%>Dqm;2X=YA;M zbBFgn#UsE-q$^6YErix@w!NZQ0nR)_`BvXtDPpB?t*bv_eBSQ@)x$@|w%)WsNd75Z zIQ2}C8sofo+{nw~zfN7eZ~-L3*OL)nKooZx)3aM+nHr6!n47B#^wQ@Zh$qm-MW{41 zG{BqF9Bpb|q|eb7+z?R?qU7$WeS7z!uK*(YT?uzo$HWxm<)giBRF|N<2uut5Ehk_a zyu#8H$&Wuz&%Z`QW?7^p)vYa9Q#fVhe&%D6$gSYX^>f71gh`;XEMLAH@?2T2C0ji$ z#YvRYGx zt@g}Oo-tep$jdNsx_rj3-|<^f&ZWNH>QVAJsYd%+N4-V-vSs&V)U~`E_%AdHp%d&YMNs~87j1-E8gLBc%^?6rA{+ulKy&WHWd&;JB6VvWp z{bV*eb?<#L7)9x^wB{jxpUrun-vfxQmXX=$Plc`yY%2n^-l0;7aRY}hF;mq(B1DM< z=WPTep{3<~sAb&Lbk3Tl3K11^eq5NOMQjo0ymA2vg^g!wM5nR2`Nbb=OiHkqn|l4< zyabu6#s2^F-ao%k?S_ysbcU>R=-ZbWsjjXLyJ`3*z8Pz2 z!fWBsp+kT>vlM`xYG_2o7J>|&jczViuSQ$Xl{e?yRvj8h< z=pAwX{CUhx*qtVpPb8-2=0;=!aY1Ywm7{L(|M4`6WVwxNe7+P`Zp}4)=an1cZPp;m z1MjuFckddnK+{VF1vC0NV-F7x3MHXH#C8oH|KX?OK|;h1c|NX96D+S*_X0hKFV)Gc zpyETk0sOFqqL|||*lmYLCW?kXs45p5ht$#1uF}LJM0;G3PrVk zEF{|nB%Lz`nr3Fgxht=Z7{7$f(EjAfqk+&mH6y2uni`bZO4$A_HS=@S&hu0)v{&rx z==h=nOdL5);%T5}XhGDcNko%5H{qg1^;#6TYWeb5KydGx>+2UUg>w<`EMevB2D6akhcp(mZ( zOXiB^_9sp$a!vzFcaXs)kM_w&P-j&5`f{b$FA)-I>FIIU7zSIgj1ycXd_P|6A26Q; zC=T|7s3K-YX0)TUH9R=zjQZl;yUCC&=Pt5M<_vYJFzF&Qy=d3YopW>jG~thv>CSp% zq~V1{ssn_-kSG|4vd>wC_dVYRBC?Bvwpw%R(j{_I zU(OU*gP^MHZFu)C+kN0D`XZn$>mPGrpjA!d78RZ`+*`PbD`uSUg-C_$qG&f!AJQa<^k zGcQPVkqabj6(b;(I~xh}ECl)-!JmES^7aUUf~)y{_Kw?q382J41Lj z{`@Td*WD-e74vI|_pihm&TfNQLx=`*Zs+Gg|CiZvfeP}VykMa+TAy()QTj}ktL5;& zd5NE+_5U>C{^h;3sLKn$v-J{D6XUFa!xxDVllSTgxw#$y3;+f}?rlk-P#|%!un@69 zCM9WrdJuqE`#$#O1qZS#4MT>l?@Ja zbz;>BqrG1pNs9h;X@|PhnEZTejZZO;oeY{eq~N3Ce^rAZ%Zb*PFW_H{9``&^9XPao|6z2O^6IK(}!w_4#XLp zF;7oVV`HK6o;%Q;!~0W_Dk5rK^k&`B!-q%5#tgt9>=@5jUCSm&96oZSZv)cf%k}nI z0{L+p*1{Fg4t7eOqGwH4MF0~5jph|!a&v{@QWfV*!v`4|$LVOz=XB;w{I0NAujm?E znM`M%QlubW6Fu3UX(=hRJH>WRErT+1W}b8kB#>nE@^Z&!GToc59`fh%|NT!{yf!k=4ovSJXSE zAoM@Zd`e3n@du0z{ghtiQ8!)rgGOn0J9PHPT)G zOysy3s=m=W08ByZ`E)Zf{?FZcvq+>mVmSPv!>2`X4Fjx;;u@o&0bU$>4z-et7uUaj z-T!RXoXv`g6=4binVI76A0L@pzGiHBO6(yg6vtqg@tCh@yr;VjRZvwG6m+(`O zfO`{0+C@Q0YuFED!4!&tzdew><$#2JNIX)uv6}Ynwk412QN*#q=0+qHDl*PT*DQJk zGi@Y?8G@ah=YcKC<_@#aG3v7jD|bcLZULsiIi(^+p4%EecjUMt#u^K}R9CLNo0zDt zbg>pjd5^QQLYeYf>3Zqe6%~d}Xo_xM8~t*5ZyV(mWF=cpoKQ-bSVJ|p&T})#Ep51c zQik16GTqQ_;M<07!=UF7r$GgBTpC(IJGt%fZftvyp{mo9lcUlw{c#83U6MA8igbMA zZU=`RFR$g%UiMg>7u3SvpQ!cGbuB?l*$RepPC`O@RyBsbkzC2Ezhg&PdHE5CI2wGY zP0qD4wK$9Zik2p2+tbQm){7^P z`X8`-J`Gv#d*;mF7#kcM95~0|xs}ERDl&Y@rSg}K`aTuX6t6b?_4v) z@Q(L+Uc2_@WcuY$G!-KcDC z8!41RMDchSq$-CKp;^D|XSb6wP0MC#`XWjzA@_JU1|3KGPN8INrB9umu4vC&K-s+| zpiw_As~YnS759vH}G*ADlifqKzkNJ`R@GLzizCOAilKdd10=&PFjuIB7A676f?k$~OcdBF|Gj7l9Qe31=z?1;6Fl})uRBK63tEChnw z8TjnA`h{DO3OYuNx;i~oO`cM^DaAR~+2~;B?bK_iiNRCoqTg2UR30v!HTv7bCEm$& zmdgSwK}0!Debbk0hWhUrTfBtI-;L?c(vjIQvcRQ+SN!BVwi#g`Ox6P#z3X<97 zy-|mMO6Cf;?6I~s5H|CA^d{QfNl%Y#gMG1JIBrnacTf9iZq6)jy+CL=6+!s>#Y4gZ zfKqw!aZ)3=5ojs_Z0E7J3NP&bv|nuXBy$nN-%EKoY_|lA9OGILKj9kq<6!*%b_8Fh zz+HFXzWNTpb)N&*7nCy4={vSKrYm5BTl=UwNWkdez(_qfYr@YfxB_CW13t_llvo4> zgHb~R*3%d9UM>0hv!K!}{w18V#AyjqhAV%3iC3e-I~8Z21T}Oa>(g+bxD>i89;Us` zdG6QkSZuHbwr^%;Lw-8Cu7667E4vb$9l6_|TK1^G?d!V;nRe#x(PMsz7iZ6z(@$?Q zLQ^vo;(8%1uc`t!R64I#no@>q!Mv}^ zwEGgnBO^9h_F-qg-Jv&oPptLP+qX}go-5d}I3#AYG3YN6zD}9${q@Yk2{)F?NJRs04qOu0i|-~ zEnB=W2@c!{!>EN04-Z3qZW=L^PM>9z-ub;Wo>swDH718=hQVRazSp09vFg>tjrz9TzJf#D<;b@i&IUwz6|aIKI;X1J=i*iVOj8jWV&N}FpGSp8(S z0B4$-kVA)>Dl@X@H|?>u_4xGzb_27shtofxEjNJsx~9gP(=mQH6^T*?)FOF4U~MID zyWRq?);@2Y2`d6-ejYYaWQuFtg9m{meuJ-@yXbMM{xGsmcfr}{`G{+Q67I{!!s5k5 zWu&TznAn#OAJRC{-nnxnxJ78PkV#Wqr?yt7bJ3QWX;w?0I?Ouc0s^S{$A%}q$FWsA zZ!K83(8Moko=pz0WWGa1EIGo|?A~oOY{T=L z`t3)Zep0~Ayj2_3MB5&A;a*tgaaQ#mvxsKlV6?)8$0=~3KmId3lq;}gE;&EYa9+5J6^_ArKr zUA!Y3_3Bn%brFaGRXy{#1&%pZ4V22WM%!}l=idVUbByhNRj#{e!Gdo)`9C~MWc+yImft>rl{W}Jgq~CQ0y<&yU&8dkr&WW1=YwV_j?~VxqjW>F#h}@ zCD&tQ-6|?52mMo6Cf(ik;dW-qm1Sjn(+SZBCFhrPu8sRucE zDk@q!pExn?KKxFWFMkR)VOb~o5jkiR6DK2PMm0I_#6+0?6=W2ltbv+iEffse5ocUo zkA3z%3$uXFE_W6o#y{*ic!e*%eIX-fSo;k6YHVVxZDy|b(Qas*_Ex_S8f8348L*0qXQN!Oj)LhF+F}c z_b(hI<>@Ftmw!hQTPx&XhiNQm&H9#TV>XX;@u!kcOH*!*yx}KStMUfUu*E?F+B)yY z#y?$4L~omiQ$Dk(y87Suzy&1m3?BG|ai20q@ze*tbwez1LT$(Q@^3;)iaLVw)Xn*Y z^GrwpkR}_Nr{Y=7M2pG%X`rVV;xnJwE!<#zvS9Jn#o{5{o=+ojFk$JN4w4|nwN9@! zf*@YVu&bK*BFKpS_V{8+6dUKn7hASYKNLuNJg48AAX-NM%?k}lwZLKR?lwe=9B*7o zl)jZU>6Fxq0}8{?i#&?xO{s!UkGQo4etX3R6rz#-{_!pwR#MN~0AeHL#E6#~lOF_a z@cY6oXiQXuP+w~L^Px(Ne=(^b literal 0 HcmV?d00001 diff --git a/localization/ar/command/README.md b/localization/ar/command/README.md new file mode 100644 index 000000000000..af20644ab502 --- /dev/null +++ b/localization/ar/command/README.md @@ -0,0 +1,245 @@ +--- +title: Command +shortTitle: Command +category: Behavioral +language: ar +tag: + - Gang of Four +--- + +## أيضًا يعرف بـ + +* إجراء +* معاملة + +## الهدف + +يُغلف نمط التصميم Command الطلب ككائن، مما يسمح بتمرير العملاء مع قوائم الانتظار، الطلبات، والعمليات. كما يدعم أيضًا التراجع عن العمليات. + +## الشرح + +### مثال واقعي + +> يوجد ساحر يلقي تعويذات على عفريت. يتم تنفيذ التعويذات على العفريت واحدة تلو الأخرى. التعويذة الأولى تصغر العفريت والتعويذة الثانية تجعله غير مرئي. بعد ذلك، يقوم الساحر بالتراجع عن التعويذات واحدة تلو الأخرى. كل تعويذة هي كائن أمر يمكن التراجع عنها. + +### بكلمات بسيطة: + +> تخزين الطلبات ككائنات أمر يسمح بتنفيذ الإجراء أو التراجع عنه في وقت لاحق. + +### تقول ويكيبيديا: + +> في البرمجة الكائنية التوجه، نمط الأمر هو نمط تصميم سلوكي حيث يتم استخدام كائن لتغليف كافة المعلومات اللازمة لتنفيذ إجراء أو تحفيز حدث في وقت لاحق. + +### مثال برمجي + +إليك الكود البرمجي مع الساحر `Wizard` والعفريت `Goblin`. دعونا نبدأ بفئة الساحر `Wizard`. + + +```java + +@Slf4j +public class Wizard { + + private final Deque undoStack = new LinkedList<>(); + private final Deque redoStack = new LinkedList<>(); + + public Wizard() { + } + + public void castSpell(Runnable runnable) { + runnable.run(); + undoStack.offerLast(runnable); + } + + public void undoLastSpell() { + if (!undoStack.isEmpty()) { + var previousSpell = undoStack.pollLast(); + redoStack.offerLast(previousSpell); + previousSpell.run(); + } + } + + public void redoLastSpell() { + if (!redoStack.isEmpty()) { + var previousSpell = redoStack.pollLast(); + undoStack.offerLast(previousSpell); + previousSpell.run(); + } + } + + @Override + public String toString() { + return "Wizard"; + } +} +``` + +### التالي، لدينا العفريت `Goblin` الذي هو الهدف `Target` للتعويذات. + + +```java + +@Slf4j +public abstract class Target { + + private Size size; + + private Visibility visibility; + + public Size getSize() { + return size; + } + + public void setSize(Size size) { + this.size = size; + } + + public Visibility getVisibility() { + return visibility; + } + + public void setVisibility(Visibility visibility) { + this.visibility = visibility; + } + + @Override + public abstract String toString(); + + public void printStatus() { + LOGGER.info("{}, [size={}] [visibility={}]", this, getSize(), getVisibility()); + } +} + +public class Goblin extends Target { + + public Goblin() { + setSize(Size.NORMAL); + setVisibility(Visibility.VISIBLE); + } + + @Override + public String toString() { + return "Goblin"; + } + + public void changeSize() { + var oldSize = getSize() == Size.NORMAL ? Size.SMALL : Size.NORMAL; + setSize(oldSize); + } + + public void changeVisibility() { + var visible = getVisibility() == Visibility.INVISIBLE + ? Visibility.VISIBLE : Visibility.INVISIBLE; + setVisibility(visible); + } +} +``` + +### أخيرًا، لدينا الساحر في الدالة الرئيسية وهو يلقي التعويذات. + + +```java +public static void main(String[]args){ + var wizard=new Wizard(); + var goblin=new Goblin(); + + // casts shrink/unshrink spell + wizard.castSpell(goblin::changeSize); + + // casts visible/invisible spell + wizard.castSpell(goblin::changeVisibility); + + // undo and redo casts + wizard.undoLastSpell(); + wizard.redoLastSpell(); +``` + +### هذا هو المثال قيد التنفيذ. + + +```java +var wizard=new Wizard(); + var goblin=new Goblin(); + + goblin.printStatus(); + wizard.castSpell(goblin::changeSize); + goblin.printStatus(); + + wizard.castSpell(goblin::changeVisibility); + goblin.printStatus(); + + wizard.undoLastSpell(); + goblin.printStatus(); + + wizard.undoLastSpell(); + goblin.printStatus(); + + wizard.redoLastSpell(); + goblin.printStatus(); + + wizard.redoLastSpell(); + goblin.printStatus(); +``` + +### إليك مخرجات البرنامج: + + +```java +Goblin,[size=normal][visibility=visible] + Goblin,[size=small][visibility=visible] + Goblin,[size=small][visibility=invisible] + Goblin,[size=small][visibility=visible] + Goblin,[size=normal][visibility=visible] + Goblin,[size=small][visibility=visible] + Goblin,[size=small][visibility=invisible] +``` + +## تطبيق + +استخدم نمط الأمر (Command) في الحالات التالية: + +* لتحديد كائنات باستخدام إجراء لتنفيذه. يمكنك التعبير عن هذه التحديدات باستخدام لغة إجراء مع دالة رد اتصال، أي دالة يتم تسجيلها في مكان ما ليتم استدعاؤها في وقت لاحق. الأوامر هي بديل موجه للكائنات لردود الاتصال. +* لتحديد، وضع في طابور وتنفيذ الطلبات في أوقات مختلفة. يمكن أن يكون لكائن الأمر حياة مستقلة عن الطلب الأصلي. إذا كان يمكن تمثيل مستلم الطلب بطريقة مستقلة عن مساحة العناوين، فيمكنك نقل كائن الأمر للطلب إلى عملية مختلفة وتنفيذ الطلب هناك. +* دعم الإلغاء. يمكن لعملية تنفيذ الأمر تخزين الحالة لإلغاء تأثيراتها في نفس الأمر. يجب أن تحتوي واجهة الأمر على عملية إضافية لإلغاء التنفيذ التي تعيد تأثيرات استدعاء سابق لتنفيذ. يتم تخزين الأوامر التي تم تنفيذها في قائمة تاريخ. يمكن تحقيق وظيفة التراجع وإعادة التنفيذ بشكل غير محدود من خلال استعراض هذه القائمة للأمام والخلف عن طريق استدعاء إلغاء التنفيذ والتنفيذ، على التوالي. +* دعم تسجيل التغييرات بحيث يمكن تطبيقها مرة أخرى في حال حدوث عطل في النظام. من خلال إضافة عمليات تحميل وتخزين إلى واجهة الأوامر، يمكنك الاحتفاظ بسجل مستمر للتغييرات. يتطلب استعادة العطل إعادة تحميل الأوامر المسجلة من القرص وتنفيذها مرة أخرى باستخدام عملية التنفيذ. +* هيكلة النظام حول عمليات عالية المستوى مبنية على عمليات بدائية. هذه الهيكلة شائعة في أنظمة المعلومات التي تدعم المعاملات. المعاملة تحتوي على مجموعة من التغييرات في البيانات. يوفر نمط الأمر طريقة لنمذجة المعاملات. تحتوي الأوامر على واجهة مشتركة تسمح باستدعاء جميع المعاملات بنفس الطريقة. كما يسهل النمط توسيع النظام مع معاملات جديدة. +* الحفاظ على سجل من الطلبات. +* تنفيذ وظيفة رد الاتصال. +* تنفيذ وظيفة التراجع. + +## الاستخدامات المعروفة + +* الأزرار في واجهة المستخدم الرسومية وعناصر القائمة في تطبيقات سطح المكتب. +* العمليات في أنظمة قواعد البيانات والأنظمة المعاملاتية التي تدعم التراجع (rollback). +* تسجيل الماكرو في التطبيقات مثل محرري النصوص وجداول البيانات. +* [java.lang.Runnable](http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html) +* [org.junit.runners.model.Statement](https://github.com/junit-team/junit4/blob/master/src/main/java/org/junit/runners/model/Statement.java) +* [Netflix Hystrix](https://github.com/Netflix/Hystrix/wiki) +* [javax.swing.Action](http://docs.oracle.com/javase/8/docs/api/javax/swing/Action.html) + +## العواقب + +المزايا: + +* يفصل الكائن الذي يستدعي العملية عن الكائن الذي يعرف كيفية تنفيذها. +* من السهل إضافة أوامر جديدة، لأنه لا يتعين عليك تغيير الفئات الموجودة. +* يمكنك تجميع مجموعة من الأوامر في أمر مركب. + +العيوب: + +* يزيد عدد الفئات لكل أمر فردي. +* قد يعقد التصميم عند إضافة طبقات متعددة بين المرسلين والمستلمين. + +## الأنماط ذات الصلة + +* [Composite](https://java-design-patterns.com/patterns/composite/): يمكن تجميع الأوامر باستخدام نمط المركب لإنشاء أوامر كبيرة. +* [Memento](https://java-design-patterns.com/patterns/memento/): يمكن استخدامه لتنفيذ آليات التراجع. +* [Observer](https://java-design-patterns.com/patterns/observer/): يمكن ملاحظة النمط لتغييرات التي تفعّل الأوامر. + +## المصادر + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=f27d2644fbe5026ea448791a8ad09c94) +* [Pattern-Oriented Software Architecture, Volume 1: A System of Patterns](https://amzn.to/3PFUqSY) diff --git a/localization/ar/command/etc/command.png b/localization/ar/command/etc/command.png new file mode 100644 index 0000000000000000000000000000000000000000..0f026464ecc4ad0218a06f388d259368f971d1d2 GIT binary patch literal 51106 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 %d-|A2TNuh`Ty%@a2^Oz=yM-`RNka~xT) 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 تخيل أنك تنظم مهرجان موسيقي دولي كبير، حيث من المقرر أن تؤدي عدة فرق من جميع أنحاء العالم. وصول كل فرقة، واختبار الصوت، والأداء، كل منها يعد معاملة فردية في نظام موزع. يتصرف منظم المهرجان كـ "منسق"، منسقًا هذه المعاملات لضمان أنه إذا تأخر طيران إحدى الفرق (مثل فشل المعاملة)، فهناك خطة احتياطية مثل إعادة جدولة أو تبادل الفترات الزمنية مع فرقة أخرى (إجراءات تعويضية)، للحفاظ على سير البرنامج العام. تعكس هذه الإعدادات نمط المنسق في المعاملات الموزعة، حيث يجب تنسيق العديد من المكونات لتحقيق نتيجة مرضية رغم الفشل الفردي. + +بكلمات بسيطة + +> يقوم نمط "المنسق" بتحويل الطلب إلى كائن مستقل، مما يسمح بمعلمة الأوامر، ووضع الإجراءات في طابور، وتنفيذ عمليات التراجع. + +**مثال برمجي** + +إدارة المعاملات عبر خدمات مختلفة في نظام موزع، مثل منصة للتجارة الإلكترونية تحتوي على خدمات منفصلة للدفع والشحن، تتطلب تنسيقًا دقيقًا لتجنب المشكلات. عندما يقدم المستخدم طلبًا ولكن خدمة واحدة (مثل الدفع) غير متوفرة بينما الخدمة الأخرى (مثل الشحن) جاهزة، نحتاج إلى حل قوي للتعامل مع هذا التفاوت. + +إحدى الاستراتيجيات لحل هذه المشكلة هي استخدام مكون منسق لتنظيم العملية. في البداية، تتم معالجة الطلب من قبل الخدمة المتاحة (الشحن في هذه الحالة). ثم يحاول المنسق مزامنة الطلب مع الخدمة غير المتوفرة في ذلك الوقت (الدفع) من خلال تخزين تفاصيل الطلب في قاعدة بيانات أو وضعه في طابور للمعالجة في المستقبل. يجب أن يأخذ هذا النظام في الحسبان الفشل المحتمل عند إضافة الطلبات إلى الطابور. + +يحاول المنسق بشكل متكرر معالجة الطلبات في الطابور لضمان أن تعكس جميع الخدمات أخيرًا نفس بيانات المعاملة. يتضمن هذا العملية ضمان التكرارية، مما يعني أنه حتى إذا تم إجراء نفس طلب مزامنة الطلبات عدة مرات، فسيتم تنفيذه مرة واحدة فقط، مما يمنع المعاملات المكررة. الهدف هو تحقيق التناسق النهائي بين الخدمات، حيث تتزامن جميع الأنظمة بمرور الوقت على الرغم من الفشل أو التأخير الأولي. + +في الكود المقدم، يُستخدم نمط المنسق لإدارة المعاملات الموزعة عبر العديد من الخدمات (خدمة الدفع، خدمة الشحن، خدمة الرسائل، إدارة الموظفين). كل خدمة تحتوي على قاعدة بيانات خاصة بها ويمكن أن تُطلق استثناءات لمحاكاة الفشل. + +فئة المنسق هي الجزء المركزي من هذا النمط. تأخذ الفئة المنسق مثيلات لجميع الخدمات وقواعد بياناتها، جنبًا إلى جنب مع بعض معلمات التكوين. تُستخدم دالة placeOrder في فئة المنسق لتنفيذ الطلب، مما يتطلب التفاعل مع جميع الخدمات. + + +```java +public class Commander { + // ... constructor and other methods ... + + public void placeOrder(Order order) { + // ... implementation ... + } +} +``` + +تمثل الفئات "المستخدم" و "الطلب" مستخدمًا وطلبًا على التوالي. يتم إجراء الطلب بواسطة المستخدم. + + +```java +public class User { + // ... constructor and other methods ... +} + +public class Order { + // ... constructor and other methods ... +} +``` + +كل خدمة (على سبيل المثال، خدمة الدفع، خدمة الشحن، خدمة الرسائل، إدارة الموظفين) لديها قاعدة بيانات خاصة بها ويمكن أن تُطلق استثناءات لمحاكاة الأعطال. على سبيل المثال، قد تقوم خدمة الدفع بإطلاق استثناء DatabaseUnavailableException إذا كانت قاعدة بياناتها غير متاحة. + + +```java +public class PaymentService { + // ... constructor and other methods ... +} +``` + +تمثل الفئات DatabaseUnavailableException و ItemUnavailableException و ShippingNotPossibleException أنواعًا مختلفة من الاستثناءات التي قد تحدث. + + +```java +public class DatabaseUnavailableException extends Exception { + // ... constructor and other methods ... +} + +public class ItemUnavailableException extends Exception { + // ... constructor and other methods ... +} + +public class ShippingNotPossibleException extends Exception { + // ... constructor and other methods ... +} +``` + +في الطريقة الرئيسية لكل فئة (AppQueueFailCases و AppShippingFailCases)، يتم محاكاة سيناريوهات مختلفة عن طريق إنشاء مثيلات من فئة Commander مع تكوينات مختلفة واستدعاء طريقة placeOrder. + +## مخطط الفئات + +![alt text](./etc/commander.urm.png "مخطط فئة Commander") + +## قابلية التطبيق + +استخدم نمط Commander للمعاملات الموزعة عندما: + +* تحتاج إلى ضمان اتساق البيانات بين الخدمات الموزعة في حالة حدوث فشل جزئي في النظام. +* تشمل المعاملات عدة خدمات ميكروسيرفيس أو مكونات موزعة تتطلب commit أو rollback منسق. +* تقوم بتنفيذ معاملات طويلة الأجل تتطلب إجراءات تعويضية للإلغاء. + +## الاستخدامات المعروفة + +* بروتوكولات Two-Phase Commit (2PC): التنسيق بين commit أو rollback عبر قواعد البيانات أو الخدمات الموزعة. +* تنفيذات نمط Saga: إدارة عمليات الأعمال طويلة الأجل التي تشمل العديد من الميكروسيرفيس، مع وجود إجراء تعويضي لكل خطوة للإلغاء. +* المعاملات الموزعة في بنية الميكروسيرفيس: تنسيق العمليات المعقدة بين الميكروسيرفيس مع الحفاظ على تكامل البيانات واتساقها. + +## العواقب + +الفوائد: + +* يوفر آلية واضحة لإدارة المعاملات الموزعة المعقدة، مما يحسن موثوقية النظام. +* يسمح بتنفيذ المعاملات التعويضية، وهي ضرورية للحفاظ على التناسق في المعاملات طويلة الأجل. +* يسهل دمج الأنظمة المتجانسة في سياق المعاملات. + +العيوب: + +* يزيد من التعقيد، خاصة في حالات الفشل، بسبب الحاجة إلى آليات التراجع المنسقة. +* قد يؤثر على الأداء بسبب الحمل الزائد للتنسيق وفحوصات التناسق. +* قد تؤدي التنفيذات المعتمدة على Saga إلى زيادة التعقيد في فهم سير العملية التجارية العامة. + +## الأنماط المرتبطة + +[Nمط Saga](https://java-design-patterns.com/patterns/saga/): غالبًا ما يتم مناقشته مع نمط Commander للمعاملات الموزعة، مع التركيز على المعاملات طويلة الأجل مع إجراءات تعويضية. + +## الشكر + +* [المعاملات الموزعة: جبال الجليد في الميكروسيرفيس](https://www.grahamlea.com/2016/08/distributed-transactions-microservices-icebergs/) +* [أنماط الميكروسيرفيس: مع أمثلة في جافا](https://amzn.to/4axjnYW) +* [تصميم التطبيقات المعتمدة على البيانات: الأفكار الكبيرة وراء الأنظمة القابلة للاعتماد، القابلة للتوسع، والقابلة للصيانة](https://amzn.to/4axHwOV) +* [أنماط تكامل المؤسسات: تصميم وبناء ونشر حلول الرسائل](https://amzn.to/4aATcRe) diff --git a/localization/ar/commander/etc/commander.urm.png b/localization/ar/commander/etc/commander.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..6b5ebba75bd64a971924f4a3f8a2a89b7df905d7 GIT binary patch literal 322274 zcmeFZcUzO&^F17oM>&d!ihziK4Ui%TNN*O3bdcUbr1##5g(6*g3q)z5_uhgaAYHoD z7>Z~Ct`QvW65l&vpUXUapj`QtJj_IQ zlYcFiB{JQQE%<$nwQQl0ftvh=d$%Jh<_0Q%itVD?Bh`ofvoTFcD^ZJT$e%Z8%@bHe z)2TC>yA(cHcuz>v|S^%tUzQEWj#Fd@0TTK?37;EtNU>^+DowBjqTY+b^!`-SpPV zY)>75#tqWxKOz4RF2EQ`WN8hrtjHDX>He7UrSHmPn%%yrJWc*suX z;(oq?V&x;LEjqo=bfK6ai*J`{udT%1j6dgoN}G~!*Y0lg*aP_rZ!`7J>^PQ_TeoVC z`80~}vO~J;b0@-c*90_0)f=j4sX2F$%f8R~SugiACKJk7b6yDdRK3h^r|LH;u(Q3f zB6x?@UXH)Sg6~#So*pwx$5c{$aku5#aK`)K-`d$BdHYQ3>xs%er4(fW#|&y6B$dlI86NY_Hf zre&mD754R#a@uG3tqaT@&NRQ@$eDA}ofdz#noCSMOBbH5-e8lMr*18A)_Rp%b(>n+ zC~wD3ILum;da-*UHQBdQ*y_nbQ8A7|da`CcpT{A7HrXw5CatNdhb?mYnEp-cpcP8@ zPsOy1b!baoLAYXdWchEi?-`Yckn&3o;wCRSyF7Po4)F;}U7Sk^x3-@==9(6msY>xT z`!mqQw(Zh;Zt1n}VkS=!vo%=`*;_@Mcc;&sFY`To8~&4P{tBy^)9?kuD9m1TioZMY z^?^FhFJSdfQ|-mD)cKyfcA>1!&D1=+$(HZV*^Uuu0%O98o|@Uc{`1ebUgtlBv09*6 zLITq!F4u-Cev;@z)J(rn`SPL^{dFPt=f>zys`{TF^M8g6XEZe~+v)ivHW%aW2~^mk z($#tzUi(nK*mA#=ab0=uveenK1*7YCafhs?R~`X*AEc(lUd+@^U66iN`?)B*JE_|I z+|B-n>51((0w%__M^cZ!*=cr%1tF?9cZ%%flb*$lXUvR+TAVj+!`)r2OqMbl)~S8A zk*jks$IPpA*+|>N$vQtj z^s={~I0@7IL7iXwRQK8?$1P*(w~T|3-YBE!VXF7SFYAiiz82b8aa=m7>D&9D_>5sH zGkQGlPX-$An2VuU)B94V92C)%MVDThh)OYDpnid=5_i8*z-T?F{do*F%xaTs@c9n~ zVT{Ij?)*UjQY{7ANx#~Z6OiX<)Anj5XtnOq&J;Pu@`sgzZCtfrHvC&nGLK+G_1H+U zhv<(1i9&w3puBC)JNv&1P*+5a&q@EB%!>$n_{lC$xA2AKAMc0zOYhF#-1PpFPM@~s z@!Yebg~W&g@dVt(H<6q55Ag=)C35KMs9)GN2YOu;uVc}jEVJdak($&aPGIgB6P-+T z>*?g?T(5cYWJS?ln2->`<)o|kPrNLzM|*wtGWS@ofn<6=|14C+;$mtQwIO_yA&`I& z(k6W4`Tia*S2|?5c1k=4xBl8@1RBkzofnlHeR*AfD40`H}D#ltc zSU=ccwjj^j{n#RvEdKry&xsi7<@kog`I|^rJ*U_glqIo<)YH=`{$`n&;z7ZX>t}`B zFg3S8Rl#8{GsAtZTw|tFydnDXzI80mj02sdP#E=|rnY2uK^!%GFSDn}{Re6H<|Brs z3#d9J0Mo<61IC^X_MD)4cpf0Nml z&$AvBwAya(rv3+s_jrs6SX43!4 zJNbWumvF3So&u{Wq5jGoN=rF_cCJ z*sG_5()@vqJzh%ahg}XWx`+9E56KOfnTsTPS6U^c1mjSdwCS#}#~iQTzm(#I2=!?e zy%*d*BgZyeVy-V}$3h_QAaYXAHN1>AXUURp9?p{OSnYM*ic4-Pmx>&^X_nbdAIWnR zc3EJPq48H^c?ZoVg~Dc7^S$(i)n>sp!=9n(A+*qM`8nYb&fYUjl&H|}M4Vp+roDZ( zZ);#+V0)mC5I{T`fC7T`pT|2JjA*yXpaFIc#~HMdsu#7;`&TVsy=Oc0CDkT+%y|lrZrd@Mcaz**cA9)mcd|2${usu$R=kWZ_{3M~ zUg~tAQ}@Z2nbYI8>cib>v47tE*;sEH4>#v%RE6JgL|K#QK+&dzshSsTmqLx@+y#{%q3vGz|G&A)+Rc}!; ze6Gq?=Psjp4^G!q$s1 zaH+R0i}TdSK<9+PTseebn&SoIQ3<#v!Y-s=MzsjWF#;AwNNFwGhenNEweJ+e<`Hv;!%t%(SQw&`dpE)^J>=*92%ms+PdR_-`&A)deU zEc4z%J2gF`F7MHaB1Ge#RPkM8t&5g}&Kv`C?ch$?eX*WVmFXbrMKu{gtD7|GNg9J> z)a%X-a4%P#QO2CDfR!Nk9ktYLFGU?erkqLTt{^^HYitO4JAL#pK3l&%C{%siYo7{b zMUrazZ8k0$w&~qw=Bp%EJkXXB1igV6DG;#yNE}I1dQ|3){06{bmG; zSl}~x?m9k<=Ewe}K{@McK5&0Woms{l{CnDvF>v!uCpR5&rks-j)?hx_H4q0oommIM zD=ki@nO7PS2k%#q-p$s>CRu$w>(nJFkHSNg{+f6jKSrMTa6%N4BJ&TAvlG?g)}zr1 zkWE27&}CsXx7aW;)%A|&QE6gI{2J}G6Io`_oEjm7O8_)GeyzHo>VS`tsp5j)^zq&=yK7U9^62Gn0@UOG%IW96Dqv%~#U|&P(`!M@= zedMNe6qc{MrIy)2o+R9pU8^5RSyse*D*duEq>xMAl(4=Sb`iq<&mHP34;74=N+0jZ z@wM&kK2n#or%gZ{MP@+I(ZPVD#SBtzETj<^1Iv;n5lK0&r7=r26zhMqJ5)_Uc0kOI1Y zKp6dJL3`y)ou<+28gTADA=eZ9CcjlV71aFl_Vqtj}woh5!K(`xCyDjTAC_%~`* zj=o>d61|MUZ=}H~lUz6Xn1Z6M))8B6U5w@(@w%p({zIuB7N`D%n3!4r53Fk{#>kU` zgBJFEA8zzo)^5<#WJNn3d+XFltWL2~jcwt%{T~*6#CYv2nRfW)S0DBV`1uK0b|H-z z=PZ!njF)XUWF^i#T<+07z0A~G#Vr!7c}NNYZDj)NLU+PnkY^PCsP1e6HTP+m!+s=1 z!fz+0so}<-LN#rUSe_-vTC04fj|l#|Idu73755s6mQ0J!^QZD zMBzu$T~gksfk{Y3jq+%(-;r<2ahlPdAiqc{`GK=z4&Q`o3hJ5?(~*KF@CWVpaRVWS z>2=i^h*`S1wI3mK@>;(nv2r@5l8yez@9lkCqW8-MGH-JBDwOa;AYcA?`d^cN{a`M7`7b8&zHG5Rn(N?Hv*tSUd6Epb9qw>~~md*IQ z8snc(jd`_|LEX;=z;F=$;Q!rfuc*fmX7sMbZ?8`(=Cm(S{6^4b7X4HCQa2`#!NO3R zV@AYGjnO2YXM$CJUH|NCQL5j+l8GTH88Pxzn;GP#k292j+DP@|kAvZ?H2ina0c*ct z;6u*OOj(83bZ#Mj`bG!#0i)Lg|8t$G!OS3Qm8rsHSBI~S)S zAD#RFH+<*#FCh7Hk*%*+C1UMSg=U4*&aVR-1pDAHk9wOZb^e}|V?j4o7m~*l79KV% zNdqE3wM9~ZqfpzY-1m*pS*fEBSF=`&WxD7v#~PIxT5uA*dhp_G+&4W#qPkb@aD-R` zZSESUzd-zUDDw?|EHiSDlRDX;eag!X=*{Va9(d!ElVs9bZ2k_B)*8p9z7x~x@#P;R zrtru2{?wFW9~PPD=~z0vSJnadP_0(*+|UzzA$~nhVr3@j7I|4JVwQO z$T&kSziMVF{^0iY(2;doghPtdhOvOU-dUB_p-SQG#zW%{&D2$X#<~0-T5`wA9Hbzw z%Pe@(57pxEbDSx%ZeFq8A~-$I%?4@SQ~dO_IMK{;Rd*$-VtA#AtZjC=_;Vrr)^01k zK8IPxnNwSDp#TP@~wh*w?9k*w)#rI z*-jMr5Bi>Ef@NE;aj{@s_3C>OF~e{Qcb%!%y?4u%^xemARJ$L15`A-vac+>?={Bnmgf+V@G(tJ=Aa)^KZ2u5qWg!X}pa!9?Si5iJ!E zn|t)?@9aO30w&LgM4S<~*waX?V?{~e{z#gKQpT;RU!=>uxa_j{*2_KHT|cBH2hd91 z%n&G!eM?-1?c8zGTq?vcTn`Xb)wHg+-P&Q~$SBLGD|$=Zo*5M!S;`(kl_(M=eAS27 z9JO~(lG`GtSC zT_rQr3Ya3E#Fkn3*fRT+2bO-Zi7jeYrZje=A2{t`*5?>XdwHDOV2>c?LFi^G4zH#y)6GM z8p$@P5q0V)Uz6e*QttSa(2j2@%3mxO?P{&EORQ*kJ!Pu>~qW|r;AS=yGH0ei8hWc6VNqQkm+WepuJBEI|lXD$NJFI&%6=^-`OZru-&N(iLk zb$H~O>o)#dqffQ+L5$$~kY`);giS(sq+SR@rBKcSP@D|rxpiG$9~ZByejF^&fe(w; z{&^xLlJ!HnVrOYP6mQd123WV+1o!)t<_l!$;#Z$Zh~3kr7;(jO$ZEpfgc|~mFMQKd zbX!dqdo?LP*FBp1H?JdYabZ^aGZ$w`sQHli<3O{%u)76c)q!{c&V`)V-gljT9N(G=&D(zn8bF1I?)X$$}KRr%75f2GwveADGDi+DubC6f+buOANl$va=}#(0n!++>V>IPCY5w$zFcN7aU8=Vu_e=+<2^&zYd}452K5U1>q5 zI8oa_q4#&<0aC@zWRVFC1s#0m1$#=9^-&*3fz{Z$(*-So@DLRk%GV3#ZAgYFQGNmt z>;dt_V%@EOLQoPubr)xRWOaHePC3LVVSU>H7eYRQD@0B?%;tyENEVK{OsHp89i!s( zwzODrwJX`fyI*|rxl#c;8v%Lo^_uH|Kb||_5y{?!)7+KUbRJlap&Ola8pQmswaA+p zX;XDq8n*Ml3&SN=W|=bB3SKpgH89`#Ve(*@Fqjm)wUMCI3y0rn>D7GF?;*z0#HrX3 zS3R-T{p}BdWIXq)=5N6t?`k|rr)(6tzkDw57yjO{SFc#&p39Iw z=BcXZTic>RlWi~eej-Eth2;=Xujx|`z)2e4*nXsCPpT{HBn>pJ_wZS5zC{IozR4*D zW@#C#DHQPSFp@^3D(ua-9MpBibQ$|BjbSZ~rCWVXRrGx*ynKd?!S(PT? znQ!bI_9HF6d9UPUGA|zqwcCA{SnYJTb~N~SxPvny*LIQSUHT}1-q(pyBo?^V<;TaR z=r)gVf0aN^l#M1OZ4BG$c$FW%j@x&hc8Y1!IQ!{5`T!GXTU~U3+#K2o$eWHVGv+jo)VbCI_UVm3jE*vohb!`?^&cTjf>66+L3S%87 zLCEHI!z=IlOG-L_FbCDyaI`#0C~;2aJ7X$kiAuW&n3dS&4ZmZ4G>>7L|2hjLWvwWu z@E~+#>BmM}TI4YPds@3$tws-bN$P>t{-UY2kAwp~<7?*EF<*nUx%Cna)>QkmC$J>$ z=KnxN(v|;cGFqJ*PU4BpKTnNzOxBqv50f`WjO&$Jpc?BJG6*y z?ughn2dTQmSFQxA^>!_pE#G{A#92Q7aO$`agr2r$e(lk&Bh8C19OzaF3^VT`vu_(r z4SP$H446#m`#KGis{lQ@BKfvg<&?Z0=2wkJqfv=*@)UDwgf9R42_ixC645ypGL;VK z+#4)Y(ee(FIn0ioO^Y(f3&pw(_YJZi!)NB&+o|iAD~C!Clm-P$1t|nO9>kLniLK>VaMx{e!8G>4AJ7)Mmiq+) z^s_e&zmZglmIO`HHo^6RuohbrdaWuSrQ;TDP2DFZZpR+YYbmoej>l~3yMS}QqtI_Q zkvksBkUzm!EKz#Vn4c*a2g+uz(Yf?C@FdDB5fzv&Q4Ub8?Ld=)Eid2rJBL?wH0;w# zig2C9J=r3<$$4Q+*#kU;e2&o~Y~mE`&hEu@{Tyx{Ldp)P>*#$W(~A4_wX5o zDnZb|)CCvymnUP7{3&kkA|Fs_zLzNIPX5Ne$=7g-Kpa5}eyZk@XvMLT6#Edp`!Q>% z8(@3wzAD)yB18F5oc_$nj&xXsg5qmTf136ntp*c`!Q{MCJ-YSi4J+5TK;uRCdb>Vc ziSs}=%8yy>`4+c%))e$#M0U&_90;9^?=Z9!44-_mZI4ba0D8?NcZD6PC8+>nd>lZ zk4t-tp8CO!HO@VB^UW}`VizvrtWE8(Es7)<2)VKwMmOJUO42xm`9kZw*60pbMbR%6 z1}~DSmcFv|mgXwZNyf;3V!mOv*}-=B`eNwr(Y&J9N$-x_9mAu9jmC5*^}0zn4xFOf zhPVp3;E>C0z8<9fGZZ=F6`Z0GTqI*JWr<+^40BuSj-{8 zfE~j|y~6W0t082!rqu;`k2@{Z1tpfdDaX?V^@%TNdRYe*AHOBZK4y?Fr)+)3o-v8M z>hBAUNUO-(0>NYzPXke zP4tesq#-7(Jv1Ad5PSB+xSY2>V6sAM00t*S^kIab;_K6Zcz;SIz8kq1B-Eaj4kU=g zU&Hg<%OilCs}Bp#z9w^6bJ4&%Wj%JcO8n{>KiA37yxL~ZkJ$8BH(x*mr>$OYuLU`` zHBr+*<0)d{9VlEz&sbUABsSNdPe=%#PM@m*8dj(*zj_^|W>%e$`$bNFoe^tek1&<2 z9QX($;4}Fn&f+S~eC{nJ{iTCZgUi)(W?MUSYl!?2Zk<$#HzXGDYS!gch%?_j8Rcqa zGr5;LsKg}<8P&MJp%sjJ+rdUG7*&^i?EiLG4ihi_&|rtz1O}>K+JGS1zs-WeN{1d% z3?pec-Q9{eQR(z^Ci%1EIY*BJQI`hn#`wxF(ohmv$~(t74Py+DkY@=6ZH3jGbmGD@ z?UQx!{2JRbZ~Le)A-*j1F%_Kx#TutZ$AeBG1r_fRl{g~~O@t~FzADUv9DF!&M3$4dSU zPk}B+1*b8En!4F`d!7|CQA*acf}YIG<7D7wb<^dWX=`YQNS+1T5A$uAqkJtu9vNkc z3D`m&*w)DCPc;;uR=MlDue6saqpZ>hJHM)Z6-0|`Ye&)CNeM^}zV(>Hl9VUg^(r^$ zcSz!sJ|^>PH%CedOjzr3p@>MA&(of&-pt+5>tz zxL+F3!rg5g`qY^^Ew_SESiSW?qv)yHQt_9`M~C({Iw`BwHAkFSrg6ibib3y!wK0FtBUBz~W z4c{zUi~00DzX>c@$i#|!fW&869i~csdscwu9f+`)9p0cI^(}q)+rHSs z6}P@J%b@!S{lXhZyP#T_>cZLJ+SQTPjl>K2!dbIzqmdClZuT#izYC^zVsAZu*7Ptu zxQO9XF$u9uL7GSbiW%>(f|(AE+`h1@oIr5be?5NYGcrVE(6?$`itY%>1>%vZTiKM) zU@Qkw0L0F2xov@33+4i4r)=>{jMXis>L~B^_MP6)6Y=2es1n23v|FjGiI(k_Etv6Gt0RZ}Udhe=lwV;NY%BDyk!^DPUDf$0+Y}@rdd1rlULsE(x z?j>q0B4D{C=p<7^5}Iuy0AnOG+LzjgkFOhIGg2P=-YjN&HE>Q}wObD3I5?D3(wTDm zjihFUmmNn~i zC^H8*I)5L{b)Fnj*53=rR5gxv>vAV9&{gC>g<3hn|7gK$!ugjWH>)1G2!oGi)8Hh4 zODW&4#aI#XQ)rd#Z50Nm4rFGEtk|*4L2cZe4daAKABLZ^Aq%uJSdz{|-u3*1K;FLl zK+Un@c3TLqqo`T{h&*N!K8D~}}j9Aq4cE3q%T020UBh?AOhZZo&~;d9OzP0~NE z0oSUW#?oWY5a&zmuF+zlhs_T%p^czVe4uyhc&me%)Q#-Mx)%E;+}w@kV4IIN;_ap< z{eI!D(zl8xM-W^ z^>2YAU06~|Qy(4>IZLw=baz;JzZ+#MN4sH$k!h?ZwQQz(w*Yj;a<|kAmkn|%BZ7-E;(g27MM&OV3dpnSn$->G^Q8ezK*sO@?GVtN<^|QItH@OyUYp^9 zlVG$ZeJw!J*l#Ny66MpE1S9K+hhQVdLQV%@SKTLIaOkFr))Utu0FpdXcb>D6^*&y6UJ6Kk9*9;F3&{;fs8^5X}JtVEP7y3=UJL( z-+=HZ4GJua!f$Q8;=Us$Aj|=QY>WV$kd-c+P{bGcue6t1gDHuH45HiN2j*^J6M9Vp zRiS3NBre&p!6{sy^PvBm1v1h`Zb;i+&gI`81s<%AaX(${qF(~73fRX!4FipvNkd&9 zBXWc1R1z?h&HFjk3)^rP{n`b`h?@6xM#!a-YI^7j#?}@~I@4Ku;o{y~(m-V#}ddEmBed+ApI`+b=C@x9BHkq5+V^o;$|)+S^}%ZcR5b zK+VLQ6yq&K87AhTDq%zvz}HMUag|2C4AxX~}Ln7Fcl3?qm&!~pgf#c`aq!qb2! z4NQ1~CW)PEqDm^y;yA6|S<(2HQx$G{Nq%8E$d`-2Y3%%68?UT8?-c_LTo|3u2`Cf` zYkLic;}q;(tr$pH)xmQov89jywzibB+E4_|Y~vkGNu1z{-#(@k<}xEha?cn(-|ioB z%rEz9Ip|`cpeUNpJbSO56j6Z!!w<7j$nth$E?eM}#U6#TfJuVYgQi_w6m;v=8Mc|G zUy{%^<8zk=7ix87SwiCt@ z?^P8-bx39j06;-~-Bflq#qULZSKJj9Wq^@9 zfEnp)IGd^s$WBfog%MqBwf&$l5T>iK4&u;`1Q7(9XN+K?33M)4SxMPb)mx!Ukq+D& zfT8UVdv1~(AuN0zgdv#jYPMQE_MQy^po9k{Y!qR_7vyvuUS(o;t%vyXsQ@lx4EVCV z%_(J5-Sn>D5pZ&=;ZHc@Xp1zEr@$JR+xM|-bQ#9aB>{MBu>sR9;frE>;^G_)4-V_V z(Z0J4wCu8+o3wz3<^@#K$bigfDlTOOSmwOg1U_MANOJy?hgp50$>Eo8(1R8fW^8-P8{xBM** z9J^KVmUERgMabt_qe6HE8I>qPQ(f63??zw?ensc!Xt2?mx&5jDS{w}{B+r>-&^AD@ zN$nJp;{oY-@#(Mer6YzR^cNq)=tgJ2SiApjEovA6M2O9j-z zl`HN{B-xA#WhFv#(5CfWBg>gt;6c-yzFIbY1Tf-656*@8{1I}(#wU(z=nOPzdx2c& z?Fv>FU-*O@3TS%GO!d)c{ft3CL;wPq(C3_k{AybEpc@69A`j3V1ucNs5flAdcF)~b z+l(I|OOM?4lvgGl^p`!-=e7dVDxkjGV3Rb(Msctv=|v@YBbXOiQ)&Q9-UVmJ1n5cw zz}9K}Krf(gbM+jmQ>Y(Z+?jQR#Q@!XEi+i_}>JWG>QQH6|5@OqI!+grkld=wt*QQ4z5Rv z$|W{ICxuB-{Xmn$d>2fM1OpHONn$fgd8d;|@mg?{30Kh2$*c$4Q2(~VNQB@T2;bu{ z*knhLbaxu~QWJ7L32T|bk?n}9GZr=539yThGW#KrVVgDU!$W5F{J@+|G;}RIlm9|@ zcUiH%nB5Bm(s&kR(WHpfc<^Z;)iU>6%@qUG+W^c2D9(69osh7197#9vIu;y3u8S?_ zQ<51SdVxlJFJY@5m?;mGIu!MXLA%@m0w7s~o?s~~J?%^Zd|N>ZAf;84*dicGG`QI* zyWEDf*1R|mQB4TbDy0MD?XhRE_(4=KfMO-(V0%L#f~Z9|PutW^2{W0qg0uwUR1Qou zY=IWLnuR%5PI=m@qeDSPIrY>#1dSy$0$bP4Vw#S~jAm9~I8ez=Ey@(T`ci7I0=?(+ z&}HqC+h8iO-$R5;~m)oNdFuAn~Hf;pL z#3hkClyq}}?wOL0BvJ`R4SB&8i&Z`P%~q2jmjH=K-YpGGV@_{GG|GzYbRMu6CPt)c z7^o)0=z)~lSL-()0V-%KkUTUeUtfi&iUWnUpmk4UT)LdN5IpJciAiPBYM_e7hh&tY^>P**K>{A{9 zrB-W=txWhfX))L{vMY;Z5IY6%O=;PnvqLf`NL-!Byp+VK-Zd~K)I3l(eL^C` z@07{`u>`V3CD1G~_MWHBw<)pXL773SU(JCRgTzt=b~1{gP*JvA=kQ>h#ZkHIT(`93B=;{Ac%wBi zz@R}~(`p=JMD6TnY8J-DaX1eB+y$JC4>8iZ80gqR0V!?T>+yM6{ZezKX0+rgA59Z#?L9~*R-rvtV7U?!|3VUa9G9-3!Ek-ex^Cx#F7t=$m;Q(VILA}>N} zB3P7CrSzxv2PILJmV>74!ApyaoQ4fgg{eT|O1N2Kz<)51q<4mq`!}Bc_!C6WWi~F( z+rWq*r)KQPFTBa3QB$X0UcxpmqN73#NZKM;BzRCi0d%DX2?mqcY9BN5@Ce&e6#;0# zPrI^${*SP!|Jc`azgy2!MkJzpI7&GWWecKhOPd9JY>rS+Fd2ARr^WB&s_3TElr_TK z-28BJ()D0$ zt6R7q_nMzC^=Wznb^q7m=wqiXNhr1f;=xsvQc-#OX(27AHS~9f85}PpeDBM--@)__ zzg9DkQZ3YPL+&GBEYRazH`*378?OY3`{o$vNIpbf*a*P|}pulZb6F4f`*| z9U(a}n1{G?GAI~FC9lqK8*<|*L_ zOwF_d_-lVm+gRMB^&OS6kZA~m$0vuCZdSNrKTMTC4e>zvV^_PthxiD)nc-Yv0b+}v zUuF`a$LNqDB6Q~?Q<0IO%ljVSx00v3skSAd1f#2KF9-1JQtv}~3s zBw(%s!YjFH4pWwJ|IC~Mb;Ljf9p8MuLLz7V!LWiS@W|B|84iJlMocz8M2d2MDakm> z;a)?R_|dN{huMY)vQZJNIS#`9(vNk@emA1<+bNbACzF46yyigP_=lm zKY0R>AzzrEEgln}zFg@`8ENv~KekZcCdgWAxWAl6)s+n@Sex7a$Vk+ zFO}!k%sgi@|2=ftzSi&{O%UbB=U;P)isgI9jB&t;`B~ajwXLiq;|Xzd_L5Hg(rK4- z->}G%i%6KhwVw47PvvM24TsX7Nd_Ffk9%{T^7S+8SM~R}aBx&Br`(_a|c{lImpiT&<(= zQW=N@0a{~iBZKjcLkfCjvySym?OOrjn|;CYJp`y*w1yS`(y z=AD4UG3}nO*#hSwRIJK3LqJgIBLkZ2on&^fk^lz%y4d<^EMsx7E8`jg5^QmRfT$JZ7E0 z419{%F}c}$rORQI8n0i+9^a9PX53m`&C@DuZ)?l0{d*+V-@elEb-$;3>fAY%nu0)(iATaPMavLu{HL7ekwu-xh3q9 zt(0K63?<@gh3qCPmH;e|)HyH2$H!l!xUC46z#mOJ()w#_Ydb63*=^d_&RV$c2CeYl zjug_^4&ReM8zY01__rLaXHITbWB)TUuB8d;YMb!#YDEVa- zR@@P+%=5UZ0_G=tzKG;63B`sLU5vt{>i}QX%q9!Qcr8}{e$GVmow-}rus2*@wfc5) z4es-u(RWWFs`a906UNYDA3a6Ih+$6;4=oW750CjW6}Uu?X+JiLd<3CF8?rT3t$wvs z9O8s&#)h>657rjm9Lfq&N;vlp&?k1dPNhYEhW9ev&3 zqY+ObcNH_lCYR@pj{I>)fE}LUu_*Qg`2$wPK>MS9t7iJPfZgiK3c{dp z88^h?-~=)G@%dg)?tVl>M1PtfN7?`f86;3SU4*UQdw)5!-FhUKEd(64w(_Tlh^D1P zeW?{J3aX-{v^7?k~b!dxLAs#G_Dc~3_6M388dN|t{8Swr+Q4+1Xk6)!8tLZiN zh1`{pFgnxqoOPcdF_bx93O&2a-&^BxKoyer?h#I? zFPQWzbLnEdiJ#g=x?TQd)OR+#FCX|bGS%WbJohtiEcThSA-HGx+?4H&JjzeOX<6+r z_uKv|L$8k&rl+U-`}y5}@L+#$Z!wN^eex6gP?ooSh`Cu5r$`+8-*p%`D3TNTqc520) z!&}B%EdHP~Nocb?E8EDIlOaTse!>CJVUq2WB<)XV@F3MfB_%yBNLqfRQe5PU_zKM< zGQp^GkkN1eXtiotGPdJI&K@2|ySt$g5q-VAaVn$?Vse%D=#JXtlr(Ym(ck<04&IY? zx&KB?iE zlT*6_Z=W&mjvSXDP!|8W9sgUVFyLBTKOHPgUxdNvIsh}cKzXWKT9~FpeFgHxXw?mH z^%fkcFhD7gm6oRe>eVY3mx_NGbYCqoj_IeP&(3GzsrlC=1b89_l4~zwV*M(#tgmoC zZ{~*=NGqCPJpul6Y=hjf|2ahsBb_@uzBvWe{+SEP!hDI~OvIUPf$!rc6YK>*)Y)m# z5k`IPopUpYo=AGZ3;>y#(&35R#x2eZGRDTnCl5*XviLrT@^5{bBx^jqwe(mPymPS= z>=@m%clrF5MHqYU8gz>xUIn79~%w2C?G&(FXCrAQk~yl{5Ne--Gc_4FS~oeSx%JEduyl9+{b>l z>A8T(IpqK>c7PZ)^meKH-?72Y{&eyL*TuEB`BZES`wm7I(_*kOv68-Op0@bKLrh%U z-p)>|#DMOvTS;&@{J4$E`2C)OJL%#lu8a$kb8`V@D6ItW-@id_T>%ZV4tdHe+SN7D z`U~u2@2IH;{~E-}-bB15{ZxhYU}qo5|1dL6AtGj5Uy~;_5V7&A&G_S{rRM6Pi>fGX z0QVcS2mg<-w}7fD>e_`5qN1W828g17NJvXahbSW5ogyLKAdP{fgfx=U-JMd>NJ}fy zDcx}AMtHyX`~NZSUBfXP;5mD*wPro@nR6|4n zTQW099T^`@cg3-{3bEJ(G>T~rs+SCB> zyQiBRY_T2)hV$9L1^HGF4*Xu&@1}K4MFzTZ1e!5hy!I)gm#{)?dTU`KRJPsxc)iG{Zaoou<_*uxWmmw0ALq`1#tjHVQl49Iop2JB zZEP25yxh36H?|*9RDb+flmtX>h%p=Bt7(W-+UJy8J=+dD#F^KRCSa+^p!ZpLDhW7Q zx_lEc3f>HWRiQ=QN77|QR*jc9h%sDxId)g*4jq$bnY2&hm_|@8)-yY+dpFsg%oL5^ zM)Vf#|I9O{Sp>&65t9iIIDYW$m4IT{TbXDH1g9n=JHv=uU>PUy{pGo&%ZJL3suvy@ zuWl|dsepZ-%1l5#ldJM|B&@P)bHrTd%sPAI7-PUI=TSLCZrKp8BL1F1GKv z9?zHtRuY;Pw5uxn>#{t+yLj%wk<_72BBOe{3%yph&>G*~2XO?|qAy|B8QDb# zDkU+`z+o>0MY!~K2fuc(7vcF6bQO4c&5BF6!POwc z#m;P$PDI-v1eEZ2!UQm3wuf{SSTj7Y#%6r2!Wr1mB_wg!jXMunctVhB7z{ZwZC!UT zp8&lK^ZEc*Tl~pKD7m!QscY%MkM)>Za~;iQbIjo(cCC-ko8JOHsq#R<^$NuFNK{yKMU%O`ZX`<055<=2R?2VltX zh#EU_w&S>qtR|7jaP>29Sy*YV`LSuB!3qN89B4Ctp zb-gF)S#*2es+Q6n*c6t+zA|u|wm{iKi5KtClvzXt)I8&I*YJ*yB=yY=Ww* zM@m%WM*+H_2k>aYjf=8l9Pvyf0*KPUppH^=9{*A`Jj5EmaM_;(4tBN54h&8{Z)kZd zdFmx_z$+cCNt1A^5F;|{uLTeP)w5mY=K zrrIu|yuHWsv19wm(rru-4>Gy|N-Q7D+>snJ@q=Hv7yz3^&(ANY7q#W%iMByN*y@(3??l z0K{unB|#WA7#jMkao1%t7Q4^XAfe(HB?KW6VKbqR^3#%%Jgm)VE|lPwJffYvK6jn! zf_YFx$E6t-$1SgATtER~Y%j3c7tF?}N~Jy#+`>88gzJI0S2OjE)J-V`5qV@H$;5}i zh>k&k=;T$ZbQq{qiWVy1dZ-oeQlFSv@O=5v6NEFOQ_{^`c2DjHg1}TKFKd{E_GAwd zA0FBS$%k}?FE|{l*hhG(OkkoeLK9q9KY9pyV52b}f|2A%ZUasU26d1c;m#!C(&G8Z zEglMiDUwdJ=}hvmYg_zS-d_Jc;?m?9TEP%AX6aZWhs>4sJM7CffN_x1*f?~ugBp}P z=tpH?2n6Hdww!#2v`cI999t`3GJQe)#E39#Baeo-+8^E(0u$9Uu!+bBrLGXe<9zd& z&f@~?0K6^cP*0c%Vh(?+8ZuS+&*3ThM$!1U;fLc9OtB{s_}wv!AZ#z7q-tAzJy+CT zpf#jy0}>)+xICnyqu6v>{}dY3j_82IIp_uA>JBk@@78+pOZhV_l+1O`nc6?mSwSam zF_^+Q;|nB_9un4OD*u4egc4zxD0LuU21mG>74P?m9hfG>C2-v8(y_iRyLj zC7w(Gw!rxyHsA$YGS~e(tmU0s>&vH%rmFn9QX@)(lLF)?z|ckeA#2bCSWWC7JOjwf zTQ3LU-2m9t$`M9{fuy3ya8Z0QJh9kmrl4n6h`25=>WLoNp>>#`Ky*@iOa1I5^l>)pz6{f2I1}tX1i&=>4hAm#_Q21(@p;f||${CT=A9 zoa|?-t6CCfZuCvaSCJW}fi6j4U%P9w^k#xtR40=FmHeDj8YqeOe;b25RTxQSw0I1_ zo`Mr~Tf*2lR(g;4zSDdz+weSDH-4wqG!Q&a)?dIqLl0g9XsBURls(syeZq`LDtMI7 zKg_(u91fC(&moUQW#1_I{)dzB7S77=OQ6>6t%`tXz@Gr3F_*|X)z6R!_ggD#R-;X4 zkC*Qa)|3qX7_j_!LF?Pw0N%jiN4OrWp16~)0i#1etk1qjnrj@2IhAo+?rWAPkDWd) z5?m9gqU~aUs<^@giivF(`6B;_#r|AN@D3-|ilciw#-Mh6k+7~Pv_>s(_pn0!8AR#Q=0v|Ba3JuYjOHG#5toWpEzuY-tD;?j_{M zh?&qGm;(9e_XvM<=~KVSFjK&OG@Tf+zhrW3lc2RRJ`gp4!|+hdQN%*2NCPA(!bL|M z?}MH4C5}BpT$dO}3gxnyp@(;d#0ge(NM|;>J-t6b0xxb@&I-dFs0mHzK>{ zpQ`Om{OU28l8>kbzOTa$LtF!Q4mM@QYn zwx!|gQwvZS0R{?8=TR=uF!VbMW}!Spx9Ktnq()ao##37-e`LpDga!@2GP}1`aSiAt z0tI%n?*Mon9~|A*{`b!sFKfn*%mCp}(t-nf4ezm<0)vF4Rk`f}}Fj`at>W)8vs%Dto09G+VC0A_;^j{c$Eujp7b=mn3V+m%= z`AgTON0cs8h!uAAH~h1Ysmuq=-9^(M;xL_3e#}p{>ffj%O;Nhi1F2N?gOdy=TLv&J zxPS2Ih-%`xfojTW%CXt=JnjouAI41n1SU?9^kfj`x+O3}Lrv9`&hJ_0t?nxAwQ|a|Ov1#(K15usnsXoFFGr z=Ft-1#)lYW5Ur8n!h8XcUm)_0U`RQCeXKvsuiwkbK{Nv;!3gUHf71nWJpMGm<)C=& zy-g>i?7HfFJE+}o^Ga?ssg3BJ6Gv$vp(e2~p!cTP$MJZEK*v;n5k7F z#t7_8Qjm2|A-F9upY%3RA#u)@fiTC!{yA&TRVBoApFVQ>06W!i@v{p0MD<+c$Q&Ni zU-S}#)l*UX<_@3P;CkQvo&@n`p={vI!Y|oRfAQ<*@h?LeKZ8&JX=(GxngcAYTWDp| z-tLF*du~>g(jQ{m{MWOBEK-TG+T&nC$jhfdP%+Q1vDn&M;j5}i0Hn|tNqV?eyc~p3 zga2k%yb`T{H|F**+)uIT#|qq;NotP!+F~4fiL}Eq*YuAr98l zq-s%p`~e7nq{hR)0WVgnAiP&KC%6rj@82E@Bh>BiIn(#!{UzrRB=+y)iO-Z(ZgXmh z`5mOM)@ZWTl7br$UULFs!(0RFR4PdT9mp$pgb|Oj242jR2Jm=!sW&a%uOdg@42YFL zMQbf^9WyTQT(YMDLDPV@eyn)ea+MnhLwwj;&?+$?`_BWvGNu5f2R{6G*~GByv}Rv6 zlFF4fHaj6K)Nl-dTPS*voxn+v=aN!`J_2eS3|mQ;fHyTQf#MG&5^77~7f(!Dj>>xD z@naKkWV+7R|9wWS9b#n)i= zq023aCkQfI$u6=TobZP$9LGusM-yDAI9NA^{2oPv=CRO10ESw^X&BIJ{AnWtL4BOe zgsnPgLV!GV8K2sw4dcX+srCF4nPo_#Q01Y><8oc!eauYH#7PnXa zgypLie9wXcgR}T`6lsCE?x6APAAElJ7JZZlx?@gaLb8C}0p!sR z_Xy>~qi6(*quzH{dVx0Cv|Tz8yhRUm5@BGtO-xKchePG|xYu}Y*YaqE{d`}>*5Xi7 zuYUb+iw-Up^NGg%{QTnLVkmF{@o|}udw6v8aDBGh*4EZys&%$APGG628?2?2tE*tH z7opuWP^fJIV26N3(0LsXUgDwROL9*3%e_#n_!o|Nxqw=Zy=l zWjd}W;cCFc*B6hcmF&R-3b*gRgm`YSO*io{P?d+f1_^|Cc;vf!dPn8IW1%p`fbt6r zd_envoSe!rQmj8;ulrR^lEJ;#qp7QNpoQKb50&_SjKMZ(6q?T7zI|IXYGFgz2ild^%XFl6j*rZ zZ7^9(z;n64tlQCyRh_YlgZy0C3+*J}gL+920=0my9+k7)>sqe*TU6L`xWuN;p~S%W z#7TwToxF=`k6?=<5L!lML&-6Lt^(bqs;a839t~wyuWVdG%E%}^E5GsLI|jG@R$!%y zazWTl>#uXfV2Mw_5^sW!DJ#gQauQa7!XI^pt3SE+6jy2RLS^7n!@O4!MCobx9-Cui+Al&CN~Ga3))5HMMob&>xR`_&nz^tIzT(6 zET!yZZ@*&|9~AAw{iSV5p!6Vbiw|NWgN}hkXjRi&{%dQF$4djzSo_@VOP~`L&GW-al3ictD3TlB0Na0X)uYv7#eu$d4q2FC!5A8Qp z6%80Hz=gGS&09ucdpDl69>7-{WG%^h=fC-rS4|qt&sRf!!>6|QY$+UK)A8^NoSaC5 zG?BpLW{8FFcebH*TCu}vr0(RRrwIwSu)|uaF%MHOxeP$58n&%p5TZ}n5brc1+9u#u z0HwE}84E!l)_7lWvnnHm(&N!vpJBDO%pt16S_VzGqRUV;TZR3o4g}MhzX|@)O_w&H z45hCNMWuGuy;Jx@0{N@N7$YlG83=yqAX&3Lr`Z3@_=ka&U?$qdJJx~Icn95`vkrFN z9A(=5Ij&XgL+g;Js5`+?K@Fu_D3>51Q2xC6d7$Be8FPiq!fG#e*F57S9lIsm-YLCg zboUy|k{|joHSlME5P*}!YQ1`*t`xvDl#Y%#clZr7Kj5`9{UG2L3#qbo;q2YLZn+&p zcn{?3F3gl7A_)0^oaq-_hXP+u*QZmcqyU|F$x2s51}l}ZBrt(lK;P}~E1Nn#P6E3` zISE-vrEWHCPe#$kMS{PFndIa~We198x472?c4SUo(c3w12{p)1yWfz+KnzIX`H_Pb z^VL&?M}d_0;4PcOR2a#Tph-BSHf`5WmLUT~%K+ng98J-tS>bHOL1yK6Tr$_w>BedB zng}w!1$PUQjpXa&FU^; zvKK^Zn*Z6EOp4_?y{*Fcg-i~E1BpeY2Uh_$qY{AuQoyN@D*_S~JRv|c{YCFQ6CmVH zH~cTuIHA%Bsoo^YiWth7P;4;oH#|u*t9zlkyLtKGbxVeL+3?1@h|?`-Y$BaM*b_^G z{1ghhi%u&edCCW;VCZea?gxPP(D34q-s8VLCJX6qi)vo|KRu73Cg-6ciYQeA=Dj3i zB@c1|Szn5|+p@vRL_7ni9;!Z$7N{|3(3tyvFBu)FBBF(au15(&&1m#>dggSSVAad0YRZ}BW+){f zMNW9At2?$lVDq$-AVnW~cABO)oYIKOYK3$nXjXQw*=dq%Aees{iV54yh~gjf;3tn~pTekwnW z&%FzWET5sl2C^K;DPH|se)Y!}o~c8S>6V8a-Gd%b92}fGcfLTYT1W^v&lc(y-h8As za4^}Xb{XwOTgs29B0-LKSL}6Gfk`^e$Zx@u6QQAN@3}KzSx9q^$Kz*GG9$qZsBEhh zh61I<u_}lVC zZ%@&c7_^^++ic=4(}do8o`X4^x~mI|BOgtSdXH)n|MnfI65h?R9~98tk617LJ0~AY z9TSM=@`;en%-r1E!eVU;%6aZD#KeN5?NQ!d8%un%HT7p61QX}n@*th9sp(0rQi!jU zBE_Z7F>IRtA`a>;9874@u)#xz_itMtIP7*c)>oYpqv+7(QM=?!f(e`==-L08A+Oc& zV#gwORc=DdkBshV?>A#%h`+^EOJ%%wU-huqYM@Pw!yKD z$cTs@eJkjj;^TX_Ka8%Sl5V5fi6iW*;F4KRZ-q}8Oq26Qw(6_m4G@b0Bp=HIO$bwq z=E5$ermz6M!K)+T6xgXsTOaA(<$Q=i{~#zM()C~(`#-|zvkeNlyBfvRQc^KeI4KOL zRe^9oU@spFG7crH>7p1a=jz&33xFW{ewldM#wZC?IDb&{scDdkS9fl$?< zdjZPbB?eO`GF4dn_~L0`A+^dzS8+y1O5mm1llGs;zyWt7tIJ(rR#Xn(T+Y!s*e=k&m)=MJ08V0L&yd z>GyNw)VaG(eZ(cp@$;BW-xUor@3lk`k&~07=n0L*#s5ZZdkklA!0D6KfV0^QKvhE^ zTvr;^`uCb!KWwY$!4(}dy0u;hdM&XwRUu_Mv?pbbY&*F!;;ySV=U0j>>^VXlSB0tR zcI@@C@a$NOM)Ow|KM^kU?F6Xfs#@1n8Vzw=7TFk)IXFKbKh=uQ;(S;)=h(~(en2BU z-J;^UmzRR3vF6KbEnx~hsbeusa-tZhz@zIJtu@_`ZRql5t_EiSN0PqFq47I*_j_gb)}nDbh~=hPbT7#}n;$;Bm~pQ+yVSa( z>dE`_D=YVcBDoz)y~G#({%-3Puhbm*iK=c6qN1xnv1@#_PO~wrD2wh$<(Z6GVlwD6 zT%Bk_WI_f=1Sp&G>q#duKE_9DfdjhvgfTCKpx+X%7G8#+1ZWGd`k!Vfa2X6=)eB|+ zGo7E%a#as~a?Czrsd!C&JZV{OD_<@5d zw%E@-)=~}EJNK{1pe?tLJa){?w>O{DU4BTHxxdm8E&G^fUyWNdaDHzMt3yrUK!++V z`L*-fl<491D@pC7Z2EYs`J;5jwUpxF)L!Sxqr>-^s>??m&fy-ljg5;H_D4l}-5iUH z(fBOJ5)ei7=Q2Cv)S=~BXK|=VtCHSJ+@S&mg5jaW7Z;v^(sWRBn& z{D4+l(=kUQE4(oajnVRp>W<76ki>X;^?&7;uFvq8>PaD~zt#l7v)T6OeQMvPHroz# zxz%k^jL&9U&UVGb#JIb=fB5jByqt6ALG{-~=RbKrdxuT{46kY<_l*R7W_s=K+-xp5 z2$xZnW^$aW`lwqU>rcAr)A+YS8#C^UJ_hk40d!a9>73S$9qj)s;w<%U$;r`}sV9lbYe2LSxYvUURTr`pX8Md(!wy`=OgkfGP3V5Dd$#uC>Ev|yp zM!hC-se8*+y4{JSW@h(_MhEGctwOqPP_?}Bwes-YVs#vpR@q){*@7!u1~(2fltVTb z_v$iL4eBWSG9woU@;HK^B224>fo-hcoyafZO-WAvW^quwqQd!65}He5?aOKOc7_Q_BN+ z0?9%+^_1H2=JAfSuw6@oZi{rRVDww^P`u~nYG_hj)4f!+aQuNDIw~;En8Ci(F>4-j zy{(Ds9UC`z?20OjtTsLct#S+VkQY71D_m92P*DvTv7NpvWzqRHg|7UEG_toochiD& zUeA2Qr3r`amBPZfVkd@=a(6d19xWHtcHWpfcb)9AKeCy(P%+8jA*&86YKQg^n4dlS z@Fo!$jyp3qlQaH4Bnb{uq7~89OLNMTrDEOg;8=Pc5nUy(vNW*fpSnzw=eXzFtexY; zwfZ8-U<>vS&UKErvE1#MleM-M_ex|ynbz0OH~Q0Tjr2bzos70cm%NPX>FG(4p4XNx zV@u6Kb3uxh=AooES6)@SpwTGh!x1Z~wBB*TanQ`JE-BDVzWSrgK^FbDr!-1IdGcAP zpa>4xw4iy@n*H%P=ESEuZa57bBgw0{bZXR2yw?e{-Y9aHi7Ed6_yRr1B95EZZ5Y(l zxBpFaLh({xLkBpr=1Z4$quZFr(0YO|Jf~{qlvy#C)-m0VN@k-O;zXba)VLX?>{XtcUug@72G% zq0W7@|HpCH@(9%R66RC=-I32152IPpQDkXq=TX2Gt1d68BQ(XwmFZ}_(U)^xbd{#3 z{q{^hF5_yv+mDKjSjZ7LseSc`J=tf2%FuD<+Jkf@dLSGXvoqOt%W*BsgXXuWJuW1O2oSNErY3gG-dDt^b%E7Vp0afSyoa9_-g9$HW zekOSf1}n(vm(UwkO>v;yT~omC8qwn6nEl479Hcr>&&axra>ooHt1#ahX%iCS+Xy+2 z$}D{IFetjpW}?vv6Sv$7E(3rwH5+ria5|zGP9P5!8gbYx4S)T5zq4Pz08SYn06#jM zEExx9@z&vxHU&lUs*-A{B~B3|P?Svp8b-%BRa}v`Y!Lh6HRX72X+4;KeH$1=YH*(x)5;79t z(D(_A$0}6`JUire_O77? zY|fbVG=`d2Z=RB?Z!G~~x<6tww)i9V{dW3!EP~L$!1#DL>uyrM(hzAg`fw@bjYd78 zuCz9acew2)m7KfsRcFmFkBvTJ-L+fz`G_>NeA0kNLe@mx;jn9w%6VgcX_m0UP`ZB7 zdE;jPUU$}tw#DMSj*iY_!=I*bF3ZQqN56obn!1&jQNbkzx~1avjk4(aPnrODX>LSv zEdv+6&(6Ze%QbM+pzGnoF`2oOb_fcmllm_K{z~Bqe;CG;SPgvkMWb@!6~_=`{r-xi zh$GYAT3l>rT~!-nu%6<1ttwL1(+&-luW zyNvqxIr;eHJ2aC!xi7!5jPH!YX;rzjr+j>nX-*)jTAbwF1gcs$Zr%-OzNfBB4p4;w z1ScBh!?OH!UhV10kmztO`}D){=GE;#*pb|eVMsWnR^t?9`>lTf?0hO@PAX~??Es(4B&89EA1lf{}V zSdrUkYJN3u+1pyia~rq74Iy;+`^0RZyIWet_(#m!e0vTS7O5N9q?3t9QDec|qNAdg=I5!FTEI%2W_}QpW;CH&Ee_#1Z#Wt$?RRYQSIEgr8eKms zI9fMw7*N?Nb=+Oo>(7kbR=yrBB_ZLrO|D>@j%q=U2;t<(pU{IYN)&=^>vpDEtwOqN zyaxjt>qAJBxaykxLC9THYv3w}A)Bbm>lcQW@$; z+C|3LO!}6};18XqBY)%LqY0@G*3r>!&Gi=i2Qm5qaZSl=)&IqW{pa8)&D>&^LOR-w2hQ2Ee+h>?j?2HoR+V`foO!kxFhv4G|Af| z1W~yAT+RlS^d9`82qr4bU08^U;;`ZCZ7($9ac53QUx?Y>Zew9AwJgc9T_e*hkW%Xe zJXT+#c?9h6E)|U$KmQ&ctwWj7P;guL2(!bs*H;VZ9!e66)Cb|u?C;KJ$%=b-ycU3UXPNMZ#Y%)kjxS*$P225^4YYO-FtLTxPj?=Dt zav2LtPRdNcF!eIF%GTS`%|*;er9#D5-GA0{q=RZxoj3Xqj{Vxme5O)?5P=gYDg5Wh zU=#lS{!n!iI(v&xNT?a^$p~lCTm4&$4O*+@u=6lL7*6pH6&Qq=i@`zbndylM_m*?# z&N1q?8;(_0yczeRA|oTCoF1Op3F(}N^KnQm7ioNfF`VAz9f8zfOSCEoV$@2C%qWC} z0?LqZfhGnUi%5g)f(NhCPp~bFqEW%-`_(o4HB6)1BCVxM9KPp#2 z-%hHfyg?@k%!85rW}7PdnC5wxRMBJgaY^!?{ii-Wwg%;(K8uNXiD{pLRWsE0QfF<1 zyN*0K*w`Lozs>!B9Dp~hI{d#KfWO{>5BGcR?~KQJd9~zqa8uE?MzBeX+_n{*#~I&U0(AGLMi|72tqabMN*>$_xk)f?yRoj1u9 zB(?gND6M6(vkg>-RjKa(%;v#7BlYodBV~+~jKok``d?0ZN=#PINk;o*R$62TJXX;!0V)h)QE#587MaS@J`ZaX-cn=>qOT%!oI zWY%iD%E3`KJUr}%P5AjG{V?D-@hHPruhyVeyT9+i+GM{zLwq&Ri8L9)vY5N z=j@ZKXP?~gnI1~bfgwMw7cPSFn^3i&O@>`#arHnH@sl$(QNO$uF(!_6K!0lUefaAuE zZ;GhtwhWTf#fLPbP#hc_q&X@^ugU3$po)496ZiG&*PPCWDvF8&ot=`>($^P=iHU!q zi@p#Q6-`-)T#Dv)e5aU8HzB&;iiR3K%%6Ki`sI~^*|g9i7TfK7ICttJ^5wDUY)j5p zYjQ5GNa}=?Vf1>{!}<85dy=y$3GtLG>gr2}p?G6&Jl|NsfBcTvP+q^kRzyYXJuos!90#&d!d1!otS>Z6gzMh<1@U>}_%ZCqV^{s>)xT`K527VxouJukI<2khVL!H>rzrSRx z9#HJw;Lx{SeP;yXVvmVPzGD^_(w%XMm;mL%_t1N8n$hssjIQ#ZS!z$7$&88NRaD&h zUF)XR*VOcojcw=KdyEHke27Jr#%HSFJ+_pqAB(+b=SIl2TLuOb%1>N%u1h0rocu-6X7h~cSy6AJJ|>C3(N(ttg|K=m~A3n0T}@l){~rP6umSAze^;MF~E8 zB4ekfb}zymPL^v#bJ)=SwBK4ffE#X-lPQ>)nPp{rL7x5vlu^F4sS_v{xLk%Jh}8Az z1mHNf&lN&fP*;OKT_6GE-Xr$a+Sl7bH*PgFnv++RUB&dcx% zZj3_fE-fwXxl>$n(9&jr*EDfUZn#9MjD#D-yFOXJlYJ@u76E~XT>N?A)@U9=9k60) zX=!4$D!8`6^ClG*;o)A~=uI{W!%3c>gjYGb{P)y5DmLcQsdgEZUiGCbf>kbn|zpM&m=VON;i9y;&eN6k9hvK z)4U{Wdyxk-bFlP*Q<)^i)gK|Tb1wJpT@+L+jx?6N@QBd*>don!6Ag*?FWjf`9IK2g zU`U}Vs^qSHel@;*b;m-eAxk$7H*?DB3&CrqOPP{y8{+s%#Y=Lv770W4CzyCHKe-zJ z9Ovi^FH|!!GczS99^{$+vEEsogf^Cih1<3Q#ODLL_$5By=4pS+<6v#7xnm;bTa15g zZF%`x14p$|>({Gn{5lugqzubT%+P+T8iggz=(FH`<`)zcRsA%J`%|yRYc=(e$7q{J~W@P$(KF>CdyJ(DtGSUqR?=tn274SFP2-a(h(<#)7~ z*%?aaLsLPFL{}GviaLORk(TbRtJ4C!1J^ca9DzOo5!Tw)*4x`l%y5UzTuViTpg^vE zt&`uI+H?sG<$I6ooe{I)&uqA$rzM!?4qWNe)sK!MARuUDey3HrySw{Y5o!v}(-Tbr zMuYip!<7}Pdv)o|i17brsaF-|FBbymd64TK)bHBEca$wyzYLq zgRcnx0n<{3ysqlk&BdWw=jQ)*{>jNNhS6L<2g5})S|%n(tCPa4CU65t+PXHX8i*=# z@umH$r~k#m;?nQl8$}E0nfO<8$B1e(%nC`RUbXO6A_d37~&zqsQuJ zygK$HfOAa{Et2d!d+A>X?6t3s@0|bCs)wEz=AHJ4#VvGJVQo>t0S$Coi|}09Tpr_j z^H)RPdbTUUft%;iqeoO!UJOE#w?u^QJ`tQVO0s%s^gU{9Sxh{ApRZBXX+OsiXR+aJ z(lDvw{ozLHSVhlIEJhn2*V6jB+q)R$5ArSZg8~D+m2R7CS#yN6T8!pAFN=M==742x zSyH%|jA;(Ux3d1$)mr3MKV>Vd3??jtbE)xSN}C zP50rDWYCC!KAsQ3Kzve?#rOvUF);|H}Su(}>SNkUh} zw&ZP<6LB%dWT#_WL^KlRno8rJLvUx^ZohEUt5RfY7cM`Mm6e6wpc$yY-n! zJ7@c|2zRPqB7H4XykdXH_@?}-Rl)JM(F*=SUEgr0wvBvuA^U1wv#0fEUm1nzmHW}2EP09 zB`;&qRG+FP*zwN<6FQl>x#q&60E=MD5teCc-|qr{As!qT*P&17_$H!GSP3i6G)m?A7G zBzc?nKkEnhOUHD-&BS0Qn)w*R_>T4>JK0QBOu)O$OYGD$g%d@uYS2&=I{`q#mwaB5 zEEtW(Edp?nGju{H|j%edU zM}5jm5*-YzD4d8}bt0H?0k_UZJ?dLCy$t_)0qq!6KvNjGSVRmGYu{b;U-cwnW}zhl z6NGpCRrY!N=d$z5+teCv36{>!i2W4#@^0KQQCRCN7k0{bG5WBW+*M~LdPPl%l`DAf zwnB(5(`Q9${xWMCN5>)_hg+R7Z}r8*E7&a%|#27(Yh=6U9b9S$(I-eHys28JwXTXLP~6HFIFAeNeBo~ zG50RldkGH?hSRC5p%p!JPf^jp@E-^s~6SOSSiH zwt5LRUS{%1Duhl<7QkJBauUkKuTZ>vHG$>BkU=TR4gxiR#xch(cv<8VE?S-3c_-LG7)ji#&DmHbaqg^0LWwt;pTQ#Hxa z?jX1lCHwuxfSEo3c*Hp`zQo`L->moK-YfNW)~L`>ASpJ1GlMJV!nfZrJXSvYWbTY4 zR(rz0(d4At!BeF-Km5X2f}K04FM(gacmMDlD*RW&mFxF$p81@J(50dJSD=JaexJb$ zlj6f$MGT1oW+GC22fY{!UZf8mMD%oZQBV}0?*`5{c9hmcORMouNx-b1AD3!r{$!!e z;$Y^w{aN+(TI?~&L-|YslI{SqD;8F&B8gm_eeL1Q!DS+!xu9&R2!KI6`m=}GXt{?$ zUn^OHtzD+;Mdu?`t)P4+=f4jgZdZSMKR?wTNz_RZ7}&;R`8o?c^@V|Xl1g8Cno8PO z_z54Mn6Cll@P1s=D6g;fwT)jJAjS%l^0cf)6xHd(Sc$(A`gYj31Bn4sK*# zO~Tki*A!sy$|y)m5DrOAOCw}6uYafOhSYY_#jjXU+M} zmFzVma_7d(6+$M7UOaJ|(63Gj#KDvQBP|T$f!gUcxE}|o^?eXn_%`#MFEsCn3fkYh zGa`OCt9$IA>cCq$`laK><#i?|W_HW@;?9;0D!2J3<$Zl@ot3R;a6r0*9kWkH@qXi> zu0E^$C&8>bI@EglUleMI4n?g%Z#&l`sWsTvHqezz684yZq1BlIwC%h&HCN5%>?sREj#in3pe-`obPOoY=e*I&Mjl9P+nsALMWs55VDGnRjRlTlUubonw-++9l0 zHIFp7M{lj_u-D=jukg=-t>xdMSz>?KSoA<3(bdaw2WHtzxb zbO#IPZk$3)Hoc&@xBw^7*@T3kzOY4_Z9{91rj@#?`{<|#!A%F}T*k+hvo*CQ(3lI( zi$|-Wg!NOSJp`q{_2;BLi}RC2g5DEDk=4V2x!U3H-riS}hd$jIh0b;tMMlPenVDKJ zF%)b2FYEnn-|>0#bTP#G-CmEB+8UPeTD+o7<^EqLW}c|!mZ4{`*_ly5`Ih$w+@J^< zP$ZZAV*tR99_1XHm_GmX&`-Xrrh1KE)4QkhNV44U75AvN>~Sr_mfTW5zQBgt5l0nn zTuPYf>hD)CHYGlwJO->EH6QVU(WTL=NoiELm*DGYMcO1ik9rvspJ{VsZ(TWZqf}P% zM$0M^>;zpSUaLFV?8Rhm9=0!`eS37+FNJvL%Oqj z2kY!7Ojy9Eqon6WCI(unW$nzF4W-(GI}3quKL= z2cW5|7>_v^*`ijn8c`?@?avE4pFan-N48ZSIT@>|)wp7+L9l%I(5dd_;vk!Z^D4W; zueIsG!-KL6CFV5!@JioP}Oz6YwujSY$+Z!{P~ML{spYjJcpg4Yx3BbYr{FOCZnC7A8g3) z2R@2_sWGH)?CiSkwZux~%Cx>*=B@RYzfaeN z*HZ`=hGxXZ=GblM!%dvn*uHRF{PGXH zn7LFnvUt_o>Dh5+Kkr|8$jy@(eL+YnAUF$~>C4q$lZ1ciy*^bxJtQ`2NMg@Gch(_x z*Zj*T=bMu=aQ}i-Ssks_MRUv8$+v)Yy|uhEc(Qk*y>nD8S%|diw~FLVG;pbW-q7~= z+@;!EpA|~9`2XP1?4JXl9t@rHU#BA>sZ}kDh&lW8sUr)EuJX`tnVf$h_I(N4*(ZKV z0y_TjGs5&9MDCXUPxgX9cZ^kd-^eQ~`B{^FlNT1i)TDeGN5&KRbLz{Dnetbkd@`{Z zBQO`3exDO&23GplID`D~wHx_&Y8Y3|51^o8GpD7a5mTn|ZNisOSY48i8gul)V2U^& zj-rxv{5}-}idQpCW^?~wFP7x_y53KTI}Q$xMF9!b%T*Y)g<_Gr9=W{xkp2GDX}gV% zg;fX|^pa8PW?ygbY=4L5Smm;?kW}$}EwrnrD>5ppSG|M|reNx@OIU_*sX#SvQKchI zem+x-!-da`415nV)f7VWU%r12{wiBMiZj9p??I{H-G$|=dXk-JC`hNqL$2Kr+LV%$ z+T~AasR|4Sxk)774#<#cCOD z_Y-m5dauECch!U`YK~Wz;@OL8<5FP-VQ#F?x`M^gC~sa7!91ISe%?~Oa({@$WPIsA zP}Ohc9EybGsc8#X^(-D8t)79w=Y@n*e2eSkhw;R()V=k-AkN0~iHb7fsApH>ceU)6 zf<^a&rXpjAHXu>^QBkI67QW`g+)UX#UIP7J`b^P8*hPPh17d+qpCpbdR>!foN;VHG zGKqdalN0mnwgt}po7q)Q+JFNpW}&Dk$Q_4N&4l4#I(a8U_^ zDL~!Wj1NMVG9$rU@7h5K;=+tBFV=6Dup1B6wpQaF;)SfE?|JOk*mc?{?5UW=z zhqJL>M}KM+_)UU4YE5~-#QF72 za=1BENB7M9$H#>A)N%wXc$HXp2h+0YFM8|g9Rh^v@sh#5rvkO+v$64LD9A(n!XugV zLX)PILjP`!^(F`_4}OGt$J_-5uLu0MMDDxi`z!7R8UJYm65Z(4bq6kY+*Bj3ioC5K zmH&sYw+zd2>)M5H8bLxrN&#t50YO6P?oOozL6B~wO9??br5hxaE@_oe8c78N2?^DV=q%w z{`ww)m}us4=BIrPc^sUTaJ5Ht*B9%ZmY`vQk`WI*jHaffTTE`lK*yM^&(wTZc-M}< z>a~~$K2!(yTAQoXV;-r!Q`@^K=ymuTJ4KC=B}$*a!$SQyPi9@%zum0h-;vjWw%E|7|)c zH5hI%tu8-;OLTdCL zK6u~~aEU5aY^t{0*cKOtAa>eHS@obch5%Wr2krL%KzD+|L~ z6XN>K%ki~XDl=yvuJrR8ObUBH^RFj~z6uRcHsup8*)&uvMCO8o8{f5tI~KS|pw~** z!!nr=J&5Z^!OTltF3x&Y6@+Ev z9IP+pzxjr22yAZT)9+%ic&Ki-uM@m_K2#b;S0f8ek=7M4D|fdO1c&c4AK1;<=%T?E zYZZuTu`wirjZU-QGH%KiC(2Rz{0g=@9^M`|cSlkUgB42-K3vHAhx{9p#e1x zeJPlkKZY2t2RNzn)2$d16DV0j(&po)e+XDv5}F}-4)_Kh=nFKU+T{wK-xuN;^gf8v1NSK zN`d+y;H_LNQ!JBG&!=RH2&dkRDj za5sm@Va=;fU-Q3*_KE=G<*0G-fE4VgI)%a!VQn_T`9qn$WNs|M(l>8Dy(wI~eq`() zBCcr|T%YJjvr2hPa|ey>As#Ui5p-vWOJNH0AKoY$Rz$om19;O;UGa%PVrgvHhyeL-~zd-fO4PTxFB>3F-IusYKSM z2baI?_dV*mLWB6dF|+p}Vy~m)z~}t+P>XM^R*Ct0cZZe5-kZ$Ib=3S7_}4PaPy2mq zRMF6qIJ{uHgz|8H#HS@xWJO^5cSR@-{cw{-PRZr?Ms9>s#S1EK>m2NDdt7Uqw1wq> zi3?et=m(xxMipa=xF{)CVK_6MTuhmqVFfxc2F)OKI}p{^ky7hQbQ!kTDn7>#bxRA@ z6&605NfJs*9220EAG*5oewN8j61wFvhcsH38#L}i5WI({=gyH=MSq$A*&0Ol2E}mb z*9~Nfq5VU}$+8iVm+RM~>M^%)Jbn7~dxOhOHny-n@vg$skP^Bhn-c9(y2|+@8)(gL zFfubTw%r<`$cNZ}#4sH57nb0}c=+ziRIMF|s6zDA)S?TU$fmi@|I`dGESzX^f@k$V_&}}ZWpli zx#m0ARY7n$FwY2!!whjPK=D3x{~1XCJjA)0hO(*>C^3aiL~PZs;&Fob&#!=Mhk3E} zs>#(aG`f;ur13f?8+p?&QevDhWU8(w>Pq0^;=W8=&=WTq>Z2*2Y`_-5T@F`u%pSke zYpDNT3Q&loXiT-VXXH#W`g(6!jYp}?%|$BOO*yWu?k8xQwxnVaU!>m)Um>1*Ct$OO zY5sQp^}QX1@T;HMjf9WSz30;eP&D#ie(DJ`Yq;Tpl`I7L%m7QQ$E;Pce;N!`wH))Z5(nBLAT{QAe_B8 zrwNL|M4X;`uHa1;X^7n63!=qVmx+47z#5~@d9+}7AL=$361KM{q$f-ooGiF)Y+x_PZBx@% z;pOcSoupY_HU1OTsaT;SbX-qc)GeEcK#kCB{FrQVl-K>}K=6A<(-WGIiCGRsEFh)& zn5CREVu;WBu@VV$dywst)w^y@f67(*OvP;$d3}i&`$S{oSG%IynD|>^KWIZ)qC?RY z8*2=yymDp9QN8H0<@W^wyV5YvO&{1VkwdiZ%>94E1Uu0z4+&0MF3wZ{1-tbh@d8Q@ zG*}^z`;zW(3IOBBrJx=S5>|Qhy*&lHH96O4;9)7mZEbDMSd~b-?er?m@sdgV?a-q2 zGobAi@j4`A+TGoqwX?NlzlM{vJXT8OKuoq~I#I?l)8wI{Y3P$0GN)4f6*3DNzLRzT zgbVaQpUBMu)ahod9?ehTa+w@M6hUWfuB-pEgN@SNMbI)NM@5Myv`4bs8QQ&vPx7Wv zb6@!Dz<}ziQkCSj>g~V zPbC&#XWZ_esdJ!Lgk>U%MQfeszvs{vRgm{2zEO?;jzkDgg0uMuWF+sJ+`;9xT=7tFDQ$jV@Dbv3+3|xaM8fV?%AEFh zO!SYO+$a9NO6jOCp0x)Amk>|~gqq*hyW?#Rq*q6i0#)So2U_ zU0p=_xvvj4t_XXxeIA@EB(08fZ6BYSik?=C*6 zSXUU090E$dZT!8rXADXOsRkJAh1^O?qbjA#YHK zFlFUQ@h|04(Z=hE=k33p_gAgI2st}B=&*)HkG7pc!1b1*#4QH4^7d(kqWiLfBiSiO zG-|(wP}x#oE79|#DlI4?ywykn4KIM->-BYs5mZbOI?}jz(2)!XN692Awavu zD^z-6l5lZBO?B4>=f&jW^45>;q6M6m1NB=o+*_`|$U(0{aVNV!Q%u{^a@Y6sSZO4@ zGKiC@S{>vp>HhXQxz3v;m`JV=R)m|iR#{t;khujMPEF#wxfv;W`J6gjQG{HJe1pb> zw{Ji0Y!gLN&yZaG*{yv`oz-lg{4d(#B`wd8m3$O5F7>{@R??bZ?2qycXnj@P94P%E z&7qSb(Pz?MnC|+n@5W75Ie#CUwt((FDbSlib&`sq`(nKPyq=UepUT*BV(WNs_{T?r zOP8H2C57{2BH|kNq$74?Vwz0o?rbUk8vAU?I84rGi+%L` zB|ni4y2`3sQ$WB|`Mh#Thv#9S-wff95LIRdbq@kjBO>rjNVT*` zA9jc618Lhk=zc}gFbcXX2VM$u3+A^iFb!yC2pd#a^E5hJQc-yLkY3#)crvhUBq~v7PX2htBq~sdC-FI@~rv5;zIpYa{J;O+c zL#D#X5L zu_yoNoBaJWC0hU1tkAX3+co3`%J4le%FagJ4++8EE)UxOvdeLxXgXC`xW))p+M2!neSCcU z=P4GCAH&+1K>%|}im7ptph9PFk-My_ErwX*MXX5vS{J7ucV=2dP2fgUFCGa zOVUYx5;xvwcOpy19sH2Ptg@_&D>ep^l#iMi3VQB)3ui~Hzp%bmapPcq1^*^1OD+-* zA`tjZ_NjQTT$qLShwpCH`HKgQbaZq45+u%adCu;l;jZh(uHRniEvHwMeV~Q*O3-7w zBrwpX(mVpiVu@m*xr@V4e`sthmwM2k#iv2$)fdjKa^JnvMKT#HgQvgzUl7;@g;Mb~ zDJeyW_}ucQ#1a-v_XI7;bG+)`>E>>V*_)4 z9`x=nYeRXZog?Z1^fm+{@jVO9Zbe_ShkkJ+Ey`(q#&j%CY9l_29Ps?PDbHIj*z4rE z*Ub#J(I^?Y5PqJ&7#Uf!vZ(Lhe+cCHrQYZM5i}xZogu=o2JB^o5PoGJo*dMPEe-@r ze7;;Cz=ppiY@hT+Ku*L-VQTZB;c#`q=_iYVIrdb3tix45iWknXe0sO+Y=<&Xa#pkW z8|cuZ?=WEFPQQE6za()O4_LsJ@tfEZxpxtM@^9`rFGtnsK{xvLta$UQ7dsujs3~aq4mg5y! z>J#+e`0T#|?X!nilPEpczZ%sdbQcvj-QjH4|zY#Z9wk9XIwNyyz#F||F?j2pFAoVNF%lPgXiSN=p z=cl}Pm#=v2-MVL+34v5>cMKyG|MX`A(2&|yP*G70^WNC#|I?QZfEU`tO;Av9b~hv} zOkPE$zrVi#iKc1_UB#3orwvV{??n_%6S2L2mED6bzIaYAI$Naas^0b;HaA5R@Hyxt zc@~8@h;|aV;GMmC^2>3g;=EJg?08SW=ahfuA=SI8DnZZvTQd(S7WEZzxNBJJE`nf6 zw<97+L@z#bI#UyTE40>XL|cM6MTRi1I~8T$o?pFV%|BC#YJ|v?Ro=hD!}G0f5GCK+ zTS4S|L2)rET?_eT@`3AXaQ2duO-9(Be*N;G-m#%#jT`misQ>CC^o)zMR|JevTAe00 zuNIN~1GzVduJ*W?NLXML1alLgF%tb-@(T3^Idi{mW8glEwnRzbxNtq$C*@Srbgr}< zmhMkCU~n~W5E&N#F&4ECjkMj;bigYUj!W5U50W^K*|_(xfiEh zKbjXoD{{fMcq`pXjtO!5b_7ToJOmFyiC+-){`&fMRMA6nl@bP(YY}8(3mBl9yr*qYx8EeGHZb|T`+W2| zLiM!{q5zswbiSX~q1T%OEM-U2-F*hq`ik8HsGrOMX()dS3pFeCNM zzxLgp5``M@zvz1Jdt@AgcLrKU=;kD@$!-roe3kJ-9UWLKT1$7nm~Rtm=6Lz$hJMjZ zR^DXn*GnC26_4!gIUhv#q@{@X3iqX?q~z!4UnL=d2h9mK1%bDLNugIr6_k<4t)8!5 zy^z=iyqn#ip_T64eYaAEbWZulM^?X8*1orhD1wJl+lzIoUS_JSxml=h|JPRnE8NnT zBnpw3AKz=vvG`~D$8L++hpD@!h)gAaXjU75?yk+`A8|0~wJD| zjX}+WQPYb?D*kd%-Nlv6&Q3{n$|r3B7;$Nh&<5VaclnIGT<=DamkWm*F~GzM+qS6r=R0V%p9 zu#h3#NoM&XT(@aNzCD>fEOFbhn>jwH{gkwFu814a*T?DN!owDtVQRpI$eb?qJ&yDG zJ$t{7fG$HU2W1~LJo(M~g``w>RY_?Ov>Wtrp(tFOt6IrPs`SEGU&$Isn6D?^{idkm zHcl7tiS^l)_UAvzRBU0xp!?*){(JP&u-1Bzt3osG7dITgih}IwV z3Vrb^%KH@j1Kaab96+I(6?K*>+$E~RLJ)>S;}G|NeOf?kxY@)73lX)0CKh$v*ITDK z885avzZ_;2EW-X8uet(nSrDYi!AqV=Wb4GIR5a)9cXd(kD=j3e9NR6+{R|61{hhs* z-{m>Oi`@=;U%_4T=+Prk{gYrJu+amcb^;6s*C8b->5V~SO+^LaT84=4H*jcy{}q(# zWn~+mqUnFk&lgs+#fNDYoz}>_qHe2!b%W!@S|uQUfy!;T^6Qir3kxfct8LKl0j$;H z`n9kidGuP)}0~_zh|YY>7u5l zrj_9WK=e8c0eyXutFBhBQ6WH0O+C}#GCVK<`2bt3{%FljP2XC4RT2_BGocop_P!}C z1=}2E>hg5`4%pe+KIzwj#>CpjrsZTqppcnl?=#=`QxMyb8uhqt4Ay``c?t|1%gf7A zIbvKKb5UXZ2YEO$mv*;)$e^L2>E>o z(cpJ>zyfVmaeq4kIHoN}GYZ52M#u9>o$~a){+87rmFsXwYaS(6i`U&~$?Tc^iso}_;;s4#a<_mX_*X*iX7=NIg`7!7=?2<{1~?L=@{^HQFxGPT z!|vwy+xI4x&Q2ul)4459OLX!)VnMQ@Y5yyhnc(|d)4Yl`ypPJt+(11a{hpI{-ZcUI zEtkP=tF*GMhR&Lio<8W1Mavx_>grnM?{90p=1_+l_^9Ncj_{5isT#T2z@K|*_`Ycf zBu-mDM8ppmYzx@8iFQ^(11onf*Ud^C3>HQk+HO3aOB9|z+9CHodmbH)g@aROGrcTY zin_c0)a3E#%JyQ;HNC_q44NJYgiP{cd$R`543)eEqSaf)jbDmTvSC4g*Mu_qJ_bdk zb~&gi<<-kMoGx)z<8RxWp1aGSD4Z#M)PKFHul_OvRrT(;?ZaFctb$`W

g&PP^2jM@s~hWjflTfUPfARW^1-y1WsLeqUtgaSZJ^>`iRjg7K))mPw8*L4=Pf#;Vt_##RBRt# z8rD7zRI1lun7`Y+BEj~(_%UxdAB!p9KfRr81~S^z_cjIk ztL?uHFX%(#;m&XhP&nKuh1SZjcEA;=9H4>O!J^V%cZorrNEj!Wva^@>!(5kD%CR5v zw{Y@>f~5NwE$%Wh5Q5g`#ciS>WeX(nw?X>HXZ4tgviVqk@%2EefMV>k{iCmsB1|+T;KbEEPoVLOIZ_mz z>@rYN&~pgjJKwt=neM5ls@S7AcqVE2+x?LPs3WQZGp%%~>2@uW)j?pUvCiB%+UxG7qM znWf5COb+U;C;A0`=U!msWB7<9(UQtL_b^=QSzjIYN9D|IIF=HjGDALI_%c}JN|UV- z2<1KKycp)MB2DCmEJdL68g?0&FHDr&z#%M%)l|3AkYGB^3{f+U`hy2IT#p~S793~f zgdIc(rN-#<+;f(2=?FF&vqfDBWsj&2ZjBROA#5&}bYEUwAb5#(goY|vw7?*f)P(DT zSmv_gs7+`(XK@(MR7Io5&xh-_L+ODiGd>_Gcq5cZyWZm5*dlwP&M(}j_UoXpKM#zLyQ*F;a}z{6RSf#!sNYh z(Q?+Ty!8Q@eXP)l-u|>S>JqPkWQE&kbA#a<@(`96?{K-4mZCS0=5ZUO zj-~-*d0q+4`6Xrumx?$nKF3-D(o#)Mk$LZpsua^V3q1z2CWSGB#gvcBW$)g5&?!VO z4WHw*a4cz&PSYC0%|aPc3dsvQLgJXL7)yFL2NU$_ zfzW~kndr!s6I>hl1HSmB-FvAj`_0GK#E(vTt)LT!pIDp#vG+{T+O?`Zjeg2jk(DW> zP}Xo+r`(%wTwHAl0RX2G#p0=YGR+*6+K$lqzyc)EEzfCp8j zjH#CuthSf`$s4rzcpd#1K;0CBMg4K|_rfwL*V(mU6x-S{`wtIcNwI=pdom7l<;ffC z2dLUuCY^6JX@n{>R?pK#d}qRS9spUA!ipotyn!mqaetXQq$VwXHaBdrjNk;R}Rk*-@8(VKn#7Hht#d z&|X0E$5(GYtGim$VOz-*wvB=Bt4CH~CgMoyxbPH;VKgMj-Z zKi$}PXBFM;3{bsUXbQPHfgVd?P5%+W#eM%fK8{H zi8|;VHHI*dhjAxQ-4rCmp}C>(97{hq13{B?Zb1AH_X&@9IsxhP7Q6M?H~kQQSds(0 zdO|J+*m3B$2VA5Tl=dPW8J!Q5GBO|hb@sF~U$NmGfpF`m?Fs0;c|2>KIN+r zMp*h&(tBTYi9XMA>hL+$6r)<$>DhAD!C`~4Q14@gk0VRN?A15-6Gk9)yf33C$cx7m zjceV0RlLe|cKfJIx|cnMO$JWiAYZ}2@lY^uXOVEfha3Im)l{?tul&$+xBX;2L=|SJ zEw1y?FI)j-GMIl>>|0wyIj;n4@clVMfe3Opa5g&MY9Vr_+Nd|KswevS8{Bqq@^ZZ(TB&co?FcLo!;coUUk7FGW@) zgsr`gnx8@a4g(b__B|YDzsYI+#0dwDJWepdoZ(`C((Q0AJADb-w$-PJBvM-^9z~bkbG>7TVu#cRhuq; zLW*w%OijWzq|qA{NHz~->02@%t6oN>5!t@6j`5(7b&0~?USWiHNYq-+<~rVCq29*( zV4~_jOKY}4+F7Z7_uo-`u?Q~yj>61$&uXjXxwX3FrFd8s7n<7)$5iwz?+%RO;~fU> zw!3VLJF_PFtU<6agj8oZ3(81?E)Si1I^M1)#9og3Dia$&vF^+gwZTIr5iu0Dow!bRB{H*{fd$z<`z+T$)gwipIT-BI8xsP$-3u`UG z9(!2p!&kX?g75%I#(Ii)dm@U2_H**Bd)l3K7cMHFcrDvUQeLsd3{4zk;Ak_*A~Ee} z%%R^WIWWb_zu%>02jrAb!%w2+OO-tO`x;0V$~?;4CO|@9?P2s*9*UMyLk@ZQn$)M` z$fxkbNgSnb)ntynU&1sAfV<* zu|6Z<+TgywkK6ntRtG?+Qog6NvWg}Pqk!%e;hxBpSFb!mE;t^>dYHlK+V7D=C@sv6 z9S;y#jqZ$0e7v4#`BzZZ@xjXWplAS{lHL&#%{`(hW#tgPf(rPzPE+7g}sH_{EbSQV}W$2RputfsG9FgQTc5(KnHRVp=Dqw z3c)48ex@o9k{6Pflh*~P0DDCO-s12uG?d%cw^w!P1y|?&Xu9}BtjnTPK*6-(V`hQi6U&d+3d}D*;AB>ghftpdxAFxByj zG_M#JamY8N8_LsF`6sJHKri(oa{DOs-r9@XUgAKniBgiqsIlEFcK}RNyIkN>YSj%B&xUkj?K_rNQb^jKW{nG$=I#$5rt=^K@W`T9^4yU=$!RY5XSKHr1 zDLo-_0p5CNaebJ-ty?vGi|BF#DkR(?d!r<{!Tak!4OH`&|JuE{LOnBJ^k$nmPTgg* zg2%T*u>fC@q&e|W5%je3xuwln1;HrZ^VV&8RTev90c)2(_c)9@{AjO0sdC9D_h6kH z%bh2|;rE8_Hdb!_{SX+1$;`#i!-EbBJNE*6RP{~zc1q+cMB+&#&pJmo0BZUHQoZru zb_y$oOeo=dLDdAQF5+;~-`qecj1V5aD@7kd46QN{9(IaPh!}6DbU*HJbVhl4VTUfk zV`98AUzB+o`7X0ZjLc7%7nk*OX)eISOE!hReswhInN;<$+IYB796?+%x2Py|*dL|v zzU53dPTMx{b}resrm)Q1b|0%g^V+xYh8R`XdNdn8UkM%XxHX?BU}^!?r(x%nzk{(> z#*l=~lujt9eqOQF)cCCe6#=!^aaB2g6m(s4(CyI?dNuzFktDPXEXl2`2HIXXM@hlM zUnV}YWe7Rj&0hceQT(H}=zjAjZOFFw9y|lTtSe9X@R5MJgTDdcD09pT)a^!vd9FBc zakV-fec}8^@wdVfE+Yt~ifUsZ#-;nKh7+ZaV!|$c8H0NofY)g8NR%qbn^D8@F$!!t zK-^S_BDxKI(_M^}YXR?-e^NFM^?%vL49gLHPub z&0yId2deH(^6Kfmt_mk1`6oo4z;bDuF8_}G1l0_UjJ*Hg!=G_-#?Ex^jfy<9zbBUW zlBp740x*51{q=s}qJ?=>$PwuCF185fb~UuOHTs73beh|!;9_W1&Z34dj_}jRay@Bf zRtk_OZB^y{XBBOO2t^OIw?vYuYzy-Sk4JJ%9*Jgtp9f$du$ap)XJi)Yat~ir^2s4Q zQ3Gfi2B;YNA{2Xo2d^~hC7!Og%VUoQ(#YPZ7w_HG1Tg-24gu2Y=;-LoP{Y|8%N}Wb zYP{=Mg!ALDNrPnm1g6Hg!5AkRDq1^M25J#OS+hc|j$zk$e%Q?lb2>@CX9Tqhc)XX1Tw`Y#mF7Or4K$iK zCg|P1*|FuC7S_A2T2#}Av-=2*}+)|jk{W0iIqj2~Dd53O2_wsKalaopRh z^AxqkAup>ph1Peac9;cgyC za@+(F&c0bqcpPrfHE?3^;ICrZ6Rifjw;A5^k>?w4F{FL){^g(ZIhM(G0fR&mshDH9 zmf944=uI8fc{m7S0xCQ#7&t5Orwd8Z8ScOQ&=i|4Ito{Vto+7{ z7_wEu{iB7vz(!+TAOK4nH&1t8S&LVmUH%_Duo!KJK>bmN~>6!ixEPl(QEw_ z`3CKR+?K9kR|mZ_Upn`RZH?UFSS9Aj4&4g)PO@(oPeN?&-%FS0Nxp!~R5W zmEI=-ZpY)CMjJy`g?*c(w+NaGqNMfuC{rAs?TPBW+LW)QksEUE7l-%Lt!X>|=v%04 zn-=!ac3o8|%;7`*7+h_k*^cBtKlsoD;|7dKQcKsiAXMTv3@A>}>NZ2Kwa$Rz6)R9B z%E|S*FslYgDMMb3kUXh)E_Qe4Q#_Y2^6}VuJHj!JKKH9LlW`8sVN(`(95su4)l;WE z*%MGL0K1KkqqX_!BitFv!$f?kPx9s`@vSqr>)PZ_N7V z1P(?I-R;ghgdGjn7YO?_kY+m^Ca@zH*no2O`A2SU$&gy3$-wb?hfK=|2Fm!>3*v8F z7D%fpwhtw^^xg{ScShNWzeSLZYRx;&#-nfSz0+MgT?C!3FLP1UE;T@i0|J|eh?rr$ zIq|ATLVmwocWO_`kJ4202q>sF#|D-AlOtMM+ZUk8ii?R0)& z#SYyaGV9aLYv$N(+HuOu92LwLJv`zSJXbss?_H% zJ6ZTO2b|>tEz=`Z%b2Gw!0r`!+Fl+4<9k3I5~19}tO=Fmqe7>q%#^wp5VGoa+N|5} zYotKEby9NJfzAQ88+Nt}vJ^;jpd8^LU6hS0DXhw>L65j-c`5~J z5sS;~?-bPeP4`Cz*Ra1_9QeOnoPkFGozb1sFf@zgYv&(#Ep;Co_s@KR{Kxy&&_T~= zUjf3cVgqaxdJ&YVU*v|7)2F*(lk%x-U{T3!VfX`9InuqZb6;s9OtOzv6lg$q3r!X>Bar5mQo8J z04Dqfe~QEgno_wJO2#d)+RZ#0U6v7L4qM7Gy{tvFVHA^Ux})PpN!)U(X*aNV>&s)r z%Z`vV3*`XN!h(mBQh^HM@$sguJ0_}eFRp;S$-_PUQE&6L>wbis`CKS>Vz_TR12AQA ze}H-b;RcbaD2_;(yZ-z#V7u2;d)B+ZI_GjYA|wzF>e7_yE-C&HQ)C1%;ZU0eN`Z`{ zzc^|l?AYzrLauF@g|6#9mNpK2UMz9m0gljOa85O8iak(EaqN#lK`Gf(=@yymm6-ai zA8WEkX`Z};kdIbIfdr6mKL&V}Jm|HRei$2J^i-e#ZovtN0_P7{`B$`IXEBcAMNh3V zyiI^~Sy+`Kyk;gU3owEr{yy)hLf)OrL}=}Jqc;LqS@Iym0Au)RcXyDvD-g^)m2gxY zM`hFs98wN2UI;mEdra5AL6JV!hd%vx?j2BMgTS|$I-6+aQf*b>Vu<4A^dU8)(%Rju zN?)wW9^h^Z{dkdXF}3vao)kzRqsNC#wOnukAQy^RO4;2qFxbneu%0;rRu+r{f8aNI zm9gJRqjfc!B_Y7bqRGL|bVy!dOG(?1flTZ@gi(BmWA#uGP%c!=fs(UVyE#=VBusvd zg+CpB0Iai(CDbo+|IdDofB2aAkL5lV{RNnuHV2rX9NLr;| zkqTs6XOnPZJ^Ck}D2Ei+##jFX+?nsis!i7;UC(60j^g4Hm*#aZC0jboa$w4P( z0D#F9_7ucMu7jU7I%>C0f2J!xbPJ+gJ5D9@WMvC`Uqwf=%jVc12;if=4H(}m2#fjB zA&Xc!*2_NTDIOR6Pc0^(o1jr+a~T66hkbGjmvRFq-0xzNj(~od>BG3auA$dQ%^p(O z?}84m%%Fm9<0_oWAtWs00O)C=F54m)vWi2@-`SGvAkccZ&+xx-E_TzQHl{`MVqVJ! zV1qwUSKR|YKlIyuI^w(|k@H|}P-s!9L>=lG@-J$I@x7aMuSH0uCyu2cH|2y`ex^Wr z?+pNakOOc1?r}yA;RLuW3A-lyf}42HdgtQoJ~m=}$Hst;G#Yj@+g_bvUGv|gf{f*t zCI;xQ^~O)??pCD%6~Vc?YY(G!{>P?T`>;Hc>SEtJwJo(qob~#!n8*R&sen&(;=+MY zcCS)I4dX)pk(~bCg7~$|ZQ2K%0~7)REgJd~f%{8VXm&QKH;kk8P%T~7%0uxKHGYR?U~}6khx7;glV8Wc9r{E z^do?=qzbBDBHfxOS@SX&LZ}Z4fV)H%&u^}|XKfZF;U|11wfI08@~>@@Ccw-*`M|i( z34?HdHV**#Nzt;2caIp|2+7V=g-5o28?SjX=ZG^Lzir`Rb-!Slns71xRdretHX-JU zX4Tu;MaHp3c^ci9fO94y0+5B~Qa#?UcwmY9#6!l23C67tUQMp!D#iCkE1Fs-E^kpA zdGgRf@$;@Ifj1aU*c@r#K-xXxMEof%FA z_?OpZ1Cxh_bi#w;B(Z%*2i@No+s5jDRe9V*aiORxe-x*@c+XXc`gJbykZxsqvc+WZ zE~o5VL0^NV&YFGmT#smku~5dD@2DyhqL%3`8TZ569>#hIXMd-j}-MJ9#)BVlkfa4 zk^!~|uGbOA&U;O#M|r;=k&xD+crE8mq!+E*h_-&cPjG1Z4s#*k6ea+_YfW--6?}l# zw^MC4y7-K*_wH3zt0w^Jyh|8{M=X|r-wi`v%}n0>4iSib%@?at8@4ID-dlpFjtEpr zXSjlkleg>$oN}DTYn;+e*}%`NJBOPtb!?FxMq@}ge_a#3+@B3z#`#sc{0r9!DQ22G zJ9k^hqm5tKHDG1!Il;wSY$=SZ>MVJJ%(Pj)yo|8ZCj`HYW41RXyjHs&cbwxIdj(*a zwIO=%^rqR#3LX=f!$L{eR}jaac$v{$^`H~09Bkk!zt@&Rg4r@&f!nWe%U?BEvSDiO zwGb7{-HeJ!ksKmw@#ky)5xow>73XMH^R#27u0+qnxrFM*xwz9H5N1*OodayK3YZFJ zNuV(75_Q_EQYRs>x1I(%ich%L<6U3{WSikO`+)dOOSnL#8*PueXxN%-q%(UPGWy z)rBdl$d4@9e!bob4h;?*ifnZ3S2H_u+G1a-S-2&Born)MnvKpDcHAMX#Jsg@*`y`= zJ_Fd1>ik{VRa3@I;MT0uhIK$p-mh zJXt8HQEV|)Zj}(XH+w2#HgiNi?lXFR;u2YtTBL{OIs^$tq1E+Icnl>LU*k{fOklS| zhjds^;FxE5d6zoqw{m0f#kbxSNZ{ATb)4H!tAU-c-6my&6cAa1vK3nX@0c5{mh7SR zGD)yPqBRZzB>kUk@Rs(4j(*fG_=>K&b-?;YV`@M z!+2?fTN6XHeYy6Hgr!sT_n){o;JhPZD*BpviI~5gMHpMSXqa(IR@Hi@)>MG_G0i{z z_kP~FH|Kqsd}E?l&XVbO=zg+Hg~x6mAzgRW?+@Q5&@Mo}`|ftY|92*A3M4+|w*i77 z)M@bhz2hvPMj8K~8YT9#3IL(31Mq)0Sh(W+gWF7e@Vmml1x%h}GN3z_JvT5Ia9!$e zZvF2Uf$QaeQ>kDLxcHavP~dt`1oaM8@6J@qxbfpI`X}~7w(T9_<%!1qr79VuDQo>q zCk9{dy=4Gm!dOKg;xlmA_87&Fn*1NG7Y3ixaz24nd@~bp71`!h2*z!o)__y-)kNG@ zoN#u-tiQ@0s@nwb60y?DkQYmz0vP1wVa;b3hMjkEU2HU61GOWSc6ju&9q}Mu`??Nb zm~{N7zh-JIN3UG&hn;tjFq-pD)#FZbZ<|k+G6C0xrYc^|+-5jTp-#WB%09%}?Bpz! z&#oLy(nNN+jrck>dgC+$u3$@vyFn#OB&5XU5cAqPNGyP#cwfu%JI$&bzfFXfOI5DT zBN~AQjT~Q(*~k7=>rlSfX|FUQrQdq`t6u33)msxV8F_ zfpnFKIZmPX7^p9PG!U5Zl59QcenK@TFjVP1kRm8#`T$`^wmroSNi7yN|5Oi9qmAzu z1U2}b!FZ{p{u+RX3!+!?%70?S%#((!?!e`^R$5d`?a;qFth>uYFs##*2TKRWlaKpUuo~Q9^c!*Q2Io%>*Bp ze_@RCBGCppEf$XAc~Y1W=eMM+6Z3JVGvBTkYZc?pY9)zJA5csn^9-dPpaOs_`RgC(%MB9%eWN6M*U4>+TIes zBF)MLt~1gjCQxcJSimHLkO2rSv(|7lvm#_brOu^|-nsCi7rNEu*VQAn*X7!+KI>=k zKT11SwEcRnQOw`!v*?1K?l&B7+LsoucWUlBZlCOpYX}wGbKH}SV>e>m|Br|m0Sion zIo0+hFh2L4`;5GqvGA)i7%3Ak6SoyoBtsO#@V3OqUj*Yb>R~e*&8=`h(~rJr@aGEG zTjWBY3Z&vQ=8c=KjY)yzOi%g?8ddGvUmOmSU?y`zOk~zuc67L;afbUQJPT{o326$QAV$>INOlqtMIc`&V zJ|#6@t~lXE^GkRH3xK(ckDK`0TWG>hEZ?x%{1&di*h(y{&N-~HO3Acx*qKGsK&d98 zNN=%ubD7;4PTib}Mb`!S+7Re-aUA0f^ZSN^R+k$!$x6WX;lyZJjHW9yJPQo*wA4}a zL0wPSmmB13R{NME4ajfyON=&JBv7N9>bK>#L5e-7j?#)xl;xEN6s3k21;F@N+i-C& zR@Rqpg4Dl@0W!1OlDJ!&MWb^2mR5L0U)m5ZmA zyjBoQ3Ob>=`7*5Hz1S=sB2nqI_xy&xwRt=bpmga21ZZ=I)+MD~6+{vY4Y zG8Kr8b{TV}j&Ca}>G)SNw*%$E(7EqVNf>Hk?utQTq;xl*hWOwy;HpKEt!SXPefjUs zm%jrP5`0#^kvrre)EBHV5?c2eE%Znq_WnBtaC~9TuD0JP!*h~yp*MU ziKh$u+4SFNUZxb89EH%uBc)|X7BNl^<&N`Bei%*lk2!j+E=aR1#BY#LS8gH*#z zoxUqmfiWGnk%Xd^=zk-5eGn&`bn(BP|C1;Duc(xXl!&y(n4B&L_93kR_#|H;tMVcQ zw3_)!UXMnmTrQRHG3#x3!GU+Y47ecV?XFii+Drr9XeBkoa{{opL?Hr$sFt(m;xc>~ zCl$88-(5^vVF%sDe?VL7dx_8Kba_z~z1~Fujh@?z6vK9d4hm@2Ov*1=fLkrgAc7}P z--7~QH@xiZd|jb^b4^gdG2t7}aOCQP@f%ysnyNka=lZYzZ);y~OX7dCxPNi^``=gV z7K2yi?mT#XhW^eabE4M8@9&d5W-ctm11Tm$W$oVE<-F}?ydTrNGhzOPM=n**&WKN) z_@Zb#gC(e3zNlrJeoo_S)*J_AXm>1Cen&ma$3t-buGiJwvTWRy{_*a}i z^x7zQ*)@|s=Ht2g{AGC`p56rxNA=6=&%99K3F`a-8y2NqR~yW4FdfZm*!kpqz16-$ z@UB0|GQa(4JxJaCk1k3(&VdTlpTGij`@53YH-Vk~-ta~K^L*YXZJ4%uuJjw@sB2Z0 z**x4%z~wQZoK;=;D0XJl9$PW{*S8*Rm7ZueA%N*g#B|_-Rn|wHB?WW8-=D7qT=f@n z+3&Y3XwhmvaA)@>ZeS7s4%uytK9<^bJX&pG?ghKJ>?rAu=mweXPv>09YpggV8S@-8 zq75vbelUM;03NC0CS|&6^|H5(wR8FoAE|Hz?c9)MTqZdAP?Vd80VMG@UEj7(X?jnt zK5P43HPiUr_e(>Z4T?EM6x44NeJk1EV6%|rI%IKZEO7H|XsqOm_S}n$Cce2_Z57vI zx}pDa;S8zw$9gAUDf{qXEpX0CqI^aRaGNHm-FeZ&gzb9c$=5Ff7tae}%hy#u0-3B6 zRFZ0bonZfQ!3Jpgz+rXPy+fElQ!Y^@#<7s2(+!etV|P^Vx>EPoQPXD6(iqEy!5)r9 zMOq#{JDMH|2(5+0;@qzvZx{XR-u^p&!Hb<04O9I0XuseVvGU-FGdnOlOX6JX^%md+ zi@yDz3ICW_Il?c@DPTRSs1gMkQtK91f3u#)es___1qDl>o`#ibs(Y6#W9NCH^Zj1+ zu2iYM1(plhfa=8{>R*efq~EypaGhh(8potJh8%W3Q`Sw)p!!4Muu}?*S3qgUqp_kvPC@R|Y>*5AypaSOW z`s!}_bJU2!N` zTzdImbYtS5_9JgO%UT44Y9IVMTH5nk^7>cs`T|Q<;L6sIk0018*J*s=OjJiP!n*7X z#0b#35;+(2vlkYvkP*XiECWy~ETX6U&5ey&vjm(x3Leb7X%^?ip}26e>SNoI7XfVI z@^&>lcq9xQ*7gWEby%+lZduI!;p6^zD|g@734JXBNp2fH%yc_;8qD?sv%6U(FHID1 hI#a+uU-Q#{hX*>rZ`MB01D@Z-;OXk;vd$@?2>{}{dP@KR literal 0 HcmV?d00001 diff --git a/localization/ar/acyclic-visitor/README.md b/localization/ar/acyclic-visitor/README.md new file mode 100644 index 000000000000..8bb8e01a154f --- /dev/null +++ b/localization/ar/acyclic-visitor/README.md @@ -0,0 +1,167 @@ +--- +title: Acyclic Visitor +shortTitle: Acyclic Visitor +category: Behavioral +language: ar +tag: + - Extensibility +--- +## الهدف + +السماح بإضافة وظائف جديدة إلى تسلسلات الفئات الموجودة دون التأثير عليها، ودون إنشاء الدوائر المعتمدة المزعجة التي هي جزء من نمط GoF (Gang of Four) للزائر (Visitor). + +## التوضيح + +مثال من العالم الحقيقي + +> لدينا تسلسل فئات مودم. يجب أن تتم زيارة المودمات في هذه التسلسلات بواسطة خوارزمية خارجية بناءً على بعض الفلاتر (هل المودم متوافق مع Unix أو DOS؟). + +بصيغة أخرى + +> يتيح نمط Acyclic Visitor إضافة وظائف إلى تسلسلات الفئات الموجودة دون تعديلها. + +[WikiWikiWeb](https://wiki.c2.com/?AcyclicVisitor) يقول + +> يسمح نمط Acyclic Visitor بإضافة وظائف جديدة إلى تسلسلات الفئات الموجودة دون التأثير عليها، ودون إنشاء الدوائر المعتمدة التي هي جزء من نمط الزائر (Visitor Pattern) في GangOfFour. + +**مثال برمجي** + +هنا لدينا تسلسل `Modem`. + + +```java +public abstract class Modem { + public abstract void accept(ModemVisitor modemVisitor); +} + +public class Zoom extends Modem { + ... + @Override + public void accept(ModemVisitor modemVisitor) { + if (modemVisitor instanceof ZoomVisitor) { + ((ZoomVisitor) modemVisitor).visit(this); + } else { + LOGGER.info("Only ZoomVisitor is allowed to visit Zoom modem"); + } + } +} + +public class Hayes extends Modem { + ... + @Override + public void accept(ModemVisitor modemVisitor) { + if (modemVisitor instanceof HayesVisitor) { + ((HayesVisitor) modemVisitor).visit(this); + } else { + LOGGER.info("Only HayesVisitor is allowed to visit Hayes modem"); + } + } +} +``` + +بعد ذلك، لدينا تسلسل `ModemVisitor`. + + +```java +public interface ModemVisitor { +} + +public interface HayesVisitor extends ModemVisitor { + void visit(Hayes hayes); +} + +public interface ZoomVisitor extends ModemVisitor { + void visit(Zoom zoom); +} + +public interface AllModemVisitor extends ZoomVisitor, HayesVisitor { +} + +public class ConfigureForDosVisitor implements AllModemVisitor { + ... + @Override + public void visit(Hayes hayes) { + LOGGER.info(hayes + " used with Dos configurator."); + } + @Override + public void visit(Zoom zoom) { + LOGGER.info(zoom + " used with Dos configurator."); + } +} + +public class ConfigureForUnixVisitor implements ZoomVisitor { + ... + @Override + public void visit(Zoom zoom) { + LOGGER.info(zoom + " used with Unix configurator."); + } +} +``` + +وأخيرًا، هنا "الزوار" في العمل. + + +```java + var conUnix = new ConfigureForUnixVisitor(); + var conDos = new ConfigureForDosVisitor(); + var zoom = new Zoom(); + var hayes = new Hayes(); + hayes.accept(conDos); + zoom.accept(conDos); + hayes.accept(conUnix); + zoom.accept(conUnix); +``` + +ناتج البرنامج: + + +``` + // Hayes modem used with Dos configurator. + // Zoom modem used with Dos configurator. + // Only HayesVisitor is allowed to visit Hayes modem + // Zoom modem used with Unix configurator. +``` + + +## مخطط الفئات + +![alt text](./etc/acyclic-visitor.png "Acyclic Visitor") + +## التطبيق + +يمكن استخدام هذا النمط في الحالات التالية: + +* عندما تحتاج إلى إضافة وظيفة جديدة إلى تسلسل فئات دون التأثير عليها أو تعديلها. +* عندما توجد وظائف تعمل على التسلسل ولكنها لا تنتمي إلى التسلسل بحد ذاته. على سبيل المثال، الفئات `ConfigureForDOS` و `ConfigureForUnix` و `ConfigureForX`. +* عندما تحتاج إلى تنفيذ عمليات مختلفة تمامًا على كائن اعتمادًا على نوعه. +* عندما يكون من المتوقع توسيع التسلسل الزائر بشكل متكرر باستخدام مشتقات من فئة العنصر. +* عندما يكون عملية إعادة التجميع، الربط، الاختبار أو توزيع المشتقات من فئة العنصر مرهقة جدًا. + +## الدروس التعليمية + +* [Acyclic Visitor Pattern Example](https://codecrafter.blogspot.com/2012/12/the-acyclic-visitor-pattern.html) + +## العواقب + +الجوانب الجيدة: + +* لا توجد دوائر اعتماد بين التسلسلات. +* لا حاجة لإعادة تجميع جميع الزوار إذا تم إضافة زائر جديد. +* لا يسبب أخطاء في الترجمة في الزوار الموجودين إذا كانت التسلسل تحتوي على عضو جديد. + +الجوانب السيئة: + + +* ينتهك [مبدأ الاستبدال في ليسكوف](https://java-design-patterns.com/principles/#liskov-substitution-principle) من خلال إظهار أنه يمكن قبول جميع الزوار مع الاهتمام بزائر واحد فقط. +* يجب إنشاء تسلسل زوار موازٍ لجميع الأعضاء في التسلسل الذي يمكن زيارته. + +## الأنماط المتعلقة + +* [Visitor Pattern](https://java-design-patterns.com/patterns/visitor/) + + +## الحقوق + + +* [Acyclic Visitor by Robert C. Martin](http://condor.depaul.edu/dmumaugh/OOT/Design-Principles/acv.pdf) +* [Acyclic Visitor in WikiWikiWeb](https://wiki.c2.com/?AcyclicVisitor) diff --git a/localization/ar/acyclic-visitor/etc/acyclic-visitor.png b/localization/ar/acyclic-visitor/etc/acyclic-visitor.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4df13d80f8c0d1be8ca32cbc39594bbd9ec7d4 GIT binary patch literal 49064 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 J8O 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 تخيل أنك تمتلك بعض الصور في بطاقة ذاكرة وتريد نقلها إلى جهاز الكمبيوتر الخاص بك. لنقل الصور، تحتاج إلى نوع من المحول الذي يتوافق مع منافذ جهاز الكمبيوتر الخاص بك ويسمح لك بإدخال البطاقة. في هذه الحالة، قارئ البطاقات هو محول (Adapter). +> مثال آخر هو محول التيار الكهربائي؛ إذا كان هناك قابس بثلاثة دبابيس ولا يمكن توصيله بمنفذ كهربائي به ثقبين، فإنه يحتاج إلى محول لجعله متوافقًا مع المنفذ. +> مثال آخر هو مترجم يترجم كلمات من شخص لآخر. + +بصيغة أخرى + +> يتيح نمط المحول (Adapter) تغليف كائن داخل محول لجعله متوافقًا مع فئة سيكون غير متوافق معها بطريقة أخرى. + +حسب ويكيبيديا + +> في هندسة البرمجيات، نمط المحول هو نمط تصميم برمجي يسمح باستخدام واجهة فئة موجودة كواجهة مختلفة. وغالبًا ما يُستخدم لجعل الفئات الموجودة تعمل مع فئات أخرى دون الحاجة إلى تعديل كود المصدر الخاص بها. + +**مثال برمجي** + +خذ على سبيل المثال قبطان يمكنه فقط استخدام القوارب التي تعمل بالمجاديف ولا يمكنه الإبحار على الإطلاق. + +أولاً، لدينا الواجهات `RowingBoat` (قارب المجاديف) و `FishingBoat` (قارب الصيد). + +```java +public interface RowingBoat { + void row(); +} + +@Slf4j +public class FishingBoat { + public void sail() { + LOGGER.info("The fishing boat is sailing"); + } +} +``` + +ويتوقع القبطان تنفيذ واجهة `RowingBoat` (قارب المجاديف) ليتمكن من التحرك. + + +```java +public class Captain { + + private final RowingBoat rowingBoat; + // default constructor and setter for rowingBoat + public Captain(RowingBoat rowingBoat) { + this.rowingBoat = rowingBoat; + } + + public void row() { + rowingBoat.row(); + } +} +``` + +الآن لنفترض أن مجموعة من القراصنة قد جاءت ويجب على قائدنا الهروب، ولكن هناك فقط قارب صيد. نحتاج إلى إنشاء محول يسمح للقائد باستخدام قارب الصيد مع مهاراته لاستخدام القوارب التي تعمل بالمجاديف. + + +```java +@Slf4j +public class FishingBoatAdapter implements RowingBoat { + + private final FishingBoat boat; + + public FishingBoatAdapter() { + boat = new FishingBoat(); + } + + @Override + public void row() { + boat.sail(); + } +} +``` + +والآن يمكن لـ `Captain` (القائد) استخدام `FishingBoat` (قارب الصيد) للهروب من القراصنة. + + +```java +var captain = new Captain(new FishingBoatAdapter()); +captain.row(); +``` + +## مخطط الفئات +![alt text](./etc/adapter.urm.png "Adapter class diagram") + +## التطبيق +استخدم نمط المحول (Adapter) عندما: + +* تريد استخدام فئة موجودة وواجهتها لا تتناسب مع ما تحتاجه. +* تريد إنشاء فئة قابلة لإعادة الاستخدام تتعاون مع فئات غير مرتبطة أو لم يكن من المخطط تعاونها معًا، أي فئات ليس لديها بالضرورة واجهات متوافقة. +* تحتاج إلى استخدام عدة فئات فرعية موجودة، ولكن من غير العملي تعديل واجهتها عن طريق إنشاء فئات فرعية لكل واحدة. يمكن للمحول تعديل واجهة الفئة الأصلية. +* العديد من التطبيقات التي تستخدم مكتبات طرف ثالث تستخدم المحولات كطبقات وسيطة بين التطبيق والمكتبة لفصل التطبيق عن المكتبة. إذا كان من الضروري استخدام مكتبة أخرى، يكفي إنشاء محول للمكتبة الجديدة دون الحاجة إلى تعديل كود التطبيق. + +## الدروس + + +* [Dzone](https://dzone.com/articles/adapter-design-pattern-in-java) +* [Refactoring Guru](https://refactoring.guru/design-patterns/adapter/java/example) +* [Baeldung](https://www.baeldung.com/java-adapter-pattern) + +## العواقب +المحولات بين الفئات والكائنات لها خصائص مختلفة. محول الفئات + +* يقوم بإجراء التكيف ويرتبط بفئة محددة. كنتيجة لذلك، لن يعمل محول الفئات عندما نريد تكيف فئة وفئاتها الفرعية. +* يسمح للمحول بتعديل سلوك الفئة المتكيفة لأن المحول هو فئة فرعية من الفئة المتكيفة. +* يستخدم كائنًا واحدًا ولا يحتاج إلى استخدام مؤشرات إضافية للإشارة إلى الفئة المتكيفة. + +محوّل الكائنات + +* يسمح للمحول الواحد بالعمل مع العديد من الفئات، أي مع الفئة المتكيفة وكل الفئات الفرعية لها (إذا كانت موجودة). يمكن للمحول أيضًا إضافة وظائف إلى جميع الفئات المتكيفة في نفس الوقت. +* يجعل من الصعب تعديل سلوك الفئة المتكيفة. سيكون من الضروري إنشاء فئة فرعية للفئة المتكيفة وجعل المحول يشير إلى الفئة الفرعية بدلاً من الفئة الأصلية. + +## أمثلة من العالم الواقعي + + +* [java.util.Arrays#asList()](http://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#asList%28T...%29) +* [java.util.Collections#list()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#list-java.util.Enumeration-) +* [java.util.Collections#enumeration()](https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#enumeration-java.util.Collection-) +* [javax.xml.bind.annotation.adapters.XMLAdapter](http://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html#marshal-BoundType-) + + +## الشكر + +* [Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/gp/product/0201633612/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201633612&linkCode=as2&tag=javadesignpat-20&linkId=675d49790ce11db99d90bde47f1aeb59) +* [J2EE Design Patterns](https://www.amazon.com/gp/product/0596004273/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596004273&linkCode=as2&tag=javadesignpat-20&linkId=48d37c67fb3d845b802fa9b619ad8f31) +* [Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/gp/product/0596007124/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0596007124&linkCode=as2&tag=javadesignpat-20&linkId=6b8b6eea86021af6c8e3cd3fc382cb5b) +* [Refactoring to Patterns](https://www.amazon.com/gp/product/0321213351/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0321213351&linkCode=as2&tag=javadesignpat-20&linkId=2a76fcb387234bc71b1c61150b3cc3a7) diff --git a/localization/ar/adapter/etc/adapter.urm.png b/localization/ar/adapter/etc/adapter.urm.png new file mode 100644 index 0000000000000000000000000000000000000000..341ad67699d9d965433e169c91793e9fd164beb5 GIT binary patch literal 25425 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 A%m4rY literal 0 HcmV?d00001 diff --git a/localization/ar/aggregator-microservices/README.md b/localization/ar/aggregator-microservices/README.md new file mode 100644 index 000000000000..40d3ff26f7a8 --- /dev/null +++ b/localization/ar/aggregator-microservices/README.md @@ -0,0 +1,111 @@ +--- +title: Aggregator Microservices +shortTitle: Aggregator Microservices +category: Architectural +language: ar +tag: +- Cloud distributed +- Decoupling +- Microservices +--- + +## الهدف + +يقوم المستخدم بإجراء مكالمة واحدة إلى خدمة المجمع، ومن ثم يقوم المجمع بالاتصال بكل خدمة ميكروسيرفيس ذات صلة. + +## الشرح + +مثال من العالم الواقعي + +> يحتاج سوقنا الإلكتروني إلى معلومات حول المنتجات والمخزون الحالي. يقوم بإجراء مكالمة إلى خدمة المجمع التي بدورها تتصل بخدمة ميكروسيرفيس المعلومات الخاصة بالمنتج وخدمة ميكروسيرفيس المخزون للمنتج التي تعيد المعلومات مجمعة. + +ببساطة + +> يقوم ميكروسيرفيس المجمع بجمع البيانات من عدة ميكروسيرفيسات ويعيد النتيجة مجمعة لمعالجتها. + +يقول StackOverflow + +> يقوم ميكروسيرفيس المجمع بالاتصال بعدة خدمات لتحقيق الوظيفة المطلوبة من التطبيق. + +**مثال برمجي** + +لنبدأ بنموذج البيانات. هنا هو `Product`. + + +```java +public class Product { + private String title; + private int productInventories; + // getters and setters -> + ... +} +``` + +بعد ذلك، يمكننا تقديم ميكروسيرفيسنا `Aggregator` (مجمع الميكروسيرفيسات). يحتوي على `ProductInformationClient` (عميل معلومات المنتج) و +`ProductInventoryClient` (عميل مخزون المنتج) للاتصال بالميكروسيرفيسات المعنية. + + +```java +@RestController +public class Aggregator { + + @Resource + private ProductInformationClient informationClient; + + @Resource + private ProductInventoryClient inventoryClient; + + @RequestMapping(path = "/product", method = RequestMethod.GET) + public Product getProduct() { + + var product = new Product(); + var productTitle = informationClient.getProductTitle(); + var productInventory = inventoryClient.getProductInventories(); + + //Fallback to error message + product.setTitle(requireNonNullElse(productTitle, "Error: Fetching Product Title Failed")); + + //Fallback to default error inventory + product.setProductInventories(requireNonNullElse(productInventory, -1)); + + return product; + } +} +``` + +هذه هي جوهر تنفيذ الميكروسيرفيسات للمعلومات. ميكروسيرفيس المخزون مشابه، ببساطة يعيد +عدد المخزون. + + +```java +@RestController +public class InformationController { + @RequestMapping(value = "/information", method = RequestMethod.GET) + public String getProductTitle() { + return "The Product Title."; + } +} +``` + +الآن عند استدعاء واجهة برمجة التطبيقات REST الخاصة بنا `Aggregator` تُرجع معلومات المنتج. + + +```bash +curl http://localhost:50004/product +{"title":"The Product Title.","productInventories":5} +``` + +## مخطط الفئة + +![alt text](./aggregator-service/etc/aggregator-service.png "Aggregator Microservice") + +## قابلية التطبيق + +استخدم نمط تجميع الميكروسيرفيسات (Aggregator Microservices) عندما تحتاج إلى واجهة برمجة تطبيقات موحدة لعدة ميكروسيرفيسات، بغض النظر عن جهاز العميل. + + +## الشكر + +* [أنماط تصميم الميكروسيرفيس](http://web.archive.org/web/20190705163602/http://blog.arungupta.me/microservice-design-patterns/) +* [أنماط الميكروسيرفيس: مع أمثلة في Java](https://www.amazon.com/gp/product/1617294543/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=1617294543&linkId=8b4e570267bc5fb8b8189917b461dc60) +* [أنماط العمارة: اكتشاف الأنماط الأساسية في أكثر المجالات ضرورة في العمارة المؤسسية](https://www.amazon.com/gp/product/B077T7V8RC/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=B077T7V8RC&linkId=c34d204bfe1b277914b420189f09c1a4) diff --git a/localization/ar/aggregator-microservices/aggregator-service/etc/aggregator-service.png b/localization/ar/aggregator-microservices/aggregator-service/etc/aggregator-service.png new file mode 100644 index 0000000000000000000000000000000000000000..75ee82328bbe925e11e7175224294b925f22683e GIT binary patch literal 41498 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