From 6991789cea8ae7eaf5b98c75887f88bfe330c970 Mon Sep 17 00:00:00 2001 From: PandaeDo Date: Thu, 9 Apr 2026 09:06:28 +0200 Subject: [PATCH] rebase prep --- .bazelversion | 2 +- .github/ISSUE_TEMPLATE/1-bugfix.yml | 107 + .github/ISSUE_TEMPLATE/2-improvement.yml | 52 + .github/ISSUE_TEMPLATE/3-change.yml | 94 + .github/ISSUE_TEMPLATE/config.yml | 14 + .github/workflows/copyright.yml | 2 +- .github/workflows/docs-cleanup.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/tests.yml | 38 + .vscode/settings.json | 3 +- MODULE.bazel | 9 +- process/conf.py | 3 - .../feature_name/architecture/index.rst | 125 +- .../requirements/chklst_req_inspection.rst | 2 +- .../feature_name/requirements/index.rst | 42 +- .../feature_name/safety_analysis/dfa.rst | 153 +- .../feature_name/safety_analysis/fmea.rst | 77 + .../docs/architecture/index.rst | 103 +- .../requirements/chklst_req_inspection.rst | 2 +- .../docs/requirements/index.rst | 56 +- .../docs/safety_analysis/dfa.rst | 153 +- .../docs/safety_analysis/fmea.rst | 77 + .../module_name/docs/manual/safety_manual.rst | 6 - .../module_name/docs/release/release_note.rst | 174 +- .../docs/safety_mgt/module_safety_plan.rst | 7 +- .../platform/docs/release/release_note.rst | 172 +- .../platform/docs/safety_mgt/platform_dfa.rst | 213 ++ .../safety_mgt/platform_safety_manual.rst | 6 - .../docs/safety_mgt/platform_safety_plan.rst | 2 - .../stakeholder/chklst_req_inspection.rst | 8 +- .../requirements/stakeholder/index.rst | 38 +- ...core_building_blocks_meta_model.drawio.svg | 2296 +-------------- ...s_meta_model_deployment_example.drawio.svg | 2532 ----------------- .../score_building_blocks_concept.rst | 23 - process/glossary/index.rst | 12 +- .../architecture_concept.rst | 164 +- .../architecture_workflow.rst | 14 - .../architecture_workproducts.rst | 10 - .../guidance/architecture_guideline.rst | 98 +- .../architecture_modeling_example.rst | 292 ++ .../guidance/architecture_process_reqs.rst | 29 +- .../component_architecture_template.rst | 11 +- .../architecture_design/index.rst | 1 + .../change_management_concept.rst | 30 +- .../change_management_roles.rst | 7 +- .../change_management_workflow.rst | 58 +- .../guidance/change_management_guideline.rst | 51 +- .../_assets/dd_example_ex_dyn.puml | 30 + .../_assets/dd_example_ex_sta.puml | 37 + .../_assets/detailed_design_example.rst | 98 + .../guidance/implementation_guideline.rst | 3 +- .../process_areas/implementation/index.rst | 1 + .../guidance/problem_resolution_checklist.rst | 24 +- .../guidance/problem_resolution_guideline.rst | 41 +- .../guidance/process_management_guideline.rst | 6 +- .../guidance/process_management_templates.rst | 4 +- .../guidance/quality_review_checklist.rst | 8 +- .../quality_management/quality_getstrt.rst | 2 +- .../quality_management/quality_workflow.rst | 12 + .../release_management/release_roles.rst | 1 - .../release_management/release_workflow.rst | 31 +- .../guidance/requirements_guideline.rst | 39 +- .../guidance/requirements_process_reqs.rst | 15 - .../guidance/requirements_templates.rst | 12 +- .../requirements_concept.rst | 2 - .../requirements_workflow.rst | 2 +- .../guidance/guideline_safety_management.rst | 20 +- .../_assets/PlatformAnalysisFLowChart.png | Bin 259367 -> 0 bytes .../_assets/exampleTrustBoundary.png | Bin 72831 -> 0 bytes .../guidance/security_analysis_guideline.rst | 70 +- .../security_analysis_process_reqs.rst | 26 +- .../security_analysis_concept.rst | 69 +- .../security_analysis_roles.rst | 2 +- .../tool_management_workflow.rst | 5 +- .../guidance/verification_methods.rst | 11 +- process/roles/index.rst | 36 +- process/standards/aspice_40/aspice.rst | 3 +- process/standards/iso26262/iso26262.rst | 247 -- 78 files changed, 2137 insertions(+), 6092 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/1-bugfix.yml create mode 100644 .github/ISSUE_TEMPLATE/2-improvement.yml create mode 100644 .github/ISSUE_TEMPLATE/3-change.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/workflows/tests.yml delete mode 100644 process/general_concepts/_assets/score_building_blocks_meta_model_deployment_example.drawio.svg create mode 100644 process/process_areas/architecture_design/guidance/architecture_modeling_example.rst create mode 100644 process/process_areas/implementation/_assets/dd_example_ex_dyn.puml create mode 100644 process/process_areas/implementation/_assets/dd_example_ex_sta.puml create mode 100644 process/process_areas/implementation/_assets/detailed_design_example.rst delete mode 100644 process/process_areas/security_analysis/_assets/PlatformAnalysisFLowChart.png delete mode 100644 process/process_areas/security_analysis/_assets/exampleTrustBoundary.png diff --git a/.bazelversion b/.bazelversion index e7fdef7e2e..2bf50aaf17 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -8.4.2 +8.3.0 diff --git a/.github/ISSUE_TEMPLATE/1-bugfix.yml b/.github/ISSUE_TEMPLATE/1-bugfix.yml new file mode 100644 index 0000000000..c3784949cb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-bugfix.yml @@ -0,0 +1,107 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +name: Problem Report +description: Issue to track a bug +title: "Bug: Your bugfix title" +labels: ["codeowner_review"] +type: 'Bug' +body: + - type: markdown + attributes: + value: "## Bug Ticket creation" + - type: textarea + attributes: + label: Description + description: | + Description of the Bug + Root cause / Impact / Notification required? + validations: + required: true + - type: textarea + attributes: + label: Analysis results + description: | + Documentation of the analysis results + validations: + required: true + - type: textarea + attributes: + label: Solution + description: | + Documentation of the solution + Link to Pull Request containing the solution + validations: + required: true + - type: dropdown + attributes: + label: Error Occurrence Rate + options: + - Single Event + - Sporadic + - Highly Intermittent + - Reproducible + - type: textarea + attributes: + label: How to reproduce + description: How to reproduce? + - type: textarea + attributes: + label: Supporting Information + description: | + During which operational state did the issue occur + Observations / Screenshots / Traces + validations: + required: false + - type: dropdown + attributes: + label: Classification + options: + - minor + - major + - critical + - blocker + default: 0 + validations: + required: true + - type: dropdown + attributes: + label: Affected Version + options: + - pre-0.5 + - 0.5 + - 1.0 + default: 0 + validations: + required: true + - type: dropdown + attributes: + label: Expected Closure Version + options: + - 0.5 + - 1.0 + default: 0 + validations: + required: false + - type: checkboxes + attributes: + label: Category + options: + - label: Safety Related + - label: Security Related + - type: textarea + attributes: + label: ASIL classification + description: Add ASIL classification, e.g. ASIL_B or ASIL_D + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/2-improvement.yml b/.github/ISSUE_TEMPLATE/2-improvement.yml new file mode 100644 index 0000000000..fa14031a1d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-improvement.yml @@ -0,0 +1,52 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +name: "Improvement / Task" +description: Issue to track a improvement / task +title: "Improvement: Your Improvement title" +labels: ["codeowner_review"] +body: + - type: textarea + attributes: + label: What + description: | + - Goal of the Improvement / Task + - If Req/Architecture is affected, the template of + [Change Management](https://eclipse-score.github.io/process_description/main/process_areas/change_management/guidance/change_management_impact_analysis_template.html) needs to be used + validations: + required: true + - type: textarea + attributes: + label: How + description: Details on implementation approach + validations: + required: false + - type: textarea + attributes: + label: Estimates for realization + description: | + - Estimate the effort, resources, risk for the realization + - Impact to users of the feature + validations: + required: true + - type: checkboxes + attributes: + label: Category + options: + - label: Affects Detailed Design + - type: checkboxes + attributes: + label: Requirements / Architecture + options: + - label: Requirements / Architecture are not affected by this change? + required: true diff --git a/.github/ISSUE_TEMPLATE/3-change.yml b/.github/ISSUE_TEMPLATE/3-change.yml new file mode 100644 index 0000000000..7119196e01 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3-change.yml @@ -0,0 +1,94 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +name: "Change Request" +description: Issue to track a change +title: "Change: Your Change Request title" +labels: ["codeowner_review"] +body: + - type: dropdown + attributes: + label: Change Request Type + options: + - Feature Request + - Feature Modification + - Component Request + - Component Modification + default: 0 + validations: + required: true + - type: textarea + attributes: + label: Description of the Change Request + description: | + - Exact description of the Change Request + - Impact to users of the feature/component + - Use following template within a PR and link it to this issue + [Change Management Feature Request Template](https://eclipse-score.github.io/process_description/main/process_areas/change_management/guidance/change_management_feature_template.html) needs to be used + [Change Management Component Request Template](https://eclipse-score.github.io/process_description/main/process_areas/change_management/guidance/change_management_component_template.html) needs to be used + [For (Process) Improvements, Improvement Issue Template](https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/2-improvement.yml) needs to be used + validations: + required: true + - type: textarea + attributes: + label: Estimates for realization + description: | + - Estimate the effort, resources, risk for the realization + validations: + required: true + - type: checkboxes + attributes: + label: Affects work products + options: + - label: Requirements + - label: Architecture + - label: Safety/Security Analysis + - label: Detailed Design + required: true + - type: textarea + attributes: + label: Impact analysis + description: | + - Details on the impacted work products + - Use the following template and/or run the impact analysis tool provided + If the following template is use within a PR, link it to this issue + [Change Management Impact Analysis Template](https://eclipse-score.github.io/process_description/main/process_areas/change_management/guidance/change_management_impact_analysis_template.html) needs to be used + validations: + required: true + - type: checkboxes + attributes: + label: Safety or Security relevance + options: + - label: none + - label: Safety relevant + - label: Security relevant + validations: + required: true + - type: dropdown + attributes: + label: ASIL classification + options: + - QM + - ASIL_B + default: 0 + validations: + required: true + - type: dropdown + attributes: + label: Expected Implementation Version + options: + - 0.5 + - 1.0 + default: 0 + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..bb96199601 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,14 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +blank_issues_enabled: true diff --git a/.github/workflows/copyright.yml b/.github/workflows/copyright.yml index 34f68d332f..3114bce4a9 100644 --- a/.github/workflows/copyright.yml +++ b/.github/workflows/copyright.yml @@ -19,6 +19,6 @@ on: types: [checks_requested] jobs: copyright-check: - uses: eclipse-score/cicd-workflows/.github/workflows/copyright.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0 + uses: eclipse-score/cicd-workflows/.github/workflows/copyright.yml@main with: bazel-target: "run //:copyright.check" diff --git a/.github/workflows/docs-cleanup.yml b/.github/workflows/docs-cleanup.yml index 846e9654f1..cfa4ae2444 100644 --- a/.github/workflows/docs-cleanup.yml +++ b/.github/workflows/docs-cleanup.yml @@ -24,6 +24,6 @@ on: jobs: docs-cleanup: - uses: eclipse-score/cicd-workflows/.github/workflows/docs-cleanup.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0 + uses: eclipse-score/cicd-workflows/.github/workflows/docs-cleanup.yml@main secrets: token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index edf4c49f56..8ffcb83e8e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ on: jobs: build-docs: - uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@c1c90b1a82a1fab0fc202979dde6686b2162d5a8 # v0.0.0 + uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@main permissions: contents: write pages: write diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000000..10ea213efe --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,38 @@ +# ******************************************************************************* +# Copyright (c) 2025 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +name: Bazel Tests + +on: + pull_request: + types: [opened, reopened, synchronize] + merge_group: + types: [checks_requested] + +jobs: + setup-and-run-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + + - name: Setup Bazel with shared caching + uses: bazel-contrib/setup-bazel@0.14.0 + with: + disk-cache: true + repository-cache: true + bazelisk-cache: true + + - name: Run Tests via Bazel + run: | + echo "Running: bazel test //..." + bazel test //... diff --git a/.vscode/settings.json b/.vscode/settings.json index 2aa6c4f384..debf8ee21f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -45,5 +45,6 @@ "prio", "toctree", "workproduct" - ] + ], + "python-envs.defaultEnvManager": "ms-python.python:system" } diff --git a/MODULE.bazel b/MODULE.bazel index 01636949ef..6500714ab2 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -49,10 +49,5 @@ bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2") # ############################################################################### bazel_dep(name = "aspect_rules_lint", version = "1.5.3") -bazel_dep(name = "score_tooling", version = "1.2.0") -bazel_dep(name = "score_docs_as_code", version = "3.0.1") -git_override( - module_name = "score_docs_as_code", - commit = "21640ab325b3aae147ba4e3e8b5e7ab89fc2e8f5", - remote = "https://github.com/etas-contrib/score_docs-as-code.git", -) +bazel_dep(name = "score_tooling", version = "1.1.0") +bazel_dep(name = "score_docs_as_code", version = "3.0.0") diff --git a/process/conf.py b/process/conf.py index db45e680f0..266dda0001 100644 --- a/process/conf.py +++ b/process/conf.py @@ -31,6 +31,3 @@ "sphinxcontrib.plantuml", "score_sphinx_bundle", ] - -# :need:`{title}` is used in the needs templates to display the title of the need -needs_role_need_template = "{title}" diff --git a/process/folder_templates/features/feature_name/architecture/index.rst b/process/folder_templates/features/feature_name/architecture/index.rst index 85aeed5e32..ab6abb5169 100644 --- a/process/folder_templates/features/feature_name/architecture/index.rst +++ b/process/folder_templates/features/feature_name/architecture/index.rst @@ -75,78 +75,70 @@ Mandatory: A motivation for the decomposition Static Architecture ------------------- -The live feature architecture template snippets are maintained in the -`module template documentation `__. - -.. code-block:: rst - - .. feat:: Feature Name - :id: feat__feature_name - :security: YES - :safety: ASIL_B - :status: invalid - :includes: logic_arc_int__feature_name__interface_name1 +.. feat:: Feature Name + :id: feat__feature_name + :security: YES + :safety: ASIL_B + :status: invalid + :includes: logic_arc_int__feature_name__interface_name1 + :consists_of: comp__component_name_template - General Feature Description + General Feature Description - .. feat_arc_sta:: Feature Static View - :id: feat_arc_sta__feature_name__static_view - :security: YES - :safety: ASIL_B - :status: invalid - :fulfils: feat_req__feature_name__some_title - :includes: logic_arc_int__feature_name__interface_name1 - :belongs_to: feat__feature_name +.. feat_arc_sta:: Feature Static View + :id: feat_arc_sta__feature_name__static_view + :security: YES + :safety: ASIL_B + :status: invalid + :fulfils: feat_req__feature_name__some_title + :includes: logic_arc_int__feature_name__interface_name1 + :belongs_to: feat__feature_name - .. needarch:: - :scale: 50 - :align: center + .. needarch:: + :scale: 50 + :align: center - {{ draw_feature(need(), needs) }} + {{ draw_feature(need(), needs) }} Dynamic Architecture -------------------- -.. code-block:: rst - - .. feat_arc_dyn:: Dynamic View - :id: feat_arc_dyn__feature_name__dynamic_view - :security: YES - :safety: ASIL_B - :status: invalid - :fulfils: feat_req__feature_name__some_title - :belongs_to: feat__feature_name +.. feat_arc_dyn:: Dynamic View + :id: feat_arc_dyn__feature_name__dynamic_view + :security: YES + :safety: ASIL_B + :status: invalid + :fulfils: feat_req__feature_name__some_title + :belongs_to: feat__feature_name - Put here a sequence diagram + Put here a sequence diagram Logical Interfaces ------------------ -.. code-block:: rst - - .. logic_arc_int:: Interface Name - :id: logic_arc_int__feature_name__interface_name1 - :security: YES - :safety: ASIL_B - :status: invalid - :fulfils: feat_req__feature_name__some_title +.. logic_arc_int:: Interface Name + :id: logic_arc_int__feature_name__interface_name1 + :security: YES + :safety: ASIL_B + :status: invalid + :fulfils: feat_req__feature_name__some_title - General Interface Description + General Interface Description - .. needarch:: - :scale: 50 - :align: center + .. needarch:: + :scale: 50 + :align: center - {{ draw_interface(need(), needs) }} + {{ draw_interface(need(), needs) }} - .. logic_arc_int_op:: Operation - :id: logic_arc_int_op__feature_name__operation - :security: YES - :safety: ASIL_B - :status: invalid - :included_by: logic_arc_int__feature_name__interface_name1 +.. logic_arc_int_op:: Operation + :id: logic_arc_int_op__feature_name__operation + :security: YES + :safety: ASIL_B + :status: invalid + :included_by: logic_arc_int__feature_name__interface_name1 - General Operation Description + General Operation Description Module Viewpoint ---------------- @@ -154,25 +146,20 @@ Module Viewpoint The following modules are needed to be defined to be able to draw the static feature view. They will be replaced by linking the proper module definitions in the used module's repositories as soon as those exist. -The rendered module and used-component examples are maintained in the -`module template documentation `_. - -.. code-block:: rst - - .. mod:: Module Name - :id: mod__module_name - :includes: comp__component_name_template +.. mod:: Module Name + :id: mod__module_name + :includes: comp__component_name_template - .. mod_view_sta:: Module Name Static View - :id: mod_view_sta__feature_name__module_name - :includes: comp__component_name_template +.. mod_view_sta:: Module Name Static View + :id: mod_view_sta__feature_name__module_name + :includes: comp__component_name_template - .. needarch:: - :scale: 50 - :align: center + .. needarch:: + :scale: 50 + :align: center - {{ draw_module(need(), needs) }} + {{ draw_module(need(), needs) }} Used Components --------------- diff --git a/process/folder_templates/features/feature_name/requirements/chklst_req_inspection.rst b/process/folder_templates/features/feature_name/requirements/chklst_req_inspection.rst index 62ec0dff59..ddc4ba48fa 100644 --- a/process/folder_templates/features/feature_name/requirements/chklst_req_inspection.rst +++ b/process/folder_templates/features/feature_name/requirements/chklst_req_inspection.rst @@ -108,7 +108,7 @@ See also :need:`doc_concept__wp_inspections` for further information about revie - * - REQ_04_01 - Is the requirement *internally and externally consistent*? - - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. Is the description of the requirement consistent with all its attributes (if not already part of another check, e.g. does the title fit?). + - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. - - - diff --git a/process/folder_templates/features/feature_name/requirements/index.rst b/process/folder_templates/features/feature_name/requirements/index.rst index 0e98c7d280..fe8b5f6bc6 100644 --- a/process/folder_templates/features/feature_name/requirements/index.rst +++ b/process/folder_templates/features/feature_name/requirements/index.rst @@ -34,33 +34,29 @@ Feature Requirements =================================================================== -.. code-block:: rst - - .. feat_req:: Some Title - :id: feat_req__feature_name__some_title - :reqtype: Process - :security: NO - :safety: ASIL_B - :satisfies: stkh_req__requirements__template - :valid_from: v0.0.1 - :valid_until: v1.0.1 - :status: invalid - :belongs_to: feat__feature_name - - The Feature shall do xyz to the user to bring him to this condition at this time. +.. feat_req:: Some Title + :id: feat_req__feature_name__some_title + :reqtype: Process + :security: NO + :safety: ASIL_B + :satisfies: stkh_req__requirements__template + :valid_from: v0.0.1 + :valid_until: v1.0.1 + :status: invalid + :belongs_to: feat__feature_name - Note: (optional, not to be verified) + The Feature shall do xyz to the user to bring him to this condition at this time. -.. code-block:: rst + Note: (optional, not to be verified) - .. aou_req:: Some Other Title - :id: aou_req__feature_name__some_other_title - :reqtype: Process - :security: NO - :safety: ASIL_B - :status: invalid +.. aou_req:: Some Other Title + :id: aou_req__feature_name__some_other_title + :reqtype: Process + :security: NO + :safety: ASIL_B + :status: invalid - The Feature User shall do xyz to use the feature safely. + The Feature User shall do xyz to use the feature safely. .. attention:: The above directives must be updated according to your feature requirements. diff --git a/process/folder_templates/features/feature_name/safety_analysis/dfa.rst b/process/folder_templates/features/feature_name/safety_analysis/dfa.rst index ba1afa5222..375045e6a6 100644 --- a/process/folder_templates/features/feature_name/safety_analysis/dfa.rst +++ b/process/folder_templates/features/feature_name/safety_analysis/dfa.rst @@ -34,8 +34,157 @@ DFA (Dependent Failure Analysis) - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs -Dependent Failure Initiators ----------------------------- +The DFA for the feature [Your Feature Name] is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the +following tables. For all applicable failure initiators, the DFA has to be performed. + +1 Dependent Failure Initiators +------------------------------ + +1.1 Shared resources +^^^^^^^^^^^^^^^^^^^^ + +The dependent failure initiators related to shared resources are not applicable for the features. The shared resources +will be considered in the platform DFA. + +1.2 Communication between the two elements: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Receiving function is affected by information that is false, lost, sent multiple times, or in the wrong order etc. from the sender. + +.. list-table:: DFA communication between elements + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause communication between elements + - Applicability + - Rationale + * - CO_01_01 + - Information passed via argument through a function call, or via writing/reading a variable being global to the two software functions (data flow) + - + - + * - CO_01_02 + - Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information + - + - + * - CO_01_03 + - Insertion / sequence of information + - + - + * - CO_01_04 + - Corruption of information, inconsistent data + - + - + * - CO_01_05 + - Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same information + - + - + * - CO_01_06 + - Information from a sender received by only a subset of the receivers + - + - + * - CO_01_07 + - Blocking access to a communication channel + - + - + +1.3 Shared information inputs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Same information input used by multiple functions. + +.. list-table:: DFA shared information inputs + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause shared information inputs + - Applicability + - Rationale + * - SI_01_02 + - Configuration data + - + - + * - SI_01_03 + - Constants, or variables, being global to the two software functions + - + - + * - SI_01_04 + - Basic software passes data (read from hardware register and converted into logical information) to two applications software functions + - + - + * - SI_01_05 + - Data / function parameter arguments / messages delivered by software function to more than one other function + - + - + +1.4 Unintended impact +^^^^^^^^^^^^^^^^^^^^^ + +Unintended impacts to function due to various failures. + +.. list-table:: DFA unintended impact + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause unintended impact + - Applicability + - Rationale + * - UI_01_01 + - Memory miss-allocation and leaks + - + - + * - UI_01_02 + - Read/Write access to memory allocated to another software element + - + - + * - UI_01_03 + - Stack/Buffer under-/overflow + - + - + * - UI_01_04 + - Deadlocks + - + - + * - UI_01_05 + - Livelocks + - + - + * - UI_01_06 + - Blocking of execution + - + - + * - UI_01_07 + - Incorrect allocation of execution time + - + - + * - UI_01_08 + - Incorrect execution flow + - + - + * - UI_01_09 + - Incorrect synchronization between software elements + - + - + * - UI_01_10 + - CPU time depletion + - + - + * - UI_01_11 + - Memory depletion + - + - + * - UI_01_12 + - Other HW unavailability + - + - + + +2 DFA +===== + +For all identified applicable failure initiators, the DFA is performed in the following section. .. code-block:: rst diff --git a/process/folder_templates/features/feature_name/safety_analysis/fmea.rst b/process/folder_templates/features/feature_name/safety_analysis/fmea.rst index 89a6a5ec14..ea04fc1ee9 100644 --- a/process/folder_templates/features/feature_name/safety_analysis/fmea.rst +++ b/process/folder_templates/features/feature_name/safety_analysis/fmea.rst @@ -34,9 +34,86 @@ FMEA (Failure Modes and Effects Analysis) - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs +The FMEA for the feature [Your Feature Name] is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the +following tables. For all applicable failure initiators, the FMEA has to be performed. + Failure Mode List ----------------- +Fault Models for sequence diagrams + .. list-table:: Fault Models for sequence diagrams + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Failure Mode + - Applicability + - Rationale + * - MF_01_01 + - message is not received (is a subset/more precise description of MF_01_05) + - + - + * - MF_01_02 + - message received too late (only relevant if delay is a realistic fault) + - + - + * - MF_01_03 + - message received too early (usually not a problem) + - + - + * - MF_01_04 + - message not received correctly by all recipients (different messages or messages partly lost). Only relevant if the same message goes to multiple recipients. + - + - + * - MF_01_05 + - message is corrupted + - + - + * - MF_01_06 + - message is not sent + - + - + * - MF_01_07 + - message is unintended sent + - + - + * - CO_01_01 + - minimum constraint boundary is violated + - + - + * - CO_01_02 + - maximum constraint boundary is violated + - + - + * - EX_01_01 + - Process calculates wrong result(s) (is a subset/more precise description of MF_01_05 or MF_01_04). This failure mode is related to the analysis if e.g. internal safety mechanisms are required (level 2 function, plausibility check of the output, …) because of the size / complexity of the feature. + - + - + * - EX_01_02 + - processing too slow (only relevant if timing is considered) + - + - + * - EX_01_03 + - processing too fast (only relevant if timing is considered) + - + - + * - EX_01_04 + - loss of execution + - + - + * - EX_01_05 + - processing changes to arbitrary process + - + - + * - EX_01_06 + - processing is not complete (infinite loop) + - + - + +FMEA +---- +For all identified applicable failure initiators, the FMEA is performed in the following section. + .. code-block:: rst diff --git a/process/folder_templates/modules/module_name/component_name/docs/architecture/index.rst b/process/folder_templates/modules/module_name/component_name/docs/architecture/index.rst index 4a660a35d3..23643a7cc7 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/architecture/index.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/architecture/index.rst @@ -72,49 +72,41 @@ The components are designed to cover the expectations from the feature architect A component can optional also consist of subcomponents to further structure the architecture. The component and its static views can also optionally use interfaces provided by other components. -The live component architecture template is maintained in the -`module template documentation `_. +.. comp:: Component Name + :id: comp__component_name_template + :security: YES + :safety: ASIL_B + :status: invalid + :implements: logic_arc_int__feature_name__interface_name1 + :consists_of: comp__archex_sub_component_1, comp__archex_sub_component_2, comp__archex_sub_component_3 -.. code-block:: rst +.. comp_arc_sta:: Component Name (Static View) + :id: comp_arc_sta__component_name__static_view + :security: YES + :safety: ASIL_B + :status: invalid + :belongs_to: comp__component_name_template + :uses: logic_arc_int__feature_name__interface_name1 + :fulfils: comp_req__component_name__some_title - .. comp:: Component Name - :id: comp__component_name_template - :security: YES - :safety: ASIL_B - :status: invalid - :implements: logic_arc_int__feature_name__interface_name1 - :consists_of: comp__component_name_internal_1, comp__component_name_internal_2, comp__component_name_internal_3 - :belongs_to: feat__feature_name - - .. comp_arc_sta:: Component Name (Static View) - :id: comp_arc_sta__component_name__static_view - :security: YES - :safety: ASIL_B - :status: invalid - :belongs_to: comp__component_name_template - :uses: logic_arc_int__feature_name__interface_name1 - :fulfils: comp_req__component_name__some_title - - .. needarch:: - :scale: 50 - :align: center - - {{ draw_component(need(), needs) }} + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} Dynamic Architecture -------------------- -.. code-block:: rst - - .. comp_arc_dyn:: Dynamic View - :id: comp_arc_dyn__component_name__dynamic_view - :security: YES - :safety: ASIL_B - :status: invalid - :belongs_to: comp__component_name_template - :fulfils: comp_req__component_name__some_title +.. comp_arc_dyn:: Dynamic View + :id: comp_arc_dyn__component_name__dynamic_view + :security: YES + :safety: ASIL_B + :status: invalid + :belongs_to: comp__component_name_template + :fulfils: comp_req__component_name__some_title - Put here a sequence diagram + Put here a sequence diagram Interfaces @@ -132,38 +124,15 @@ Interfaces Internal Components ------------------- -.. code-block:: rst +.. comp_arc_sta:: Component Name Static View + :id: comp_arc_sta__component_name__2 + :status: invalid + :safety: ASIL_B + :security: YES + :fulfils: comp_req__component_name__some_title + :belongs_to: comp__component_example_2 - .. comp_arc_sta:: Component Name Static View - :id: comp_arc_sta__component_name__2 - :status: invalid - :safety: ASIL_B - :security: YES - :fulfils: comp_req__component_name__some_title - :belongs_to: comp__component_name_template - - No architecture but detailed design - - .. comp:: Internal Component 1 - :id: comp__component_name_internal_1 - :status: invalid - :safety: ASIL_B - :security: YES - :belongs_to: feat__feature_name - - .. comp:: Internal Component 2 - :id: comp__component_name_internal_2 - :status: invalid - :safety: ASIL_B - :security: YES - :belongs_to: feat__feature_name - - .. comp:: Internal Component 3 - :id: comp__component_name_internal_3 - :status: invalid - :safety: ASIL_B - :security: YES - :belongs_to: feat__feature_name + No architecture but detailed design .. note:: Architecture can be split into multiple files. At component level the public interfaces to be used by the user and tester to be shown. diff --git a/process/folder_templates/modules/module_name/component_name/docs/requirements/chklst_req_inspection.rst b/process/folder_templates/modules/module_name/component_name/docs/requirements/chklst_req_inspection.rst index 0136a8b5d3..724ac29f76 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/requirements/chklst_req_inspection.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/requirements/chklst_req_inspection.rst @@ -108,7 +108,7 @@ See also :need:`doc_concept__wp_inspections` for further information about revie - * - REQ_04_01 - Is the requirement *internally and externally consistent*? - - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. Is the description of the requirement consistent with all its attributes (if not already part of another check, e.g. does the title fit?). + - Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components. - - - diff --git a/process/folder_templates/modules/module_name/component_name/docs/requirements/index.rst b/process/folder_templates/modules/module_name/component_name/docs/requirements/index.rst index d705cf1b44..26a26c4eac 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/requirements/index.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/requirements/index.rst @@ -37,20 +37,18 @@ Requirements Component Requirements ---------------------- -.. code-block:: rst - - .. comp_req:: Some Title - :id: comp_req__component_name__some_title - :reqtype: Process - :security: YES - :safety: ASIL_B - :satisfies: feat_req__feature_name__some_title - :status: invalid - :belongs_to: comp__component_name_template +.. comp_req:: Some Title + :id: comp_req__component_name__some_title + :reqtype: Process + :security: YES + :safety: ASIL_B + :satisfies: feat_req__feature_name__some_title + :status: invalid + :belongs_to: comp__component_name_template - The Component shall do xyz to another component to bring it to this condition at this time + The Component shall do xyz to another component to bring it to this condition at this time - Note: (optional, not to be verified) + Note: (optional, not to be verified) .. attention:: The above directive must be updated according to your component requirements. @@ -65,31 +63,27 @@ Component Requirements Assumption of Use Requirements ------------------------------ -.. code-block:: rst - - .. aou_req:: Next Title - :id: aou_req__component_name__next_title - :reqtype: Process - :security: YES - :safety: ASIL_B - :status: invalid +.. aou_req:: Next Title + :id: aou_req__component_name__next_title + :reqtype: Process + :security: YES + :safety: ASIL_B + :status: invalid - The Component User shall do xyz to use the component safely/securely + The Component User shall do xyz to use the component safely/securely Environmental Requirements -------------------------- -.. code-block:: rst - - .. aou_req:: Another Title - :id: aou_req__component_name__another_title - :reqtype: Process - :security: YES - :safety: ASIL_B - :status: invalid - :tags: environment +.. aou_req:: Another Title + :id: aou_req__component_name__another_title + :reqtype: Process + :security: YES + :safety: ASIL_B + :status: invalid + :tags: environment - The Component shall only be used in a xyz environment to ensure its proper functioning. + The Component shall only be used in a xyz environment to ensure its proper functioning. Hints ----- diff --git a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst index 62c8f48019..410431f82a 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/dfa.rst @@ -34,8 +34,157 @@ DFA (Dependent Failure Analysis) - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs -Dependent Failure Initiators ----------------------------- +The DFA for the component [Your Component Name] is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the +following tables. For all applicable failure initiators, the DFA has to be performed. + +1 Dependent Failure Initiators +------------------------------ + +1.1 Shared resources +^^^^^^^^^^^^^^^^^^^^ + +The dependent failure initiators related to shared resources are not applicable for the component. The shared resources +will be considered in the platform DFA. + +1.2 Communication between the two elements: +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Receiving function is affected by information that is false, lost, sent multiple times, or in the wrong order etc. from the sender. + +.. list-table:: DFA communication between elements + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause communication between elements + - Applicability + - Rationale + * - CO_01_01 + - Information passed via argument through a function call, or via writing/reading a variable being global to the two software functions (data flow) + - + - + * - CO_01_02 + - Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information + - + - + * - CO_01_03 + - Insertion / sequence of information + - + - + * - CO_01_04 + - Corruption of information, inconsistent data + - + - + * - CO_01_05 + - Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same information + - + - + * - CO_01_06 + - Information from a sender received by only a subset of the receivers + - + - + * - CO_01_07 + - Blocking access to a communication channel + - + - + +1.3 Shared information inputs +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Same information input used by multiple functions. + +.. list-table:: DFA shared information inputs + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause shared information inputs + - Applicability + - Rationale + * - SI_01_02 + - Configuration data + - + - + * - SI_01_03 + - Constants, or variables, being global to the two software functions + - + - + * - SI_01_04 + - Basic software passes data (read from hardware register and converted into logical information) to two applications software functions + - + - + * - SI_01_05 + - Data / function parameter arguments / messages delivered by software function to more than one other function + - + - + +1.4 Unintended impact +^^^^^^^^^^^^^^^^^^^^^ + +Unintended impacts to function due to various failures. + +.. list-table:: DFA unintended impact + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause unintended impact + - Applicability + - Rationale + * - UI_01_01 + - Memory miss-allocation and leaks + - + - + * - UI_01_02 + - Read/Write access to memory allocated to another software element + - + - + * - UI_01_03 + - Stack/Buffer under-/overflow + - + - + * - UI_01_04 + - Deadlocks + - + - + * - UI_01_05 + - Livelocks + - + - + * - UI_01_06 + - Blocking of execution + - + - + * - UI_01_07 + - Incorrect allocation of execution time + - + - + * - UI_01_08 + - Incorrect execution flow + - + - + * - UI_01_09 + - Incorrect synchronization between software elements + - + - + * - UI_01_10 + - CPU time depletion + - + - + * - UI_01_11 + - Memory depletion + - + - + * - UI_01_12 + - Other HW unavailability + - + - + + +2 DFA +===== + +For all identified applicable failure initiators, the DFA is performed in the following section. .. code-block:: rst diff --git a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst index fcb6f65ed6..683e0ca78a 100644 --- a/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst +++ b/process/folder_templates/modules/module_name/component_name/docs/safety_analysis/fmea.rst @@ -34,9 +34,86 @@ FMEA (Failure Modes and Effects Analysis) - Adjust ``status`` to be ``valid`` - Adjust ``safety`` and ``tags`` according to your needs +The FMEA for the component [Your Component Name] is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the +following tables. For all applicable failure initiators, the FMEA has to be performed. + Failure Mode List ----------------- +Fault Models for sequence diagrams + .. list-table:: Fault Models for sequence diagrams + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Failure Mode + - Applicability + - Rationale + * - MF_01_01 + - message is not received (is a subset/more precise description of MF_01_05) + - + - + * - MF_01_02 + - message received too late (only relevant if delay is a realistic fault) + - + - + * - MF_01_03 + - message received too early (usually not a problem) + - + - + * - MF_01_04 + - message not received correctly by all recipients (different messages or messages partly lost). Only relevant if the same message goes to multiple recipients. + - + - + * - MF_01_05 + - message is corrupted + - + - + * - MF_01_06 + - message is not sent + - + - + * - MF_01_07 + - message is unintended sent + - + - + * - CO_01_01 + - minimum constraint boundary is violated + - + - + * - CO_01_02 + - maximum constraint boundary is violated + - + - + * - EX_01_01 + - Process calculates wrong result(s) (is a subset/more precise description of MF_01_05 or MF_01_04). This failure mode is related to the analysis if e.g. internal safety mechanisms are required (level 2 function, plausibility check of the output, …) because of the size / complexity of the feature. + - + - + * - EX_01_02 + - processing too slow (only relevant if timing is considered) + - + - + * - EX_01_03 + - processing too fast (only relevant if timing is considered) + - + - + * - EX_01_04 + - loss of execution + - + - + * - EX_01_05 + - processing changes to arbitrary process + - + - + * - EX_01_06 + - processing is not complete (infinite loop) + - + - + +FMEA +---- +For all identified applicable failure initiators, the FMEA is performed in the following section. + .. code-block:: rst .. comp_saf_fmea:: diff --git a/process/folder_templates/modules/module_name/docs/manual/safety_manual.rst b/process/folder_templates/modules/module_name/docs/manual/safety_manual.rst index 78fd91d17c..68c92c0dcb 100644 --- a/process/folder_templates/modules/module_name/docs/manual/safety_manual.rst +++ b/process/folder_templates/modules/module_name/docs/manual/safety_manual.rst @@ -64,9 +64,6 @@ List of AoUs expected from the environment the platform / module runs on: if need and "environment" in need["tags"]: results.append(need) -.. attention:: - Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. - Assumptions on the User ^^^^^^^^^^^^^^^^^^^^^^^ | As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder and feature requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety package. @@ -92,9 +89,6 @@ This means for every feature the user selects, the platform safety manual and th if need and "environment" not in need["tags"]: results.append(need) -.. attention:: - Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. - Safety concept of the SEooC --------------------------- | <Describe here the safety concept incl. which faults are taken care of, reactions of the implemented functions under anomalous operating conditions ... if this is not already documented sufficiently in the feature documentation "safety impact" section of all the features the module is used in.> diff --git a/process/folder_templates/modules/module_name/docs/release/release_note.rst b/process/folder_templates/modules/module_name/docs/release/release_note.rst index fb6c5d3944..728108b2d0 100644 --- a/process/folder_templates/modules/module_name/docs/release/release_note.rst +++ b/process/folder_templates/modules/module_name/docs/release/release_note.rst @@ -35,86 +35,94 @@ Release Note -| **Module Name:** [Module Name] -| **Release Tag:** vX.Y.Z -| **Origin Release Tag:** vU.V.W -| **Release Date:** YYYY-MM-DD - - -Overview -^^^^^^^^ - -This document provides an overview of the changes, improvements, and bug fixes included in the software module release version vX.Y.Z -as compared to the module's origin release (which is usually the previous release). - -Disclaimer ----------- - -This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment. -The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project, -being a non-profit and open source organization, can not take over any liability for its content. - -Changes to the Module -^^^^^^^^^^^^^^^^^^^^^ - -New Features ------------- - -- **Feature 1:** Brief description of the new feature. -- **Feature 2:** Brief description of the new feature. -- **Feature 3:** Brief description of the new feature. - -Improvements ------------- - -- **Improvement 1:** Brief description of the improvement. -- **Improvement 2:** Brief description of the improvement. -- **Improvement 3:** Brief description of the improvement. - -Bug Fixes ---------- - -- **Bug 1:** Brief description of the bug fix. -- **Bug 2:** Brief description of the bug fix. -- **Bug 3:** Brief description of the bug fix. - -Other changes by Label ----------------------- - -- **Label 1/Refactor 1:** Brief description of the change. -- **Label 2/Refactor 2:** Brief description of the change. -- **Label 3/Refactor 3:** Brief description of the change. - -Compatibility -^^^^^^^^^^^^^ - -- **Dependencies:** List any dependencies and their versions. - -Performed Verification -^^^^^^^^^^^^^^^^^^^^^^ - -This release note is based on the verification as documented in module verification report -:need:`doc__module_name_verification_report`. - -Known Issues ------------- - -- **Issue 1:** Brief description of the known issue. Justification regarding safety impact. -- **Issue 2:** Brief description of the known issue. Justification regarding safety impact. -- **Issue 3:** Brief description of the known issue. Justification regarding safety impact. - -Known Vulnerabilities ---------------------- - -- **CVE 1:** Brief description of the known CVE. Justification regarding security impact. -- **CVE 2:** Brief description of the known CVE. Justification regarding security impact. -- **CVE 3:** Brief description of the known CVE. Justification regarding security impact. - -Upgrade Instructions -^^^^^^^^^^^^^^^^^^^^ - -1. **Step 1:** Description of the first step. -2. **Step 2:** Description of the second step. -3. **Step 3:** Description of the third step. - -For any questions or support, please contact the *Project lead* or raise an issue/discussion. +| Module Name: [Module Name] +| Release Tag: vX.Y.Z +| Origin Release Tag: vU.V.W +| Release Commit Hash: a1b2c3d4e5f6g7h8i9j0 +| Release Date: YYYY-MM-DD +| Safety: [QM | ASIL_B] +| Security: [NO | YES] +| +| Overview +| -------- +| +| This document provides an overview of the changes, improvements, and bug fixes included in the software module release version vX.Y.Z +| as compared to the module's origin release (which is usually the previous release). +| +| Disclaimer +| ---------- +| This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment. +| The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project, +| being a non-profit and open source organization, can not take over any liability for its content. +| +| New Features +| ------------ +| +| - **Feature 1**: Brief description of the new feature. +| - **Feature 2**: Brief description of the new feature. +| - **Feature 3**: Brief description of the new feature. +| +| Improvements +| ------------ +| +| - **Improvement 1**: Brief description of the improvement. +| - **Improvement 2**: Brief description of the improvement. +| - **Improvement 3**: Brief description of the improvement. +| +| Bug Fixes +| --------- +| +| - **Bug 1**: Brief description of the bug fix. +| - **Bug 2**: Brief description of the bug fix. +| - **Bug 3**: Brief description of the bug fix. +| +| Other changes by Label +| ---------------------- +| +| - **Label 1/Refactor 1**: Brief description of the change. +| - **Label 2/Refactor 2**: Brief description of the change. +| - **Label 3/Refactor 3**: Brief description of the change. +| +| Compatibility +| ------------- +| +| - **Dependencies**: List any dependencies and their versions. +| +| Performed Verification +| ---------------------- +| This release note is based on the verification as documented in module verification report +| :need:`doc__module_name_verification_report`. +| +| Known Issues +| ------------ +| +| - **Issue 1**: Brief description of the known issue. Justification regarding safety impact. +| - **Issue 2**: Brief description of the known issue. Justification regarding safety impact. +| - **Issue 3**: Brief description of the known issue. Justification regarding safety impact. +| +| Known Vulnerabilities +| --------------------- +| +| - **CVE 1**: Brief description of the known CVE. Justification regarding security impact. +| - **CVE 2**: Brief description of the known CVE. Justification regarding security impact. +| - **CVE 3**: Brief description of the known CVE. Justification regarding security impact. +| +| Upgrade Instructions +| -------------------- +| +| 1. **Step 1**: Description of the first step. +| 2. **Step 2**: Description of the second step. +| 3. **Step 3**: Description of the third step. +| +| Contributors +| ------------ +| +| Thanks to everyone who contributed to this release: +| +| Contributor 1 +| Contributor 2 +| +| Contact Information +| ------------------- +| +| For any questions or support, please contact the *Project lead* or raise an issue/discussion. diff --git a/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst b/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst index 2bf113dea9..f5ec018ebb 100644 --- a/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst +++ b/process/folder_templates/modules/module_name/docs/safety_mgt/module_safety_plan.rst @@ -207,7 +207,7 @@ Note: In case the component is a new development, :need:`wp__sw_component_class` In case an OSS element is used in the module, part 6 has to be filled out. OSS (sub-)component qualification plan --------------------------------------- +====================================== For the selected OSS component the following work products will be implemented (and why): @@ -266,11 +266,6 @@ If the OSS element is classified as - :need:`gd_guidl__component_classification` - Always needed as basis for tailoring. -Link to project planning ------------------------- - -<add here a link to your module's planning for the above work products, e.g. a link to a ticket.> - Module Safety Package ===================== diff --git a/process/folder_templates/platform/docs/release/release_note.rst b/process/folder_templates/platform/docs/release/release_note.rst index ac7f332b71..6e6d134d35 100644 --- a/process/folder_templates/platform/docs/release/release_note.rst +++ b/process/folder_templates/platform/docs/release/release_note.rst @@ -32,90 +32,90 @@ Platform Release Note - Adjust ``safety`` and ``tags`` according to your needs -| **Platform Name:** <Your platform name> -| **Release Tag:** vX.Y.Z -| **Origin Release Tag:** vU.V.W -| **Release Date:** YYYY-MM-DD -Overview -^^^^^^^^ - -This document provides an overview of the changes, improvements, and bug fixes included in the software platform release version vX.Y.Z -as compared to the platform's origin release (which is usually the previous release). - -Disclaimer ----------- - -This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment. -The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project, -being a non-profit and open source organization, can not take over any liability for its content. - -Changes to the Platform -^^^^^^^^^^^^^^^^^^^^^^^ - -New Features ------------- - -- **Feature 1:** Brief description of the new feature. -- **Feature 2:** Brief description of the new feature. -- **Feature 3:** Brief description of the new feature. - -Improvements ------------- - -- **Improvement 1:** Brief description of the improvement. -- **Improvement 2:** Brief description of the improvement. -- **Improvement 3:** Brief description of the improvement. - -Other changes by Label ----------------------- - -- **Label 1/Refactor 1:** Brief description of the change. -- **Label 2/Refactor 2:** Brief description of the change. -- **Label 3/Refactor 3:** Brief description of the change. - -Platform Scope -^^^^^^^^^^^^^^ - -- **Version:** <Version number of delivery container> -- **Source / tag:** <Link to archived artefacts> -- **Release notes:** <Link to delivery container's release notes> - -Integrated Software Modules ---------------------------- - -<Module Name> -~~~~~~~~~~~~~ - -<brief description> - -- **Version:** <Version number of delivery container> -- **Source / tag:** <Link to archived artefacts> -- **Release notes:** <Link to delivery container's release notes> - - -Compatibility -^^^^^^^^^^^^^ - -- **Dependencies:** List any dependencies and their versions. - -Performed Verification -^^^^^^^^^^^^^^^^^^^^^^ - -This release note is based on the verification as documented in platform verification report -:need:`doc__platform_verification_report`. - -Known Issues/Vulnerabilities and Bug Fixes ------------------------------------------- - -- see release notes of every module separately - - -Upgrade Instructions -^^^^^^^^^^^^^^^^^^^^ - -1. **Step 1:** Description of the first step. -2. **Step 2:** Description of the second step. -3. **Step 3:** Description of the third step. - -For any questions or support, please contact the *Project lead* or raise an issue/discussion. +| Release Tag: vX.Y.Z +| Origin Release Tag: vU.V.W +| Release Commit Hash: a1b2c3d4e5f6g7h8i9j0 +| Release Date: YYYY-MM-DD +| Safety: [QM | ASIL_B] +| Security: [NO | YES] +| +| Overview +| -------- +| +| This document provides an overview of the changes, improvements, and bug fixes included in the software platform release version vX.Y.Z +| as compared to the platform's origin release (which is usually the previous release). +| +| Disclaimer +| ---------- +| This release note does not "release for production", as it does not come with a safety argumentation and a performed safety assessment. +| The work products compiled in the safety package are created with care according to a process satisfying standards, but the as the project, +| being a non-profit and open source organization, can not take over any liability for its content. +| +| New Features +| ------------ +| +| - **Feature 1**: Brief description of the new feature. +| - **Feature 2**: Brief description of the new feature. +| - **Feature 3**: Brief description of the new feature. +| +| Improvements +| ------------ +| +| - **Improvement 1**: Brief description of the improvement. +| - **Improvement 2**: Brief description of the improvement. +| - **Improvement 3**: Brief description of the improvement. +| +| Bug Fixes +| --------- +| +| - **Bug 1**: Brief description of the bug fix. +| - **Bug 2**: Brief description of the bug fix. +| - **Bug 3**: Brief description of the bug fix. +| +| Other changes by Label +| ---------------------- +| +| - **Label 1/Refactor 1**: Brief description of the change. +| - **Label 2/Refactor 2**: Brief description of the change. +| - **Label 3/Refactor 3**: Brief description of the change. +| +| Compatibility +| ------------- +| +| - **Dependencies**: List any dependencies and their versions. +| +| Performed Verification +| ---------------------- +| This release note is based on the verification as documented in platform verification report +| :need:`doc__platform_verification_report`. +| +| Known Issues +| ------------ +| +| - **Issue 1**: Brief description of the known issue. Justification regarding safety impact. +| - **Issue 2**: Brief description of the known issue. Justification regarding safety impact. +| - **Issue 3**: Brief description of the known issue. Justification regarding safety impact. +| +| Known Vulnerabilities +| --------------------- +| +| - **CVE 1**: Brief description of the known CVE. Justification regarding security impact. +| - **CVE 2**: Brief description of the known CVE. Justification regarding security impact. +| - **CVE 3**: Brief description of the known CVE. Justification regarding security impact. +| +| Upgrade Instructions +| -------------------- +| +| 1. **Step 1**: Description of the first step. +| 2. **Step 2**: Description of the second step. +| 3. **Step 3**: Description of the third step. +| +| Contributors +| ------------ +| +| Thanks to everyone who contributed to this release: +| +| Contributor 1 +| Contributor 2 +| diff --git a/process/folder_templates/platform/docs/safety_mgt/platform_dfa.rst b/process/folder_templates/platform/docs/safety_mgt/platform_dfa.rst index 2dafac8c92..524edf3de0 100644 --- a/process/folder_templates/platform/docs/safety_mgt/platform_dfa.rst +++ b/process/folder_templates/platform/docs/safety_mgt/platform_dfa.rst @@ -30,9 +30,222 @@ Platform DFA (Dependent Failure Analysis) .. note:: Use the content of the document to describe e.g. why a fault model is not applicable for the diagram. +The DFA for the platform is performed. To show evidence that all failure initiators are considered, the applicability has to be filled out in the +following tables. For all applicable failure initiators, the DFA has to be performed. + Dependent Failure Initiators ---------------------------- +2.1 Shared resources + +.. note:: Shared libraries is only than applicable as a shared resource if the feature and the related safety mechanisms are using this specific library. If the library is not used by the feature or the related safety mechanisms, it is not a shared resource. + + +.. list-table:: DFA shared resources (used for Platform DFA) + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause shared resources + - Applicability + - Rationale + * - SR_01_01 + - Reused software modules + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_02 + - Libraries + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_04 + - Basic software + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_05 + - Operating system including scheduler + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_06 + - Any service stack, e.g. communication stack + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_07 + - Configuration data + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_09 + - Execution time + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SR_01_10 + - Allocated memory + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + + +| 2.2 Communication between the two elements: +| Receiving function is affected by information that is false, lost, sent multiple times, or in the wrong order etc. from the sender. + +.. list-table:: DFA communication between elements + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause communication between elements + - Applicability + - Rationale + * - CO_01_01 + - Information passed via argument through a function call, or via writing/reading a variable being global to the two software functions (data flow) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_02 + - Data or message corruption / repetition / loss / delay / masquerading or incorrect addressing of information + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_03 + - Insertion / sequence of information + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_04 + - Corruption of information, inconsistent data + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_05 + - Asymmetric information sent from a sender to multiple receivers, so that not all defined receivers have the same information + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_06 + - Information from a sender received by only a subset of the receivers + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - CO_01_07 + - Blocking access to a communication channel + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + +| 2.3 Shared information inputs +| Same information input used by multiple functions. + +.. list-table:: DFA shared information inputs + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause shared information inputs + - Applicability + - Rationale + * - SI_01_02 + - Configuration data + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SI_01_03 + - Constants, or variables, being global to the two software functions + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SI_01_04 + - Basic software passes data (read from hardware register and converted into logical information) to two applications software functions + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SI_01_05 + - Data / function parameter arguments / messages delivered by software function to more than one other function + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + +| 2.4 Unintended impact +| Unintended impacts to function due to various failures. + +.. list-table:: DFA unintended impact + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause unintended impact + - Applicability + - Rationale + * - UI_01_01 + - Memory miss-allocation and leaks + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_02 + - Read/Write access to memory allocated to another software element + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_03 + - Stack/Buffer under-/overflow + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_04 + - Deadlocks + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_05 + - Livelocks + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_06 + - Blocking of execution + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_07 + - Incorrect allocation of execution time + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_08 + - Incorrect execution flow + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_09 + - Incorrect synchronization between software elements + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_10 + - CPU time depletion + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_11 + - Memory depletion + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - UI_01_12 + - Other HW unavailability + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + +| Development failure initiators +| Section is **only applicable if a divers SW development is needed** due to decomposition. + +:note: Section shall be applied only once to analyse all dependencies of the features. Results shall be checked during of the analysis of new features if this is applicable to the feature. + +.. list-table:: DFA development failure initiators (Platform DFA) + :header-rows: 1 + :widths: 10,20,10,20 + + * - ID + - Violation cause development failure initiators + - Applicability + - Rationale + * - SC_01_02 + - Same development approaches (e.g. IDE, programming and/or modelling language) + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SC_01_03 + - Same personal + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SC_01_04 + - Same social-cultural context (even if different personnel). Only applicable if diverse development is needed. + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + * - SC_01_05 + - Development fault (e.g. human error, insufficient qualification, insufficient methods). Only applicable if diverse development is needed. + - <yes | no> + - <Rationale if not applicable, otherwise link to filled out DFA> + + +DFA +--- +For all identified applicable failure initiators, the DFA is performed in the following section. + .. code-block:: rst .. plat_saf_dfa:: <Title> diff --git a/process/folder_templates/platform/docs/safety_mgt/platform_safety_manual.rst b/process/folder_templates/platform/docs/safety_mgt/platform_safety_manual.rst index 5e6418c081..584590cc74 100644 --- a/process/folder_templates/platform/docs/safety_mgt/platform_safety_manual.rst +++ b/process/folder_templates/platform/docs/safety_mgt/platform_safety_manual.rst @@ -62,9 +62,6 @@ List of AoUs expected from the environment the platform runs on: if need and "environment" in need["tags"]: results.append(need) -.. attention:: - Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. - Assumptions on the User ^^^^^^^^^^^^^^^^^^^^^^^ | As there is no assumption on which specific OS and HW is used, the integration testing of the stakeholder requirements is expected to be performed by the user of the platform SEooC. Tests covering all stakeholder and feature requirements performed on a reference platform (tbd link to reference platform specification), reviewed and passed are included in the platform SEooC safety package. @@ -88,9 +85,6 @@ Assumptions on the User if need and "environment" not in need["tags"]: results.append(need) -.. attention:: - Make sure these AoU are here for a safety reason, i.e. every one "mitigates" a safety analysis entry. - Safety concept of the SEooC --------------------------- | **<Describe here the safety concept incl. which faults are taken care of, reactions of the implemented functions under anomalous operating conditions>** diff --git a/process/folder_templates/platform/docs/safety_mgt/platform_safety_plan.rst b/process/folder_templates/platform/docs/safety_mgt/platform_safety_plan.rst index d99b34ba4a..937b28e8cb 100644 --- a/process/folder_templates/platform/docs/safety_mgt/platform_safety_plan.rst +++ b/process/folder_templates/platform/docs/safety_mgt/platform_safety_plan.rst @@ -163,8 +163,6 @@ Functional Safety Specific SW Platform Work Products List of all relevant work products for the platform project relevant for Functional Safety. Including their status (which makes it cover also the "safety package"). -Link to project planning: <add here a link to your project's planning for these work products, e.g. a link to a ticket.> - Platform Safety Plan - Feature Work Product Lists ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/process/folder_templates/platform/requirements/stakeholder/chklst_req_inspection.rst b/process/folder_templates/platform/requirements/stakeholder/chklst_req_inspection.rst index 812607a539..cc2c20ca3e 100644 --- a/process/folder_templates/platform/requirements/stakeholder/chklst_req_inspection.rst +++ b/process/folder_templates/platform/requirements/stakeholder/chklst_req_inspection.rst @@ -105,7 +105,7 @@ See also :need:`doc_concept__wp_inspections` for further information about revie - * - REQ_04_01 - Is the requirement *internally and externally consistent*? - - Does the requirement contradict other requirements within the same or higher levels? Is the description of the requirement consistent with all its attributes (if not already part of another check, e.g. does the title fit?). + - Does the requirement contradict other requirements within the same or higher levels? - - - @@ -117,7 +117,7 @@ See also :need:`doc_concept__wp_inspections` for further information about revie - * - REQ_06_01 - Does the requirement consider *external interfaces*? - - This check is not needed, as on the level of stakeholder requirements interfaces do not need to be used to describe the function. + - The SW platform's external interfaces (to the user and external systems) are defined, so the Feature and Component Requirements should determine the input data use and setting of output data for these interfaces. Are all output values defined? - - - @@ -135,9 +135,9 @@ See also :need:`doc_concept__wp_inspections` for further information about revie - * - REQ_08_01 - Is the requirement *verifiable*? - - As the stakeholder requirements are only "assumed safety requirements" and also the tests do not need to be complete, this check is not applicable. - - n/a + - If at the time of the inspection already tests are created for the requirement, the answer is yes. This can be checked via traces, but also :need:`gd_req__req_attr_test_covered` shows this. In case the requirement is not sufficiently traced to test cases already, a test expert is invited to the inspection to give his opinion whether the requirement is formulated in a way that supports test development and the available test infrastructure is sufficient to perform the test. - n/a + - As the stakeholder requirements are only "assumed safety requirements" and also the tests do not need to be complete, this check is not applicable. - n/a * - REQ_09_01 - Do those requirements cover assumed safety mechanisms needed by the hardware and system? diff --git a/process/folder_templates/platform/requirements/stakeholder/index.rst b/process/folder_templates/platform/requirements/stakeholder/index.rst index 7cc0cb85f7..0215408c98 100644 --- a/process/folder_templates/platform/requirements/stakeholder/index.rst +++ b/process/folder_templates/platform/requirements/stakeholder/index.rst @@ -32,30 +32,26 @@ Stakeholder Requirements <Headlines (for the list of requirements if structuring is needed)> =================================================================== -.. code-block:: rst - - .. stkh_req:: Template - :id: stkh_req__requirements__template - :reqtype: Functional - :safety: ASIL_B - :security: YES - :rationale: <The rationale provides the reason that the requirement is needed.> - :valid_from: v0.0.1 - :valid_until: v1.0.1 - :status: invalid - - The platform shall ... +.. stkh_req:: Template + :id: stkh_req__requirements__template + :reqtype: Functional + :safety: ASIL_B + :security: YES + :rationale: <The rationale provides the reason that the requirement is needed.> + :valid_from: v0.0.1 + :valid_until: v1.0.1 + :status: invalid -.. code-block:: rst + The platform shall ... - .. aou_req:: Some Other Title - :id: aou_req__platform__some_other_title - :reqtype: Interface - :security: YES - :safety: ASIL_B - :status: invalid +.. aou_req:: Some Other Title + :id: aou_req__platform__some_other_title + :reqtype: Interface + :security: YES + :safety: ASIL_B + :status: invalid - The Platform User shall do xyz to use the platform safely. + The Platform User shall do xyz to use the platform safely. .. attention:: The above directives must be updated according to platform requirements. diff --git a/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg b/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg index 48b596a666..2e2d3a20da 100644 --- a/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg +++ b/process/general_concepts/_assets/score_building_blocks_meta_model.drawio.svg @@ -1,2292 +1,4 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1311px" height="1098px" viewBox="-0.5 -0.5 1311 1098" content="<mxfile><diagram id="v5joY7vsvjPmTx3Js0eh" name="Page-1">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</diagram></mxfile>"> - <defs/> - <g> - <g> - <path d="M 900 920 L 735.37 920" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 730.12 920 L 737.12 916.5 L 735.37 920 L 737.12 923.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 384.37 368.5 L 382.18 368.5 Q 380 368.5 380 369.25 L 380 369.63 Q 380 370 390 370 L 619 370" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 379.12 368.5 L 386.12 365 L 384.37 368.5 L 386.12 372 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 758px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="758" y="774" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 361px; margin-left: 585px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="585" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 463.5 L 460 463.5 Q 470 463.5 470 473.5 L 470 523.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 470 528.88 L 466.5 521.88 L 470 523.63 L 473.5 521.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 454px; margin-left: 401px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="401" y="457" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 268 347 L 268 321 L 378 321 L 378 347" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 268 347 L 268 511 L 378 511 L 378 347" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 268 347 L 378 347" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 334px; margin-left: 323px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - </div> - </div> - </div> - </foreignObject> - <text x="323" y="337" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 655 L 460 655 Q 470 655 470 645 L 470 616.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 470 611.12 L 473.5 618.12 L 470 616.37 L 466.5 618.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 670px; margin-left: 450px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - uses - </div> - </div> - </div> - </foreignObject> - <text x="450" y="673" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses - </text> - </switch> - </g> - </g> - <g> - <path d="M 268 616 L 268 590 L 378 590 L 378 616" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 268 616 L 268 850 L 378 850 L 378 616" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 268 616 L 378 616" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 603px; margin-left: 323px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - </div> - </div> - </div> - </foreignObject> - <text x="323" y="606" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 96 L 0 70 L 110 70 L 110 96" fill="#00ff00" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 255, 0), rgb(0, 143, 0)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - <path d="M 0 96 L 0 150 L 110 150 L 110 96" fill="#ffffff" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - <path d="M 0 96 L 110 96" fill="none" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 83px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F0F0F; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#0F0F0F, #e0e0e0); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Delivery Container - </div> - </div> - </div> - </foreignObject> - <text x="55" y="86" fill="#0F0F0F" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Delivery Container - </text> - </switch> - </g> - </g> - <g> - <path d="M 619 356 L 619 330 L 729 330 L 729 356" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 619 356 L 619 410 L 729 410 L 729 356" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 619 356 L 729 356" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 343px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="674" y="346" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <path d="M 797.5 440 L 797.5 400 Q 797.5 390 787.5 390 L 735.37 390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 730.12 390 L 737.12 386.5 L 735.37 390 L 737.12 393.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 426px; margin-left: 781px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - </div> - </div> - </div> - </foreignObject> - <text x="781" y="429" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - </text> - </switch> - </g> - </g> - <g> - <path d="M 770 500 L 480 500 Q 470 500 470 510 L 470 523.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 470 528.88 L 466.5 521.88 L 470 523.63 L 473.5 521.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 510px; margin-left: 740px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="740" y="513" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 770 480 L 500 480 Q 490 480 490 470 L 490 426 Q 490 416 480 416 L 384.37 416" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 379.12 416 L 386.12 412.5 L 384.37 416 L 386.12 419.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 477px; margin-left: 742px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="742" y="477" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 770 466 L 770 440 L 880 440 L 880 466" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 770 466 L 770 520 L 880 520 L 880 466" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 770 466 L 880 466" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 453px; margin-left: 825px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="825" y="456" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <path d="M 674 590 L 674 550 Q 674 540 684 540 L 815 540 Q 825 540 825 533.18 L 825 526.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 825 521.12 L 828.5 528.12 L 825 526.37 L 821.5 528.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 531px; margin-left: 737px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="737" y="534" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 619 616 L 619 590 L 729 590 L 729 616" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 619 616 L 619 670 L 729 670 L 729 616" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 619 616 L 729 616" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 603px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="674" y="606" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 720 L 560 720 Q 570 720 570 710 L 570 640 Q 570 630 580 630 L 619 630" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 641px; margin-left: 600px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="600" y="644" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 621px; margin-left: 581px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="581" y="624" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 532px; margin-left: 289px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - consists of - </div> - </div> - </div> - </foreignObject> - <text x="289" y="535" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - consists of - </text> - </switch> - </g> - </g> - <g> - <path d="M 384.37 1046.49 L 383.68 1046.49 Q 383 1046.5 393 1046.47 L 560 1046.03 Q 570 1046 570 1036 L 570 950 Q 570 940 580 940 L 619 940" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 379.12 1046.53 L 386.09 1042.98 L 384.37 1046.49 L 386.15 1049.97 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 976px; margin-left: 571px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="571" y="979" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 268 1032.54 L 268 1006.54 L 378 1006.54 L 378 1032.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 268 1032.54 L 268 1086.54 L 378 1086.54 L 378 1032.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 268 1032.54 L 378 1032.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1020px; margin-left: 323px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Unit - </div> - </div> - </div> - </foreignObject> - <text x="323" y="1023" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Unit - </text> - </switch> - </g> - </g> - <g> - <path d="M 323 1006.54 L 323 856.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 323 851.12 L 326.5 858.12 L 323 856.37 L 319.5 858.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 867px; margin-left: 292px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="292" y="867" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 991px; margin-left: 361px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="361" y="994" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 619 1032.54 L 619 1006.54 L 729 1006.54 L 729 1032.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 619 1032.54 L 619 1086.54 L 729 1086.54 L 729 1032.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 619 1032.54 L 729 1032.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1020px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Source Code - </div> - </div> - </div> - </foreignObject> - <text x="674" y="1023" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Source Code - </text> - </switch> - </g> - </g> - <g> - <path d="M 1090 240 L 1245 240 Q 1255 240 1255 250 L 1255 428.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1255 433.88 L 1251.5 426.88 L 1255 428.63 L 1258.5 426.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 618.45 150 L 618.45 125 L 728.45 125 L 728.45 150" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 618.45 150 L 618.45 205 L 728.45 205 L 728.45 150" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 618.45 150 L 728.45 150" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 138px; margin-left: 673px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Stakeholder - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="673" y="141" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Stakeholder... - </text> - </switch> - </g> - </g> - <g> - <path d="M 619 1066.54 L 384.37 1066.54" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 379.12 1066.54 L 386.12 1063.04 L 384.37 1066.54 L 386.12 1070.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <rect x="537" y="1066.54" width="80" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1082px; margin-left: 577px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #FF0000; "> - <div style="display: inline-block; font-size: 8px; font-family: "Helvetica"; color: light-dark(#FF0000, #ff9090); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - <span style="color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); font-size: 11px; background-color: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"> - implements - </span> - </div> - </div> - </div> - </foreignObject> - <text x="577" y="1084" fill="#FF0000" font-family=""Helvetica"" font-size="8px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 165 L 612.08 165" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 617.33 165 L 610.33 168.5 L 612.08 165 L 610.33 161.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 171px; margin-left: 598px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="598" y="182" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 165 L 409 165 Q 419 165 419 175 L 419 230 Q 419 240 429 240 L 453.63 240" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 458.88 240 L 451.88 243.5 L 453.63 240 L 451.88 236.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 268 96 L 268 70 L 378 70 L 378 96" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 268 96 L 268 260 L 378 260 L 378 96" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 268 96 L 378 96" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 83px; margin-left: 323px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform - </div> - </div> - </div> - </foreignObject> - <text x="323" y="86" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform - </text> - </switch> - </g> - </g> - <g> - <path d="M 323 275.99 L 323 318.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 323 260.99 L 327.41 268.49 L 323 275.99 L 318.59 268.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 316.5 306.88 L 323 319.88 L 329.5 306.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 277px; margin-left: 292px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="292" y="277" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 292px; margin-left: 286px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - consists of - </div> - </div> - </div> - </foreignObject> - <text x="286" y="295" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - consists of - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 151px; margin-left: 396px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - has - </div> - </div> - </div> - </foreignObject> - <text x="396" y="154" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - has - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 252px; margin-left: 524px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="524" y="255" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 618.45 26 L 618.45 0 L 728.45 0 L 728.45 26" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 618.45 26 L 618.45 80 L 728.45 80 L 728.45 26" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 618.45 26 L 728.45 26" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 13px; margin-left: 673px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Objectives - </div> - </div> - </div> - </foreignObject> - <text x="673" y="16" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Objectives - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 165 L 410 165 Q 420 165 420 155 L 420 50 Q 420 40 430 40 L 612.08 40" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 617.33 40 L 610.33 43.5 L 612.08 40 L 610.33 36.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 38px; margin-left: 595px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="595" y="38" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 673.48 96.99 L 673.5 106 L 673.47 118.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 673.45 81.99 L 677.88 89.48 L 673.48 96.99 L 669.06 89.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 673.45 123.88 L 669.97 116.87 L 673.47 118.63 L 676.97 116.89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 96px; margin-left: 691px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="691" y="96" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 797.5 700 L 797.5 660 Q 797.5 650 787.5 650 L 735.37 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 730.12 650 L 737.12 646.5 L 735.37 650 L 737.12 653.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 691px; margin-left: 781px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - </div> - </div> - </div> - </foreignObject> - <text x="781" y="694" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - </text> - </switch> - </g> - </g> - <g> - <path d="M 770 760 L 507.5 760 Q 497.5 760 497.5 750 L 497.5 616.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 497.5 611.12 L 501 618.12 L 497.5 616.37 L 494 618.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 765px; margin-left: 720px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - uses - </div> - </div> - </div> - </foreignObject> - <text x="720" y="776" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses - </text> - </switch> - </g> - </g> - <g> - <path d="M 770 726 L 770 700 L 880 700 L 880 726" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 770 726 L 770 780 L 880 780 L 880 726" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 770 726 L 880 726" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 713px; margin-left: 825px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="825" y="716" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 674 590 L 674 416.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 674 411.12 L 677.5 418.12 L 674 416.37 L 670.5 418.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 456px; margin-left: 675px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="675" y="459" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 384.37 720 L 560 720 Q 570 720 570 730 L 570 735 Q 570 740 580 740 L 770 740" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 379.12 720 L 386.12 716.5 L 384.37 720 L 386.12 723.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 710px; margin-left: 400px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <div> - <br/> - </div> - </div> - </div> - </div> - </foreignObject> - <text x="400" y="713" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 738px; margin-left: 721px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="721" y="738" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 619 906 L 619 880 L 729 880 L 729 906" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 619 906 L 619 960 L 729 960 L 729 906" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 619 906 L 729 906" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 893px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Detailed - <br/> - Design - </div> - </div> - </div> - </foreignObject> - <text x="674" y="896" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Detailed... - </text> - </switch> - </g> - </g> - <g> - <path d="M 384.37 785 L 560 785 Q 570 785 570 795 L 570 910 Q 570 920 580 920 L 619 920" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 379.12 785 L 386.12 781.5 L 384.37 785 L 386.12 788.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 701.5 880 L 701.5 840 Q 701.5 830 711.5 830 L 815 830 Q 825 830 825 820 L 825 782.24" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 828.5 788.12 L 825 781.12 L 821.5 788.12" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 823px; margin-left: 776px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="776" y="826" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 674 880 L 674 775.5 L 674 676.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 674 671.12 L 677.5 678.12 L 674 676.37 L 670.5 678.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 810px; margin-left: 675px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="675" y="813" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 869px; margin-left: 392px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - consists of - </div> - </div> - </div> - </foreignObject> - <text x="392" y="872" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - consists of - </text> - </switch> - </g> - </g> - <g> - <path d="M 674 1006.54 L 674 983.8 L 674 966.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 674 961.12 L 677.5 968.12 L 674 966.37 L 670.5 968.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 984px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="674" y="987" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 395.99 820 L 420 820 Q 430 820 430 830 L 430 870 Q 430 880 420 880 L 360.5 880 Q 350.5 880 350.5 870 L 350.5 856.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 380.99 820 L 388.49 815.59 L 395.99 820 L 388.49 824.41 Z" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 350.5 851.12 L 354 858.12 L 350.5 856.37 L 347 858.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 814px; margin-left: 382px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="382" y="814" fill="#000000" font-family=""Helvetica"" font-size="12px"> - 1 - </text> - </switch> - </g> - </g> - <g> - <rect x="288" y="976.54" width="30" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 992px; margin-left: 303px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - * - </div> - </div> - </div> - </foreignObject> - <text x="303" y="995" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - * - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 686 L 0 660 L 110 660 L 110 686" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(184, 84, 80), rgb(215, 129, 126)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 686 L 0 740 L 110 740 L 110 686" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 686 L 110 686" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 673px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Dependable Element - </div> - </div> - </div> - </foreignObject> - <text x="55" y="676" fill="#ffffff" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Dependable Element - </text> - </switch> - </g> - </g> - <g> - <path d="M 110 720 L 180 720 L 261.63 720" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 266.88 720 L 259.88 723.5 L 261.63 720 L 259.88 716.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 707px; margin-left: 140px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="140" y="707" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <rect x="220" y="730" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 745px; margin-left: 240px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="240" y="749" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <path d="M 323 526.99 L 323 583.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 323 511.99 L 327.41 519.49 L 323 526.99 L 318.59 519.49 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 323 588.88 L 319.5 581.88 L 323 583.63 L 326.5 581.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 531px; margin-left: 335px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - * - </div> - </div> - </div> - </foreignObject> - <text x="335" y="531" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 579px; margin-left: 344px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="344" y="582" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 1193.63 475 L 1100 475" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1198.88 475 L 1191.88 478.5 L 1193.63 475 L 1191.88 471.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 1035 415 L 1035 320 Q 1035 310 1025 310 L 711.5 310 Q 701.5 310 701.5 316.82 L 701.5 323.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 701.5 328.88 L 698 321.88 L 701.5 323.63 L 705 321.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 970 441 L 970 415 L 1100 415 L 1100 441" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 970 441 L 970 495 L 1100 495 L 1100 441" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 970 441 L 1100 441" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 428px; margin-left: 1035px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature Safety/ - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="1035" y="431" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature Safety/... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1200 461 L 1200 435 L 1310 435 L 1310 461" fill="#fcfcfc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(252, 252, 252), rgb(20, 20, 20)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 1200 461 L 1200 515 L 1310 515 L 1310 461" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 1200 461 L 1310 461" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 448px; margin-left: 1255px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Assumption of use - </div> - </div> - </div> - </foreignObject> - <text x="1255" y="451" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Assumption of use - </text> - </switch> - </g> - </g> - <g> - <rect x="1200" y="461" width="110" height="44" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 483px; margin-left: 1201px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - - own AoU - <br/> - -other AoU - </div> - </div> - </div> - </foreignObject> - <text x="1255" y="487" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - - own AoU... - </text> - </switch> - </g> - </g> - <g> - <path d="M 900 122 L 800 122 Q 790 122 790 132 L 790 155 Q 790 165 780 165 L 734.44 165" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 730.69 165 L 735.69 162.5 L 734.44 165 L 735.69 167.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 900 108 L 900 82 L 1010 82 L 1010 108" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 900 108 L 900 162 L 1010 162 L 1010 108" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 900 108 L 1010 108" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 95px; margin-left: 955px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform Integration - <br/> - Tests - </div> - </div> - </div> - </foreignObject> - <text x="955" y="98" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform Integration... - </text> - </switch> - </g> - </g> - <g> - <path d="M 900 370 L 734.99 370" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 731.24 370 L 736.24 367.5 L 734.99 370 L 736.24 372.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 900 370 L 862.5 370 Q 852.5 370 852.5 380 L 852.5 434.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 852.5 437.76 L 850 432.76 L 852.5 434.01 L 855 432.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 900 356 L 900 330 L 1010 330 L 1010 356" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 900 356 L 900 410 L 1010 410 L 1010 356" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 900 356 L 1010 356" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 343px; margin-left: 955px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Integration Tests - </div> - </div> - </div> - </foreignObject> - <text x="955" y="346" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 108px; margin-left: 867px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="867" y="111" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 466px; margin-left: 906px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - violates - </div> - </div> - </div> - </foreignObject> - <text x="906" y="469" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 459px; margin-left: 1148px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1148" y="462" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 362px; margin-left: 875px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="875" y="365" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 900 630 L 825.5 630 Q 815.5 630 805.5 630 L 735.99 630" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 732.24 630 L 737.24 627.5 L 735.99 630 L 737.24 632.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 955 670 L 955 850 Q 955 860 945 860 L 790 860 Q 780 860 780 870 L 780 910 Q 780 920 770 920 L 734.99 920" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 731.24 920 L 736.24 917.5 L 734.99 920 L 736.24 922.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 900 616 L 900 590 L 1010 590 L 1010 616" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 900 616 L 900 670 L 1010 670 L 1010 616" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 900 616 L 1010 616" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 603px; margin-left: 955px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Integration Tests - </div> - </div> - </div> - </foreignObject> - <text x="955" y="606" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 980 718 L 940 718 Q 930 718 930 728 L 930 734 Q 930 740 920 740 L 886.37 740" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 881.12 740 L 888.12 736.5 L 886.37 740 L 888.12 743.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 1040 678 L 1040 580 Q 1040 570 1030 570 L 711.5 570 Q 701.5 570 701.5 576.82 L 701.5 583.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 701.5 588.88 L 698 581.88 L 701.5 583.63 L 705 581.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 980 704 L 980 678 L 1110 678 L 1110 704" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 980 704 L 980 758 L 1110 758 L 1110 704" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 980 704 L 1110 704" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 691px; margin-left: 1045px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component Safety / - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="1045" y="694" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component Safety /... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1255 521.37 L 1255 708 Q 1255 718 1245 718 L 1110 718" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1255 516.12 L 1258.5 523.12 L 1255 521.37 L 1251.5 523.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 730px; margin-left: 911px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - violates - </div> - </div> - </div> - </foreignObject> - <text x="911" y="733" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 749px; margin-left: 1163px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1163" y="752" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 299px; margin-left: 922px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="922" y="302" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 579px; margin-left: 854px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="854" y="582" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 913px; margin-left: 829px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="829" y="916" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 900 906 L 900 880 L 1010 880 L 1010 906" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 900 906 L 900 960 L 1010 960 L 1010 906" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 900 906 L 1010 906" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 893px; margin-left: 955px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Unit Test - </div> - </div> - </div> - </foreignObject> - <text x="955" y="896" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Unit Test - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 852px; margin-left: 826px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="826" y="855" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 626px; margin-left: 876px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="876" y="629" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <rect x="584" y="940" width="30" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 955px; margin-left: 599px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="599" y="959" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <rect x="582.42" y="890" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 905px; margin-left: 602px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="602" y="909" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <path d="M 900 630 L 862.5 630.39 Q 852.5 630.5 852.5 640.5 L 852.5 694.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 852.5 697.76 L 850 692.76 L 852.5 694.01 L 855 692.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 229px; margin-left: 1146px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1146" y="232" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g/> - <g> - <path d="M 980 260 L 710 260 Q 700 260 690 260 L 576.37 260" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 571.12 260 L 578.12 256.5 L 576.37 260 L 578.12 263.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 980 226 L 980 200 L 1090 200 L 1090 226" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 980 226 L 980 280 L 1090 280 L 1090 226" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 980 226 L 1090 226" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 213px; margin-left: 1035px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform Safety/ - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="1035" y="216" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform Safety/... - </text> - </switch> - </g> - </g> - <g> - <path d="M 980 240 L 810 240 Q 800 240 800 230 L 800 195 Q 800 185 790 185 L 734.82 185" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 729.57 185 L 736.57 181.5 L 734.82 185 L 736.57 188.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 229px; margin-left: 916px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="916" y="232" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 980 260 L 835 260 Q 825 260 825 270 L 825 433.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 825 438.88 L 821.5 431.88 L 825 433.63 L 828.5 431.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 267px; margin-left: 914px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - violates - </div> - </div> - </div> - </foreignObject> - <text x="914" y="270" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <path d="M 525 570 L 562 570 Q 572 570 572 560 L 572 400 Q 572 390 582 390 L 612.63 390" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 617.88 390 L 610.88 393.5 L 612.63 390 L 610.88 386.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 567px; margin-left: 540px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfils - </div> - </div> - </div> - </foreignObject> - <text x="540" y="567" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfils - </text> - </switch> - </g> - </g> - <g> - <path d="M 415 556 L 415 530 L 525 530 L 525 556" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 415 556 L 415 610 L 525 610 L 525 556" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 415 556 L 525 556" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 543px; margin-left: 470px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Logical Arc. Interface - </div> - </div> - </div> - </foreignObject> - <text x="470" y="546" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Logical Arc. Interface - </text> - </switch> - </g> - </g> - <g> - <rect x="1100" y="835" width="160" height="240" rx="24" ry="24" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 832px; margin-left: 1101px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Legend - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="832" fill="#333333" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Legend - </text> - </switch> - </g> - </g> - <g> - <path d="M 1125 894.77 L 1235 894.77" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 895px; margin-left: 1180px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - UML - <div> - (sphinx needs) - </div> - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="898" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - UML... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1125 919.66 L 1235 919.66" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 920px; margin-left: 1180px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implicit - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="923" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - implicit - </text> - </switch> - </g> - </g> - <g> - <path d="M 1125 1016.54 L 1235 1016.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1017px; margin-left: 1180px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mandatory - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="1020" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - mandatory - </text> - </switch> - </g> - </g> - <g> - <path d="M 1125 1041.12 L 1235 1041.12" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1041px; margin-left: 1180px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - optional - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="1044" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - optional - </text> - </switch> - </g> - </g> - <g> - <path d="M 110 830 L 180 830 Q 190 830 190 820 L 190 800.5 Q 190 790.5 200 790.44 L 263.63 790.04" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 268.88 790.01 L 261.9 793.55 L 263.63 790.04 L 261.86 786.55 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 815px; margin-left: 139px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="139" y="818" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 55 790 L 55 746.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 55 741.12 L 58.5 748.12 L 55 746.37 L 51.5 748.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 777px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="55" y="780" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 816 L 0 790 L 110 790 L 110 816" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(184, 84, 80), rgb(215, 129, 126)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 816 L 0 870 L 110 870 L 110 816" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 816 L 110 816" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 803px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Dependable Element - <br/> - View - </div> - </div> - </div> - </foreignObject> - <text x="55" y="806" fill="#ffffff" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Dependable Element... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1125 944.77 L 1235 944.77" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 945px; margin-left: 1180px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Tool generated - <br/> - Target not specified - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="948" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - Tool gener... - </text> - </switch> - </g> - </g> - <g> - <rect x="1150" y="980" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 995px; margin-left: 1151px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Line Color - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="999" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Line Color - </text> - </switch> - </g> - </g> - <g> - <rect x="1150" y="850" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 865px; margin-left: 1151px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Line Style - </div> - </div> - </div> - </foreignObject> - <text x="1180" y="869" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Line Style - </text> - </switch> - </g> - </g> - <g> - <path d="M 378 655 L 432.5 655 Q 442.5 655 442.5 645 L 442.5 616.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 442.5 611.12 L 446 618.12 L 442.5 616.37 L 439 618.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 640px; margin-left: 410px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="410" y="643" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 54.52 164.99 L 54.99 653.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 54.5 149.99 L 58.92 157.48 L 54.52 164.99 L 50.1 157.49 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 55 658.88 L 51.49 651.89 L 54.99 653.63 L 58.49 651.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 167px; margin-left: 72px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="72" y="167" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1 - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 650px; margin-left: 75px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="75" y="654" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 125.99 110 L 160 110 Q 170 110 170 120 L 170 155 Q 170 165 180 165 L 261.63 165" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 110.99 110 L 118.49 105.59 L 125.99 110 L 118.49 114.41 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 266.88 165 L 259.88 168.5 L 261.63 165 L 259.88 161.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 107px; margin-left: 122px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - * - </div> - </div> - </div> - </foreignObject> - <text x="122" y="107" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 151px; margin-left: 249px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="249" y="154" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 1193.63 494 L 1120 494 Q 1110 494 1110 497 L 1110 498.5 Q 1110 500 1100 500 L 880 500" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1198.88 494 L 1191.88 497.5 L 1193.63 494 L 1191.88 490.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 512px; margin-left: 991px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - but not the own AoU - </div> - </div> - </div> - </foreignObject> - <text x="991" y="515" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - but not the own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 1282.5 521.37 L 1282.5 780 Q 1282.5 790 1272.5 790 L 940 790 Q 930 790 930 780 L 930 770 Q 930 760 920 760 L 880 760" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1282.5 516.12 L 1286 523.12 L 1282.5 521.37 L 1279 523.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 800px; margin-left: 1079px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - but not the own AoU - </div> - </div> - </div> - </foreignObject> - <text x="1079" y="803" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - but not the own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 1010 370 L 1217.5 370 Q 1227.5 370 1227.5 380 L 1227.5 429.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1227.5 432.76 L 1225 427.76 L 1227.5 429.01 L 1230 427.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 361px; margin-left: 1139px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="1139" y="364" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 1010 630 L 1217.5 630 Q 1227.5 630 1227.5 620 L 1227.5 520.99" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1227.5 517.24 L 1230 522.24 L 1227.5 520.99 L 1225 522.24 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 621px; margin-left: 1130px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="1130" y="624" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 970 455 L 935 455 Q 925 455 925 465 L 925 472.5 Q 925 480 915 480 L 886.37 480" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 881.12 480 L 888.12 476.5 L 886.37 480 L 888.12 483.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 646.5 410 L 646.5 540 Q 646.5 550 656.5 550 L 1217.5 550 Q 1227.5 550 1227.5 540 L 1227.5 521.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1227.5 516.12 L 1231 523.12 L 1227.5 521.37 L 1224 523.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 646.5 590 L 646.5 560 Q 646.5 550 656.5 550 L 1217.5 550 Q 1227.5 550 1227.5 540 L 1227.5 521.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1227.5 516.12 L 1231 523.12 L 1227.5 521.37 L 1224 523.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 561px; margin-left: 1121px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - covers - but not the own AoU - </div> - </div> - </div> - </foreignObject> - <text x="1121" y="564" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - covers - but not the own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 460 260 L 430 260 Q 420 260 420 270 L 420 311 Q 420 321 410 321 L 384.37 321" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 379.12 321 L 386.12 317.5 L 384.37 321 L 386.12 324.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 302px; margin-left: 421px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="421" y="305" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 460 226 L 460 200 L 570 200 L 570 226" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 460 226 L 460 280 L 570 280 L 570 226" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 460 226 L 570 226" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 213px; margin-left: 515px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="515" y="216" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform... - </text> - </switch> - </g> - </g> - <g> - <path d="M 674 330 L 674 267.5 L 673.51 211.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 673.46 206.12 L 677.02 213.09 L 673.51 211.37 L 670.02 213.15 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 295px; margin-left: 674px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="674" y="298" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> - <text text-anchor="middle" font-size="10px" x="50%" y="100%"> - Text is not SVG - cannot display - </text> - </a> - </switch> -</svg> +<?xml version="1.0" encoding="UTF-8"?> +<!-- Do not edit this file with editors other than draw.io --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1311px" height="1029px" viewBox="-0.5 -0.5 1311 1029" content="<mxfile host="Electron" modified="2026-02-17T13:00:29.387Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="Rwl9EwPnQI9K_4wvwyxx" version="21.6.5" type="device"> <diagram id="v5joY7vsvjPmTx3Js0eh" name="Page-1"> <mxGraphModel dx="1418" dy="1920" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="wLYmUudNAjxGS6Ao6TB5-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;verticalAlign=middle;dashPattern=8 8;" parent="1" source="wLYmUudNAjxGS6Ao6TB5-1" target="babr4powFyqcTPXK2lde-48" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="760" y="860" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;curved=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;startArrow=classic;startFill=1;" parent="1" source="17acba5748e5396b-30" target="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry x="-0.8229" y="8" relative="1" as="geometry"> <Array as="points"> <mxPoint x="410" y="300" /> </Array> <mxPoint y="1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--14" value="1, *" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--7" vertex="1" connectable="0"> <mxGeometry x="0.7143" y="4" relative="1" as="geometry"> <mxPoint x="173" y="404" as="offset" /> </mxGeometry> </mxCell> <mxCell id="8" value="belongs_to" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--7" connectable="0" vertex="1"> <mxGeometry x="0.8243" y="3" relative="1" as="geometry"> <mxPoint x="-13" y="-7" as="offset" /> </mxGeometry> </mxCell> <mxCell id="4" value="includes" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="17acba5748e5396b-30" target="2" edge="1"> <mxGeometry x="-0.7098" y="11" relative="1" as="geometry"> <mxPoint y="1" as="offset" /> </mxGeometry> </mxCell> <object label="Feature" id="17acba5748e5396b-30"> <mxCell style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fff2cc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="298" y="251" width="110" height="190" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> </object> <mxCell id="34" value="uses" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#0000FF;labelBackgroundColor=none;" parent="1" source="pMK8eHJ132L0T0ky6Owu-3" target="2" edge="1"> <mxGeometry x="0.0511" y="-15" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="pMK8eHJ132L0T0ky6Owu-3" value="Component" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="298" y="520" width="110" height="260" as="geometry" /> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--1" value="Delivery Container" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#00FF00;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;fontColor=#0F0F0F;strokeColor=#2D7600;" parent="1" vertex="1"> <mxGeometry x="30" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--6" value="Feature&lt;br&gt;Requirements" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fff2cc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="649" y="260" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;endArrow=classic;endFill=1;curved=0;" parent="1" source="697yjy1QHaCbR8dIwDn--9" target="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry x="0.6371" y="10" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--22" value="fulfills" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--21" vertex="1" connectable="0"> <mxGeometry x="0.1143" y="1" relative="1" as="geometry"> <mxPoint x="-1" y="34" as="offset" /> </mxGeometry> </mxCell> <mxCell id="5" value="includes" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="697yjy1QHaCbR8dIwDn--9" target="2" edge="1"> <mxGeometry x="-0.8182" y="10" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="30" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="697yjy1QHaCbR8dIwDn--9" target="17acba5748e5396b-30" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="520" y="410" /> <mxPoint x="520" y="346" /> </Array> </mxGeometry> </mxCell> <mxCell id="32" value="belongs_to" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];" parent="30" vertex="1" connectable="0"> <mxGeometry x="-0.9028" y="-1" relative="1" as="geometry"> <mxPoint x="-7" as="offset" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--9" value="Feature&lt;br&gt;Architecture" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fff2cc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="800" y="370" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--23" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=classic;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;curved=0;" parent="1" source="697yjy1QHaCbR8dIwDn--18" target="697yjy1QHaCbR8dIwDn--9" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--24" value="satifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--23" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="-5" y="-4" as="offset" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--18" value="Component&lt;br&gt;Requirements" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="649" y="520" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--19" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="pMK8eHJ132L0T0ky6Owu-3" target="697yjy1QHaCbR8dIwDn--18" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="410" y="690" as="sourcePoint" /> <mxPoint x="550" y="620" as="targetPoint" /> <Array as="points"> <mxPoint x="600" y="650" /> <mxPoint x="600" y="560" /> </Array> </mxGeometry> </mxCell> <mxCell id="697yjy1QHaCbR8dIwDn--20" value="1,*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--19" vertex="1" connectable="0"> <mxGeometry x="0.7143" y="4" relative="1" as="geometry"> <mxPoint x="27" y="14" as="offset" /> </mxGeometry> </mxCell> <mxCell id="7" value="belongs_to" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="697yjy1QHaCbR8dIwDn--19" connectable="0" vertex="1"> <mxGeometry x="0.8187" y="-1" relative="1" as="geometry"> <mxPoint x="-9" y="-11" as="offset" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-33" value="consists of" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="290" y="490.00284694606023" as="geometry"> <mxPoint x="28" y="-29" as="offset" /> </mxGeometry> </mxCell> <mxCell id="-eePMsJKs9zgv-svqh_z-1" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;curved=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;startArrow=classic;startFill=1;strokeColor=#0000FF;" parent="1" source="7VPe3bU9XycR8G6Iccp1-50" target="babr4powFyqcTPXK2lde-48" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="410" y="1000" as="sourcePoint" /> <Array as="points"> <mxPoint x="413" y="976" /> <mxPoint x="600" y="976" /> <mxPoint x="600" y="870" /> </Array> </mxGeometry> </mxCell> <mxCell id="27" value="includes" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="-eePMsJKs9zgv-svqh_z-1" connectable="0" vertex="1"> <mxGeometry x="0.5165" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-50" value="Unit" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#f5f5f5;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="298" y="936.54" width="110" height="80" as="geometry" /> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-52" value="1, *" style="endArrow=classic;html=1;endSize=6;startArrow=none;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endFill=1;" parent="1" source="7VPe3bU9XycR8G6Iccp1-50" target="pMK8eHJ132L0T0ky6Owu-3" edge="1"> <mxGeometry x="0.7445" y="33" relative="1" as="geometry"> <mxPoint x="280" y="900" as="sourcePoint" /> <mxPoint x="365" y="648" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="26" value="belongs_to" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="7VPe3bU9XycR8G6Iccp1-52" connectable="0" vertex="1"> <mxGeometry x="-0.536" y="2" relative="1" as="geometry"> <mxPoint x="39" y="20" as="offset" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-54" value="Source Code" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#f5f5f5;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="649" y="936.54" width="110" height="80" as="geometry" /> </mxCell> <mxCell id="bCJy0wboleK1JWH5l3Ff-8" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#0000FF;" parent="1" source="Th5c4jNv1uOuiAYLRJR8-1" target="DF_JG2yAjuc6xbUdHXp1-9" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="1285" y="170" /> </Array> <mxPoint x="1230" y="170" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-58" value="Stakeholder&lt;br&gt;&amp;nbsp;Requirements" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#dae8fc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="649" y="130" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;endArrow=classic;endFill=1;" parent="7VPe3bU9XycR8G6Iccp1-58" source="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="54.799999999999955" y="140" as="sourcePoint" /> <mxPoint x="55" y="80" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-60" value="satifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="7VPe3bU9XycR8G6Iccp1-59" vertex="1" connectable="0"> <mxGeometry x="0.1143" y="1" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-65" value="" style="endArrow=classic;dashed=1;endFill=1;endSize=6;html=1;rounded=0;fontSize=8;fontColor=#FF0000;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;dashPattern=8 8;" parent="1" source="7VPe3bU9XycR8G6Iccp1-54" target="7VPe3bU9XycR8G6Iccp1-50" edge="1"> <mxGeometry width="160" relative="1" as="geometry"> <mxPoint x="563" y="990.54" as="sourcePoint" /> <mxPoint x="412" y="990.1999999999999" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="7VPe3bU9XycR8G6Iccp1-71" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 11px; background-color: rgb(255, 255, 255);&quot;&gt;implements&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=8;fontColor=#FF0000;" parent="1" vertex="1"> <mxGeometry x="567" y="996.54" width="80" height="30" as="geometry" /> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-5" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=0;dashed=1;dashPattern=8 8;" parent="1" source="babr4powFyqcTPXK2lde-1" target="7VPe3bU9XycR8G6Iccp1-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="600" y="95" /> <mxPoint x="600" y="170" /> </Array> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-1" value="Platform" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#dae8fc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="298" width="110" height="190" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-3" value="1, *" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="babr4powFyqcTPXK2lde-1" target="17acba5748e5396b-30" edge="1"> <mxGeometry x="0.7143" y="15" relative="1" as="geometry"> <mxPoint x="355" y="190" as="sourcePoint" /> <mxPoint x="355" y="260" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-4" value="consists of" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="318" y="370.00284694606023" as="geometry"> <mxPoint x="-3" y="-149" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-6" value="has" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="444.9985714285715" y="210.00284694606023" as="geometry"> <mxPoint x="-19" y="-130" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-7" value="1, *" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="644.0017241379312" y="340" as="geometry"> <mxPoint x="-12" y="-157" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-12" value="Objectives" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#dae8fc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="649" y="-1" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-15" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;curved=0;dashed=1;dashPattern=8 8;" parent="1" source="babr4powFyqcTPXK2lde-1" target="babr4powFyqcTPXK2lde-12" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="420" y="115.00000000000023" as="sourcePoint" /> <mxPoint x="579" y="160" as="targetPoint" /> <Array as="points"> <mxPoint x="600" y="95" /> <mxPoint x="600" y="39" /> </Array> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-16" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="640.5517241379312" y="210" as="geometry"> <mxPoint x="-12" y="-157" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-22" value="1, *" style="endArrow=classic;html=1;endSize=6;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" edge="1"> <mxGeometry x="-0.2" y="16" relative="1" as="geometry"> <mxPoint x="704" y="80" as="sourcePoint" /> <mxPoint x="703.6600000000001" y="130" as="targetPoint" /> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="704" y="105" /> </Array> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-26" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;endArrow=classic;endFill=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;curved=0;strokeColor=#000000;" parent="1" source="babr4powFyqcTPXK2lde-28" target="697yjy1QHaCbR8dIwDn--18" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="704" y="600" as="targetPoint" /> <mxPoint x="855" y="640" as="sourcePoint" /> <Array as="points"> <mxPoint x="827" y="580" /> </Array> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-27" value="fulfills" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="babr4powFyqcTPXK2lde-26" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="-4" y="34" as="offset" /> </mxGeometry> </mxCell> <mxCell id="33" value="uses" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;strokeColor=#0000FF;verticalAlign=top;spacing=0;" parent="1" source="babr4powFyqcTPXK2lde-28" target="2" edge="1"> <mxGeometry x="-0.7633" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-28" value="Component&lt;br&gt;Architecture" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="800" y="630" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;" parent="1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="704" y="520" as="sourcePoint" /> <mxPoint x="704" y="340" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-30" value="satifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="babr4powFyqcTPXK2lde-29" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="6" y="35" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-31" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="pMK8eHJ132L0T0ky6Owu-3" target="babr4powFyqcTPXK2lde-28" edge="1"> <mxGeometry x="-0.8932" y="10" relative="1" as="geometry"> <mxPoint x="410" y="690" as="sourcePoint" /> <mxPoint x="720" y="690" as="targetPoint" /> <Array as="points"> <mxPoint x="600" y="650" /> <mxPoint x="600" y="670" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="14" value="belongs_to" style="edgeLabel;html=1;align=center;verticalAlign=bottom;resizable=0;points=[];labelBackgroundColor=none;spacing=2;" parent="babr4powFyqcTPXK2lde-31" connectable="0" vertex="1"> <mxGeometry x="0.8447" y="2" relative="1" as="geometry"> <mxPoint x="-18" y="2" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-48" value="Detailed&lt;br&gt;Design" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#f5f5f5;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="649" y="810" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-49" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;verticalAlign=bottom;curved=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;endArrow=none;endFill=0;startArrow=classic;startFill=1;strokeColor=#0000FF;" parent="1" source="pMK8eHJ132L0T0ky6Owu-3" target="babr4powFyqcTPXK2lde-48" edge="1"> <mxGeometry x="-0.883" relative="1" as="geometry"> <mxPoint x="410" y="690" as="sourcePoint" /> <mxPoint x="730" y="700" as="targetPoint" /> <Array as="points"> <mxPoint x="600" y="715" /> <mxPoint x="600" y="850" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-50" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=open;endFill=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;curved=0;" parent="1" source="babr4powFyqcTPXK2lde-48" target="babr4powFyqcTPXK2lde-28" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="714" y="530" as="sourcePoint" /> <mxPoint x="865" y="470" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-51" value="satifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="babr4powFyqcTPXK2lde-50" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="6" y="-2" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="babr4powFyqcTPXK2lde-48" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="714" y="530" as="sourcePoint" /> <mxPoint x="704" y="600" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-53" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="babr4powFyqcTPXK2lde-52" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="6" y="40" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-59" value="consists of" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="428" y="750.0028469460602" as="geometry"> <mxPoint x="-7" y="48" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;dashed=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="7VPe3bU9XycR8G6Iccp1-54" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="714" y="820" as="sourcePoint" /> <mxPoint x="704" y="890" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-65" value="implements" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="babr4powFyqcTPXK2lde-64" vertex="1" connectable="0"> <mxGeometry x="0.0571" y="6" relative="1" as="geometry"> <mxPoint x="5" y="1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-66" value="1" style="endArrow=classic;html=1;endSize=6;startArrow=diamondThin;startSize=14;startFill=0;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=1;fontSize=12;fontColor=#000000;entryX=0.75;entryY=1;entryDx=0;entryDy=0;curved=0;endFill=1;strokeColor=#0000FF;" parent="1" target="pMK8eHJ132L0T0ky6Owu-3" edge="1"> <mxGeometry x="-1" y="3" relative="1" as="geometry"> <mxPoint x="410" y="750" as="sourcePoint" /> <mxPoint x="602.4200000000001" y="890" as="targetPoint" /> <Array as="points"> <mxPoint x="460" y="750" /> <mxPoint x="460" y="810" /> <mxPoint x="381" y="810" /> <mxPoint x="381" y="780" /> </Array> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-67" value="*" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;fontColor=#000000;" parent="1" vertex="1"> <mxGeometry x="318" y="906.54" width="30" height="30" as="geometry" /> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-69" value="Dependable Element" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#B85450;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#B20000;fontColor=#ffffff;" parent="1" vertex="1"> <mxGeometry x="30" y="590" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-84" value="includes" style="html=1;verticalAlign=bottom;labelBackgroundColor=none;endArrow=classic;endFill=1;rounded=0;fontSize=12;fontColor=#000000;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="pMK8eHJ132L0T0ky6Owu-3" edge="1"> <mxGeometry x="-0.625" y="10" width="160" relative="1" as="geometry"> <mxPoint x="140" y="650" as="sourcePoint" /> <mxPoint x="320" y="650" as="targetPoint" /> <Array as="points"> <mxPoint x="210" y="650" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="babr4powFyqcTPXK2lde-88" value="1,*" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=12;fontColor=#000000;" parent="1" vertex="1"> <mxGeometry x="250" y="660" width="40" height="30" as="geometry" /> </mxCell> <mxCell id="aAcr9Cqqr9HrLW2SYfIV-2" value="*" style="endArrow=classic;html=1;endSize=6;startArrow=diamondThin;startSize=14;startFill=0;align=left;verticalAlign=bottom;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="17acba5748e5396b-30" target="pMK8eHJ132L0T0ky6Owu-3" edge="1"> <mxGeometry x="-0.4286" y="10" relative="1" as="geometry"> <mxPoint x="360" y="450" as="sourcePoint" /> <mxPoint x="360" y="520" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="PvnoWiLR7fEbHj5ofC0O-1" value="1, *" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="aAcr9Cqqr9HrLW2SYfIV-2" vertex="1" connectable="0"> <mxGeometry x="0.6857" y="7" relative="1" as="geometry"> <mxPoint x="13" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-8" target="697yjy1QHaCbR8dIwDn--9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="910" y="420" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;endFill=0;startArrow=classic;startFill=1;strokeColor=#0000FF;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-9" target="DF_JG2yAjuc6xbUdHXp1-8" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="1210" y="500" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-35" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endArrow=classic;endFill=1;startArrow=none;startFill=0;curved=0;strokeColor=#0000FF;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-8" target="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="1065" y="240" /> <mxPoint x="732" y="240" /> <mxPoint x="732" y="260" /> </Array> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-8" value="Feature Safety/&lt;br&gt;Security Analysis" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fff2cc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="1000" y="370" width="130" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-9" value="Assumption of use" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fcfcfc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="1230" y="370" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="BxcNaEUD9wuglH8j4Bnc-34" value="- own AoU&lt;br&gt;-other AoU" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="DF_JG2yAjuc6xbUdHXp1-9"> <mxGeometry y="26" width="110" height="44" as="geometry" /> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-16" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-12" target="7VPe3bU9XycR8G6Iccp1-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="820" y="52" /> <mxPoint x="820" y="170" /> </Array> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-12" value="Platform Integration&amp;nbsp;&lt;br&gt;Tests" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#dae8fc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="930" y="12" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-15" target="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-23" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;dashed=1;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-15" target="697yjy1QHaCbR8dIwDn--9" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-15" value="Feature &lt;br&gt;Integration Tests" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#fff2cc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#d6b656;" parent="1" vertex="1"> <mxGeometry x="930" y="260" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-17" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="790" y="165.00379310344837" as="geometry"> <mxPoint x="116" y="-123" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-21" value="violates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="940" y="400.0037931034484" as="geometry"> <mxPoint x="25" y="-5" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-22" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="1000" y="410.0037931034484" as="geometry"> <mxPoint x="192" y="-12" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-24" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="955" y="292.0037931034484" as="geometry"> <mxPoint x="-51" y="-1" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-26" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-25" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="760" y="560" as="targetPoint" /> <Array as="points" /> <mxPoint x="930" y="560" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-39" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=classic;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-25" target="babr4powFyqcTPXK2lde-48" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="985" y="790" /> <mxPoint x="810" y="790" /> <mxPoint x="810" y="850" /> </Array> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-25" value="Component&lt;br&gt;Integration Tests" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="930" y="520" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-31" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-29" target="babr4powFyqcTPXK2lde-28" edge="1"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-37" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=classic;endFill=1;curved=0;strokeColor=#0000FF;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-29" target="697yjy1QHaCbR8dIwDn--18" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="1070" y="500" /> <mxPoint x="732" y="500" /> </Array> <mxPoint x="1070.0285714285715" y="647" as="sourcePoint" /> <mxPoint x="731.5" y="517" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-29" value="Component Safety /&lt;br&gt;Security Analysis" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="1010" y="630" width="130" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-32" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;strokeColor=#0000FF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-9" target="DF_JG2yAjuc6xbUdHXp1-29" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="1230" y="670" as="sourcePoint" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-33" value="violates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="930" y="680.0037931034484" as="geometry"> <mxPoint x="10" y="-21" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-34" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" parent="1" vertex="1" connectable="0"> <mxGeometry x="1000" y="690.0037931034484" as="geometry"> <mxPoint x="192" y="-12" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-36" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="759" y="240.0037931034484" as="geometry"> <mxPoint x="192" y="-12" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-38" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="780" y="480.0037931034484" as="geometry"> <mxPoint x="193" y="8" as="offset" /> </mxGeometry> </mxCell> <mxCell id="DF_JG2yAjuc6xbUdHXp1-40" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="870" y="564.0037931034484" as="geometry"> <mxPoint x="-12" y="278" as="offset" /> </mxGeometry> </mxCell> <mxCell id="wLYmUudNAjxGS6Ao6TB5-1" value="Unit Test" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#f5f5f5;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="930" y="810" width="110" height="80" as="geometry" /> </mxCell> <mxCell id="wLYmUudNAjxGS6Ao6TB5-3" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="870" y="510.0037931034484" as="geometry"> <mxPoint x="-15" y="271" as="offset" /> </mxGeometry> </mxCell> <mxCell id="R-8Ph5yTmqBE5PLzbWAD-1" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="940" y="600.0037931034484" as="geometry"> <mxPoint x="-35" y="-45" as="offset" /> </mxGeometry> </mxCell> <mxCell id="-eePMsJKs9zgv-svqh_z-4" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="614" y="870" width="30" height="30" as="geometry" /> </mxCell> <mxCell id="-eePMsJKs9zgv-svqh_z-5" value="1,*" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> <mxGeometry x="612.4200000000001" y="820" width="40" height="30" as="geometry" /> </mxCell> <mxCell id="8PUSXadupW677KJLSycV-1" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;dashed=1;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;" parent="1" target="babr4powFyqcTPXK2lde-28" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="930" y="560" as="sourcePoint" /> <mxPoint x="883" y="640" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="bCJy0wboleK1JWH5l3Ff-9" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="1120" y="300.0037931034484" as="geometry"> <mxPoint x="55" y="-142" as="offset" /> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="Th5c4jNv1uOuiAYLRJR8-1" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="1010" y="170" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-1" value="Platform Safety/&lt;br&gt;Security Analysis" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#dae8fc;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#6c8ebf;" parent="1" vertex="1"> <mxGeometry x="1010" y="130" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-2" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;curved=0;strokeColor=#0000FF;" parent="1" source="Th5c4jNv1uOuiAYLRJR8-1" target="7VPe3bU9XycR8G6Iccp1-58" edge="1"> <mxGeometry relative="1" as="geometry"> <Array as="points"> <mxPoint x="830" y="170" /> <mxPoint x="830" y="190" /> </Array> <mxPoint x="878" y="180" as="sourcePoint" /> <mxPoint x="790" y="120" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-3" value="mitigated_by" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> <mxGeometry x="890" y="300.0037931034484" as="geometry"> <mxPoint x="55" y="-142" as="offset" /> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-6" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;curved=0;" parent="1" source="Th5c4jNv1uOuiAYLRJR8-1" target="697yjy1QHaCbR8dIwDn--9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="920" y="430" as="targetPoint" /> <mxPoint x="1020" y="430" as="sourcePoint" /> <Array as="points"> <mxPoint x="855" y="190" /> </Array> </mxGeometry> </mxCell> <mxCell id="Th5c4jNv1uOuiAYLRJR8-7" value="violates" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" parent="1" vertex="1" connectable="0"> <mxGeometry x="980" y="440.0037931034484" as="geometry"> <mxPoint x="-37" y="-244" as="offset" /> </mxGeometry> </mxCell> <mxCell id="16" value="fulfils" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#000000;verticalAlign=bottom;" parent="1" source="2" target="697yjy1QHaCbR8dIwDn--6" edge="1"> <mxGeometry x="-0.8905" relative="1" as="geometry"> <mxPoint x="560" y="510" as="sourcePoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="2" value="Logical Arc. Interface" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#d5e8d4;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#82b366;" parent="1" vertex="1"> <mxGeometry x="445" y="460" width="110" height="80" as="geometry" /> </mxCell> <mxCell id="9" value="Legend" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;align=center;fontSize=14;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1"> <mxGeometry x="1130" y="765" width="160" height="240" as="geometry" /> </mxCell> <mxCell id="10" value="UML&lt;div&gt;(sphinx needs)&lt;/div&gt;" style="endArrow=none;html=1;fontSize=10;verticalAlign=middle;labelBackgroundColor=none;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1155" y="824.77" as="sourcePoint" /> <mxPoint x="1265" y="824.77" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="11" value="implicit" style="endArrow=none;html=1;entryX=0.778;entryY=0.19;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;fontSize=10;dashPattern=8 8;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1155" y="849.66" as="sourcePoint" /> <mxPoint x="1265" y="849.66" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="12" value="mandatory" style="endArrow=none;html=1;entryX=0.778;entryY=0.19;entryDx=0;entryDy=0;entryPerimeter=0;fontSize=10;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1155" y="946.54" as="sourcePoint" /> <mxPoint x="1265" y="946.54" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="13" value="optional" style="endArrow=none;html=1;entryX=0.778;entryY=0.19;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#0000FF;fontSize=10;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1155" y="971.12" as="sourcePoint" /> <mxPoint x="1265" y="971.12" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="18" value="includes" style="html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;strokeColor=#0000FF;" parent="1" source="17" edge="1"> <mxGeometry x="-0.7067" y="15" relative="1" as="geometry"> <mxPoint x="300" y="720" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="19" value="belongs_to" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#000000;" parent="1" source="17" target="babr4powFyqcTPXK2lde-69" edge="1"> <mxGeometry x="-0.5" relative="1" as="geometry"> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="17" value="Dependable Element&lt;br&gt;View" style="swimlane;html=1;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#B85450;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=10;align=center;strokeColor=#B20000;fontColor=#ffffff;" parent="1" vertex="1"> <mxGeometry x="30" y="720" width="110" height="80" as="geometry"> <mxRectangle x="290" y="70" width="80" height="30" as="alternateBounds" /> </mxGeometry> </mxCell> <mxCell id="21" value="Tool generated&lt;br&gt;Target not specified" style="endArrow=none;html=1;entryX=0.778;entryY=0.19;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;dashPattern=1 2;labelBackgroundColor=none;fontSize=10;strokeWidth=2;spacing=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="1155" y="874.7700000000001" as="sourcePoint" /> <mxPoint x="1265" y="874.7700000000001" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="22" value="Line Color" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1"> <mxGeometry x="1180" y="910" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="23" value="Line Style" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" parent="1" vertex="1"> <mxGeometry x="1180" y="780" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="3" value="implements" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=none;strokeColor=#0000FF;" parent="1" source="pMK8eHJ132L0T0ky6Owu-3" target="2" edge="1"> <mxGeometry x="-0.4155" y="15" relative="1" as="geometry"> <Array as="points"> <mxPoint x="473" y="585" /> </Array> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="8igIRRbM-4B2MKggPMfG-34" value="1" style="endArrow=classic;html=1;endSize=6;startArrow=diamondThin;startSize=14;startFill=0;align=left;verticalAlign=bottom;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;dashPattern=8 8;" parent="1" target="babr4powFyqcTPXK2lde-69" edge="1"> <mxGeometry x="-0.9177" y="15" relative="1" as="geometry"> <mxPoint x="84.5" y="79" as="sourcePoint" /> <mxPoint x="84.5" y="158" as="targetPoint" /> <mxPoint as="offset" /> </mxGeometry> </mxCell> <mxCell id="8igIRRbM-4B2MKggPMfG-35" value="1, *" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8igIRRbM-4B2MKggPMfG-34" vertex="1" connectable="0"> <mxGeometry x="0.6857" y="7" relative="1" as="geometry"> <mxPoint x="13" y="70" as="offset" /> </mxGeometry> </mxCell> <mxCell id="8igIRRbM-4B2MKggPMfG-36" value="*" style="endArrow=classic;html=1;endSize=6;startArrow=diamondThin;startSize=14;startFill=0;align=left;verticalAlign=bottom;rounded=1;endFill=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;curved=0;dashed=1;dashPattern=8 8;" parent="1" source="697yjy1QHaCbR8dIwDn--1" target="babr4powFyqcTPXK2lde-1" edge="1"> <mxGeometry x="-0.9061" relative="1" as="geometry"> <mxPoint x="94.5" y="89" as="sourcePoint" /> <mxPoint x="95" y="600" as="targetPoint" /> <mxPoint as="offset" /> <Array as="points"> <mxPoint x="200" y="40" /> <mxPoint x="200" y="95" /> </Array> </mxGeometry> </mxCell> <mxCell id="8igIRRbM-4B2MKggPMfG-37" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8igIRRbM-4B2MKggPMfG-36" vertex="1" connectable="0"> <mxGeometry x="0.6857" y="7" relative="1" as="geometry"> <mxPoint x="13" y="-8" as="offset" /> </mxGeometry> </mxCell> <mxCell id="8R5AZCb8CqZWC2pybxBD-34" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;strokeColor=#0000ff;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-9" target="697yjy1QHaCbR8dIwDn--9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="1040" y="470" as="targetPoint" /> <mxPoint x="1130" y="470" as="sourcePoint" /> <Array as="points"> <mxPoint x="1180" y="430" /> <mxPoint x="1180" y="471" /> <mxPoint x="980" y="471" /> <mxPoint x="980" y="430" /> </Array> </mxGeometry> </mxCell> <mxCell id="8R5AZCb8CqZWC2pybxBD-35" value="fulfills - but not the feature&#39;s own AoU" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8R5AZCb8CqZWC2pybxBD-34" vertex="1" connectable="0"> <mxGeometry x="-0.2776" y="1" relative="1" as="geometry"> <mxPoint x="4" y="8" as="offset" /> </mxGeometry> </mxCell> <mxCell id="8R5AZCb8CqZWC2pybxBD-36" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;strokeColor=#0000ff;startArrow=classic;startFill=1;endArrow=none;endFill=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-9" target="babr4powFyqcTPXK2lde-28" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="940" y="720" as="targetPoint" /> <mxPoint x="1230" y="690" as="sourcePoint" /> <Array as="points"> <mxPoint x="1313" y="720" /> <mxPoint x="960" y="720" /> <mxPoint x="960" y="690" /> </Array> </mxGeometry> </mxCell> <mxCell id="8R5AZCb8CqZWC2pybxBD-38" value="fulfills - but not the component&#39;s own AoU" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="8R5AZCb8CqZWC2pybxBD-36" vertex="1" connectable="0"> <mxGeometry x="0.3546" y="-2" relative="1" as="geometry"> <mxPoint y="11" as="offset" /> </mxGeometry> </mxCell> <mxCell id="2o806PyUbPBjt1XJEHjh-34" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;dashed=1;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-15" target="DF_JG2yAjuc6xbUdHXp1-9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="940" y="310" as="sourcePoint" /> <mxPoint x="893" y="380" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="2o806PyUbPBjt1XJEHjh-35" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2o806PyUbPBjt1XJEHjh-34" vertex="1" connectable="0"> <mxGeometry x="-0.1235" y="2" relative="1" as="geometry"> <mxPoint x="4" y="-8" as="offset" /> </mxGeometry> </mxCell> <mxCell id="2o806PyUbPBjt1XJEHjh-36" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;dashed=1;curved=0;strokeColor=#0000FF;dashPattern=1 2;strokeWidth=2;endSize=3;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="DF_JG2yAjuc6xbUdHXp1-25" target="DF_JG2yAjuc6xbUdHXp1-9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="950" y="320" as="sourcePoint" /> <mxPoint x="903" y="390" as="targetPoint" /> </mxGeometry> </mxCell> <mxCell id="2o806PyUbPBjt1XJEHjh-37" value="verifies" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2o806PyUbPBjt1XJEHjh-36" vertex="1" connectable="0"> <mxGeometry x="-0.2855" relative="1" as="geometry"> <mxPoint y="-10" as="offset" /> </mxGeometry> </mxCell> </root> </mxGraphModel> </diagram> </mxfile> "><defs/><g><path d="M 900 851 L 735.37 851" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 730.12 851 L 737.12 847.5 L 735.37 851 L 737.12 854.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 384.37 299.5 L 382.18 299.5 Q 380 299.5 380 300.25 L 380 300.63 Q 380 301 390 301 L 619 301" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 379.12 299.5 L 386.12 296 L 384.37 299.5 L 386.12 303 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 702px; margin-left: 758px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="758" y="705" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1, *</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 292px; margin-left: 585px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="585" y="295" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><path d="M 378 394.5 L 460 394.5 Q 470 394.5 470 404.5 L 470 454.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 470 459.88 L 466.5 452.88 L 470 454.63 L 473.5 452.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 385px; margin-left: 401px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">includes</div></div></div></foreignObject><text x="401" y="388" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">includes</text></switch></g><path d="M 268 278 L 268 252 L 378 252 L 378 278" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 278 L 268 442 L 378 442 L 378 278" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 278 L 378 278" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 265px; margin-left: 323px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature</div></div></div></foreignObject><text x="323" y="268" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Feature</text></switch></g><path d="M 378 586 L 460 586 Q 470 586 470 576 L 470 547.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 470 542.12 L 473.5 549.12 L 470 547.37 L 466.5 549.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 601px; margin-left: 450px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">uses</div></div></div></foreignObject><text x="450" y="604" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">uses</text></switch></g><path d="M 268 547 L 268 521 L 378 521 L 378 547" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 547 L 268 781 L 378 781 L 378 547" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 547 L 378 547" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 534px; margin-left: 323px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Component</div></div></div></foreignObject><text x="323" y="537" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Component</text></switch></g><path d="M 0 27 L 0 1 L 110 1 L 110 27" fill="#00ff00" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 27 L 0 81 L 110 81 L 110 27" fill="#ffffff" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 27 L 110 27" fill="none" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 14px; margin-left: 55px;"><div data-drawio-colors="color: #0F0F0F; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(15, 15, 15); line-height: 1.2; pointer-events: all; white-space: nowrap;">Delivery Container</div></div></div></foreignObject><text x="55" y="17" fill="#0F0F0F" font-family="Verdana" font-size="10px" text-anchor="middle">Delivery Container</text></switch></g><path d="M 619 287 L 619 261 L 729 261 L 729 287" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 287 L 619 341 L 729 341 L 729 287" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 287 L 729 287" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 274px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature<br />Requirements</div></div></div></foreignObject><text x="674" y="277" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Feature...</text></switch></g><path d="M 797.5 371 L 797.5 331 Q 797.5 321 787.5 321 L 735.37 321" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 730.12 321 L 737.12 317.5 L 735.37 321 L 737.12 324.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 357px; margin-left: 781px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfills</div></div></div></foreignObject><text x="781" y="360" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfills</text></switch></g><path d="M 770 431 L 480 431 Q 470 431 470 441 L 470 454.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 470 459.88 L 466.5 452.88 L 470 454.63 L 473.5 452.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 441px; margin-left: 740px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">includes</div></div></div></foreignObject><text x="740" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">includes</text></switch></g><path d="M 770 411 L 500 411 Q 490 411 490 401 L 490 357 Q 490 347 480 347 L 384.37 347" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 379.12 347 L 386.12 343.5 L 384.37 347 L 386.12 350.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 408px; margin-left: 742px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="742" y="408" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><path d="M 770 397 L 770 371 L 880 371 L 880 397" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 397 L 770 451 L 880 451 L 880 397" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 397 L 880 397" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 384px; margin-left: 825px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature<br />Architecture</div></div></div></foreignObject><text x="825" y="387" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Feature...</text></switch></g><path d="M 674 521 L 674 496 Q 674 486 684 486 L 815 486 Q 825 486 825 476 L 825 457.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 825 452.12 L 828.5 459.12 L 825 457.37 L 821.5 459.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 477px; margin-left: 752px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satifies</div></div></div></foreignObject><text x="752" y="480" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satifies</text></switch></g><path d="M 619 547 L 619 521 L 729 521 L 729 547" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 547 L 619 601 L 729 601 L 729 547" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 547 L 729 547" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 534px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Component<br />Requirements</div></div></div></foreignObject><text x="674" y="537" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Component...</text></switch></g><path d="M 378 651 L 560 651 Q 570 651 570 641 L 570 571 Q 570 561 580 561 L 619 561" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 572px; margin-left: 600px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1,*</div></div></div></foreignObject><text x="600" y="575" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1,*</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 552px; margin-left: 581px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="581" y="555" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 463px; margin-left: 289px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">consists of</div></div></div></foreignObject><text x="289" y="466" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">consists of</text></switch></g><path d="M 384.37 977.49 L 383.68 977.49 Q 383 977.5 393 977.47 L 560 977.03 Q 570 977 570 967 L 570 881 Q 570 871 580 871 L 619 871" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 379.12 977.53 L 386.09 973.98 L 384.37 977.49 L 386.15 980.97 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 907px; margin-left: 571px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">includes</div></div></div></foreignObject><text x="571" y="910" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">includes</text></switch></g><path d="M 268 963.54 L 268 937.54 L 378 937.54 L 378 963.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 963.54 L 268 1017.54 L 378 1017.54 L 378 963.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 963.54 L 378 963.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 951px; margin-left: 323px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: nowrap;">Unit</div></div></div></foreignObject><text x="323" y="954" fill="#333333" font-family="Verdana" font-size="10px" text-anchor="middle">Unit</text></switch></g><path d="M 323 937.54 L 323 787.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 323 782.12 L 326.5 789.12 L 323 787.37 L 319.5 789.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 798px; margin-left: 292px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="292" y="798" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1, *</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 922px; margin-left: 361px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="361" y="925" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><path d="M 619 963.54 L 619 937.54 L 729 937.54 L 729 963.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 963.54 L 619 1017.54 L 729 1017.54 L 729 963.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 963.54 L 729 963.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 951px; margin-left: 674px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: nowrap;">Source Code</div></div></div></foreignObject><text x="674" y="954" fill="#333333" font-family="Verdana" font-size="10px" text-anchor="middle">Source Code</text></switch></g><path d="M 1090 171 L 1245 171 Q 1255 171 1255 181 L 1255 364.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1255 369.88 L 1251.5 362.88 L 1255 364.63 L 1258.5 362.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 157 L 619 131 L 729 131 L 729 157" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 157 L 619 211 L 729 211 L 729 157" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 157 L 729 157" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 144px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Stakeholder<br /> Requirements</div></div></div></foreignObject><text x="674" y="147" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Stakeholder...</text></switch></g><path d="M 674 261 L 674 236.5 L 674 217.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 674 212.12 L 677.5 219.12 L 674 217.37 L 670.5 219.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 234px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satifies</div></div></div></foreignObject><text x="674" y="237" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satifies</text></switch></g><path d="M 619 997.54 L 384.37 997.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 379.12 997.54 L 386.12 994.04 L 384.37 997.54 L 386.12 1001.04 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="537" y="997.54" width="80" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1013px; margin-left: 577px;"><div data-drawio-colors="color: #FF0000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 8px; font-family: Helvetica; color: rgb(255, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><span style="color: rgb(0, 0, 0); font-size: 11px; background-color: rgb(255, 255, 255);">implements</span></div></div></div></foreignObject><text x="577" y="1015" fill="#FF0000" font-family="Helvetica" font-size="8px" text-anchor="middle">implements</text></switch></g><path d="M 378 96 L 560 96 Q 570 96 570 106 L 570 161 Q 570 171 580 171 L 612.63 171" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 617.88 171 L 610.88 174.5 L 612.63 171 L 610.88 167.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 27 L 268 1 L 378 1 L 378 27" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 27 L 268 191 L 378 191 L 378 27" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 268 27 L 378 27" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 14px; margin-left: 323px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Platform</div></div></div></foreignObject><text x="323" y="17" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Platform</text></switch></g><path d="M 323 206.99 L 323 249.76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 323 191.99 L 327.41 199.49 L 323 206.99 L 318.59 199.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 316.5 237.88 L 323 250.88 L 329.5 237.88" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 240px; margin-left: 340px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="340" y="240" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1, *</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 223px; margin-left: 286px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">consists of</div></div></div></foreignObject><text x="286" y="226" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">consists of</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 82px; margin-left: 396px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">has</div></div></div></foreignObject><text x="396" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">has</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 185px; margin-left: 603px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="603" y="188" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1, *</text></switch></g><path d="M 619 26 L 619 0 L 729 0 L 729 26" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 26 L 619 80 L 729 80 L 729 26" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 26 L 729 26" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 13px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Objectives</div></div></div></foreignObject><text x="674" y="16" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Objectives</text></switch></g><path d="M 378 96 L 560 96 Q 570 96 570 86 L 570 50 Q 570 40 580 40 L 612.63 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 617.88 40 L 610.88 43.5 L 612.63 40 L 610.88 36.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 55px; margin-left: 599px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="599" y="58" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1</text></switch></g><path d="M 674 96.99 L 674 106 L 673.75 124.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 674 81.99 L 678.41 89.49 L 674 96.99 L 669.59 89.49 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 673.68 129.88 L 670.27 122.84 L 673.75 124.63 L 677.27 122.93 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 98px; margin-left: 692px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="692" y="98" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1, *</text></switch></g><path d="M 797.5 631 L 797.5 591 Q 797.5 581 787.5 581 L 735.37 581" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 730.12 581 L 737.12 577.5 L 735.37 581 L 737.12 584.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 622px; margin-left: 781px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfills</div></div></div></foreignObject><text x="781" y="625" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfills</text></switch></g><path d="M 770 691 L 507.5 691 Q 497.5 691 497.5 681 L 497.5 547.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 497.5 542.12 L 501 549.12 L 497.5 547.37 L 494 549.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 696px; margin-left: 720px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">uses</div></div></div></foreignObject><text x="720" y="707" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">uses</text></switch></g><path d="M 770 657 L 770 631 L 880 631 L 880 657" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 657 L 770 711 L 880 711 L 880 657" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 770 657 L 880 657" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 644px; margin-left: 825px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Component<br />Architecture</div></div></div></foreignObject><text x="825" y="647" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Component...</text></switch></g><path d="M 674 521 L 674 347.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 674 342.12 L 677.5 349.12 L 674 347.37 L 670.5 349.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 462px; margin-left: 675px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satifies</div></div></div></foreignObject><text x="675" y="465" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satifies</text></switch></g><path d="M 384.37 651 L 560 651 Q 570 651 570 661 L 570 666 Q 570 671 580 671 L 770 671" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 379.12 651 L 386.12 647.5 L 384.37 651 L 386.12 654.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 641px; margin-left: 400px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><div><br /></div></div></div></div></foreignObject><text x="400" y="644" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle"> </text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 669px; margin-left: 721px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="721" y="669" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><path d="M 619 837 L 619 811 L 729 811 L 729 837" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 837 L 619 891 L 729 891 L 729 837" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 619 837 L 729 837" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 824px; margin-left: 674px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: nowrap;">Detailed<br />Design</div></div></div></foreignObject><text x="674" y="827" fill="#333333" font-family="Verdana" font-size="10px" text-anchor="middle">Detailed...</text></switch></g><path d="M 384.37 716 L 560 716 Q 570 716 570 726 L 570 841 Q 570 851 580 851 L 619 851" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 379.12 716 L 386.12 712.5 L 384.37 716 L 386.12 719.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 701.5 811 L 701.5 771 Q 701.5 761 711.5 761 L 815 761 Q 825 761 825 751 L 825 713.24" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 828.5 719.12 L 825 712.12 L 821.5 719.12" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 754px; margin-left: 776px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">satifies</div></div></div></foreignObject><text x="776" y="757" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">satifies</text></switch></g><path d="M 674 811 L 674 706.5 L 674 607.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 674 602.12 L 677.5 609.12 L 674 607.37 L 670.5 609.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 741px; margin-left: 675px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">implements</div></div></div></foreignObject><text x="675" y="744" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">implements</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 800px; margin-left: 392px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">consists of</div></div></div></foreignObject><text x="392" y="803" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">consists of</text></switch></g><path d="M 674 937.54 L 674 914.8 L 674 897.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 674 892.12 L 677.5 899.12 L 674 897.37 L 670.5 899.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 915px; margin-left: 674px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">implements</div></div></div></foreignObject><text x="674" y="918" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">implements</text></switch></g><path d="M 395.99 751 L 420 751 Q 430 751 430 761 L 430 801 Q 430 811 420 811 L 360.5 811 Q 350.5 811 350.5 801 L 350.5 787.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 380.99 751 L 388.49 746.59 L 395.99 751 L 388.49 755.41 Z" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 350.5 782.12 L 354 789.12 L 350.5 787.37 L 347 789.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 745px; margin-left: 382px;"><div data-drawio-colors="color: #000000; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="382" y="745" fill="#000000" font-family="Helvetica" font-size="12px">1</text></switch></g><rect x="288" y="907.54" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 923px; margin-left: 303px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">*</div></div></div></foreignObject><text x="303" y="926" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">*</text></switch></g><path d="M 0 617 L 0 591 L 110 591 L 110 617" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 617 L 0 671 L 110 671 L 110 617" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 617 L 110 617" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 604px; margin-left: 55px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: nowrap;">Dependable Element</div></div></div></foreignObject><text x="55" y="607" fill="#ffffff" font-family="Verdana" font-size="10px" text-anchor="middle">Dependable Element</text></switch></g><path d="M 110 651 L 180 651 L 261.63 651" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 266.88 651 L 259.88 654.5 L 261.63 651 L 259.88 647.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 638px; margin-left: 140px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">includes</div></div></div></foreignObject><text x="140" y="638" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">includes</text></switch></g><rect x="220" y="661" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 676px; margin-left: 240px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">1,*</div></div></div></foreignObject><text x="240" y="680" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">1,*</text></switch></g><path d="M 323 457.99 L 323 514.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 323 442.99 L 327.41 450.49 L 323 457.99 L 318.59 450.49 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 323 519.88 L 319.5 512.88 L 323 514.63 L 326.5 512.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 462px; margin-left: 335px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">*</div></div></div></foreignObject><text x="335" y="462" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">*</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 510px; margin-left: 344px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="344" y="513" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1, *</text></switch></g><path d="M 970 411 L 886.37 411" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.12 411 L 888.12 407.5 L 886.37 411 L 888.12 414.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1193.63 411 L 1100 411" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1198.88 411 L 1191.88 414.5 L 1193.63 411 L 1191.88 407.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 1035 371 L 1035 251 Q 1035 241 1025 241 L 711.5 241 Q 701.5 241 701.5 247.82 L 701.5 254.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 701.5 259.88 L 698 252.88 L 701.5 254.63 L 705 252.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 970 397 L 970 371 L 1100 371 L 1100 397" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 970 397 L 970 451 L 1100 451 L 1100 397" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 970 397 L 1100 397" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 384px; margin-left: 1035px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature Safety/<br />Security Analysis</div></div></div></foreignObject><text x="1035" y="387" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Feature Safety/...</text></switch></g><path d="M 1200 397 L 1200 371 L 1310 371 L 1310 397" fill="#fcfcfc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 1200 397 L 1200 451 L 1310 451 L 1310 397" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 1200 397 L 1310 397" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 384px; margin-left: 1255px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Assumption of use</div></div></div></foreignObject><text x="1255" y="387" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Assumption of use</text></switch></g><rect x="1200" y="397" width="110" height="44" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 419px; margin-left: 1201px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">- own AoU<br />-other AoU</div></div></div></foreignObject><text x="1255" y="423" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">- own AoU...</text></switch></g><path d="M 900 53 L 800 53 Q 790 53 790 63 L 790 161 Q 790 171 780 171 L 734.99 171" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 731.24 171 L 736.24 168.5 L 734.99 171 L 736.24 173.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 39 L 900 13 L 1010 13 L 1010 39" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 39 L 900 93 L 1010 93 L 1010 39" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 39 L 1010 39" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 26px; margin-left: 955px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Platform Integration <br />Tests</div></div></div></foreignObject><text x="955" y="29" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Platform Integration...</text></switch></g><path d="M 900 301 L 734.99 301" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 731.24 301 L 736.24 298.5 L 734.99 301 L 736.24 303.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 301 L 862.5 301 Q 852.5 301 852.5 311 L 852.5 365.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 852.5 368.76 L 850 363.76 L 852.5 365.01 L 855 363.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 287 L 900 261 L 1010 261 L 1010 287" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 287 L 900 341 L 1010 341 L 1010 287" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 287 L 1010 287" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 274px; margin-left: 955px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Feature <br />Integration Tests</div></div></div></foreignObject><text x="955" y="277" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Feature...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 44px; margin-left: 877px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="877" y="47" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 397px; margin-left: 936px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">violates</div></div></div></foreignObject><text x="936" y="400" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">violates</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 400px; margin-left: 1163px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="1163" y="403" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 293px; margin-left: 875px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="875" y="296" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 900 561 L 825.5 561 Q 815.5 561 805.5 561 L 735.99 561" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 732.24 561 L 737.24 558.5 L 735.99 561 L 737.24 563.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 955 601 L 955 781 Q 955 791 945 791 L 790 791 Q 780 791 780 801 L 780 841 Q 780 851 770 851 L 734.99 851" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 731.24 851 L 736.24 848.5 L 734.99 851 L 736.24 853.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 547 L 900 521 L 1010 521 L 1010 547" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 547 L 900 601 L 1010 601 L 1010 547" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 547 L 1010 547" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 534px; margin-left: 955px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Component<br />Integration Tests</div></div></div></foreignObject><text x="955" y="537" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Component...</text></switch></g><path d="M 980 671 L 886.37 671" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 881.12 671 L 888.12 667.5 L 886.37 671 L 888.12 674.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 1040 631 L 1040 511 Q 1040 501 1030 501 L 711.5 501 Q 701.5 501 701.5 507.82 L 701.5 514.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 701.5 519.88 L 698 512.88 L 701.5 514.63 L 705 512.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><path d="M 980 657 L 980 631 L 1110 631 L 1110 657" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 980 657 L 980 711 L 1110 711 L 1110 657" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 980 657 L 1110 657" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 644px; margin-left: 1045px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Component Safety /<br />Security Analysis</div></div></div></foreignObject><text x="1045" y="647" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Component Safety /...</text></switch></g><path d="M 1255 457.37 L 1255 661 Q 1255 671 1245 671 L 1110 671" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1255 452.12 L 1258.5 459.12 L 1255 457.37 L 1251.5 459.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 661px; margin-left: 911px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">violates</div></div></div></foreignObject><text x="911" y="664" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">violates</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 680px; margin-left: 1163px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="1163" y="683" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 230px; margin-left: 922px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="922" y="233" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 490px; margin-left: 944px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="944" y="493" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 844px; margin-left: 829px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="829" y="847" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 900 837 L 900 811 L 1010 811 L 1010 837" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 837 L 900 891 L 1010 891 L 1010 837" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><path d="M 900 837 L 1010 837" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 824px; margin-left: 955px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: nowrap;">Unit Test</div></div></div></foreignObject><text x="955" y="827" fill="#333333" font-family="Verdana" font-size="10px" text-anchor="middle">Unit Test</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 783px; margin-left: 826px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="826" y="786" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 557px; margin-left: 876px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="876" y="560" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><rect x="584" y="871" width="30" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 886px; margin-left: 599px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">1</div></div></div></foreignObject><text x="599" y="890" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1</text></switch></g><rect x="582.42" y="821" width="40" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 836px; margin-left: 602px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">1,*</div></div></div></foreignObject><text x="602" y="840" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">1,*</text></switch></g><path d="M 900 561 L 862.5 561.39 Q 852.5 561.5 852.5 571.5 L 852.5 625.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 852.5 628.76 L 850 623.76 L 852.5 625.01 L 855 623.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 160px; margin-left: 1146px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="1146" y="163" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><path d="M 980 157 L 980 131 L 1090 131 L 1090 157" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 980 157 L 980 211 L 1090 211 L 1090 157" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><path d="M 980 157 L 1090 157" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 144px; margin-left: 1035px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Platform Safety/<br />Security Analysis</div></div></div></foreignObject><text x="1035" y="147" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Platform Safety/...</text></switch></g><path d="M 980 171 L 810 171 Q 800 171 800 181 L 800 186 Q 800 191 790 191 L 735.37 191" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 730.12 191 L 737.12 187.5 L 735.37 191 L 737.12 194.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 160px; margin-left: 916px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mitigated_by</div></div></div></foreignObject><text x="916" y="163" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">mitigated_by</text></switch></g><path d="M 980 191 L 835 191 Q 825 191 825 201 L 825 364.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 825 369.88 L 821.5 362.88 L 825 364.63 L 828.5 362.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 198px; margin-left: 914px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">violates</div></div></div></foreignObject><text x="914" y="201" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">violates</text></switch></g><path d="M 525 501 L 562 501 Q 572 501 572 491 L 572 331 Q 572 321 582 321 L 612.63 321" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.88 321 L 610.88 324.5 L 612.63 321 L 610.88 317.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 498px; margin-left: 540px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfils</div></div></div></foreignObject><text x="540" y="498" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfils</text></switch></g><path d="M 415 487 L 415 461 L 525 461 L 525 487" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 415 487 L 415 541 L 525 541 L 525 487" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><path d="M 415 487 L 525 487" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 474px; margin-left: 470px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Logical Arc. Interface</div></div></div></foreignObject><text x="470" y="477" fill="rgb(0, 0, 0)" font-family="Verdana" font-size="10px" text-anchor="middle">Logical Arc. Interface</text></switch></g><rect x="1100" y="766" width="160" height="240" rx="24" ry="24" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 763px; margin-left: 1101px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Legend</div></div></div></foreignObject><text x="1180" y="763" fill="#333333" font-family="Helvetica" font-size="14px" text-anchor="middle">Legend</text></switch></g><path d="M 1125 825.77 L 1235 825.77" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 826px; margin-left: 1180px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">UML<div>(sphinx needs)</div></div></div></div></foreignObject><text x="1180" y="829" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="middle">UML...</text></switch></g><path d="M 1125 850.66 L 1235 850.66" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 851px; margin-left: 1180px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">implicit</div></div></div></foreignObject><text x="1180" y="854" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="middle">implicit</text></switch></g><path d="M 1125 947.54 L 1235 947.54" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 948px; margin-left: 1180px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">mandatory</div></div></div></foreignObject><text x="1180" y="951" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="middle">mandatory</text></switch></g><path d="M 1125 972.12 L 1235 972.12" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 972px; margin-left: 1180px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">optional</div></div></div></foreignObject><text x="1180" y="975" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="middle">optional</text></switch></g><path d="M 110 761 L 180 761 Q 190 761 190 751 L 190 731.5 Q 190 721.5 200 721.44 L 263.63 721.04" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 268.88 721.01 L 261.9 724.55 L 263.63 721.04 L 261.86 717.55 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 746px; margin-left: 139px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">includes</div></div></div></foreignObject><text x="139" y="749" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">includes</text></switch></g><path d="M 55 721 L 55 677.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 55 672.12 L 58.5 679.12 L 55 677.37 L 51.5 679.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 708px; margin-left: 55px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">belongs_to</div></div></div></foreignObject><text x="55" y="711" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">belongs_to</text></switch></g><path d="M 0 747 L 0 721 L 110 721 L 110 747" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 747 L 0 801 L 110 801 L 110 747" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><path d="M 0 747 L 110 747" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 734px; margin-left: 55px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Verdana; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: nowrap;">Dependable Element<br />View</div></div></div></foreignObject><text x="55" y="737" fill="#ffffff" font-family="Verdana" font-size="10px" text-anchor="middle">Dependable Element...</text></switch></g><path d="M 1125 875.77 L 1235 875.77" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 876px; margin-left: 1180px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Tool generated<br />Target not specified</div></div></div></foreignObject><text x="1180" y="879" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="10px" text-anchor="middle">Tool gener...</text></switch></g><rect x="1150" y="911" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 926px; margin-left: 1151px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Line Color</div></div></div></foreignObject><text x="1180" y="930" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Line Color</text></switch></g><rect x="1150" y="781" width="60" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 796px; margin-left: 1151px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Line Style</div></div></div></foreignObject><text x="1180" y="800" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Line Style</text></switch></g><path d="M 378 586 L 432.5 586 Q 442.5 586 442.5 576 L 442.5 547.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 442.5 542.12 L 446 549.12 L 442.5 547.37 L 439 549.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 571px; margin-left: 410px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">implements</div></div></div></foreignObject><text x="410" y="574" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">implements</text></switch></g><path d="M 54.52 95.99 L 54.99 584.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 54.5 80.99 L 58.92 88.48 L 54.52 95.99 L 50.1 88.49 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 55 589.88 L 51.49 582.89 L 54.99 584.63 L 58.49 582.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 98px; margin-left: 72px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="72" y="98" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">1</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 581px; margin-left: 75px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1, *</div></div></div></foreignObject><text x="75" y="585" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1, *</text></switch></g><path d="M 125.99 41 L 160 41 Q 170 41 170 51 L 170 86 Q 170 96 180 96 L 261.63 96" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke"/><path d="M 110.99 41 L 118.49 36.59 L 125.99 41 L 118.49 45.41 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 266.88 96 L 259.88 99.5 L 261.63 96 L 259.88 92.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 38px; margin-left: 122px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">*</div></div></div></foreignObject><text x="122" y="38" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px">*</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 82px; margin-left: 249px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">1</div></div></div></foreignObject><text x="249" y="85" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">1</text></switch></g><path d="M 1193.63 431 L 1160 431 Q 1150 431 1150 441 L 1150 462 Q 1150 472 1140 472 L 960 472 Q 950 472 950 462 L 950 441 Q 950 431 940 431 L 880 431" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1198.88 431 L 1191.88 434.5 L 1193.63 431 L 1191.88 427.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 482px; margin-left: 1101px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfills - but not the feature's own AoU</div></div></div></foreignObject><text x="1101" y="485" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfills - but not the feature's own AoU</text></switch></g><path d="M 1282.5 457.37 L 1282.5 711 Q 1282.5 721 1272.5 721 L 940 721 Q 930 721 930 711 L 930 701 Q 930 691 920 691 L 880 691" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 1282.5 452.12 L 1286 459.12 L 1282.5 457.37 L 1279 459.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 731px; margin-left: 1077px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">fulfills - but not the component's own AoU</div></div></div></foreignObject><text x="1077" y="734" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">fulfills - but not the component's own AoU</text></switch></g><path d="M 1010 301 L 1217.5 301 Q 1227.5 301 1227.5 311 L 1227.5 365.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 1227.5 368.76 L 1225 363.76 L 1227.5 365.01 L 1230 363.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 292px; margin-left: 1141px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1141" y="295" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g><path d="M 1010 561 L 1217.5 561 Q 1227.5 561 1227.5 551 L 1227.5 456.99" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke"/><path d="M 1227.5 453.24 L 1230 458.24 L 1227.5 456.99 L 1225 458.24 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 552px; margin-left: 1128px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">verifies</div></div></div></foreignObject><text x="1128" y="555" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">verifies</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg> diff --git a/process/general_concepts/_assets/score_building_blocks_meta_model_deployment_example.drawio.svg b/process/general_concepts/_assets/score_building_blocks_meta_model_deployment_example.drawio.svg deleted file mode 100644 index cf1cb1a3b3..0000000000 --- a/process/general_concepts/_assets/score_building_blocks_meta_model_deployment_example.drawio.svg +++ /dev/null @@ -1,2532 +0,0 @@ -<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" style="background: transparent; background-color: transparent;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1471px" height="1391px" viewBox="-0.5 -0.5 1471 1391" content="<mxfile><diagram name="Seite-1" id="51W6kuNG9-Pzs2WmRVo1">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</diagram></mxfile>"> - <defs/> - <g> - <g> - <rect x="1280" y="0" width="190" height="410" rx="28.5" ry="28.5" fill="#eeeeee" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 188px; height: 1px; padding-top: 7px; margin-left: 1281px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - <div style=""> - <h4 style="background-color: transparent; text-decoration-thickness: auto; text-decoration-style: solid; box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-weight: 400; max-width: 100%; text-overflow: ellipsis; flex-shrink: 1; justify-content: space-between; display: inline; overflow: hidden; padding-left: 0px; caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));" class="Title-module__heading__tHuYV ReposListItem-module__DefaultItemTitle__n3lDr"> - <font style="font-size: 17px;"> - <span style="box-sizing: border-box;"> - <span style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; text-wrap-mode: nowrap; box-sizing: border-box; background-color: light-dark(rgba(0, 0, 0, 0), rgb(237, 237, 237)); caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));" data-testid="highlighted-text" class="SearchMatchText-module__highlightedText__ATaD0"> - Project - </span> - </span> - </font> - </h4> - </div> - <div style=""> - <h4 style="background-color: transparent; text-decoration-thickness: auto; text-decoration-style: solid; box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; font-weight: 400; max-width: 100%; text-overflow: ellipsis; flex-shrink: 1; justify-content: space-between; display: inline; overflow: hidden; padding-left: 0px; caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));" class="Title-module__heading__tHuYV ReposListItem-module__DefaultItemTitle__n3lDr"> - <font style="font-size: 17px;"> - <span style="box-sizing: border-box;"> - <span style="font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; text-wrap-mode: nowrap; box-sizing: border-box; background-color: light-dark(rgba(0, 0, 0, 0), rgb(237, 237, 237)); caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));" data-testid="highlighted-text" class="SearchMatchText-module__highlightedText__ATaD0"> - refer - </span> - <font face="-apple-system, BlinkMacSystemFont, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"> - <span style="text-wrap-mode: nowrap; caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));"> - ence_integration - </span> - </font> - <font face="-apple-system, system-ui, Segoe UI, Noto Sans, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji"> - <span style="text-wrap-mode: nowrap; caret-color: light-dark(rgb(240, 246, 252), rgb(22, 27, 33));"> - <br/> - </span> - </font> - </span> - </font> - </h4> - <span style="background-color: transparent; font-size: 17px;"> - repository - </span> - </div> - </div> - </div> - </div> - </foreignObject> - <text x="1375" y="19" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Project... - </text> - </switch> - </g> - </g> - <g> - <rect x="168" y="600" width="1102" height="790" rx="118.5" ry="118.5" fill="#eeeeee" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1020px; height: 1px; padding-top: 607px; margin-left: 250px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> - <div style="display: inline-block; font-size: 17px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Project Dependable Element - <br/> - repository - </div> - </div> - </div> - </foreignObject> - <text x="250" y="624" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="17px"> - Project Dependable Element... - </text> - </switch> - </g> - </g> - <g> - <rect x="168" y="0" width="1102" height="590" rx="88.5" ry="88.5" fill="#eeeeee" stroke="#36393d" pointer-events="all" style="fill: light-dark(rgb(238, 238, 238), rgb(32, 32, 32)); stroke: light-dark(rgb(54, 57, 61), rgb(186, 189, 192));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1100px; height: 1px; padding-top: 7px; margin-left: 170px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "> - <div style="display: inline-block; font-size: 17px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - <span style="white-space: pre;"> - </span> - <span style="white-space: pre;"> - </span> - PROJECT main repository - </div> - </div> - </div> - </foreignObject> - <text x="170" y="24" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="17px"> - PROJECT main repository - </text> - </switch> - </g> - </g> - <g> - <path d="M 740 1186 L 720 1186 L 706.92 1186" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 701.67 1186 L 708.67 1182.5 L 706.92 1186 L 708.67 1189.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 376.37 337.5 L 383.18 337.5 Q 390 337.5 390 347.5 L 390 370 Q 390 380 400 380 L 427 380" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 371.12 337.5 L 378.12 334 L 376.37 337.5 L 378.12 341 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 390px; margin-left: 399px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="399" y="393" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 432.5 L 375 432.5 Q 380 432.5 380 442.5 L 380 525 Q 380 535 390 535 L 505.63 535" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 510.88 535 L 503.88 538.5 L 505.63 535 L 503.88 531.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 536px; margin-left: 416px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - provides - </div> - </div> - </div> - </foreignObject> - <text x="416" y="539" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - provides - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 432.5 L 375 432.5 Q 380 432.5 380 442.5 L 380 505 Q 380 515 390 515 L 505.63 515" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 510.88 515 L 503.88 518.5 L 505.63 515 L 503.88 511.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 516px; margin-left: 413px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - uses - </div> - </div> - </div> - </foreignObject> - <text x="413" y="519" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses - </text> - </switch> - </g> - </g> - <g> - <path d="M 260 316 L 260 290 L 370 290 L 370 316" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 260 316 L 260 480 L 370 480 L 370 316" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 260 316 L 370 316" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 303px; margin-left: 315px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - </div> - </div> - </div> - </foreignObject> - <text x="315" y="306" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 911 L 380 911 Q 390 911 390 901 L 390 680 Q 390 670 400 670 L 529.5 670 Q 539.5 670 539.5 660 L 539.5 561.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 539.5 556.12 L 543 563.12 L 539.5 561.37 L 536 563.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)rotate(-90 537.5 639.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 640px; margin-left: 538px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #FFFFFF; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; "> - <span style=""> - uses - </span> - </div> - </div> - </div> - </foreignObject> - <text x="538" y="643" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses - </text> - </switch> - </g> - </g> - <g> - <path d="M 315 846 L 315 486.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 315 481.12 L 318.5 488.12 L 315 486.37 L 311.5 488.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <path d="M 260 872 L 260 846 L 370 846 L 370 872" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 260 872 L 260 1106 L 370 1106 L 370 872" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 260 872 L 370 872" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 859px; margin-left: 315px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - </div> - </div> - </div> - </foreignObject> - <text x="315" y="862" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 121 L 0 95 L 110 95 L 110 121" fill="#00ff00" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 255, 0), rgb(0, 143, 0)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - <path d="M 0 121 L 0 175 L 110 175 L 110 121" fill="#ffffff" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - <path d="M 0 121 L 110 121" fill="none" stroke="#2d7600" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(45, 118, 0), rgb(115, 177, 76));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 108px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F0F0F; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#0F0F0F, #e0e0e0); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Delivery Container - </div> - </div> - </div> - </foreignObject> - <text x="55" y="111" fill="#0F0F0F" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Delivery Container - </text> - </switch> - </g> - </g> - <g> - <path d="M 673.05 730 L 673.1 460 Q 673.1 450 663.1 450 L 519.5 450 Q 509.5 450 509.5 440 L 509.5 426.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 509.5 421.12 L 513 428.12 L 509.5 426.37 L 506 428.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 710px; margin-left: 671px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - </div> - </div> - </div> - </foreignObject> - <text x="671" y="714" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - </text> - </switch> - </g> - </g> - <g> - <path d="M 622 730 L 622 580 Q 622 570 622 565.68 L 622 561.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 622 556.12 L 625.5 563.12 L 622 561.37 L 618.5 563.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 710px; margin-left: 620px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="620" y="713" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 770 L 352.5 770 Q 342.5 770 342.5 760 L 342.5 486.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 342.5 481.12 L 346 488.12 L 342.5 486.37 L 339 488.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 500px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="500" y="774" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 482 846 L 482 836 Q 482 826 492 826 L 505 826 Q 515 826 525 826 L 608.1 826 Q 618.1 826 618.08 821.18 L 618.07 816.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 618.05 811.12 L 621.58 818.11 L 618.07 816.37 L 614.58 818.13 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 825px; margin-left: 538px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="538" y="828" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 537 846 L 700 846 Q 710 846 710 836 L 710 828 Q 710 820 720 820 L 1043.63 820" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1048.88 820 L 1041.88 823.5 L 1043.63 820 L 1041.88 816.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 825px; margin-left: 796px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <span style="caret-color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - covers - but not the own AoU - </span> - </div> - </div> - </div> - </foreignObject> - <text x="796" y="828" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - covers - but not the own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 427 872 L 427 846 L 537 846 L 537 872" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 427 872 L 427 926 L 537 926 L 537 872" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 427 872 L 537 872" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 859px; margin-left: 482px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="482" y="862" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 976 L 400 976 Q 410 976 410 966 L 410 896 Q 410 886 418.5 886 L 427 886" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 871px; margin-left: 411px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="411" y="874" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)rotate(-90 410.5 929.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 930px; margin-left: 411px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="411" y="933" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 502px; margin-left: 289px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs to - </div> - </div> - </div> - </foreignObject> - <text x="289" y="505" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs to - </text> - </switch> - </g> - </g> - <g> - <path d="M 376.37 1302.53 L 410 1302.51 Q 420 1302.5 420 1292.5 L 420 1216 Q 420 1206 430 1206 L 590.55 1206" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 371.12 1302.54 L 378.12 1299.03 L 376.37 1302.53 L 378.12 1306.03 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1207px; margin-left: 514px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="514" y="1210" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 260 1288.54 L 260 1262.54 L 370 1262.54 L 370 1288.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 260 1288.54 L 260 1342.54 L 370 1342.54 L 370 1288.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 260 1288.54 L 370 1288.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1276px; margin-left: 315px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Unit - </div> - </div> - </div> - </foreignObject> - <text x="315" y="1279" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Unit - </text> - </switch> - </g> - </g> - <g> - <path d="M 315 1262.54 L 315 1112.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 315 1107.12 L 318.5 1114.12 L 315 1112.37 L 311.5 1114.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 1123px; margin-left: 284px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="284" y="1123" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1247px; margin-left: 353px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="353" y="1250" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 1288.54 L 590.55 1262.54 L 700.55 1262.54 L 700.55 1288.54" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 590.55 1288.54 L 590.55 1342.54 L 700.55 1342.54 L 700.55 1288.54" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 590.55 1288.54 L 700.55 1288.54" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1276px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Source Code - </div> - </div> - </div> - </foreignObject> - <text x="646" y="1279" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Source Code - </text> - </switch> - </g> - </g> - <g> - <path d="M 427 176 L 427 150 L 537 150 L 537 176" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 427 176 L 427 230 L 537 230 L 537 176" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 427 176 L 537 176" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 163px; margin-left: 482px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Stakeholder - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="482" y="166" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Stakeholder... - </text> - </switch> - </g> - </g> - <g> - <path d="M 482 340 L 482 285.5 L 482 236.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 482 231.12 L 485.5 238.12 L 482 236.37 L 478.5 238.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 279px; margin-left: 482px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="482" y="282" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 1322.54 L 376.37 1322.54" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 371.12 1322.54 L 378.12 1319.04 L 376.37 1322.54 L 378.12 1326.04 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1323px; margin-left: 552px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="552" y="1326" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 135 L 380 135 Q 390 135 390 145 L 390 180 Q 390 190 400 190 L 420.63 190" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 425.88 190 L 418.88 193.5 L 420.63 190 L 418.88 186.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 136px; margin-left: 411px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - has - </div> - </div> - </div> - </foreignObject> - <text x="411" y="139" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - has - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 201px; margin-left: 401px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="401" y="204" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 182.5 L 375 182.5 Q 380 182.5 380 192.5 L 380 280 Q 380 290 390 290 L 584.18 290" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 589.43 290 L 582.43 293.5 L 584.18 290 L 582.43 286.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 290px; margin-left: 398px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - has - </div> - </div> - </div> - </foreignObject> - <text x="398" y="293" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - has - </text> - </switch> - </g> - </g> - <g> - <path d="M 260 66 L 260 40 L 370 40 L 370 66" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 260 66 L 260 230 L 370 230 L 370 66" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 260 66 L 370 66" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 53px; margin-left: 315px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform - </div> - </div> - </div> - </foreignObject> - <text x="315" y="56" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform - </text> - </switch> - </g> - </g> - <g> - <path d="M 315 245.99 L 315 287.76" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 315 230.99 L 319.41 238.49 L 315 245.99 L 310.59 238.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 308.5 275.88 L 315 288.88 L 321.5 275.88" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 278px; margin-left: 332px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="332" y="278" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 262px; margin-left: 286px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - consists of - </div> - </div> - </div> - </foreignObject> - <text x="286" y="265" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - consists of - </text> - </switch> - </g> - </g> - <g> - <path d="M 427 66 L 427 40 L 537 40 L 537 66" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 427 66 L 427 120 L 537 120 L 537 66" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 427 66 L 537 66" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 53px; margin-left: 482px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Objectives - </div> - </div> - </div> - </foreignObject> - <text x="482" y="56" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Objectives - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 135 L 380 135 Q 390 135 390 125 L 390 90 Q 390 80 400 80 L 420.63 80" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 425.88 80 L 418.88 83.5 L 420.63 80 L 418.88 76.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 136px; margin-left: 411px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - has - </div> - </div> - </div> - </foreignObject> - <text x="411" y="139" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - has - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 71px; margin-left: 404px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="404" y="74" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 482 135.99 L 482 140 L 482 143.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 482 120.99 L 486.41 128.49 L 482 135.99 L 477.59 128.49 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 482 148.88 L 478.5 141.88 L 482 143.63 L 485.5 141.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 137px; margin-left: 489px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="489" y="137" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 1000 L 519.5 1000 Q 509.5 1000 509.5 990 L 509.5 932.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 509.5 927.12 L 513 934.12 L 509.5 932.37 L 506 934.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 999px; margin-left: 549px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - </div> - </div> - </div> - </foreignObject> - <text x="549" y="1002" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 980 L 577 980 Q 567 980 567 970 L 567 561.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 567 556.12 L 570.5 563.12 L 567 561.37 L 563.5 563.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 925px; margin-left: 570px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - uses - </div> - </div> - </div> - </foreignObject> - <text x="570" y="936" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - uses - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 948px; margin-left: 581px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="581" y="951" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 986 L 590.55 960 L 700.55 960 L 700.55 986" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 590.55 986 L 590.55 1040 L 700.55 1040 L 700.55 986" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 590.55 986 L 700.55 986" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 973px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="646" y="976" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 376.37 976 L 400 976 Q 410 976 410 986 L 410 1010 Q 410 1020 420 1020 L 590.55 1020" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 371.12 976 L 378.12 972.5 L 376.37 976 L 378.12 979.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 966px; margin-left: 384px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <div> - <br/> - </div> - </div> - </div> - </div> - </foreignObject> - <text x="384" y="969" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1022px; margin-left: 538px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #FFFFFF; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; "> - <span style=""> - belongs_to - </span> - </div> - </div> - </div> - </foreignObject> - <text x="538" y="1025" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 1172 L 590.55 1146 L 700.55 1146 L 700.55 1172" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 590.55 1172 L 590.55 1226 L 700.55 1226 L 700.55 1172" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 590.55 1172 L 700.55 1172" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1159px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Detailed - <br/> - Design - </div> - </div> - </div> - </foreignObject> - <text x="646" y="1162" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Detailed... - </text> - </switch> - </g> - </g> - <g> - <path d="M 376.37 1041 L 430 1041 Q 440 1041 440 1051 L 440 1176 Q 440 1186 450 1186 L 590.55 1186" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 371.12 1041 L 378.12 1037.5 L 376.37 1041 L 378.12 1044.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <path d="M 645.55 1146 L 645.55 1046.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 645.55 1041.12 L 649.05 1048.12 L 645.55 1046.37 L 642.05 1048.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1089px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - satifies - </div> - </div> - </div> - </foreignObject> - <text x="646" y="1092" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 618.05 1146 L 618.08 1130 Q 618.1 1120 608.1 1120 L 492 1120 Q 482 1120 482 1110 L 482 932.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 482 927.12 L 485.5 934.12 L 482 932.37 L 478.5 934.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1121px; margin-left: 567px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="567" y="1124" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1129px; margin-left: 384px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - consists of - </div> - </div> - </div> - </foreignObject> - <text x="384" y="1132" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - consists of - </text> - </switch> - </g> - </g> - <g> - <path d="M 645.55 1262.54 L 645.55 1232.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 645.55 1227.12 L 649.05 1234.12 L 645.55 1232.37 L 642.05 1234.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1245px; margin-left: 645px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implements - </div> - </div> - </div> - </foreignObject> - <text x="645" y="1248" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 385.99 1076 L 420 1076 Q 430 1076 430 1086 L 430 1130 Q 430 1140 420 1140 L 352.5 1140 Q 342.5 1140 342.5 1130 L 342.5 1112.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 370.99 1076 L 378.49 1071.59 L 385.99 1076 L 378.49 1080.41 Z" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 342.5 1107.12 L 346 1114.12 L 342.5 1112.37 L 339 1114.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 1070px; margin-left: 372px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="372" y="1070" fill="#000000" font-family=""Helvetica"" font-size="12px"> - 1 - </text> - </switch> - </g> - </g> - <g> - <rect x="288" y="1232.54" width="30" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1248px; margin-left: 303px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - * - </div> - </div> - </div> - </foreignObject> - <text x="303" y="1251" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - * - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 942 L 0 916 L 110 916 L 110 942" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(184, 84, 80), rgb(215, 129, 126)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 942 L 0 996 L 110 996 L 110 942" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 942 L 110 942" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 929px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Dependable Element - </div> - </div> - </div> - </foreignObject> - <text x="55" y="932" fill="#ffffff" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Dependable Element - </text> - </switch> - </g> - </g> - <g> - <path d="M 110 976 L 180 976 L 253.63 976" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 258.88 976 L 251.88 979.5 L 253.63 976 L 251.88 972.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 963px; margin-left: 138px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="138" y="963" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <rect x="220" y="986" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1001px; margin-left: 240px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ededed); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="240" y="1005" fill="#000000" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <path d="M 959 710 L 959 760 Q 959 770 949 770 L 706.92 770" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 701.67 770 L 708.67 766.5 L 706.92 770 L 708.67 773.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 771px; margin-left: 911px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - violates - </div> - </div> - </div> - </foreignObject> - <text x="911" y="774" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <path d="M 1132.5 737.63 L 1132.5 680 Q 1132.5 670 1122.5 670 L 1024 670" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1132.5 742.88 L 1129 735.88 L 1132.5 737.63 L 1136 735.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 671px; margin-left: 1067px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1067" y="674" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 650 L 930 650 Q 940 650 940 640 L 940 390 Q 940 380 930 380 L 543.37 380" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 538.12 380 L 545.12 376.5 L 543.37 380 L 545.12 383.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 611px; margin-left: 942px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="942" y="614" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 1050 286 L 1050 260 L 1160 260 L 1160 286" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 1050 286 L 1050 340 L 1160 340 L 1160 286" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 1050 286 L 1160 286" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 273px; margin-left: 1105px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform - <br/> - Assumptions of use - </div> - </div> - </div> - </foreignObject> - <text x="1105" y="276" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform... - </text> - </switch> - </g> - </g> - <g> - <rect x="1050" y="286" width="110" height="44" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 308px; margin-left: 1051px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - - own AoU - <br/> - -other AoU - </div> - </div> - </div> - </foreignObject> - <text x="1105" y="312" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - - own AoU... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1320 140 L 700 140 Q 690 140 690 150 L 690 180 Q 690 190 680 190 L 542.99 190" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 539.24 190 L 544.24 187.5 L 542.99 190 L 544.24 192.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 141px; margin-left: 1220px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="1220" y="144" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 1375 180 L 1375 298 Q 1375 308 1365 308 L 1166.37 308" fill="none" stroke="#0000ff" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1161.12 308 L 1168.12 304.5 L 1166.37 308 L 1168.12 311.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 309px; margin-left: 1218px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1218" y="312" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 1320 126 L 1320 100 L 1430 100 L 1430 126" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 1320 126 L 1320 180 L 1430 180 L 1430 126" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 1320 126 L 1430 126" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 113px; margin-left: 1375px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform Integration - <br/> - Tests - </div> - </div> - </div> - </foreignObject> - <text x="1375" y="116" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform Integration... - </text> - </switch> - </g> - </g> - <g> - <path d="M 795 660 L 795 410 Q 795 400 785 400 L 542.99 400" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 539.24 400 L 544.24 397.5 L 542.99 400 L 544.24 402.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 641px; margin-left: 796px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="796" y="644" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 767.5 740 L 767.5 745 Q 767.5 750 757.5 750 L 706.54 750" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 702.79 750 L 707.79 747.5 L 706.54 750 L 707.79 752.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 751px; margin-left: 740px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="740" y="754" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 740 686 L 740 660 L 850 660 L 850 686" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 740 686 L 740 740 L 850 740 L 850 686" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 740 686 L 850 686" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 673px; margin-left: 795px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Integration Tests - </div> - </div> - </div> - </foreignObject> - <text x="795" y="676" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <path d="M 740 906 L 790 906 Q 800 906 790 906 L 542.99 906" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 539.24 906 L 544.24 903.5 L 542.99 906 L 544.24 908.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 906px; margin-left: 671px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="671" y="909" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 795 966 L 795 1110 Q 795 1120 785 1120 L 683.1 1120 Q 673.1 1120 673.08 1130 L 673.06 1140.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 673.05 1143.76 L 670.56 1138.76 L 673.06 1140.01 L 675.56 1138.77 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1121px; margin-left: 731px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="731" y="1124" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 740 912 L 740 886 L 850 886 L 850 912" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 740 912 L 740 966 L 850 966 L 850 912" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 740 912 L 850 912" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 899px; margin-left: 795px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component - <br/> - Integration Tests - </div> - </div> - </div> - </foreignObject> - <text x="795" y="902" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component... - </text> - </switch> - </g> - </g> - <g> - <path d="M 959 933 L 959.5 933 Q 960 933 960 943 L 960 990 Q 960 1000 950 1000 L 706.92 1000" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 701.67 1000 L 708.67 996.5 L 706.92 1000 L 708.67 1003.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1000px; margin-left: 912px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - violates - </div> - </div> - </div> - </foreignObject> - <text x="912" y="1003" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <path d="M 892.05 866.04 L 990 866 Q 1000 866 990 866 L 543.37 866" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 538.12 866 L 545.12 862.5 L 543.37 866 L 545.12 869.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 867px; margin-left: 840px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #FFFFFF; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; "> - <span style=""> - mitigated_by - </span> - </div> - </div> - </div> - </foreignObject> - <text x="840" y="870" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 879 L 894 853 L 1024 853 L 1024 879" fill="#d5e8d4" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(213, 232, 212), rgb(31, 47, 30)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 894 879 L 894 933 L 1024 933 L 1024 879" fill="#ffffff" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - <path d="M 894 879 L 1024 879" fill="none" stroke="#82b366" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(130, 179, 102), rgb(68, 110, 44));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 866px; margin-left: 959px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Component Safety / - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="959" y="869" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Component Safety /... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1077.5 830.37 L 1077.5 883 Q 1077.5 893 1067.5 893 L 1024 893" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1077.5 825.12 L 1081 832.12 L 1077.5 830.37 L 1074 832.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 901px; margin-left: 1060px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #FFFFFF; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; "> - <span style=""> - mitigated_by - </span> - </div> - </div> - </div> - </foreignObject> - <text x="1060" y="904" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1165px; margin-left: 719px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="719" y="1168" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 740 1172 L 740 1146 L 850 1146 L 850 1172" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 740 1172 L 740 1226 L 850 1226 L 850 1172" fill="#ffffff" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - <path d="M 740 1172 L 850 1172" fill="none" stroke="#666666" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1159px; margin-left: 795px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Unit Test - </div> - </div> - </div> - </foreignObject> - <text x="795" y="1162" fill="#333333" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Unit Test - </text> - </switch> - </g> - </g> - <g> - <rect x="555.55" y="1196" width="30" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1211px; margin-left: 571px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="571" y="1215" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <rect x="550.55" y="1160" width="40" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1175px; margin-left: 571px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - 1,* - </div> - </div> - </div> - </foreignObject> - <text x="571" y="1179" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - 1,* - </text> - </switch> - </g> - </g> - <g> - <path d="M 795 966 L 795 973 Q 795 980 785 980 L 706.54 980" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 702.79 980 L 707.79 977.5 L 706.54 980 L 707.79 982.5 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 979px; margin-left: 751px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="751" y="982" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 210 L 543.37 210" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 538.12 210 L 545.12 206.5 L 543.37 210 L 545.12 213.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 209px; margin-left: 800px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="800" y="212" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 1004 210 L 1095 210 Q 1105 210 1105 220 L 1105 253.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1105 258.88 L 1101.5 251.88 L 1105 253.63 L 1108.5 251.88 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 211px; margin-left: 1051px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mitigated_by - </div> - </div> - </div> - </foreignObject> - <text x="1051" y="214" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - mitigated_by - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 196 L 894 170 L 1004 170 L 1004 196" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 894 196 L 894 250 L 1004 250 L 1004 196" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 894 196 L 1004 196" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 183px; margin-left: 949px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform Safety/ - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="949" y="186" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform Safety/... - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 230 L 830 230 Q 820 230 820 240 L 820 280 Q 820 290 810 290 L 706.92 290" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 701.67 290 L 708.67 286.5 L 706.92 290 L 708.67 293.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 231px; margin-left: 857px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <span style=""> - violates - </span> - </div> - </div> - </div> - </foreignObject> - <text x="857" y="234" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - violates - </text> - </switch> - </g> - </g> - <g> - <path d="M 567 475 L 567 467.5 Q 567 460 557 460 L 492 460 Q 482 460 482 450 L 482 426.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 482 421.12 L 485.5 428.12 L 482 426.37 L 478.5 428.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 467px; margin-left: 500px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfils - </div> - </div> - </div> - </foreignObject> - <text x="500" y="467" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfils - </text> - </switch> - </g> - </g> - <g> - <path d="M 512 501 L 512 475 L 622 475 L 622 501" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 512 501 L 512 555 L 622 555 L 622 501" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 512 501 L 622 501" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 488px; margin-left: 567px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Logical Arc. Interface - </div> - </div> - </div> - </foreignObject> - <text x="567" y="491" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Logical Arc. Interface - </text> - </switch> - </g> - </g> - <g> - <rect x="990" y="1127.54" width="160" height="240" rx="24" ry="24" fill="#f5f5f5" stroke="#666666" pointer-events="all" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1125px; margin-left: 991px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #333333; "> - <div style="display: inline-block; font-size: 14px; font-family: "Helvetica"; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Legend - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1125" fill="#333333" font-family=""Helvetica"" font-size="14px" text-anchor="middle"> - Legend - </text> - </switch> - </g> - </g> - <g> - <path d="M 1015 1187.31 L 1125 1187.31" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1187px; margin-left: 1070px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - UML - <div> - (sphinx needs) - </div> - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1190" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - UML... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1015 1212.2 L 1125 1212.2" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1212px; margin-left: 1070px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - implicit - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1215" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - implicit - </text> - </switch> - </g> - </g> - <g> - <path d="M 1015 1309.08 L 1125 1309.08" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1309px; margin-left: 1070px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - mandatory - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1312" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - mandatory - </text> - </switch> - </g> - </g> - <g> - <path d="M 1015 1333.66 L 1125 1333.66" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1334px; margin-left: 1070px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - optional - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1337" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - optional - </text> - </switch> - </g> - </g> - <g> - <path d="M 110 1086 L 170 1086 Q 180 1086 180 1076 L 180 1050 Q 180 1040 190 1040 L 253.63 1040" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 258.88 1040 L 251.88 1043.5 L 253.63 1040 L 251.88 1036.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1071px; margin-left: 139px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="139" y="1074" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 55 1046 L 55 1002.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - <path d="M 55 997.12 L 58.5 1004.12 L 55 1002.37 L 51.5 1004.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(237, 237, 237)); stroke: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1033px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - belongs_to - </div> - </div> - </div> - </foreignObject> - <text x="55" y="1036" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - belongs_to - </text> - </switch> - </g> - </g> - <g> - <path d="M 0 1072 L 0 1046 L 110 1046 L 110 1072" fill="#b85450" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(184, 84, 80), rgb(215, 129, 126)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 1072 L 0 1126 L 110 1126 L 110 1072" fill="#ffffff" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - <path d="M 0 1072 L 110 1072" fill="none" stroke="#b20000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(178, 0, 0), rgb(255, 172, 172));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1059px; margin-left: 55px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Dependable Element - <br/> - View - </div> - </div> - </div> - </foreignObject> - <text x="55" y="1062" fill="#ffffff" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Dependable Element... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1015 1237.31 L 1125 1237.31" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1237px; margin-left: 1070px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Tool generated - <br/> - Target not specified - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1240" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="10px" text-anchor="middle"> - Tool gener... - </text> - </switch> - </g> - </g> - <g> - <rect x="1040" y="1272.54" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1288px; margin-left: 1041px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Line Color - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1291" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Line Color - </text> - </switch> - </g> - </g> - <g> - <rect x="1040" y="1142.54" width="60" height="30" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 1158px; margin-left: 1041px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - Line Style - </div> - </div> - </div> - </foreignObject> - <text x="1070" y="1161" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - Line Style - </text> - </switch> - </g> - </g> - <g> - <path d="M 370 911 L 380 911 Q 390 911 390 901 L 390 680 Q 390 670 400 670 L 502 670 Q 512 670 512 660 L 512 561.37" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 512 556.12 L 515.5 563.12 L 512 561.37 L 508.5 563.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)rotate(-90 511.5 629.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 630px; margin-left: 512px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #FFFFFF; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; "> - <span style=""> - implements - </span> - </div> - </div> - </div> - </foreignObject> - <text x="512" y="633" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - implements - </text> - </switch> - </g> - </g> - <g> - <path d="M 55 195.99 L 55 909.63" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 55 180.99 L 59.41 188.49 L 55 195.99 L 50.59 188.49 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 55 914.88 L 51.5 907.88 L 55 909.63 L 58.5 907.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 207px; margin-left: 72px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="72" y="207" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - 1 - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 871px; margin-left: 76px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1, * - </div> - </div> - </div> - </foreignObject> - <text x="76" y="874" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1, * - </text> - </switch> - </g> - </g> - <g> - <path d="M 125.99 135 L 160 135 Q 170 135 180 135 L 253.63 135" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 110.99 135 L 118.49 130.59 L 125.99 135 L 118.49 139.41 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 258.88 135 L 251.88 138.5 L 253.63 135 L 251.88 131.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 132px; margin-left: 119px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - * - </div> - </div> - </div> - </foreignObject> - <text x="119" y="132" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px"> - * - </text> - </switch> - </g> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 121px; margin-left: 250px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - 1 - </div> - </div> - </div> - </foreignObject> - <text x="250" y="124" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - 1 - </text> - </switch> - </g> - </g> - <g> - <path d="M 1043.63 792 L 710.6 792 Q 700.6 792 700.57 791 L 700.55 790" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1048.88 792 L 1041.88 795.5 L 1043.63 792 L 1041.88 788.5 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 792px; margin-left: 819px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - but not the feature's own AoU - </div> - </div> - </div> - </foreignObject> - <text x="819" y="795" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - but not the feature's own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 1132.5 830.37 L 1132.5 1010 Q 1132.5 1020 1122.5 1020 L 700.55 1020" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1132.5 825.12 L 1136 832.12 L 1132.5 830.37 L 1129 832.12 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1031px; margin-left: 933px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - fulfills - but not the component's own AoU - </div> - </div> - </div> - </foreignObject> - <text x="933" y="1034" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - fulfills - but not the component's own AoU - </text> - </switch> - </g> - </g> - <g> - <path d="M 850 720 L 1095 720 Q 1105 720 1105 729.01 L 1105 738.01" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1105 741.76 L 1102.5 736.76 L 1105 738.01 L 1107.5 736.76 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 720px; margin-left: 881px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="881" y="723" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 850 946 L 1095 946 Q 1105 946 1105 936 L 1105 829.99" fill="none" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="2 4" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1105 826.24 L 1107.5 831.24 L 1105 829.99 L 1102.5 831.24 Z" fill="#0000ff" stroke="#0000ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 946px; margin-left: 876px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - verifies - </div> - </div> - </div> - </foreignObject> - <text x="876" y="949" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - verifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 310 L 627 310 Q 637 310 637 315 L 637 317.5 Q 637 320 627 320 L 376.37 320" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="8 8" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 371.12 320 L 378.12 316.5 L 376.37 320 L 378.12 323.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 321px; margin-left: 557px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - includes - </div> - </div> - </div> - </foreignObject> - <text x="557" y="324" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - includes - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 276 L 590.55 250 L 700.55 250 L 700.55 276" fill="#dae8fc" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 590.55 276 L 590.55 330 L 700.55 330 L 700.55 276" fill="#ffffff" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - <path d="M 590.55 276 L 700.55 276" fill="none" stroke="#6c8ebf" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 263px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Platform - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="646" y="266" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Platform... - </text> - </switch> - </g> - </g> - <g> - <path d="M 590.55 756 L 590.55 730 L 700.55 730 L 700.55 756" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 590.55 756 L 590.55 810 L 700.55 810 L 700.55 756" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 590.55 756 L 700.55 756" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 743px; margin-left: 646px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Architecture - </div> - </div> - </div> - </foreignObject> - <text x="646" y="746" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <path d="M 1050 770 L 1050 744 L 1160 744 L 1160 770" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 1050 770 L 1050 824 L 1160 824 L 1160 770" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 1050 770 L 1160 770" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 757px; margin-left: 1105px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Modul - <br/> - Assumptions of use - </div> - </div> - </div> - </foreignObject> - <text x="1105" y="760" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Modul... - </text> - </switch> - </g> - </g> - <g> - <rect x="1050" y="770" width="110" height="44" fill="none" stroke="none" pointer-events="all"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 792px; margin-left: 1051px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 12px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "> - - own AoU - <br/> - -other AoU - </div> - </div> - </div> - </foreignObject> - <text x="1105" y="796" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="12px" text-anchor="middle"> - - own AoU... - </text> - </switch> - </g> - </g> - <g> - <path d="M 454.5 846 L 454.5 426.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - <path d="M 454.5 421.12 L 458 428.12 L 454.5 426.37 L 451 428.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 807px; margin-left: 455px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <span style="caret-color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - satifies - </span> - </div> - </div> - </div> - </foreignObject> - <text x="455" y="810" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - satifies - </text> - </switch> - </g> - </g> - <g> - <path d="M 427 366 L 427 340 L 537 340 L 537 366" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 427 366 L 427 420 L 537 420 L 537 366" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 427 366 L 537 366" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 353px; margin-left: 482px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature - <br/> - Requirements - </div> - </div> - </div> - </foreignObject> - <text x="482" y="356" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature... - </text> - </switch> - </g> - </g> - <g> - <path d="M 894 656 L 894 630 L 1024 630 L 1024 656" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 894 656 L 894 710 L 1024 710 L 1024 656" fill="#ffffff" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - <path d="M 894 656 L 1024 656" fill="none" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 643px; margin-left: 959px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; "> - <div style="display: inline-block; font-size: 10px; font-family: "Verdana"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "> - Feature Safety/ - <br/> - Security Analysis - </div> - </div> - </div> - </foreignObject> - <text x="959" y="646" fill="light-dark(#000000, #ffffff)" font-family=""Verdana"" font-size="10px" text-anchor="middle"> - Feature Safety/... - </text> - </switch> - </g> - </g> - <g> - <path d="M 537 360 L 1010 360 Q 1020 360 1020 350 L 1020 313.6 Q 1020 303.6 1030 303.62 L 1042.86 303.63" fill="none" stroke="#0000ff" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - <path d="M 1048.11 303.64 L 1041.11 307.13 L 1042.86 303.63 L 1041.12 300.13 Z" fill="#0000ff" stroke="#0000ff" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 255), rgb(205, 205, 255)); stroke: light-dark(rgb(0, 0, 255), rgb(205, 205, 255));"/> - </g> - <g> - <g transform="translate(-0.5 -0.5)"> - <switch> - <foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"> - <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 360px; margin-left: 644px;"> - <div style="box-sizing: border-box; font-size: 0; text-align: center; color: #000000; background-color: #ffffff; "> - <div style="display: inline-block; font-size: 11px; font-family: "Helvetica"; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "> - <span style="caret-color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));"> - covers - but not the own AoU - </span> - </div> - </div> - </div> - </foreignObject> - <text x="644" y="363" fill="light-dark(#000000, #ffffff)" font-family=""Helvetica"" font-size="11px" text-anchor="middle"> - covers - but not the own AoU - </text> - </switch> - </g> - </g> - </g> - <switch> - <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/> - <a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"> - <text text-anchor="middle" font-size="10px" x="50%" y="100%"> - Text is not SVG - cannot display - </text> - </a> - </switch> -</svg> diff --git a/process/general_concepts/score_building_blocks_concept.rst b/process/general_concepts/score_building_blocks_concept.rst index 645d340ef5..ffa70151ff 100644 --- a/process/general_concepts/score_building_blocks_concept.rst +++ b/process/general_concepts/score_building_blocks_concept.rst @@ -126,26 +126,3 @@ developed as safety element out of context (SEooC). :alt: Building blocks example Building blocks example - - -Deployment example -++++++++++++++++++ - -The following figure is an example how the meta model may deployed on several repositories. -The project main repository has the information about the platform and the features. -These include stakeholder requirements, platform architecture, safety/security analysis -and platform assumptions of use. Further the features, their requirements and their -logical interfaces. - -The project dependable element repository has the remaining feature artifacts and -the components and units. There may several repositories of them. - -The project reference_integration repository includes only the platform integrations -tests. - -.. figure:: _assets/score_building_blocks_meta_model_deployment_example.drawio.svg - :width: 100% - :align: center - :alt: Building blocks deployment example - - Building blocks deployment example diff --git a/process/glossary/index.rst b/process/glossary/index.rst index 246827d95d..40336c00b6 100644 --- a/process/glossary/index.rst +++ b/process/glossary/index.rst @@ -81,10 +81,6 @@ Terms - A packaging mechanism for delivering Dependable Elements (e.g., executable code or libraries) to users or integrators of the platform. - :ref:`Building blocks concept<general_concepts_building_blocks>` - * - **Delivery Team** - - Cross-functional team responsible for all artifacts within a Module, including development, quality, safety, and security activities. - - :ref:`Roles<roles>` - * - **Dependable Element** - The highest abstraction level in the building blocks model. A Dependable Element consists of one or more Components and can be developed as a Safety Element out of Context (SEooC). It is delivered in a Delivery Container. - :ref:`Building blocks concept<general_concepts_building_blocks>` @@ -121,10 +117,6 @@ Terms - Systematic analysis performed on feature architecture to verify compliance with safety and security requirements at the feature level, documenting any violations or potential faults. - ::ref:`Building blocks concept<general_concepts_building_blocks>` - * - **Feature Team** - - An synonym term for Delivery Team. - - :ref:`Roles<roles>` - * - **Impact Analysis** - The process of evaluating the effects and consequences of proposed changes on work products. - :ref:`Process change management<change_management>` @@ -145,6 +137,10 @@ Terms - An synonym term for Dependable Element - :ref:`Building blocks concept<general_concepts_building_blocks>` + * - **Module Team** + - Cross-functional team responsible for all artifacts within a Module, including development, quality, safety, and security activities. + - :ref:`Roles<roles>` + * - **Platform** - The complete software platform consisting of features, components, and supporting infrastructure. - :ref:`Building blocks concept<general_concepts_building_blocks>` diff --git a/process/process_areas/architecture_design/architecture_concept.rst b/process/process_areas/architecture_design/architecture_concept.rst index ae8b9ccb06..ac4004b5d3 100644 --- a/process/process_areas/architecture_design/architecture_concept.rst +++ b/process/process_areas/architecture_design/architecture_concept.rst @@ -123,8 +123,22 @@ The feature architecture contain the following views: Static View ----------- -The first viewpoint is named as *feature architecture*. It displays the SW Components within the SW modules (= dependable elements) which are required to realize the feature including their interactions. Also the *logical interfaces* and the interaction between the feature and the user are included in this view. On this architectural level the feature requirements shall be allocated. A full rendered example for the static architecture is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +The first viewpoint is named as *feature architecture*. It displays the SW Components within the SW modules (= dependable elements) which are required to realize the feature including their interactions. Also the *logical interfaces* and the interaction between the feature and the user are included in this view. On this architectural level the feature requirements shall be allocated. An example for the static architecture is shown here: + +.. feat_arc_sta:: Feature 1 Architecture + :id: feat_arc_sta__example_feature__feature_1 + :security: YES + :safety: QM + :status: valid + :includes: logic_arc_int__example_feature__archex_logical_interface_1, logic_arc_int__example_feature__archex_logical_interface_2 + :fulfils: feat_req__example_feature__archdes_example_req + :belongs_to: feat__example_feature + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_feature(need(), needs) }} In all views, the components which are marked as ASIL_B related are drawn with red borders. @@ -150,16 +164,38 @@ See :ref:`uml_diagram_selection` in guideline for further information about the Interface View -------------- -On the feature level only *logical interfaces* shall be displayed. This means that only logical names shall be provided for both the interface and the operations within. Those *logical interfaces* shall be connected to component interfaces on the module view. A rendered logical-interface example is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +On the feature level only *logical interfaces* shall be displayed. This means that only logical names shall be provided for both the interface and the operations within. Those *logical interfaces* shall be connected to component interfaces on the module view. + +.. logic_arc_int:: Logical Interface 1 + :id: logic_arc_int__example_feature__archcon_logical_interface_1 + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: feat_req__example_feature__archdes_example_req + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_interface(need(), needs) }} SW Module View ============== A SW Module (=dependable element) is packaging a component or a set of components which is developed, documented and released together. It is not meant to be an architectural element which means that no requirements can be allocated to it. -On this level also a view shall be defined which is called *Module View*. It represents the allocation of components into modules and displays the dependencies between the single modules. In this view also cyclic dependencies between modules can be identified. A rendered module-view example is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +On this level also a view shall be defined which is called *Module View*. It represents the allocation of components into modules and displays the dependencies between the single modules. In this view also cyclic dependencies between modules can be identified. + +.. mod_view_sta:: Module 1 Static View concept + :id: mod_view_sta__example_feature__archcon_1 + :includes: comp__component_example_1 + + .. needarch:: + :scale: 50 + :align: center + + + {{ draw_module(need(), needs) }} Component View ============== @@ -171,8 +207,19 @@ Static View The *component architecture* describes the implementation of the functionalities in a white-box view. It describes the internal structure of SW components and their decomposition. It provides a more detailed information concerning the respective interfaces of a component. If a SW component interacts with a different component it is also included via a *use* relationship in the diagram. An example of the *component architecture* is displayed here: -A full rendered component-architecture example is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +.. comp_arc_sta:: Component 1 Static View + :id: comp_arc_sta__example_feature__archdes_component_concept_1 + :status: valid + :safety: ASIL_B + :security: NO + :fulfils: comp_req__example_feature__archex_example_req + :belongs_to: comp__component_example_1 + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} The decomposition is optional and relies on the complexity of the component. Thus there is no graphic representation required for it. In all views the components which are marked as ASIL_B related are drawn in red color. @@ -197,8 +244,21 @@ Following scenarios should be included: Interface View -------------- -The component interface view shows the actual interfaces of the component. Also links to their corresponding logical interfaces are displayed in this view. A rendered component-interface example is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +The component interface view shows the actual interfaces of the component. Also links to their corresponding logical interfaces are displayed in this view: + +.. real_arc_int:: Component Interface 1 + :id: real_arc_int__example_feature__archdes_component_interface_1 + :status: valid + :safety: ASIL_B + :security: NO + :fulfils: comp_req__example_feature__archex_example_req + :language: cpp + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_interface(need(), needs)}} Platform View ============= @@ -421,8 +481,30 @@ Here are some excerpts of UML diagrams made from the requirements of that file. Feature Architecture ^^^^^^^^^^^^^^^^^^^^ -The following section links to the rendered feature example that is now maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +The following section is an example, how an `Feature <https://eclipse-score.github.io/score/main/features/index.html>`_ looks like and how the architecture of an Feature is described. Please note that components with an "ASIL_B" safety rating are highlighted with red borders in the diagram (e.g., "Component 1"). + +.. feat:: Feature Name + :id: feat__feature_name_example + :security: YES + :safety: ASIL_B + :status: invalid + :includes: logic_arc_int__example_feature__archex_logical_interface_1 + :consists_of: comp__component_example_1 + +.. feat_arc_sta:: Feature Static Architecture View - Rendered Example + :id: feat_arc_sta__example_feature__archdes_getstrt + :security: YES + :safety: QM + :status: valid + :includes: logic_arc_int__example_feature__archex_logical_interface_1, logic_arc_int__example_feature__archex_logical_interface_2 + :fulfils: feat_req__example_feature__archdes_example_req + :belongs_to: feat__example_feature + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_feature(need(), needs) }} .. code-block:: rst @@ -454,8 +536,19 @@ Component Architecture The following section is an example, how an component looks like and how the detail design of an component is described. Please note that components with an "ASIL_B" safety rating are highlighted with red borders in the diagram (e.g., "Component 1"). -The rendered component examples are maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +.. comp_arc_sta:: Component Static View - Rendered Example + :id: comp_arc_sta__example_feature__component_getstrt + :status: valid + :safety: ASIL_B + :security: NO + :fulfils: comp_req__example_feature__archex_example_req + :belongs_to: comp__component_example_1 + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component( need(), needs ) }} .. code-block:: rst @@ -506,8 +599,20 @@ Besides storing the output it is also possible to display the generated PlantUML Debug example for component architecture: -See the rendered debug example in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +.. comp_arc_sta:: Component Static View - Rendered Debug Example + :id: comp_arc_sta__example_feature__component_getstrt_debug + :status: valid + :safety: ASIL_B + :security: NO + :fulfils: comp_req__example_feature__archex_example_req + :belongs_to: comp__component_example_1 + + .. needarch:: + :scale: 50 + :align: center + :debug: + + {{ draw_component( need(), needs ) }} .. _manual_addition_uml: @@ -525,18 +630,33 @@ To make *needuml* work we have to replace the *need()* call with a different fun :status: valid :safety: ASIL_B :security: NO - :uses: logic_arc_int__example_feature__archcon_logical_interface_1 + :uses: logic_arc_int__example_feature__archex_logical_interface_1 + :fulfils: comp_req__example_feature__archex_example_req :belongs_to: comp__component_component_manual_getstrt .. needuml:: - {{ draw_component( needs.get('comp__component_name_template'), needs ) }} + {{ draw_component( needs.__getitem__('comp__component_example_1'), needs ) }} component "Component Manual" as CM { } CM -> LI1: EXTRA_LINKAGE_MANUALLY_ADDED -See the rendered manual-edit example in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__. +.. comp_arc_sta:: Component Architecture Static View - Rendered Example Manually Edited + :id: comp_arc_sta__example_feature__component_manual_getstrt + :status: valid + :safety: ASIL_B + :security: NO + :uses: logic_arc_int__example_feature__archex_logical_interface_1 + :fulfils: comp_req__example_feature__archex_example_req + :belongs_to: comp__component_example_1 + + .. needarch:: + + {{ draw_component( needs.__getitem__('comp__component_example_1'), needs ) }} + + component "Component Manual" as CM { + } + CM -> logic_arc_int__example_feature__archex_logical_interface_1: EXTRA_LINKAGE_MANUALLY_ADDED You can add any layout or additional configuration you want before you call the *draw_xyz*. @@ -553,13 +673,13 @@ To achieve this the *need()* call needs to be replaced with the following, as *n .. code-block:: none - # need() => needs.get('ID OF THE REQUIREMENT YOU ARE IN') + # need() => needs.__getitem__('ID OF THE REQUIREMENT YOU ARE IN') # For example, drawing the requirement: `COMP_ARC_STA__component_manual_1` would then look as such - {{ draw_component( needs.get('COMP_ARC_STA__component_manual_1'), needs ) }} + {{ draw_component( needs.__getitem__('COMP_ARC_STA__component_manual_1'), needs ) }} Limitations diff --git a/process/process_areas/architecture_design/architecture_workflow.rst b/process/process_areas/architecture_design/architecture_workflow.rst index 0ef1844fe4..d14ec92e4c 100644 --- a/process/process_areas/architecture_design/architecture_workflow.rst +++ b/process/process_areas/architecture_design/architecture_workflow.rst @@ -19,20 +19,6 @@ Architecture Workflows For a detailed explanation of workflows and their role within the process model, please refer to the :ref:`processes_introduction`. -.. workflow:: Create/Maintain Platform architecture - :id: wf__cr_mt_platarch - :status: valid - :tags: architecture_design - :responsible: rl__contributor - :approved_by: rl__committer - :supported_by: rl__safety_manager, rl__security_manager - :input: wp__requirements_stkh, wp__issue_track_system - :output: wp__platform_arch - :contains: gd_guidl__arch_design - :has: doc_concept__arch_process, doc_getstrt__arch_process - - The platform architecture is created and maintained. - .. workflow:: Create/Maintain Feature architecture :id: wf__cr_mt_featarch :status: valid diff --git a/process/process_areas/architecture_design/architecture_workproducts.rst b/process/process_areas/architecture_design/architecture_workproducts.rst index ee14278885..d60ecb12c0 100644 --- a/process/process_areas/architecture_design/architecture_workproducts.rst +++ b/process/process_areas/architecture_design/architecture_workproducts.rst @@ -17,16 +17,6 @@ Architecture Work Products ########################## -.. workproduct:: Platform Architecture - :id: wp__platform_arch - :status: valid - :complies: std_wp__iso26262__software_751, std_wp__isosae21434__development_1051, std_req__aspice_40__iic-04-04 - :tags: doc_lifecycle_model_3 - - Platform Architecture describes the overall software structure with the belonging features, modules and their logical interfaces, i.e. top-level decomposition of the platform into features and their interactions - - * Static view - Overview of features, SW modules and their relationships within the platform - .. workproduct:: Feature Architecture :id: wp__feature_arch :status: valid diff --git a/process/process_areas/architecture_design/guidance/architecture_guideline.rst b/process/process_areas/architecture_design/guidance/architecture_guideline.rst index 41abc22592..c698da8b75 100644 --- a/process/process_areas/architecture_design/guidance/architecture_guideline.rst +++ b/process/process_areas/architecture_design/guidance/architecture_guideline.rst @@ -66,108 +66,34 @@ Those steps are: - Description - Responsible * - 1. - - :ref:`Create platform architecture (Concept) <create_platform_architecture>` + - :ref:`Create feature architecture (Concept) <create_feature_architecture>` - :need:`[[title]] <rl__contributor>` * - 2. - - :ref:`Model platform architecture <model_platform_architecture>` + - :ref:`Model feature architecture <model_feature_architecture>` - :need:`[[title]] <rl__contributor>` * - 3. - - :ref:`Allocate stakeholder requirements to architectural elements <allocate_stakeholder_requirements>` + - :ref:`Allocate feature requirements to architectural elements <allocate_feature_requirements>` - :need:`[[title]] <rl__contributor>` * - 4. - - :ref:`Review platform architecture <review_platform_architecture>` + - :ref:`Review architectural design <review_architectural_design>` - :need:`[[title]] <rl__committer>` * - 5. - - Merge platform architecture into score delivery container + - Merge architectural design into score delivery container - :need:`[[title]] <rl__committer>` * - 6. - - :ref:`Create feature architecture (Concept) <create_feature_architecture>` - - :need:`[[title]] <rl__contributor>` - * - 7. - - :ref:`Model feature architecture <model_feature_architecture>` - - :need:`[[title]] <rl__contributor>` - * - 8. - - :ref:`Allocate feature requirements to architectural elements <allocate_feature_requirements>` - - :need:`[[title]] <rl__contributor>` - * - 9. - - :ref:`Review feature architecture <review_architectural_design>` - - :need:`[[title]] <rl__committer>` - * - 10. - - Merge feature architecture into score delivery container - - :need:`[[title]] <rl__committer>` - * - 11. - | :ref:`Create component architecture (Concept) <create_component_architecture>` | :ref:`Allocate component requirements to architectural elements <allocate_component_requirements>` - :need:`[[title]] <rl__contributor>` - * - 12. + * - 7. - :ref:`Model component architecture <model_component_architecture>` - :need:`[[title]] <rl__contributor>` - * - 13. + * - 8. - :ref:`Review component architecture <review_component_architecture>` - :need:`[[title]] <rl__committer>` - * - 14. + * - 9. - Merge component architectural design into module's delivery container - :need:`[[title]] <rl__committer>` -.. _create_platform_architecture: - -Create platform architecture (Concept) ----------------------------------------- - -The platform architecture (= top-level architecture) shall be created in the platform delivery container. It provides the overall decomposition of the platform into features and defines the logical interfaces at the platform boundary. - -The platform architecture shall describe the concept of the platform, including supporting figures and drawings. If multiple solutions are possible, these should be documented here with the rationale for the final decision. A design decision template is provided in :need:`Decision Record Template <gd_temp__change_decision_record>`. - -Additionally, you should consult your project's specific guidelines, e.g., for using the version management tooling or architecture element naming conventions, which should be defined (or linked) in the :need:`Project SW development Plan <wp__sw_development_plan>`. - -.. _model_platform_architecture: - -Model platform architecture ---------------------------- - -Based on the concept description, a model of the platform architecture shall be designed. It shall provide an overview of the features within the platform and their logical interfaces at the platform boundary. Therefore, the following elements shall be used: - -.. list-table:: Architectural Elements of the Platform Architecture - :header-rows: 1 - :widths: 10,30 - - * - Element - - Sphinx directive - * - Feature - - feat - * - Logical Interface - - logic_arc_int - * - Logical Interface Operation - - logic_arc_int_op - -The relations of the static elements are described in :ref:`metamodel_architectural_design`. - -.. _allocate_stakeholder_requirements: - -Allocate stakeholder requirements to architectural elements ------------------------------------------------------------ - -In this step, the stakeholder requirements shall be allocated to the platform architectural elements depending on their content. These links shall be established from architectural elements to stakeholder requirements via the attribute *fulfils*. - -If needed, additional feature requirements derived from architectural decisions should be created and allocated to the respective feature. - -.. _review_platform_architecture: - -Review platform architecture ------------------------------ - -As soon as the design is in a mature state, it can be reviewed according to :need:`doc_concept__wp_inspections` -and merged into the main branch of the platform delivery container. See also the document life-cycle guideline :need:`gd_guidl__documentation` for more information about the documentation for the platform architecture :need:`wp__platform_arch`. - -For the review process, a checklist template is available: :need:`Architecture Inspection Checklist Template <gd_chklst__arch_inspection_checklist>`. - -The following roles should be included in the review: - -* :need:`[[title]] <rl__safety_manager>` -* :need:`[[title]] <rl__security_manager>` -* :need:`[[title]] <rl__project_lead>` -* :need:`[[title]] <rl__committer>` - .. _create_feature_architecture: Create feature architecture (Concept) @@ -204,8 +130,7 @@ The relations of the static elements are described in :ref:`metamodel_architectu .. note:: For the modelling of the architecture a sphinx extension is available: :ref:`arch_gen_sphinx` - An example of modelling the architecture can be found in the - `module template documentation <https://eclipse-score.github.io/module_template/main/>`_. + An example of modelling the architecture can be found :ref:`here <definition_architectural_design>`. .. _allocate_feature_requirements: @@ -295,9 +220,8 @@ UML diagram selection Static architecture ------------------- -As can be seen from the rendered feature and the component example in the -`module template documentation <https://eclipse-score.github.io/module_template/main/>`__, -for the static architecture a UML component diagram is expected (and supported by the tooling). +As can be seen from the examples presented in :need:`feat_arc_sta__example_feature__feature_1` and :need:`comp_arc_sta__example_feature__archdes_component_concept_1` +for the static architecture a UML component diagram is expected (and supported by the tooling). Dynamic architecture -------------------- diff --git a/process/process_areas/architecture_design/guidance/architecture_modeling_example.rst b/process/process_areas/architecture_design/guidance/architecture_modeling_example.rst new file mode 100644 index 0000000000..d66574cb70 --- /dev/null +++ b/process/process_areas/architecture_design/guidance/architecture_modeling_example.rst @@ -0,0 +1,292 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +.. _definition_architectural_design: + +Example model of architectural design +##################################### + +This chapter only serves as an example how an architecture could be modeled in *Sphinx Needs*. All the needs are required to print the views which are displayed in the Static- and Interface Views. In the actual process this files would be split into multiple different files: + +Feature Architecture File +========================= + +.. feat:: Feature 1 + :id: feat__example_feature + :security: YES + :safety: QM + :status: valid + :includes: logic_arc_int__example_feature__archex_logical_interface_1, logic_arc_int__example_feature__archex_logical_interface_2, logic_arc_int__example_feature__archex_logical_interface_3 + :consists_of: comp__component_example_1 + + This is the example feature. + +.. feat_arc_sta:: Feature 1 Static View + :id: feat_arc_sta__example_feature__archdes_static + :security: YES + :safety: QM + :status: valid + :includes: logic_arc_int__example_feature__archex_logical_interface_1, logic_arc_int__example_feature__archex_logical_interface_2, logic_arc_int__example_feature__archex_logical_interface_3 + :fulfils: feat_req__example_feature__archdes_example_req + :belongs_to: feat__example_feature + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_feature(need(), needs) }} + +.. Logical Interfaces + +.. logic_arc_int:: Logical Interface 1 + :id: logic_arc_int__example_feature__archex_logical_interface_1 + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: feat_req__example_feature__archdes_example_req + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_interface(need(), needs) }} + + +.. logic_arc_int:: Logical Interface 2 + :id: logic_arc_int__example_feature__archex_logical_interface_2 + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: feat_req__example_feature__archdes_example_req + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_interface(need(), needs) }} + + +.. logic_arc_int:: Logical Interface 3 + :id: logic_arc_int__example_feature__archex_logical_interface_3 + :security: YES + :safety: ASIL_B + :status: valid + :fulfils: feat_req__example_feature__archdes_example_req + + +.. Logical Interface Operation + +.. logic_arc_int_op:: Logical Operation 1 + :id: logic_arc_int_op__example_feature__archex_logical_operation_1 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_1 + +.. logic_arc_int_op:: Logical Operation 2 + :id: logic_arc_int_op__example_feature__archex_logical_operation_2 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_1 + +.. logic_arc_int_op:: Logical Operation 3 + :id: logic_arc_int_op__example_feature__archex_logical_operation_3 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_2 + +.. logic_arc_int_op:: Logical Operation 4 + :id: logic_arc_int_op__example_feature__archex_logical_operation_4 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_2 + +.. logic_arc_int_op:: Logical Operation 5 + :id: logic_arc_int_op__example_feature__archex_logical_operation_5 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_3 + +.. logic_arc_int_op:: Logical Operation 6 + :id: logic_arc_int_op__example_feature__archex_logical_operation_6 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_3 + +.. logic_arc_int_op:: Logical Operation 7 + :id: logic_arc_int_op__example_feature__archex_logical_operation_7 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_3 + +.. logic_arc_int_op:: Logical Operation 8 + :id: logic_arc_int_op__example_feature__archex_logical_operation_8 + :security: YES + :safety: ASIL_B + :status: valid + :included_by: logic_arc_int__example_feature__archex_logical_interface_3 + + +Module Viewpoint +================ + +.. mod:: Module 1 + :id: mod__example_feature_archex_module_1 + :security: YES + :safety: ASIL_B + :status: valid + :includes: comp__component_example_1, comp__component_example_2 + + This is Module 1. + +.. mod_view_sta:: Module 1 Static View + :id: mod_view_sta__example_feature__archex_1 + :includes: comp__component_example_1, comp__component_example_2 + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_module(need(), needs) }} + +.. mod:: Module 2 + :id: mod__example_feature_archex_module_2 + :security: YES + :safety: ASIL_B + :status: valid + :includes: comp__component_example_3 + + This is Module 2. + +.. mod_view_sta:: Module 2 Static View + :id: mod_view_sta__example_feature__archex_2 + :includes: comp__component_example_3 + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_module(need(), needs) }} + +Component Architecture File(s) +============================== + +.. comp:: Component 1 + :id: comp__component_example_1 + :security: YES + :safety: ASIL_B + :status: invalid + :implements: logic_arc_int__example_feature__archex_logical_interface_1 + :consists_of: comp__archex_sub_component_1, comp__archex_sub_component_2, comp__archex_sub_component_3 + + Example Component 1 description. + +.. comp:: Component 2 + :id: comp__component_example_2 + :security: YES + :safety: ASIL_B + :status: invalid + :implements: logic_arc_int__example_feature__archex_logical_interface_2 + + Example Component 2 description. + +.. comp:: Component 3 + :id: comp__component_example_3 + :security: YES + :safety: QM + :status: invalid + :implements: logic_arc_int__example_feature__archex_logical_interface_3 + + Example Component 3 description. + +.. comp_arc_sta:: Component 1 Static View + :id: comp_arc_sta__example_feature__archdes_component_1 + :status: valid + :safety: ASIL_B + :security: NO + :belongs_to: comp__component_example_1 + :fulfils: comp_req__example_feature__archex_example_req + + .. needarch:: + :scale: 50 + :align: center + + {{ draw_component(need(), needs) }} + +.. Subcomponents + +.. comp:: Component 1_1 + :id: comp__archex_sub_component_1 + :status: valid + :safety: ASIL_B + :security: NO + :uses: logic_arc_int__example_feature__archex_logical_interface_2 + :implements: logic_arc_int__example_feature__archex_logical_interface_1 + +.. comp:: Component 1_2 + :id: comp__archex_sub_component_2 + :status: valid + :safety: ASIL_B + :security: NO + :uses: logic_arc_int__example_feature__archex_logical_interface_2 + :implements: logic_arc_int__example_feature__archex_logical_interface_2 + +.. comp:: Component 1_3 + :id: comp__archex_sub_component_3 + :status: valid + :safety: ASIL_B + :security: NO + +Requirements for the Example +============================= + +.. Requirements + +.. stkh_req:: Example Stkh Req + :id: stkh_req__example_feature__archdes_example_req + :reqtype: Functional + :safety: ASIL_B + :security: YES + :rationale: needed for archdes example + :status: valid + + The platform shall provide the feature .... + +.. feat_req:: Example Feature Req + :id: feat_req__example_feature__archdes_example_req + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: stkh_req__example_feature__archdes_example_req + :status: valid + :belongs_to: feat__example_feature + + The feature shall provide the functionality to .... + +.. comp_req:: Example Component Req + :id: comp_req__example_feature__archex_example_req + :reqtype: Functional + :security: YES + :safety: ASIL_B + :satisfies: feat_req__example_feature__archdes_example_req + :status: valid + :belongs_to: comp__component_example_2 + + The component shall provide the Logical Operation 4 to get the .. diff --git a/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst b/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst index f5fafeb4aa..eebe43a70a 100644 --- a/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst +++ b/process/process_areas/architecture_design/guidance/architecture_process_reqs.rst @@ -103,7 +103,7 @@ Architectural Views * Sequence Diagram (feat_arc_dyn, comp_arc_dyn) * Interface View (logic_arc_int, real_arc_int) - At the module level, only one additional static view (mod_view_sta) shall be created. + Only an additional view shall be created on module level. Attributes of Architectural Elements ------------------------------------ @@ -158,8 +158,8 @@ Attributes of Architectural Elements * valid * invalid -Traceability to Requirements and AoU ------------------------------------- +Traceability to Requirements +---------------------------- .. gd_req:: Architecture attribute: fulfils :id: gd_req__arch_attr_fulfils @@ -168,16 +168,7 @@ Traceability to Requirements and AoU :complies: std_req__iso26262__support_6425, std_req__aspice_40__SWE-2-BP4 :satisfies: wf__cr_mt_featarch, wf__cr_mt_comparch - Each architectural view (feature/comp_arc_sta, feature/comp_arc_dyn) and interface (logic/real_arc_int) shall be linked to a requirement. - -.. gd_req:: Architecture attribute: fulfils (AoU) - :id: gd_req__arch_attr_fulfils_aou - :status: valid - :tags: manual_prio_1, attribute, mandatory - :complies: std_req__iso26262__support_6425, std_req__aspice_40__SWE-2-BP4 - :satisfies: wf__cr_mt_featarch, wf__cr_mt_comparch - - Each architectural static view (feature/comp_arc_sta) shall be linked to AoUs if the element (feature/comp) fulfills these. + Each architectural element shall be linked to a requirement. .. gd_req:: Architecture traceability :id: gd_req__arch_traceability @@ -259,15 +250,13 @@ Checks for Architectural Design * Functional requirements <-> static / dynamic architectural elements (feat_arc_sta, feat_arc_dyn) * Interface requirements <-> interface architectural elements (logic_arc_int, logic_arc_int_op) -.. gd_req:: Check of Architecture linkage to AoU - :id: gd_req__arch_linkage_aou +.. gd_req:: Check of Architecture consistency Components in modules + :id: gd_req__arch_consistency_model :status: valid - :tags: prio_2_automation, attribute, check + :tags: prio_2_automation, model, check :satisfies: wf__cr_mt_featarch, wf__cr_mt_comparch - It shall be checked that architectural static view (feature/comp_arc_sta) are not linked to its own AoU - ("own" means the AoU linked as "mitigated_by" to the Safety/Security Analysis linked via "violates" to the element, - another equivalent distinguishing is that the "own" AoU are in the same repository whereas the "other" are in another repository). + It shall be checked if all mentioned SW components are available in the modules repository. .. gd_req:: Check of Architecture consistency interfaces in modules :id: gd_req__arch_consistency_interf @@ -275,7 +264,7 @@ Checks for Architectural Design :tags: prio_2_automation, model, check :satisfies: wf__cr_mt_featarch, wf__cr_mt_comparch - It shall be checked if any interface referred by the features (link from Feature to Logical Arc. Interfaces must be defined and exists) is matched by an "implements" link in the Module (from component to Logical Arc. Interface). Additionally it shall be checked if the feature architecture are linked against at least one logical architectural interface. + It shall be checked if all mentioned component interfaces are available in the modules repository. .. gd_req:: Check of Architecture consistency in dynamic architecture :id: gd_req__arch_consistency_dynamic diff --git a/process/process_areas/architecture_design/guidance/component_architecture_template.rst b/process/process_areas/architecture_design/guidance/component_architecture_template.rst index 2fb0b9efd1..4eb5f896de 100644 --- a/process/process_areas/architecture_design/guidance/component_architecture_template.rst +++ b/process/process_areas/architecture_design/guidance/component_architecture_template.rst @@ -16,10 +16,9 @@ Component Architecture Template ############################### .. gd_temp:: Component Architecture Templates - :id: gd_temp__arch_comp - :status: valid - :tags: architecture_design - :complies: std_req__iso26262__software_741, std_req__iso26262__software_742, std_req__iso26262__software_743, std_req__iso26262__software_744, std_req__aspice_40__iic-04-04 + :id: gd_temp__arch_comp + :status: valid + :tags: architecture_design + :complies: std_req__iso26262__software_741, std_req__iso26262__software_742, std_req__iso26262__software_743, std_req__iso26262__software_744, std_req__aspice_40__iic-04-04 - For the content see the - `module template documentation <https://eclipse-score.github.io/module_template/component_architecture_template.html>`__. + For the content see here: :ref:`component_architecture_template` diff --git a/process/process_areas/architecture_design/index.rst b/process/process_areas/architecture_design/index.rst index 8eb215b0ce..6761a261c2 100644 --- a/process/process_areas/architecture_design/index.rst +++ b/process/process_areas/architecture_design/index.rst @@ -27,6 +27,7 @@ Architecture Design architecture_roles architecture_workflow architecture_workproducts + guidance/architecture_modeling_example .. needextend:: docname is not None and "process_areas/architecture_design" in docname diff --git a/process/process_areas/change_management/change_management_concept.rst b/process/process_areas/change_management/change_management_concept.rst index 54a957c9ef..1a2d24c29e 100644 --- a/process/process_areas/change_management/change_management_concept.rst +++ b/process/process_areas/change_management/change_management_concept.rst @@ -45,30 +45,22 @@ Stakeholders for the Change Requests #. :need:`Contributor <rl__contributor>` * In general contributes features and components to grow the project content - * Creates change requests - * Supports all change request activities + * Creates change requests, analyzes changes, implement changes -#. :need:`Architecture Team <rl__architecture_community>` +#. :need:`Committer <rl__committer>` - * Supports all change request activities - * Approves the creation of the change request * Verifies that the contribution including change requests fulfills the project policies - -#. :need:`Platform Team <rl__platform_team>` - - * Supports creation and the analysis of change requests - * Is responsible and approves the implementation and the closure of the feature change request - -#. :need:`Delivery Team <rl__delivery_team>` - - * Is responsible and approves the implementation and the closure of the component change request + * Approves all change request activities besides changes closing + * Is responsible to initiate the the closure of the change request #. :need:`Project Lead <rl__project_lead>` * Supports all change request activities - * Approves the analysis of the change request - * Verifies that the contribution including change requests fulfills the project policies + * Approves the closing of the change request +#. :need:`Safety Manager <rl__safety_manager>`, :need:`Security Manager <rl__security_manager>`, :need:`Quality Manager <rl__quality_manager>` + + * Supports all change request activities Standard Requirements ===================== @@ -111,13 +103,12 @@ Analysis of the Change Request Based on the analysis results decision about the acceptance or rejection must be taken by authorized persons. -Authorized person, as members of the :need:`Platform Team <rl__platform_team>`, includes +Authorized person includes #. :need:`Project Lead <rl__project_lead>` #. :need:`Safety Manager <rl__safety_manager>` #. :need:`Security Manager <rl__security_manager>` #. :need:`Quality Manager <rl__quality_manager>` -#. :need:`Committer <rl__committer>` Further prioritization must be done, e.g. based on release planning. @@ -131,8 +122,7 @@ monitored. The Change Request implementation must be tracked until it is closed. The status of the Change Request must be communicated by the -:need:`Project Lead <rl__project_lead>` (for feature requests) and the lead of the -:need:`Delivery Team <rl__delivery_team>` (for component requests) until +:need:`Project Lead <rl__project_lead>` until the implementation is completed and confirmed. .. _chm_closing: diff --git a/process/process_areas/change_management/change_management_roles.rst b/process/process_areas/change_management/change_management_roles.rst index 1eb37642da..55914f8a7f 100644 --- a/process/process_areas/change_management/change_management_roles.rst +++ b/process/process_areas/change_management/change_management_roles.rst @@ -20,10 +20,11 @@ For change management no additional roles need to be defined. Contributing Roles: * :need:`Contributor <rl__contributor>` - * :need:`Architecture Team <rl__architecture_community>` - * :need:`Platform Team <rl__platform_team>` + * :need:`Committer <rl__committer>` * :need:`Project Lead <rl__project_lead>` - * :need:`Delivery Team <rl__delivery_team>` + * :need:`Safety Manager <rl__safety_manager>` + * :need:`Security Manager <rl__security_manager>` + * :need:`Quality Manager <rl__quality_manager>` A detailed overview of the responsibility for the steps of the requirement process is listed here: diff --git a/process/process_areas/change_management/change_management_workflow.rst b/process/process_areas/change_management/change_management_workflow.rst index 1d6bbf9da1..b715eff60f 100644 --- a/process/process_areas/change_management/change_management_workflow.rst +++ b/process/process_areas/change_management/change_management_workflow.rst @@ -24,8 +24,8 @@ For a detailed explanation of workflows and their role within the process model, :status: valid :tags: change_management :responsible: rl__contributor - :approved_by: rl__architecture_community - :supported_by: rl__platform_team + :approved_by: rl__committer + :supported_by: rl__project_lead, rl__safety_manager, rl__security_manager, rl__quality_manager :input: wp__policies, wp__issue_track_system, wp__feat_request, wp__cmpt_request :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request :contains: gd_guidl__change_change_request, gd_temp__change_feature_request, gd_temp__change_component_request, gd_temp__change_impact_analysis, gd_temp__component_classification, gd_temp__change_decision_record @@ -42,9 +42,9 @@ For a detailed explanation of workflows and their role within the process model, :id: wf__change_analyze_cr :status: valid :tags: change_management - :responsible: rl__architecture_community + :responsible: rl__contributor :approved_by: rl__project_lead - :supported_by: rl__platform_team + :supported_by: rl__committer, rl__safety_manager, rl__security_manager, rl__quality_manager :input: wp__policies, wp__issue_track_system, wp__feat_request, wp__cmpt_request :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request :contains: gd_guidl__change_change_request, gd_temp__change_feature_request, gd_temp__change_component_request, gd_temp__change_impact_analysis, gd_temp__component_classification, gd_temp__change_decision_record @@ -53,21 +53,20 @@ For a detailed explanation of workflows and their role within the process model, The Change Request is analyzed. Until the template is not filled out properly, the Change Request may be set back to - “open” from the :need:`Architecture Team <rl__architecture_community>`. + “open” from the :need:`Committer <rl__committer>`. If the Change Request shall be implemented, the Change Request status is set to "in implementation", otherwise to "rejected". - If the author, :need:`Contributor <rl__contributor>`. of the Change Request decides to - cancel it, thus the status is set to "rejected" too. + The author of the Change Request may cancel it, thus the status is set to "rejected". .. workflow:: Implement and Monitor Change Request :id: wf__change_implement_monitor_cr :status: valid :tags: change_management - :responsible: rl__delivery_team, rl__platform_team - :approved_by: rl__delivery_team, rl__platform_team - :supported_by: rl__project_lead + :responsible: rl__contributor + :approved_by: rl__committer + :supported_by: rl__project_lead, rl__safety_manager, rl__security_manager, rl__quality_manager :input: wp__issue_track_system, wp__feat_request, wp__cmpt_request :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request :contains: gd_guidl__change_change_request, gd_temp__change_feature_request, gd_temp__change_component_request, gd_temp__change_impact_analysis, gd_temp__component_classification, gd_temp__change_decision_record @@ -78,29 +77,22 @@ For a detailed explanation of workflows and their role within the process model, This may require additional activities, including creating ISSUEs and PRs. These are linked to the Change Request and monitored until closure. - The Change Request is done, if all linked activities has been closed and confirmed, - which is done by the approval of the selected codeowners. - - Depending on the type of the Change Request (Feature or Component), different Teams - are responsibly for this workflow. - - For feature: - Before closing the Change Request, :need:`Platform Team <rl__platform_team>` must - check the correctness. + The Change Request is done, if all linked activities has been closed and confirmed. + Before closing the Change Request, :need:`Committer <rl__committer>` must check the + correctness. - For component: - Before closing the Change Request, :need:`Delivery Team <rl__delivery_team>` must - check the correctness. + The :need:`Committer <rl__committer>` may still reject it, thus the status is set to + "rejected". - The responsible team may still reject it, thus the status is set to "rejected". + The author of the Change Request may cancel it, thus the status is set to "rejected". .. workflow:: Close Change Request :id: wf__change_close_cr :status: valid :tags: change_management - :responsible: rl__delivery_team, rl__platform_team - :approved_by: rl__delivery_team, rl__platform_team - :supported_by: rl__project_lead + :responsible: rl__committer + :approved_by: rl__project_lead + :supported_by: rl__safety_manager, rl__security_manager, rl__quality_manager :input: wp__issue_track_system, wp__feat_request, wp__cmpt_request :output: wp__issue_track_system, wp__feat_request, wp__cmpt_request :contains: gd_guidl__change_change_request, gd_temp__change_feature_request, gd_temp__change_component_request, gd_temp__change_impact_analysis, gd_temp__component_classification, gd_temp__change_decision_record @@ -108,20 +100,10 @@ For a detailed explanation of workflows and their role within the process model, The Change Request is closed. - Depending on the type of the Change Request (Feature or Component), different Teams - are responsibly for this workflow. - - For feature: - The Change Request is closed only, if the implementation is sufficient. That is verified - by the :need:`Platform Team <rl__platform_team>` finally, especially the selected - codeowners of the team must approve. - - For component: The Change Request is closed only, if the implementation is sufficient. That is verified - by the :need:`Delivery Team <rl__delivery_team>` finally, especially the selected - codeowners of the team must approve. + by the :need:`Committer <rl__committer>` finally. - Otherwise the responsible teams keeps the status "in implementation". + Otherwise the :need:`Committer <rl__committer>` keeps the status "in implementation". .. needextend:: docname is not None and "process_areas/change_management" in docname :+tags: change_management diff --git a/process/process_areas/change_management/guidance/change_management_guideline.rst b/process/process_areas/change_management/guidance/change_management_guideline.rst index f3657d3361..5b63575605 100644 --- a/process/process_areas/change_management/guidance/change_management_guideline.rst +++ b/process/process_areas/change_management/guidance/change_management_guideline.rst @@ -43,9 +43,7 @@ to provide e.g. a change request issue template. .. note:: An example template for the Issue Tracking System in GitHub (`GitHub Issues <https://github.com/features/issues>`_) can be found here: - `Issue Template Change (Feature) Request <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/1a_FeatureRequest.yml>`_ - or - `Issue Template Change (Component) Request <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/1b_ComponentenRequest.yml>`_ + `Issue Template Change Request <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/3-change.yml>`_ Improvements including Process Improvements are not Change Requests. The project's selected Issue Tracking System may also provide a template for improvements, @@ -54,7 +52,7 @@ e.g. an improvement issue template. .. note:: An example template for the Issue Tracking System in GitHub (`GitHub Issues <https://github.com/features/issues>`_) can be found here: - `Issue Template Improvement <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/4_Task.yml>`_ + `Issue Template Improvement <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/2-improvement.yml>`_ Attributes @@ -91,19 +89,19 @@ This section describes in detail which steps need to be performed for a Change R * - :ref:`1. <chm_create_change_request>` - Create Change Request - :need:`[[title]] <rl__contributor>` - - :need:`[[title]] <rl__architecture_community>` + - :need:`[[title]] <rl__committer>` * - :ref:`2. <chm_analyze_change_request>` - Analyze Change Request - - :need:`[[title]] <rl__architecture_community>` + - :need:`[[title]] <rl__contributor>` - :need:`[[title]] <rl__project_lead>` * - :ref:`3. <chm_imp_mon_change_request>` - Implement and Monitor Change Request - - :need:`[[title]] <rl__platform_team>`, :need:`[[title]] <rl__delivery_team>` - - :need:`[[title]] <rl__platform_team>`, :need:`[[title]] <rl__delivery_team>` + - :need:`[[title]] <rl__contributor>` + - :need:`[[title]] <rl__committer>` * - :ref:`4. <chm_close_change_request>` - Close Change Request - - :need:`[[title]] <rl__platform_team>`, :need:`[[title]] <rl__delivery_team>` - - :need:`[[title]] <rl__platform_team>`, :need:`[[title]] <rl__delivery_team>` + - :need:`[[title]] <rl__committer>` + - :need:`[[title]] <rl__project_lead>` .. _chm_create_change_request: @@ -130,13 +128,11 @@ automatically included or copied by the different users. .. note:: For the Issue Tracking System in GitHub, there is a template created, which can be be found here: - `Issue Template Change (Feature) Request <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/1a_FeatureRequest.yml>`_ - or - `Issue Template Change (Component) Request <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/1b_ComponentenRequest.yml>`_ + `Issue Template Change <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/3-change.yml>`_ .. note:: A Change Request Example based on that template is here: - `Example Change Request <https://github.com/eclipse-score/process_description/issues/629>`_ + `Example Change Request <https://github.com/eclipse-score/process_description/issues/168>`_ It is expected, that @@ -177,8 +173,8 @@ When ready to review and to analyze, the author sets the status to "in review" m Analyze Change Request ---------------------- The projects :need:`[[title]] <rl__project_lead>` supported by -:need:`[[title]] <rl__platform_team>` (includes Safety, Security and Quality Manager) analyzes the change -request together with the :need:`[[title]] <rl__architecture_community>` and takes a decision with +:need:`[[title]] <rl__committer>` (includes Safety, Security and Quality Manager) analyzes the change +request together with the :need:`[[title]] <rl__contributor>` and takes a decision with the submitting/authoring contributor for accepting or rejecting it. The analysis will start by reviewing all the information given during the creation of the @@ -198,9 +194,6 @@ should be closed, shall be defined. Optionally, the corresponding milestone can If accepted, :need:`[[title]] <rl__contributor>` can start with the implementation of the Change Request. -Depending of feature or component requests, :need:`[[title]] <rl__platform_team>` or -:need:`Delivery Team <rl__delivery_team>` will be empowered for the implementation, -which will contain the :need:`[[title]] <rl__contributor>`. The author has the freedom to cancel the change request at any time by setting the status to "rejected". @@ -215,9 +208,8 @@ The author has the freedom to cancel the change request at any time by setting t Implement and Monitor Change Request ------------------------------------ -If accepted, the either the :need:`[[title]] <rl__platform_team>` (feature) or -:need:`Delivery Team <rl__delivery_team>` (component) initiates the implementation -of the change. +If accepted, the projects :need:`[[title]] <rl__committer>` initiates the implementation +of the change together with the :need:`[[title]] <rl__contributor>`. The description may reflect details for the implementation. @@ -250,12 +242,10 @@ When ready to implement, the author sets the status to "in implementation" manua | * The **Create a branch** action may used to create automatically a linked pull request During the implementation of the change the responsible lead :need:`[[title]] <rl__project_lead>` -or the assigned lead of the :need:`Delivery Team <rl__delivery_team>` reports regularly the status to the affected projects teams. -The :need:`[[title]] <rl__contributor>` as an author has the freedom to cancel the -change request at any time by setting the status to "rejected". +The author has the freedom to cancel the change request at any time by setting the status to "rejected". .. _chm_close_change_request: @@ -263,17 +253,17 @@ change request at any time by setting the status to "rejected". Close Change Request -------------------- -During implementation the responsible team (:need:`[[title]] <rl__platform_team>` -or :need:`Delivery Team <rl__delivery_team>`) monitors all activities linked to +During implementation the :need:`[[title]] <rl__contributor>` monitors all activities linked to the change, until they are closed. -The team finally checks if the Change Request implementation +:need:`[[title]] <rl__committer>` finally checks if the Change Request implementation is sufficient before the status is changed to closed. To check, if it is sufficient, :need:`Change Request Checklist <gd_chklst__change_cr_review>` can be used. Further the effectiveness of the implemented measure is confirmed and the availability of the required reports, as well as verification results, if applicable. -When confirmed, the team sets the status to "closed" manually, if not done automatically. +When confirmed, the :need:`[[title]] <rl__project_lead>` +sets the status to "closed" manually, if not done automatically. .. note:: | For the Change Request Example: @@ -282,7 +272,8 @@ When confirmed, the team sets the status to "closed" manually, if not done autom | * The PR status must be changed to **Merged** | * The combination of issue status **Closed** and "Process Development Community" status **Done** and the pull request status **Merged** defines the status **closed** -The teams has the freedom to reject it at any time by setting the status to "reject". +:need:`[[title]] <rl__committer>` has the freedom to reject it at any time by setting the status +to "reject". Tailoring ========= diff --git a/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml b/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml new file mode 100644 index 0000000000..145506f1f7 --- /dev/null +++ b/process/process_areas/implementation/_assets/dd_example_ex_dyn.puml @@ -0,0 +1,30 @@ +/' + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* +'/ +.. + +@startuml + +title Sequence Diagram - unit1 & unit2 + +participant "unit1" as unit1 +participant "unit2" as unit2 + +unit1 -> unit2 : api1 +unit2 --> unit1 : int + +unit1 -> unit2 : api3 +unit2 --> unit1 : int + +@enduml diff --git a/process/process_areas/implementation/_assets/dd_example_ex_sta.puml b/process/process_areas/implementation/_assets/dd_example_ex_sta.puml new file mode 100644 index 0000000000..aead29a316 --- /dev/null +++ b/process/process_areas/implementation/_assets/dd_example_ex_sta.puml @@ -0,0 +1,37 @@ +/' + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* +'/ +.. + +@startuml + +title Static View - dd example + +skinparam component { + BackgroundColor<<component>> white +} + +skinparam rectangle { + BackgroundColor<<unit>> green +} + +' Define Features +component "component1" <<component>> { + rectangle "unit1" as unit1 <<unit>> + rectangle "unit2" as unit2 <<unit>> +} + +unit1 ..> unit2 : uses + +@enduml diff --git a/process/process_areas/implementation/_assets/detailed_design_example.rst b/process/process_areas/implementation/_assets/detailed_design_example.rst new file mode 100644 index 0000000000..420fbc1078 --- /dev/null +++ b/process/process_areas/implementation/_assets/detailed_design_example.rst @@ -0,0 +1,98 @@ +.. + # ******************************************************************************* + # Copyright (c) 2025 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + +Example: Detailed Design +======================== + +Description +----------- + + - component is split into two units unit1 and unit2 based on single responsibility principle. + - unit2 is injected to unit1 one via dependency injection for testability. + + +Static Diagrams for Unit Interactions +------------------------------------- + +.. dd_sta:: dd example static + :id: dd_sta__example_feature__doc_approver + :security: NO + :safety: ASIL_B + :status: valid + :implements: comp_req__example_feature__archex_example_req + :satisfies: comp_arc_sta__example_feature__archdes_component_1 + :includes: sw_unit__example_feature__unit1, sw_unit__example_feature__unit2 + +.. uml:: dd_example_ex_sta.puml + +Dynamic Diagrams for Unit Interactions +-------------------------------------- + +.. dd_dyn:: dd example dynamic + :id: dd_dyn__example_feature__dd_example_dynamic + :security: NO + :safety: ASIL_B + :status: valid + :implements: comp_req__example_feature__archex_example_req + :satisfies: comp_arc_sta__example_feature__archdes_component_1 + +.. uml:: dd_example_ex_dyn.puml + +Units within the Component +-------------------------- +From here onwards the needs are defined in the source code and will be automatically generated and linked via doxygen. + +SW Unit +******* + +.. sw_unit:: unit1 + :id: sw_unit__example_feature__unit1 + :security: NO + :safety: ASIL_B + :status: valid + + Placeholder for the description that will be generated from doxygen + +Interface +********* + +.. sw_unit_int:: int1 + :id: sw_unit_int__example_feature__unit1_int1 + :security: NO + :safety: ASIL_B + :status: valid + + Placeholder for the description that will be generated from doxygen + +SW Unit +******* + +.. sw_unit:: unit2 + :id: sw_unit__example_feature__unit2 + :security: NO + :safety: ASIL_B + :status: valid + + Placeholder for the description that will be generated from doxygen + +Interface +********* + +.. sw_unit_int:: int2 + :id: sw_unit_int__example_feature__unit2_int2 + :security: NO + :safety: ASIL_B + :status: valid + + Placeholder for the description that will be generated from doxygen diff --git a/process/process_areas/implementation/guidance/implementation_guideline.rst b/process/process_areas/implementation/guidance/implementation_guideline.rst index 008990c066..41a1dc54ee 100644 --- a/process/process_areas/implementation/guidance/implementation_guideline.rst +++ b/process/process_areas/implementation/guidance/implementation_guideline.rst @@ -21,8 +21,7 @@ Guideline :complies: std_req__iso26262__software_744, std_req__iso26262__software_841, std_req__iso26262__software_842, std_req__aspice_40__iic-11-05 This document describes the general guidance for implementation based on the concept which is defined :need:`[[title]]<doc_concept__imp_concept>`. -An example of a Detailed Design is maintained in the -`module template documentation <https://eclipse-score.github.io/module_template/detailed_design_example.html>`_. +The concept includes an example of a Detailed Design. Workflow for Implementation =========================== diff --git a/process/process_areas/implementation/index.rst b/process/process_areas/implementation/index.rst index d2c26a8473..be3d1aec34 100644 --- a/process/process_areas/implementation/index.rst +++ b/process/process_areas/implementation/index.rst @@ -26,6 +26,7 @@ Implementation implementation_roles implementation_workflow implementation_workproducts + _assets/detailed_design_example.rst .. needextend:: docname is not None and "process_areas/implementation" in docname :+tags: implementation diff --git a/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst b/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst index e47850f52e..77ea497da0 100644 --- a/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst +++ b/process/process_areas/problem_resolution/guidance/problem_resolution_checklist.rst @@ -48,49 +48,45 @@ Problem Checklist - * - 3 - - Does the Problem report have a UID as specified? + - Does the Problem report has a UID as specified? - * - 4 - - Does the Problem report have a title as specified? + - Does the Problem report has a title as specified? - * - 5 - - Does the Problem report have a status as specified? + - Does the Problem report has a status as specified? - * - 6 - - Does the Problem report have a submitter as specified? + - Does the Problem report has a submitter as specified? - * - 7 - - Does the Problem report have a description as specified? + - Does the Problem report has a description as specified? - * - 8 - - Does the Problem report have a stakeholder as specified? + - Does the Problem report has stakeholder as specified? - * - 9 - - Does the Problem report have a category as specified? + - Does the Problem report has a category as specified? - * - 10 - - Does the Problem report have a classification as specified? + - Does the Problem report has a classification as specified? - * - 11 - - Does the Problem report have the affected release versions as specified? + - Does the Problem report has a expected closure date as specified? - * - 12 - - Does the Problem report have an expected closure date as specified? + - Does the Problem report has the solution measures specified, verified and reported? - * - 13 - - Does the Problem report have the solution measures specified, verified and reported? - - - - * - 14 - If the Problem report is not closed and pending solution measures are open, escalated to the :need:`rl__safety_manager` or :need:`rl__security_manager`? - diff --git a/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst b/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst index d0be218b83..9229a17969 100644 --- a/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst +++ b/process/process_areas/problem_resolution/guidance/problem_resolution_guideline.rst @@ -36,7 +36,7 @@ in project's selected Issue Tracking System: :need:`[[title]]<gd_temp__problem_t .. note:: An example template for the Issue Tracking System in GitHub (`GitHub Issues <https://github.com/features/issues>`_) can be found here: - `Issue Template Bugfix <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/5_Bug.yml>`_ + `Issue Template Bugfix <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/1-bugfix.yml>`_ Attributes ---------- @@ -102,14 +102,14 @@ from the different users. .. note:: For the Issue Tracking System in GitHub, there is a template created, which can be be found here: - `Issue Template Bugfix <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/5_Bug.yml>`_ + `Issue Template Bugfix <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/1-bugfix.yml>`_ .. note:: A Problem Report Example based on that template is here: - `Example Problem Report <https://github.com/eclipse-score/process_description/issues/631>`_ + `Example Problem Report <https://github.com/eclipse-score/process_description/issues/124>`_ .. note:: - A Problem Report Example 2 based on an older version template is here: + A Problem Report Example 2 based on that template is here: `Example Problem Report 2 <https://github.com/eclipse-score/process_description/issues/126>`_ It is expected, that the UID will be provided automatically by the Issue Tracking System. @@ -134,13 +134,11 @@ If safety is affected, the ASIL classification should be added, if applicable. The problem should be classified according minor, major, critical or blocker. -The affected versions of the release should be documented. After detection of the -problem, checking the affected versions is critical to understand the impact of the -problem. Thus document the first affected version and the last affected version. +The affected version of the release should be documented, where the problem was detected. .. note:: | For the Problem Report Example: - | * The UID is provided by the Issue Tracking System as: **#631** + | * The UID is provided by the Issue Tracking System as: **#124** | * The status of the issue is provided by the Issue Tracking System as: **Open** | * The submitter is provided by the Issue Tracking System as: **masc2023** | * The title contains the main root cause, missing safety/security attribute @@ -149,8 +147,7 @@ problem. Thus document the first affected version and the last affected version. | * Further supporting information is added as the link to the official feature request template which makes it reproducible | * Checkboxes are selected to highlight, that Safety and Security is affected, no further classification, as the project is defined as ASIL B | * The problem classification is provided as minor - | * The first affected version is provided: *pre-0.5* - | * The last affected version is provided: *0.5* + | * The affected version is provided: *pre-0.5* When ready to review and to analyze, the author sets the status to "in review" manually. @@ -180,32 +177,12 @@ If applicable, the features affected should be identified too. The description shall reflect the result of the analysis. -Topics to checked (critical topics are marked with x): - -- [x] Is the problem description clear and detailed enough to understand the problem and its impact? -- [x] Is the problem root cause clearly described? -- [x] Is the problem impact clearly described? -- [ ] Is notification of affected parties required? If yes, are the affected parties notified? -- [ ] Are there any proposed solutions provided? -- [ ] Are there any further linked issues or pull requests provided? -- [x] Is the error occurrence rate provided? If yes, is it high enough to accept the problem? -- [x] Is the problem reproducible? -- [ ] Are there any further supporting information provided? -- [x] Is the problem classification correct? -- [x] Is information for the affected version of the release provided? If yes, is it correct? -- [ ] Is the information for the expected closure version provided? If yes, is it correct? -- [x] Is the problem affecting safety or security? If yes, is the classification correct? - -The analysis phase can not be closed, until all critical topics are -clarified and provided in the description. If not, the problem report should be rejected -and closed with the reason "Closed as not planned". - .. note:: | For the Problem Report Example: | * The descriptions has a section for the analysis results: **Accepted** | * The stakeholder are provided using Assignees field: **masc2023** - | * The expected fix version is provided: *0.6* - | * The "Milestone" is provided: **Release v0.6 - Maturity Level 2** + | * The expected closure version is provided: *0.5* + | * The "Milestone" is provided: **Release 2.0.0 - Maturity Level 2** | * Feature identification is not applicable for this example, so no label is set, beside **bug** If accepted, :need:`[[title]] <rl__contributor>` can start with the initiation of the diff --git a/process/process_areas/process_management/guidance/process_management_guideline.rst b/process/process_areas/process_management/guidance/process_management_guideline.rst index d17df9b938..867f6fca77 100644 --- a/process/process_areas/process_management/guidance/process_management_guideline.rst +++ b/process/process_areas/process_management/guidance/process_management_guideline.rst @@ -20,9 +20,7 @@ Guideline :id: gd_guidl__process_management :status: valid :tags: process_management - :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__iso26262__management_5426, std_req__aspice_40__gp-311, std_req__aspice_40__iic-10-00, std_req__aspice_40__iic-15-54, - std_req__aspice_40__gp-211, std_req__aspice_40__gp-212, std_req__aspice_40__gp-213, std_req__aspice_40__gp-214, std_req__aspice_40__gp-215, std_req__aspice_40__gp-216, std_req__aspice_40__gp-224, - std_req__aspice_40__gp-312, std_req__aspice_40__gp-313, std_req__aspice_40__gp-314, std_req__aspice_40__gp-321, std_req__aspice_40__gp-322, std_req__aspice_40__gp-323, std_req__aspice_40__gp-324 + :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__iso26262__management_5426, std_req__aspice_40__gp-311, std_req__aspice_40__iic-10-00, std_req__aspice_40__iic-15-54 This document describes the general guidances for Process Management based on the concept which is defined :need:`[[title]]<doc_concept__process_management>`. @@ -117,7 +115,7 @@ Monitor/Improve Process If potential improvements are detected, the :need:`[[title]] <rl__contributor>` triggers an ISSUE for improvement by using the -`Issue Template Improvement <https://github.com/eclipse-score/.github/blob/main/.github/ISSUE_TEMPLATE/4_Task.yml>`_. +`Issue Template Improvement <https://github.com/eclipse-score/process_description/blob/main/.github/ISSUE_TEMPLATE/2-improvement.yml>`_. The potential improvement is discussed during the public Process Community Meetings and if decided to implement, a pull request to follow :ref:`pm_create_maintain_strategy` diff --git a/process/process_areas/process_management/guidance/process_management_templates.rst b/process/process_areas/process_management/guidance/process_management_templates.rst index 8235ffd31c..1514117a9b 100644 --- a/process/process_areas/process_management/guidance/process_management_templates.rst +++ b/process/process_areas/process_management/guidance/process_management_templates.rst @@ -197,7 +197,7 @@ Templates :id: gd_temp__process_standard_wp :status: valid :tags: process_management - :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__aspice_40__gp-311, std_req__aspice_40__gp-221, std_req__aspice_40__gp-222, std_req__aspice_40__gp-223 + :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__aspice_40__gp-311 .. code-block:: rst @@ -211,7 +211,7 @@ Templates :id: gd_temp__process_document :status: valid :tags: process_management - :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__aspice_40__gp-311, std_req__aspice_40__gp-221, std_req__aspice_40__gp-222, std_req__aspice_40__gp-223 + :complies: std_req__iso26262__management_5421, std_req__iso26262__management_5422, std_req__aspice_40__gp-311 .. code-block:: rst diff --git a/process/process_areas/quality_management/guidance/quality_review_checklist.rst b/process/process_areas/quality_management/guidance/quality_review_checklist.rst index e08df7d4c6..6fd1d6c8d5 100644 --- a/process/process_areas/quality_management/guidance/quality_review_checklist.rst +++ b/process/process_areas/quality_management/guidance/quality_review_checklist.rst @@ -395,9 +395,9 @@ Software Verification plan review checklist template - Check if the software quality criteria are clearly defined and understood by all relevant parties. Have a look on the reports to verify if the criteria are fulfilled. - * - SWV_00_05 - - Are all used tools described and included in the project's tool list? + - Are all used tools described? - - - Check if all tools used for software verification are clearly described, listed in the project's tool list, and used as defined. Are additional tools used that are not described or missing from the project's tool list? + - Check if all tools used for software verification are clearly described and used as defined. Are additional tools used that are not described? - * - SWV_00_06 - Are verification setups and variants described, documented and up to date? @@ -452,7 +452,7 @@ Software Development Plan review checklist template - Check if the software configuration guideline is followed and if deviations have an approved argumentation by the CODEOWNER. - * - SDP_00_05 - - Are all SW development tools described and included in the project's tool list? + - Are all SW development tools described? - - - Check if all tools used for software development are clearly described and listed in the project's tool list. If possible check if they are used as defined. + - Check if all tools used for software development are clearly described. If possible check if they are used as defined. - diff --git a/process/process_areas/quality_management/quality_getstrt.rst b/process/process_areas/quality_management/quality_getstrt.rst index c3365ec0de..067f10cbdc 100644 --- a/process/process_areas/quality_management/quality_getstrt.rst +++ b/process/process_areas/quality_management/quality_getstrt.rst @@ -40,7 +40,7 @@ The workflows are defined in the :ref:`quality_workflows` section. The following For every release, the following workflows are executed: * Create/Maintain Quality Management Plan -* Verify/Approve Platform Release (described in the :ref:`release_workflows` section) +* Verify/Approve Platform Release * Execute Platform Process Audit * Execute Execute Feature Contribution Conformance Checks * Execute Work Product Reviews diff --git a/process/process_areas/quality_management/quality_workflow.rst b/process/process_areas/quality_management/quality_workflow.rst index dacc50fdbb..8d568387ca 100644 --- a/process/process_areas/quality_management/quality_workflow.rst +++ b/process/process_areas/quality_management/quality_workflow.rst @@ -33,6 +33,18 @@ For a detailed explanation of workflows and their role within the process model, | The Quality Management Plan is created and maintained by the :need:`rl__quality_manager`. +.. workflow:: Verify/Approve Platform Release + :id: wf__vy_ap_pltrelease + :status: valid + :responsible: rl__quality_manager + :approved_by: rl__project_lead + :input: wp__qms_plan + :output: wp__platform_sw_release_note + :contains: gd_guidl__qlm_plan_definitions, gd_chklst__review_checklist + :has: doc_concept__quality_process, doc_getstrt__quality_process + + | The project/platform release is verified and approved. + .. workflow:: Execute Platform Process Audit :id: wf__exe_pltprocess_audit :status: valid diff --git a/process/process_areas/release_management/release_roles.rst b/process/process_areas/release_management/release_roles.rst index c22bc24838..f45ba2c002 100644 --- a/process/process_areas/release_management/release_roles.rst +++ b/process/process_areas/release_management/release_roles.rst @@ -21,7 +21,6 @@ Contributing Roles: * :need:`Committer <rl__committer>` * :need:`Project Lead <rl__project_lead>` - * :need:`Release Team <rl__release_team>` A detailed overview of the responsibility for the steps of the Release Management process is listed here: :need:`doc_concept__rel_process` diff --git a/process/process_areas/release_management/release_workflow.rst b/process/process_areas/release_management/release_workflow.rst index c5262b4fc5..94edd790ae 100644 --- a/process/process_areas/release_management/release_workflow.rst +++ b/process/process_areas/release_management/release_workflow.rst @@ -83,39 +83,12 @@ For a detailed explanation of workflows and their role within the process model, The platform handbook is prepared and approved by the project lead circle. It may be updated later in case of bugs found after the release is published. - -.. workflow:: Verify/Approve Module Release - :id: wf__vy_ap_modrelease - :status: valid - :responsible: rl__release_team - :approved_by: rl__project_lead, rl__quality_manager - :input: wp__module_sw_release_plan - :output: wp__module_sw_release_note - :contains: gd_temp__rel_mod_rel_note, gd_guidl__rel_management - :has: doc_concept__rel_process, doc_getstrt__release_process - - | The module release is verified and approved. - - -.. workflow:: Verify/Approve Platform Release - :id: wf__vy_ap_pltrelease - :status: valid - :responsible: rl__release_team - :approved_by: rl__project_lead, rl__quality_manager - :input: wp__qms_plan, wp__platform_sw_release_plan - :output: wp__platform_sw_release_note - :contains: gd_guidl__qlm_plan_definitions, gd_chklst__review_checklist, gd_temp__rel_plat_rel_note, gd_guidl__rel_management - :has: doc_concept__quality_process, doc_getstrt__quality_process, doc_concept__rel_process, doc_getstrt__release_process - - | The project/platform release is verified and approved. - - RAS(IC) for Release Management: ******************************* .. needtable:: RASIC Overview for Release Management - :tags: release_management - :filter: "release_management" in tags and type == "workflow" and is_external == False + :tags: release_mgt + :filter: "release_mgt" in tags and type == "workflow" and is_external == False :style: table :sort: status :columns: id as "Activity";responsible as "Responsible";approved_by as "Approver";supported_by as "Supporter" diff --git a/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst b/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst index dfd1ce1e99..e5a3aa835f 100644 --- a/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst +++ b/process/process_areas/requirements_engineering/guidance/requirements_guideline.rst @@ -29,7 +29,7 @@ General Hints Templates --------- -*Need* templates displaying the correct syntax and attribute definition are provided for each requirement type. For VScode, code snippets are included in the workspace settings which will provide in-place the definition of requirements including all mandatory attributes: +*Need* templates displaying the correct syntax and attribute definition are provided for each requirement type. For VScode code snippets are included in the workspace settings which will provide in-place the definition of requirements including all mandatory attributes: .. list-table:: Overview :header-rows: 1 @@ -72,12 +72,12 @@ For all requirements following mandatory attributes are defined: :colwidths: 30 -* Title and description: For formulating requirements, the following template shall be used :need:`[[title]]<gd_temp__req_formulation>` +* Title and description: For the formulation of requirements following template shall be used :need:`[[title]]<gd_temp__req_formulation>` * ID: The naming convention for the ID is defined for every project in a central place (e.g. in the general contributor's guidelines) -* Furthermore the requirements need to be versioned. Therefore, a hash value of the requirement will to be calculated. The concept is described: :ref:`traceability concept for requirements` +* Furthermore the requirements need to be versioned. Therefore a hash value of the requirement will to be calculated. The concept is described: :ref:`traceability concept for requirements` * For the remaining attributes only predefined values can be used. A more detailed description can be found here: :ref:`attributes of the requirements` -* Note that "rationale" is only mandatory for Stakeholder Requirements. -* Process requirements do not need the security and safety attributes because these can be derived from the standards they comply with. Type attributes are also unnecessary, as these requirements are always non‑functional. +* Note that "rationale" is only mandatory for Stakeholder Requirements ... +* and process requirements do not need security and safety because these can be derived from the standards they comply to (as well type attributes as these would all be "Non-functional") Checks ------ @@ -141,7 +141,7 @@ For this the following templates are available: * :ref:`Requirement Templates <requirement templates>` -Note: The project's way of contributing new content (how to branch, how to commit, how to merge with the selected version management tool) +Note: The projec's way of contributing new content (how to branch, how to commit, how to merge with the selected version management tool) has to be documented in a central place, stick to this guideline also for the requirement contributions. .. _review_parent_requirement: @@ -149,7 +149,7 @@ has to be documented in a central place, stick to this guideline also for the re Review parent requirement ------------------------- -As soon as the parent requirements are in a mature state, they can be :ref:`reviewed <review_concept>` and merged into the main branch of the main project's repository. However this is not the formal inspection of the requirements, this will follow in an upcoming step. +As soon as the parent requirements are in a mature state it can be :ref:`reviewed <review_concept>` and merged into the main branch of the main project's repository. However this is not the formal inspection of the requirements, this will follow in an upcoming step. Following roles should be included in the review: @@ -162,7 +162,7 @@ Following roles should be included in the review: Derive child requirement and establish traceability --------------------------------------------------- -In an upcoming step, the child requirements shall be derived from the parent requirements. Feature requirements shall be placed in the main project's repository, while component requirements shall be placed in the module's repository. During this process the derived requirements shall also be linked according to the defined traceability matrix to the parent requirements. +In an upcoming step the child requirements shall be derived from the parent requirements. Feature requirements shall be placed in the main project's repository again, while component requirements shall be placed in the module's repository. During this process the derived requirements shall also be linked according to the defined traceability matrix to the parent requirements. For this the following templates are available: @@ -184,7 +184,7 @@ As soon as also the child requirements are in a mature state they can be :ref:`r Generate linkage document ------------------------- -As parent and child requirements are now available, the linkage of the requirements can be established. This should be performed as described in :ref:`coverage_of_requirements` +As parent and child requirements are now available the linkage of the requirements can be established. This should be performed as described in :ref:`coverage_of_requirements` .. _formal_requirement_review: @@ -207,13 +207,6 @@ Workflow for Creating and Linking Assumption of Use (AoU) ========================================================= An AoU is a category of requirement which is part of a safety concept of an architectural element (and thus it is confirmed by a safety analysis). -As such a part of a safety concept it is aimed to avoid or detect safety relevant failures of the components. -The need for an AoU can arise in every development step, starting from requirements creation, but the main trigger for these is informal and formal safety analysis, -see :need:`doc_concept__safety_analysis`. -AoU handling is described in the requirements process mainly because AoU have very similar content and are treated almost like requirements, -i.e. they are inspected, fulfilled by architecture, mitigate failure modes from safety analysis and are verified by test. -Do not mistake AoUs to be more formal "user manuals", describing the proper use of a component's API so as to avoid error returns. -Error returns are perfectly ok from a safety point of view, if this does not mean that a safety requirement is violated. As an AoU can not be fulfilled by the architecture element (e.g. component) itself, it needs to be fulfilled by the user of the element. AoU created on SW-platform level are also coming from the scope of the project (i.e. the knowledge which safety activities are not part of a project) or are defining general assumptions every user and/or every module in the platform has to fulfill. @@ -222,13 +215,13 @@ In Safety Elements out of Context (SEooC) the AoUs are part of the safety manual In this workflow (as it describes SEooC development) these AoUs are created both project internal and project external -- internal: For AoU which arise internally (i.e. from project specific architecture), the template is similar to the one for feature/component requirements. The main difference is that it is defined such that a requirement "satisfies" a parent requirement, but an AoU is not. Safety Analysis results must be "mitigated_by" an AoU or requirement (see picture below). -- external: If externally provided SEooCs are integrated into the platform (e.g. a qualified Operating System). For these AoUs the sentence template cannot be taken into account, as these may be imported from an external safety manual. It is also not possible to link those to other platform development artifacts via the attribute "mitigates". +- internal: For AoU which arise internally (i.e. from project specific architecture), the template is almost identical to the one for feature/component requirements. The only difference is that it is defined such that the attribute "satisfies" is replaced with the attribute "mitigates" (see picture below). +- external: if externally provided SEooCs are integrated into the platform (e.g. a qualified Operating System). For these AoUs the sentence template cannot be taken into account, as these may be imported from an external safety manual. It is also not possible to link those to other platform development artifacts via the attribute "mitigates". AoUs can be of different class and shall be handled by tracing those -* to Feature/Component (architecture) (via fulfills), if those are on (external) Component Level and can be fulfilled by (internal) Feature/Component -* to Stakeholder Requirements (via covers), if AoU are of general nature and can be fulfilled by platform +* to Feature/Component (via satisfies), if those are on (external) Component Level and can be fulfilled by (internal) Feature/Component +* to Stakeholder Requirements (via satisfies), if AoU are of general nature and can be fulfilled by platform * or by containing those in Platform(s) Safety Manual(s), if AoU cannot be fulfilled by platform or its components (alone) but need to be satisfied by the user of the platform @@ -243,8 +236,8 @@ AoUs can be of different class and shall be handled by tracing those Note that the component level displayed in green shows two components - on the right (dark green) the one which is exporting AoU to be fulfilled by others, on the left (light green) the component which fulfills and exports AoU. Internal component's AoU can also be fulfilled (and linked) by other internal components, this is not depicted here, but would be quite the same with one exception: -External component's AoUs which cannot be fulfilled by the platform alone are contained in the platform safety manual, whereas the internal component's AoUs -are part of the module safety manual. +External component's AoUs which cannot be fulfilled by the platform alone are contained in the platform Safety Manual, whereas the internal component's AoUs +are part of the Module Safety Manual. Like other requirements also an AoU needs to be verified - but by the user of the feature/component. To improve the usability of a feature/component, its responsible team should already provide @@ -256,7 +249,7 @@ Special cases Requirements for future (or past) milestones -------------------------------------------- -A project release is always consistent, i.e. all linked development artifacts must be non-contradictory +A project release is always consistent, i.e. all development artefacts linked to each other do not contradict each other and complete, i.e. all requirements are derived into dependent work products down to the implementation. This is also the case for the selection of the scope of a platform by feature flags, as these select a part of the platform but this part is complete. diff --git a/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst b/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst index 1c28e80633..b42fa7ebce 100644 --- a/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst +++ b/process/process_areas/requirements_engineering/guidance/requirements_process_reqs.rst @@ -192,21 +192,6 @@ Process Requirement Linkage * workflow or stakeholder requirements <- process requirements * process requirements or stakeholder requirements <- tool requirements -.. gd_req:: Requirement Linkage to AoU - :id: gd_req__req_linkage_aou - :status: valid - :tags: manual_prio_1, attribute - :complies: std_req__iso26262__support_6432, std_req__aspice_40__SWE-1-BP5 - :satisfies: wf__req_feat_req, wf__req_comp_req - - Requirements shall be linked to AoU via the attribute covers, if they already cover these. - - * AoU <- feature requirements - * AoU <- component requirements - - Note: "Already" illustrates the understanding that AoU come from used (external) components - which appear later in the development (after deciding an architecture). - .. gd_req:: Requirement Traceability :id: gd_req__req_traceability :status: valid diff --git a/process/process_areas/requirements_engineering/guidance/requirements_templates.rst b/process/process_areas/requirements_engineering/guidance/requirements_templates.rst index 0ee95a34a8..624c3205dd 100644 --- a/process/process_areas/requirements_engineering/guidance/requirements_templates.rst +++ b/process/process_areas/requirements_engineering/guidance/requirements_templates.rst @@ -22,32 +22,28 @@ Templates :status: valid :complies: std_req__iso26262__system_6411, std_req__iso26262__system_6413, std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425, std_req__aspice_40__SWE-1-BP1 - See the stakeholder requirements template in the - `module template documentation <https://eclipse-score.github.io/module_template/stakeholder_requirements_template.html>`__. + See :need:`stkh_req__requirements__template` .. gd_temp:: Feature Requirements Template :id: gd_temp__req_feat_req :status: valid :complies: std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425, std_req__aspice_40__SWE-1-BP1 - See the feature requirements template in - :doc:`../../../folder_templates/features/feature_name/requirements/index` + See :need:`feat_req__feature_name__some_title` .. gd_temp:: Component Requirements Template :id: gd_temp__req_comp_req :status: valid :complies: std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425, std_req__iso26262__support_12425, std_req__aspice_40__SWE-1-BP1 - See the component requirements template in - :doc:`../../../folder_templates/modules/module_name/component_name/docs/requirements/index` + See :need:`comp_req__component_name__some_title` .. gd_temp:: AoU Requirement Template :id: gd_temp__req_aou_req :status: valid :complies: std_req__iso26262__support_641, std_req__iso26262__support_6421, std_req__iso26262__support_6425, std_req__aspice_40__SWE-1-BP1 - See the Assumption of Use requirement snippets in the - `module template documentation <https://eclipse-score.github.io/module_template/aou_requirements_template.html>`__. + See :need:`aou_req__platform__some_other_title`, :need:`aou_req__feature_name__some_other_title`, :need:`aou_req__component_name__another_title` .. gd_temp:: Process Requirements Template :id: gd_temp__req_process_req diff --git a/process/process_areas/requirements_engineering/requirements_concept.rst b/process/process_areas/requirements_engineering/requirements_concept.rst index 594264f91f..c8d6caf0c0 100644 --- a/process/process_areas/requirements_engineering/requirements_concept.rst +++ b/process/process_areas/requirements_engineering/requirements_concept.rst @@ -57,12 +57,10 @@ Stakeholders for the requirements * *Dependent Failure Analysis* * Requires inputs towards independence and interference of the element under investigation - * Initiates additional requirements and AoU to cover failures * *Qualitative safety analysis* (e.g. FMEA) * Detailed element description to identify systematic errors within the element under investigation - * Initiates additional requirements and AoU to cover failures #. :need:`Security Architect <rl__security_engineer>` diff --git a/process/process_areas/requirements_engineering/requirements_workflow.rst b/process/process_areas/requirements_engineering/requirements_workflow.rst index 703756de5b..e98e9f9e1f 100644 --- a/process/process_areas/requirements_engineering/requirements_workflow.rst +++ b/process/process_areas/requirements_engineering/requirements_workflow.rst @@ -101,7 +101,7 @@ For a detailed explanation of workflows and their role within the process model, :contains: gd_temp__req_process_req, gd_temp__req_tool_req, gd_temp__req_formulation :has: doc_concept__req_process, doc_getstrt__req_process - Based on the process descriptions (which comply to standards) and/or stakeholder/feature/component requirements process and tool requirements are derived. + Based on the process descriptions (which comply to standards) and/or stakeholder requirements process and tool requirements are derived. .. workflow:: Monitor/Verify Requirements :id: wf__monitor_verify_requirements diff --git a/process/process_areas/safety_management/guidance/guideline_safety_management.rst b/process/process_areas/safety_management/guidance/guideline_safety_management.rst index 5eef7fe4f8..c68f043cd8 100644 --- a/process/process_areas/safety_management/guidance/guideline_safety_management.rst +++ b/process/process_areas/safety_management/guidance/guideline_safety_management.rst @@ -82,8 +82,8 @@ Safety Management Guideline **Planning safety activities:** In the safety plan the nomination of the safety manager and the project manager is documented. - The planning of safety activities is done as for the project defined in the :need:`wp__project_mgt` by using issues in the :need:`wp__issue_track_system`. - It should contain for each issue: + The planning of safety activities is done using issues in the :need:`wp__issue_track_system` as specified in the :need:`wp__platform_mgmt` + It contains for each issue: * objective - as part of the issue description * dependencies on other activities or information - by links to the respective issues @@ -97,21 +97,7 @@ Safety Management Guideline * platform SEooC planning, dealing with all work products needed only once for the platform. This is included in :need:`wp__platform_safety_plan` * module SEooC planning, dealing with all work products needed for each module development (initiated by a change request), included in :need:`wp__module_safety_plan`. This module safety planning also includes the planning of OSS component qualification based on :need:`gd_guidl__component_classification`. - Templates exists to guide this: :need:`gd_temp__platform_safety_plan`, :need:`gd_temp__module_safety_plan`. - These include linkage to the project planning according to the defined issue structuring schema. - - **Reporting safety activities:** - - Reporting is based on work products and documents status and supported by the safety plan templates and document management. - A safety plan is completed and the safety package can be released when all planned work products and documents are in status "valid". - - **Planning safety activities for subsequent releases** - - After the first release of the platform or a module with full safety coverage (i.e. all work products are in "valid" state) there will be further development. - This further development is initiated by creating a feature/component change request including a change impact analysis (see :need:`doc_concept__change_process`). - As part of the "implementation and monitoring of the change request", the documents affected by the change will be set back to "draft" - and the implementation (change of work products) planned by issues, as appropriate to the size of the change. At least the change request issue will be linked - to the updated safety plan. Note that there may be more than one change request for a module per release cycle. + A template exists to guide this: :need:`gd_temp__module_safety_plan`. **Planning supporting processes:** diff --git a/process/process_areas/security_analysis/_assets/PlatformAnalysisFLowChart.png b/process/process_areas/security_analysis/_assets/PlatformAnalysisFLowChart.png deleted file mode 100644 index d6822acb3c91e7a31a5cca751d50e0afdd7eb8ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259367 zcmZ@gcOca7|A;6R5h@v<N<^rHGOt~-O2}4ZA1QlZk|d)tLPjcN&$FFMC3_!txQy&0 z>kjAK?|I|U=kxvjQ+U7M&+~d->v`<}b=9l8cOKkHLqoIs`n5~9XlNKFX=oTLnYM$! z6c*K|(9p2bT)%YwwhQe<593?*cFd1ybEoO&<swemzpT&iy_xe*=W(rlx3d$NIMaO$ zj^AVaO!q8N=&}vJQ2q16&l%=1*m>d3c?`Fb`>bMZUBjfA^Xs0YvQf*+e~wC+H@rPJ zEUP0iYkK;)?ssn{ejggTt^cq((|-3~|C8%cb<<_)FHCLMe8O2_G_>?v|KaDRYgXzu zH+hmD@b@}k*=Du`>Gh@6Khgw{gkA4ETYqWsFidgpzt(yd2;Qk79=)-3{nhRGSLj}_ zuI`Jd-Vs_9(k=Gx;`+j&6uKAx0*M9@%^X^kRcv63HnrY*wAGWcdedH6g93KJr^=HK zv4H~ETZaAIf8oLh<^{HE%p!Ay_qMS7b#7?SXDFH@m!Ka~j?l6Z9qAj*s7FG4*=OAL zudUm`Qdz3cem8R^`2Xt>6F(KIeW3scbeOJP92;m(NT+%9*ZZ)24A;7^+GjN-dvGR9 z{q+dKE_EqWO>jIdSIa}|D;<5%>q-u)^g+WMvuGn`5B5ohif7T57w)C50FwginrlQN z_oi6WB16DhmoEJx#(U=-kcc~W@|R?#wGWym3sL61dqiIJuw9nJHn6e~hw)BY`g?+~ zeg&t}Fxr1Mxk=rfR(C6f5hd*W_D0SGn*)do?8ar(T{pO99qt3H{Pyv*m!j7{Ma<C~ zx{aPXvbsP2Jeo%9PCMS3zuftp)e-7m1zccZ_lsaRgvY*wMkapsWV*Dhis+1jj)U~u z%eK4h{&Vn`B<mvDr#EkGPUUsb>X&V*J_UQLH2~#YO9n=ywi3QAh(_=7CRg!e>5fk3 zi7Jx-%&>X7w#`#jvm@@;Msy`!4ipahcq4M?=e3bz&_XaCrtItVw>ZI3PIGWjxnh+N zh?E^o@%qds4078z#q{5tSy>$B)5|rzo>^K&SZ93xr(i#mB8>xVU@dhKTCFP^u%z6A zX}4>0YGzhnSYyY;qcEexq5%6XrTz_Dun%yvcm$@lx%KHI;3bLR{KpW&LwRU*w;XV7 zdBg(q$uAGV*0qR}fg5C56B<U^?^J9v4Q2rzUG8z7TjeZ%G@T902D4HD?H6Z7?0r=f zQmLB2{4YvRa~eBP{{)i(+qE_)imhS4d2fOs_0a|ZtQrXQeubnXrg#4Ph|QR7ed|Oq zaJ(`1XDe$s2xXz0+xs7=P9J0Ks`C7P<r-CcY@CUoRfksQ>H3}=Kn}FeyrW<Len!uy zcZ1i~VF*P7z%?+Qw=YmnOjTMC7OAxP2f%cYgfLv!u`qpx{akA&-8_or&d?$?_7gkX zN4Nd^5mS|s&)&ljjQcVH%D?mwUr>d4r<%{+f59|}0Po0kUT>Z}Tz>KYg$kh$_G|no zh1~>vO@yiNLx<-71eW@6V&7024SAFIs1mt;K>kU9f`JPE1AH5B!-VPD&i}RbVTkKa zmp%@z0s#Nbo&W`~WrqF#fUiScffPnbf4sa!#aangVm7e^<e&*`$LvOwSh&DuoWAwR z8i%f_^=Y6z_(I6lLR*eg9YKR%#Uhmq!GONQ``_08<Ksimv}Mb+Z`QOrA{yW+>(im} z4WM;6@8p^WkjX^F>jUxLoL#y1YjeAO+hVkh6qo<7$IRC;6FOq1y3`cOua;`|W*r}{ zAzXC)9mpjfyfD%-)eCgQtBPayU%sAB!u?Lq$}#<U%RCWPn{M}F_vRJ6?+HNs<IehB zfUQ&6j1K_ZuxcU@+n(yS9%DQj6zkN9Lt@R0tSe^!>8QX5IQ^)$C(LW(I)1A2di=VH zEq9fb?QhC-8XAqflWd||ND@^3^t!^-<b77z^3(@XLaryfm|{Nude_LU@0howemT<M z>qX0g!T|zFd#u^Clx&0jE{gxa-cYdj>yOSaD9)sIrwXkOTs)z4MU1jA(CERleVrlr z33R(y5gu$n!>PFkR;=R}c7DeR16?x5yb_z&OnjqF^)Fc)l-7?<=0}G0pPI3D-o~C; z`%TBLx_s4xx1W@YLATbXFOfs-wk^*`;wB!?E@6%f8W}SWdB2>VM9s`_JJmMbbh;P$ zXu_XD4x1(%X*0gAeF5jyEPY04r|as~yT+6WLx4G~ZGS{VOvOoW0cnM6Voe$D=A{d- z;?C<k{M2zepT*lTAEt_|5f)(-iFGG%5Jr=kA1~Ud)w$2t8?(oj9=fk#{-Pk+Ox}Vt zk*B8~H^si2+xB3QKk@Sc^SJ%H;4yGyI#N~r936W}jo0@%or1BSGUMr*W_6xoGOZ2g zh__{v2Ht(PzQs53)}g<+0JBGALqezb8Q*5Q4b*gn6<@>#FTP|Q=^Ry;{bc=vUv(1m zQ+2$#ORQ|+M9gB9XGh{?3ACEQ;!5XxwUSYNIgi<T=g(%U=jQKVAJ*2x2ZFfoki*9q ze=jODCwz88xV!Kja$ny2xe3|jl=i`Kk8J<11l8_iQe6)3Pn&eCC=R5*wyCUCkb)20 zY4tyFFt1{7BFoM*DyBL<Lz_3mJxEriN?#!$evINu0Mb~^f^bCZVcp`~m72QHL**RG zf-ws~0w!h~QK!iXX1Tw^!$tKM3O$KEl$sMO!&Bam7lYV#kc^N0ta>GIqua@wgbz7- zBTZ~+C}s-YoOoGNt3_0)VtIx;ZG!Ov`8SHZ<Q|S6yw}&LNU`b~@h3DtUNkcMh<DJJ z>NJ*@?fdZFS2MNL?=_*m5a(rw^QK(PR?R$?-(%#pDEYg7)G-|$Wh)&vqx9~%_sU|V zB_BC_h)gN4tEG_rqVH3$2G*2t8j-7Nz#5t(?2zBkdo7$67zdJZtTS%$<QsyZgTP7w zy4#8o@12gvqzAe8-o<KlEOzEiEOv>L+H2&T&*sLYNk962g4<yLkDLu=#8kNR-4|AT z|Kppj&caoTcH{*`r7`IbPtrTkEa=H>xOHKJZE1c^hp6lwN`<ee&KCzvTe80VJpL<- zqP=28+LHT(Q;LB@U;AX-sITq*zA=4o{7KT#_*A-D7Oky5WB#PY5~8V96%Q|IELnPY zbnzpXku_<;^@-)8Z9TTcF+O%ak<(m$$eZAYjkD?Xo-&awCtXJVu*Iv8N1E{$+{f#Q z6ECkzJeC3aNux!<a>8n0B2P>_&ttUZqm)<oQR_$Q=7k}96#kq=6MEeb*`}r)wRiCg z<|z@Z5odnBG*?ms*CT#l*(q@{r$g6zdq#TM!x=l{k%Cmuk9@ke1!|1e#psuljFIz4 zew5r&v@l+*@>W=Bo7dcvXO7A*%b#d{LORCiI9Ec9T*`_X&n&O^TAns1>b`o3#NI;_ zCM8|RMV+zz-vY^+HFDn5-_W)^<-zkZ7*F&oKGV3<u4YkgKh1jGiAP%B%*phA9Q~Z+ z*=CdMtBjp`?SdbZ)c2An$6CH!A|0m?lhNf7$9ZFyT^2QcUCExQ!To7f{<@zZcPnRe zZ0L7{E)&q`47_Qp@;7+P2mX%_Oq0%gdBr^2<+X~`t|ZBKrqeI|WAB+vx>g%ZXP#Cx z^d`f{dox0gf66*qYLq#=81N)7vkqn1bggu}fpmND!u4tjdFsbb_@~VNAHM_44Wc}j zEV;TChY6Abzj|tF`5YL^Up>d~Irq87`yx#HbQ;e*ey&yQj3OfK=tQfUf?ZmAN$#ky zWxFfjUVM?Nd1u>?xYMFWy=C>TD;$wRo&)pF>9y1H2KVINvZ70t{+zERJLb-p{h30= zh9f`W_+2Kuia#gm&veb!@#T%3&<&HbPan*T@Sbm%{=5{uUuIC1`>b(_C!uRNdiR9^ z&#|9fV%HB<^pjB(17qDG?XVaOS<F|vbi7~=DEFn9Y<YqWuQG|<Irxy>RX)dPthQHF zTzkAuW7#i-?5L9~dpQ{PBA3fw+1V~Hw~8Z(ufE-Q>_|q}-4L%BQpmpbMRp<qJ@^MZ znbWE|%9B2zHiF$NjFtgw%$HOwe6gO0h?#1!X=yqe{sjFdKj?t~+$gK3gT#wpI%KHT zj>B1{WsQwlqvRh@-uJcFD2H&%Hn)q2i6Mhh7q2KsaYSvH7Gt-4f^PU!mG9fQz4;p% zt^^6Iq}vsG4j7*)DX(J~o`3XHmV+0)c+K5mtemjS{2Cv8Q##tqMf11P*m#YhN+gQ_ zqb8E5P^v?^$nro@&h0X87T$m4y$xj>q2n-Dw6?>zS6K{S#I?sIRSx%5i2;04{kk!d z?ujbV9+5om-F*SK9_=s{$n&O<S)`3t&IhQHnNq#}<X?YH$vYA(S2cz<YF?&<wQ2Lr z4<P%{o$#+&NO_|0bv6-NkL4Wm=&^iDEatmPQT=zEV%;9uWqxl*ZdX#Lu?!b`#eLEf zliCPTXW2LoYAnE}Hsc^BSk_i=KxN#@P2g#}j|XqGgMaz**qKtw=e?8CthY1OFX%Qt z-@)?Y0r4F=KauEXUgX)8XRckJbO>XvBu0A2cUkMO9%(u3b%V6xPtVT1jHNhvCh6rN z6s{m<d&sWmnG?<k`ISNXn3aXIMBl=d$FyYsPT47sUyWviI-YI*hh|WuxR~zFc{c*L z_vlA-t;d@WdP<|%J-SyN=P<FS=XudMW^siZm&2dhEZf_bj9!siCRq32dfygn*i0<w z!6S!cw~vqMv42*!_~Kpvgt8)YsHbC(Wh<t=g;AfG(_=L0E6Y-)YL;iXqs-(<c@C$O zZdCc@Z=?rSTi2fVrK`4IGiw4D)1dAztX+k3;ge=f^z$s#Qb*Vu_n}d)?(pAUGg{=a zhZh*-i{CuJ?VDu}9)9bdY7lj;$gZd8<!HqMDZjgi_pOWn@pmaT+D49fqUnPb*x@)_ z{bZSSXwTUNr5NIO<w%<jM*8uL!eA}OcdmYucA1y@pWP*vJQTnu%Q=PM3n_+4qwqp3 zW{EI$e=J0JBy|AmAJS~<cjtb1IKJ7ESaK<E$!#%wSTiLLJ1L88(%W9dvX`J}%*P#Z z?U%pEaZB&krWItZn5=G|naV`;xLD59-O`Sl3d_F~C(lK)D0SA@52kS2jLi)Ws1_(v zRF77YOCVdrsk4t_GcT!?7aMJB$2B*0mxRQ871esEoyA>mL9r{)Jfc$4c`vYDnUwMQ z>3HelZN9L53WEs)^&v<`=TkjwpRN`%tNgSpc=Qmh>IDCy*Xkv-w>KHBxsom~H>xT- zxp2fLuU;B?B}gjob%|5{sR7#^5ybL)p`%W)^XIo8)14}e{Aq-vZ|V$D^GI;~njrEx zBHlf7PH*p0$K%Wh^p^&M;D=c~--8MtknwIxg4_=ud5bC?WIv|7r^ZgjBc)9y$AF9< z{hBgVI%!&nvo9y{D~B7#YcJYqgi%PXxXzb67z;@*i6q5=xUVcB@=KRaVv#*7pU<#w zTK%It+BD%H<|5GOL^WU#XXsT&JdmSK2fZfHWBX;to@wCICB#lCeo7f?I6HeO@=1IC zy_y-4od~U$Zb*Z$Fnd}C^7;JP0ebBu`XykS{z|G<bdbd_%v{!NKus@UKhMmHk4(P$ zdH(av4gvY_%C?F8Pimu|F3g=J)9bn8B}KygnZ+tTB)6w&iwmWqZjn!GpLUkbm?(0@ zvI<xiJkIQBbhvc~uf@3}<->*y7ga0NCp8+Gw^WU4t@wM-|MRU*a57IC=Za}jsUzV# zhICLz{s2)FX{|yVd2@Sg`|!0HZ$sii9?#R4D4py$Q<SJ*XtuO8K6U$T&WNiMdM6y8 z^F!=>m$)K@Q`wrdqMVC*=ewsDjqEbJfl`VZ)(T)z6)PD$A&b%`esI(>a12i<TdrW1 zZWH~9!x_5ctyXZ2RsKm)wrYb}?@4ot3za6ePPj{a9Y)>;()AZj=|`BTo}GFI@Jp-$ zQr7%sSR2C#AKj2`@x!Uk82sDW5{5%cgNxU%3b-Vzxqs)4ow?-qMv)R|%wuqzukJ*A z6JGyI!1V8LnhNDhV=<p+$_ZVfZ}zAOeeShF$s4?68~K?@u*<*vGkiMpmH<moVOQdp zSKr@V8cT|S>)&-f`?A<Z$M2htNT=0!i%5?|&dZ@vsol|0%hk$Qc%)R4NbeLk<(cRk z%12U@$?VgZPSi@l1$A)^_NAon8DF>Sp55N#@NpC=u>#khgR}Hx3N3T*DDixO^ViC_ zQL*<|qkp`kV~HY)f9~LXt<~&_*E8c;<*K8MmrA~cp_YA#H!8y4p|%-}PDYX%FJHcl zG#ZJx=~W!3cT{0lQ{kQx;z**7M(I)zt!IKg(STTLS381bwY@9Ag0am-DSFa;WKqbE zwoRUGkma*#`4%YN!0a{Km$C<LaDZi#nHL2@<?Q2)OcDyIe}hdhIEcdqE`NQe=Q-jv zpH&w#X<MAA_x;H~6)fb=5ow%<9oPJUH)p;ScI^<HCL<k4Y~C{M!+;ZHQgqunX8ZVB z$a49?sF`Ciwu5TNJUgU!gjJqEWmnHWKJ00+7Z61#Q@hMVxKJ&|uHyO?>6Dz&4%vr) zxI5&Bvc?pv$U^WKUzr#}R%Rt3(tOMn@7R&MZI6x4F-(DCr33arkHQeLPn$93ATWgq zJ<gOzvr0py0aX_@ade$$=S)&(+4(LUO*J2kPv7^OTZ2wPXVE$<y!(sUK+wT3BY`() z(S*lQ57`wd%V|BQ9=;{z^zanoa2TGJZ*yO(r41F!>I(1IWN_AL%@du$CB-=Z1*aP| zQ$3KWKVVsG$1GjHjV^p=HZ{(0_&9J|UX}W(u19`QbaQgDbc~0JLXICl7#tz0_hwSN z0yCC&tY_p4YGqGNcqR7JC}Fa9SW`YL=lj@anU$)8*6BlPNy}w5sUnPy@>ypBc=sip zedm>YM^ZdBqeSV`jS?QiG7I|_O^5N=PZHltusIgEry|F%d$s<0>12gA<gk6uo*5Zr zN$!O$q%Icro+!Q_JZT>vgkOZ4jdxtV5h*$^eY3CFi@d~9b2|aYVSyW>=RUo#r`3)w zMfn|izLzvH<mC^;>8tD9zX=SX2tC`$m862nuPmyPp0L?*aa7lwrCM5b@YxyGG$ZfJ z5C%3_#cRjl#eN0UrBPAp-&pq|c1!Cjj$9un6Y@!Xhi<~(V(>-Au^8niSz(mlkwzl$ zu{3ei?ud+Ht#2&5ANw(!c{gaC+qW`fJ?e?B6-RU6N_YYZ)8N)t#?@JPkI<ek&^Gk? z>fj!cz<-rp#i?7Wvn51vWg<zs*JT?q-G2&2I<IzpAT3MDh}$}&;EJCN2zz`|PkM~= zqFhuv5EvVS|Ak2%Qy}3yN#$u8D}9N~SyE)DCpGiuu{`f>^Si|5?kyqA$(^&7@-n5^ zVT;9A0zZGezpwf2)Q^1UKoEIQi;<oZb)PJb>@MT|qCIFG2jgd<A33~!;u9bMj5_pK zaNSmT_8xXO#L|yL>m<dhw^+P_^C(koTG@ODN$NqRy0dJE^F`uMF(dKV#rliHaBp}o z_PVxa;>^e5EQZ?Dl8>tD$CKDaGV~SqN3mspuA2$)W2PYgaA0c#dor|a56ZPH5qWG@ z!iUDw^CC!2--CR!^4}Hi`jdv~<{D;b?F+E!9l%k77~po}88^HF`Ip}{h=^140$+Wv z6-V)gkqU3?9(TA;;tM}IqNwkswq*QUS9O6;p&EzkQCmEQ^Oz;iTqd|DdM{O8Vn$*s za(45%#^PHaI_ue$JKi4b&q8rV+nRhl&_gk79Q}Ttaf&<r^mr84L{#!{(IPM(3V1H^ zy)C-HyBYtQxdJ@jlG5i(8yv&CBj2h#c|0R?iRaPOS6i9o?2|9gPI!8Gb1T}uDvkYN zha&SD>JN+>IE#>*Zwo|liD$aRME-njh8d3c{*8R6=XSJIyIk)M4NF><p_^=Ca@-q( zyH$lOd>ZeR8Pw!f-j@24$?Qq=JM_XyeS&3@S?(?4I(sXApxEk!YaQeWBd-Z<uRoe} zIhAJg91BzLkfuNLsBwgG0wAc_G)n!INB_lE{V0WJf6%*eoK~3pWM38${clyilT(zI z8y|O2F5S$az)@tW^W012KE`H?RsMWlx6Izw28u3ov!`X2Jm=ujmYXk`A1YlQ3t;IG zUJ0USPJ0vj^KR{wqj+AFgjq4>hl5O;{4BW63RsOb*VtxEJ)ytZgvaTr%0}46o--vd zC$?+Ww3VD+fIlz&B3tii@adl1OWLI<0!A-M&voJFtZ1Q?MQNc$QffhP2GZ74@U2U} z_0{X0uS?!q^Lfr0wUX-{StgsE6^$c}oXYhwR~!|~17pP6{F77)S)O`fGv2H0xMR>m zUUBEc{yKjIK8QE*{oNOE5tF~i%&y3`NdC0tmC%!hCn+~d&3=h~p6RGnth)KRMkL&@ zkMe6<NQnrsKveXGWW_a)kwh;)lLa`ja~{1X@5mm!6&ImG*kbJMBemU=1r`0zDY-Yq z6{YWVjE?XUmM0?dQz*(Q&peoRkh9FtoUtozr93?)rMf<=bP|(Pg)%dYAx4Z!l5rHV z2YfV;PuB4s>!%ymY|-w<(h9e28!5_R?~wv=7j%`iYXFJ!>nA~@gv%WF@|p@&9e$JF zYs6&(4G+8+J+pYPlFD<VQ<X+H`7#$<M-}*7Z*vzaEnpAgF;i1DE?e>`YKX+;38`{J zu}XHTHdFst8Eu_ui^jR=sGC>)Ifc{?{A%M5*VBs}aEs3D?6_diE_ZLxamZDY@{djd zdvKh&bHOo{l}3*8l_ji`3+XjG7Jk2U3e#X)Wcx-$yTy=r->%I<LfR;WWw(?*ZZ2b+ z_wtgu39dXO_kHl$_A5Q7dO1iDwq}bLYd!Vo$49rl0q$*w?xf=fIJW2`kH;_jW6qlG z99=5TV&n(>9;F8bDjVg<Y|f=e+f^jPEO^~oV>yHM?254t9Oao8h}d(#DkC}uUa&9g z5IugK7sbB`7SMi@7CYIqbO!`=I~!zqEye=leR$<QWPQriJ3gI2UopuX|Hgq5wqWag zjZ4;oVv>Oi_to#REuET(lbBc6*SGOyBmYr6S!CTtk2NVI1fU;U%L=^A*QUIN-x!a5 zWLRk2eA#n5MofhTX%JJ81FU{~Ro$X`DZR0u-<BII9yE?BOq5t_%%Z*}IL@E{x}7^c z`8pjfegBclYpZ%=r!r6(2>gSm)HKlI5wNRUikALunb=7t$c1sAiDG=5_Vh-FxaUOY z=t*~rex4y53(Dd8&)YXSuwtr5B{gsCaFO>nf&7#mEWz2c?v5;(ODy8r5ADBfJEE*T z>|Y!BJkYnRKXGtCOjzub25RN``JO+QG(EM-6BAolgshfyF2B^q6!s^!SQhXFga7Uu zTFB^MZQYhtT-~5ByiX-!M-QJT@YvJmSKLcy`V-aN0~(0jO<1v!_9LHi2&3VijfLZO zMRm)bAFm8bxz#nD{@ME=*TB*0pc22dbw`!Vq1J}U1CR20JjQ8mAQiXonlLHcjXE|u zuKLqP)Eb-FuQ_nl(ZafL54Xiq_VMnkaAFC!n5fBq0)W@4UD8SV=C_MC?LXzDW*{-b zPUw-(ND8e033lJh;oLjl(QVtkD}?gBfr)5SP73pKhdC~@2tdBBnLIIj9+g`7+@LOc z{;~TW#V1(iNdM%(z`%)=_gIF@SDl24=@f;G0Y%oeIR6xV%`)%3erha$_vMfQarD6l z`jK7hQet}hSB)1}CyB4#DX01SZmV|Wq@%*aw%vpVQl8Dyz<}~~EHGR!+;$3mZ2sJ~ z`RDxz!{w)1;d(ndb}~nD>3jWl%?utB6BnMn4cM#4-Qkp|w{62wZiz`w_mk8Ad=3;> zG#hK|2;vU^loh4=gLeqi)+xeW$kwc@U_QAo<JLc7<;!mqf_5^qGblM&dtSaN)Es>$ zYz76Q$FiN@CD8`AM%|W-FJNyTa_dBdcf1a_h0jegHkNpvaaztG)L2U>Uw0RnY6Nat zq5PsBcXNih>W!n%jN+tw;#`)z3hky!y^Hj;XMZ><oYt3rW80h<RUa+iJXCSI-81{W zC)<hidlv>$gxiJ|Nd8@wY2vv(dJ}KYSWZc2T`F2yP)eLy8uIIKckA$#TFhy_{(5l5 zt>n28$uR4a`;T6mMg_&@px=Lv?8yNR>EPS8s{-9*$5i+FlsLm=T{Ta%$JsgEHvb)u z4By_HY4>s^m77oGiZn=iRwm5v6Ui#Ol^snO{gljOXID1=K_%u~1D=~q9-VqnT~CJG zZ>%cN^Goi))&5-KWwiaM!Y`(sX>S%rla0D>c|IGWApJys(E>_WKc#`MMkY-Sfbew$ zbZsU;d1wXL9Q6(gzze${K1$;&LAxT|i&vJ$qrLLA3O#hJGbC$lf}?KHdWI%=exP?a zJFTyKWbwAW{mW7}1CrCQne3g^@yz0(u_P9!mH8}=^vo4K_`Ie8ou2lX$oV)c#kuH~ z4Eu+!dT$&%3~C3{STx4k(;{zaJBCv@^=!;A(wM?;0WA5qbWeR#DtS(6{uxq=x$10V zhlz{ngCJj1-~4tA&u5Us4u=q_40oPy0Ph2{VVFD8i1Q%Fdd~dx7;haH)|fH$l{Z_o zW3*UJ^6$Lla~C>z&OVU3tL>>t*fd?N#44kiE*TlOd>HL;!@bY&jA6IwkPsk#R|GK% zW!#4Vuc=Wef4J_JI?`Qk*EBvy$7BlgIkve9Yjpz5cl&sxrApzhlEK`(+OSi;5Pa&4 zbT&|qpc<;V*mb^zDofCEU91Tz^sjbI6reMmTARF_e%>GMy!d)DyL9TnJ&|;EXOu>0 zdPvwtZjh->9}uk`e}^66!I6NYLPSI7Dwe=E2XA#!l%4+Y9`4Vx()c{^TtV%uff5nK zEf6+LO`u+2Fo))<vuoMxh|I=WXy}SLjQ=WL31tR3(qeTpZUA^O&Hq~?(*kAWIJv^9 zQ4xqf{K9l|P^|_vfm;Mpn<3+I_w~V2?6e&lVbzTnRx`YZ#erWnQ~GSrM!pIh3pU3v zvWan!CIU4b@#k*nLRpp5BCx+8UZu)vRR@d>z<ym_Xe0Nsy3>q~PsN6*#WYw5sIc7Y zJ;w`?B%B8OKf(I)3<U8*s)G{%8rG=3%4sk;hW#8H$b*%DY+x(Ldj;q(upZ{7Z5wB& zV&NGIMjH}Z<w-l`@icgoS;0^HqG<*;N+V{@1F|Yi2rR8u46)v)U82?qY;HfzRXxgd zy?Zz;CTNo%E?qYM`AUF5#8Hm!7Oizu<XS0c0wEXC7<rO_JEc5CW!8%lA!ZQ$a`J?3 zesz#^>~y<n><fp8E386HwA(jIsg452CcfM6)*AdX8a{?cd|)+n+ZcBhB&qDVc2L#^ zi$TJ>TL`@a4`fN{wfK27PPMqlK}1XsSto{?aKpML`=;00%V&U)A3o)XYC&>*9Qz!+ z|7&XtT*{K%AsXTYH}vRh=ZK&X#;2t2&(!Vwt(l?m?li;Z0YQF#FT#qQc%W-%&=#b# zo<e|<7ftMYKCgwJac&QhjtYbm<8J+~NaK~r_RQC|emN$`FjfA-$A+Z4T)rlJy1jJp zw(8x)We(y&lNeuF>_{nZiUWRT{I>2(uv=&$oddPHArZ<%%8(w%t!>9DP5a#!*30BD z-rEHNZsx4R1`nb?*)*0%Gn%-7Ff@J{B#uEM$v0P7xoqJ}+Ib0b))-u^(XENs`{Cn^ z!W9{0gN$|Y9oOICk7Wv?Izh%Xvs@Cbo2M+nJ{e=P6q=~qHxpIUp;PgO>O!uHO7&w{ zoWNurKkW4;G8n|0a$4Ux-9iVShvI<a?WO)bl1s;8K<pd)Fzso>NV&6O?#m<JOGcID zJwQ?`^V9Z#4{kqH{kyJkOJ~<h;X36Tqh!DB^XGL+NYlXj2ZX$Mh&SjWE{DaW{**Z` ztqRpZB;2CqTsyjYCsg&|PLWuTgYUfR^YXCzMFa@0X5Vz)ovW#((^c>QI1%_*XN3o? z;qnkW^=O&*eL;z&v4v4)iHf#vAckn)DCxNX<=8>ICu?-9z)-EQWpQ~nYoZXhl5$he zv4?WdF?wrtU-c^>j=Gh(!kbccm+4IB15erEGTYC_@v)N9AZZF%*oqkBT@`#bKMh|* zUUB+^_|XMfw0LZs1u@vGDdL3An6_i1LGY9%lvzFAmGL+^K6+qClknxOHa;c`#XMxL z?0rR3Uru3GN4q!YBJonpjfseN@6+qg$HIvQSe@|*p7g~A|2y%9+a`YSc{|O2Whv1{ zVNjD8tbPureK}CP?$In@!2oN$`#4XcqPCV7k9N`WdBt>DkgSz9BPV2aK!L(cJ~C+! z5+sftUF%ztF>|PVjwGOl5ZyboCD+93Ayh_%?%%9tI{B5Kg#lB5RUDcB!AF*U(@_Pb zsgq+d*h~;43tQHT;)`D%me5En(?c`Y9L-fE&CT*#PN6l~jHUso7?7_Xh_GG((OhC$ zCvd7KYj9qqZL(8uE2Qo%><2{#jlREioySbny6)mtb19w_6ZOo1#aYyYaW5kLXZRv& zc_t<XeOfVJ{+lA@#KX(K(e{1;j0ShT*OQDHC(R5Ny(v$QcT9$|PZYS?30Ot0q^VGD z=-mZ1c^lf?1yn<Z)UVv<-{j)1eRs@z3Y0;bND4|E%QM)wCcGRnDyV?+6rMyD>7JMs zguiWJ2MPasZ1e}*j`wtp%6MPgsf#Ma5Hw4ZRfSI8F<Zm??h{@5m)pN<s5Ky=*h9=y zLf+4iAmrzZOPC}OdF*HnsaIJ3b6eV=>tYNtqerR`1T@kTr!7g(cT4Nz!ZiseCy?$o zgo()Rdl}L;RRvPkgiA4J7R6)<MPChymmW-ZX?FrQwQs0au?<Q2jWvNT2cccGS5`Ho zIuj%ucf}>HP!F3ROdIj>M0WF)-TDRwFDG%Rl^$n>e1Be#y6{4a=DI65*(xVnr0?;6 zPy?#iE+`{M@aO#%p;ly<>-p!iclVr@p7d#fI&DK&0cjKg=nU6z$hOZ+FJXiayu0pv zCk9FClET_p!m)U}_mjMb(g}4Mj~<VjvRkL;lwgN|qdLh+njO1nZ=WM_gOF|fIa2Cg zXSwamR|E~-(jNq@w>a_hcO(`L_aqT>A2rCgi)zoT5c*8I9TxpD1eAw+-R6zR&&ma^ zP5Z9bd$}2VHg3ayA$9MM9KLtS3t!c2-M+ujnbcw7GIBz4aD>ZObu358t99Jt%8T>* zEN|Zbjx;LRnVJ@%GGm8a{5~n{Q9uF38zaXDroWHdF~Z}#&pYdR2DLwS^-df=9^38D z6&)`%e_USkS;?5UU$FY>1*>jCtF>BbQymQJ%6mRx<EypBwz#Ir-!iXY^hdJ^GWCC` zcoRnHKtPZMM+uRa`5mxxnxMyLkrUWB<lPr1G2N8XoOC^=tE}%>rblz)x5;y@ELjyx zW=(^JqzO)Cf5EY=+c;f(VX{bz{1kL!s`&GbrBeD7P6lmW(VNw;yO^5}QMHr0JK|d) z7o*}}D)#I0xRFTF6~(3OIe#nhl0R0ZDUFpM`h*2}709Mu{ih@-QWn{UEl;(Sj@G{x zt5)xejQ8fr&nIB4x3~Tll<G45nlLikB;$40U>=840M(=b4fgEDa^MG;2gpJGFgH5Q zMrAk}gfjCJ3~8*^&bRpK?i*PS6i^xScm_($wSPMn6LBohm&5w(%`C(6gPA&|?OHmH zzY}O1XCIF`2!fN15?*ga<-iFCb%C{!`K`<FGcyg<xLG`Y(rfuc!hli(NkY%Iy-6iA zx2DF4;(H`D2uPdr{Osc0*DBIGODG_C2EqS@&ndlF>nF>vh^()2YuK^pFb0;M4-5`~ zM_&nX+$7)53%?ZkysbdJgV6qQ``8esB*?>%CPT_gFuZ&F)t`7M0}L+=Mw(l#4CLF& z-gN2o$P4ndEt8tU8_URnDmFHE%Sr3=H#G~}b_kzBY|@E_P8DS6O@7fLE^rukud5#Q zSf5vo=JAfM>KP`<Uu}GMD@}=_e#F)L-j~*wtplMV&N>o1dRN)EV=ug`o(ixLr^<;h zjSfW(b7%<_8=(}8uYJ^jQei1hAo89>qA)Vl3LaC7KCpbOa_?2%d*8l&tBw5gWF3fN zF5^I8SJ(k1F$)iAHrk}w3+5M~w%|&yg48ppE+s784oA2&?$)wM=rWHlh1=%UM>u(9 zP1<6-&;F|Pv?=UycFF@qEvDwN_Mf0k(~V!=pt=nzXUM&pEY}w?-uEULKfmu2urQV~ z6+sNQJcv*FXIwlvmpqTYpdB%BH!Xu3WNLWvoR%*H9nYZ^mPSxWPyt8+SF+7q4@>9o zNQ0?}an1`pYE%75uIq;Sst!lA(LcYHc109G&rhPWS#`Ls>-$erV*xaX61FDzgQvX? z$&2<=BaHY@g61)=TD;<;&nzmInorathobLKwNJXn&2u-^9y}vdywkfwLcH@cBd<9Y zo|koeS`la{FLo&qL%W~Z!NS=#UFC$8+~al<1k0h~m-59aXWv{?cKOChtJBT7;5NhV zvGdNwXTwFXo@ghhuZ~}D+bChiD=0w+;X^~4z#oMHrke-YPm@mEP8C!i*e-_WfoTf+ zv<`cLY5+{m4<1{SA2=(bqJz8Nhw{e6s=55Af%MuPJj;ov8{H?{yTdAN+ua&Z|BgOx z=*1l6Heb`L^j%~ozw@$vN*2h-Wh%3LyZo^=ns{Vd=W&ewT|c+U;^m9eGw`L~f{u6# zps1%BONJX2NMGbhEWgn@K;PMX@jcQl%^H?K9A9h{)k9{3l8KWBu~U(w=h(^GvcDhe zY_JL~{XK!u<!g#s7fnw>GNeL(hY=zRD1Ox@lvegqESx@`0+$xIGY;NS=q+wtF|Nv~ zdR8z`2N;`Bn4o~D;L!j@e0pRFX3*8<KHB~X#EN2Ul9RB4di7><r+Vk_f>=TA37kz{ z5V-VQ=1$>#?}NY-cbHx8gVzaia`vE1AT#(ot602*^K%iD{h#o@dwO^MIBfoeRuF2+ zMy1Hp_Jsc05S?TbmPd}ldRLjl>!y0&2iCirB*{ygzY03w94LQwdQag>^-bwc5XAYU z8<nC$sXbG*;qr#=r9F6_KN=A0eX-HV7FQ~6r%RkU6esN=dSUTMq-4h(dAlpQAfFap zA)gKE!rlyr8&1d9&_G$^){u@d!Z}^VaL0Rk{)kO)h+q8%xXB9WO&uZBanadq@kZAT zm45L`roDeaVJ?YHZp#%2)ZjF`@uhY30e*880!A8(^FafsE_qDLC*$vzAsT_A;=2Y= z_3jN%<d%yAXoY>RXiPSIJJxI0fx1;vUMt~#mP$kZ+dYMh!v*Gj7~tD+VR+5UHep!( ziH(25z^aD)>50sDCaVt?1z{nZDt7%P(81Eh_fG(6f;*343v;bLP31H`P8APU;J)*H zS+8nGoZWGf^WSf?R;wW#*ocegF1Y=DIOv`lWm4x_N9foca5|nT8Y!re17PJY(@CZO ztOc%bZ+7CR;83@Joet<tkVjqf#}ITNGGpW;8~e{1uGL5AUhu8&vVj93U}QGd^}gGz zx1+wX(Io@p7X<wE=u6#|jjw9xg|1Tbxa)re?JfbNT;Az7Cj0&a6ScL4pH&a=Q%+C8 zu3gk!t{M4AQkSJ-zz|@dXUeyT=rg^A7uRl9YU#NTY&&2&bJo|8GqC>Q>EkfHzxIaR z1r!#qBO4aIHyixx34~iJRD;C;aycBrVG}w0(sVWqR1nvE%5d<K{`EW_df}bwtGyU& z@T}ii(_F?+zy>f3z*OroldZfmrt5>>%Iu(B2^b@;Q>UfqTlOZbcTj8rZmoF$W(Wc% zje$Lv1h??yvrHQKtt|qGI&i+mbioWz5otzm@i)W}*sIbBOMt>S;g#wy)`4B!Y*7dn zzh&uaZ}83{isb+;2*c_55Vky8!|!S@7lH|D<7#S15ZMASKdU(HmDR}HI*C*ugXL0? zBcKdu9x|?Fs=8o2+3hN2-XQYtww`;_L$zxHIiupU!dV26Oy^B|(qoO|$1eP8({SfT z&}PvZZY$gVkbKbCUDC6@{hPZ0cD;%m@dY&N7<H23n;{$*up7hwBP<Xj*FiLX`#SIZ zf1Yk|k1*7YRJ?mFLN{~6r}xSo<3f37q+z++(V*FeaWnJyo_05aTolxbwcBW0T6%6> z1!YBpD|%=ufD-@bV0Eu`Lf53q;pN~P=ryJkVnRILe{`cWU=<%6BfaH$nw-gTZt1ZO zEzM5-0X$5*Tz0qpk<6|UHd7?e`7x`^600a`F1tUF4qnUh>ZwS}h4e4P<wEp;N`Bdq z2ac@jhDnA_YASs#>;Ms<%838Qk)!tU0(YV}b>`YB6OPfPZxAZ9XjpQcVC(H1Yrj#M zWbh?yH#^bw%!QIIQQ`H6lKYI;op06@D8A|Vu0d*zV}wj;zyBSWgCNt~S#{Xn=r@xN zwU6*6=N~x`QVq-i*oAn)YT+RG!!kv#@oUc0;AQV;6c#i=GJz=3C_;9hqlmdSyrmIc zQwHinK*pHwt4XM?A?2`e!qFekMKUes$I)4V#xX@d`X$wG-*&r`Ww{c!K-rOnC~@6A zLRR+n-RoKVk*Xj<uhM<Iy5QP2YT+E-yRKzGSCi5MAy>71rFOi(d@iaOZi~})^UE4` zEsJ>W%F{mRSS1tX+B4!=zmNr^-@n>01|rVvLN$i1`J1v88bR|{6c?h~H6YAt{8fv5 zCR@dKRl#iZ9U)vG*+Q?Fo}tPXEQ#J?)oOv3Sf^kxBwKqu?%GD&+^SSo>9VOC;XuWp zwL<4Nr8rl-l5>5Hwbc-G;L0+B$;P~k;4t2^u>p0fHO&Dv=7C6Nh<lL2=5B2tX|R8H z7v&0r%RQ~^OfW2!uI>LlA-^QxluzewGH-5%u-MroLOmO_^|M$Yr=9p)+n>Pj3>KSN zioe0)hXTd#OYKIWMjI;EE*^t<Z=M&}E8D<J5<b^J^<k(AE#_~CAyHiGhhhR3AdB@@ zPZgLhdyS87F3dCtwN=UW*gJ3o)8&d!#@4|47Q{P3eIl7e8tm4q5pjXl_{EmBKAZrk zx-TpYt#Ok*L2=8YwUa=%(w%1zi`!>Om~F+4kPYpXHKPF9l+_Yo^JTBR14O%OK3cc` zN-1<H74HS~<2FbB>&gn%_gN24LzvjwJjlAWWpD$z(_GJ{fI;=c8F%{hR+zxY4h$(9 zP+fw7tDD}5&R~^WpB2))|6kl-`tS*$%%|&AS)@{s$yC)Rg39PHz`|T3!RDQ-81fUY zEZR!kRes<fqbpGBzUuj8?!S$UR^l+`b=-zZ08E{GZ+3D0cXdM_*T2sIFqk65T3F@z zZSSprAqv2@9z+00uYw%?bZ2qj^;03*7*aN3{_D7codFVR{z$Ruug=ufhZ}8y{GoRN zNC&omJV%9tpPerMFDD$Nc#0q<Fvm%35{fD~8>ZPasCRJx#HFX3DAe}p_!pucLWOpb z7@M@)KF6v1QRQh%FZ4^W)WMt_sCRX3HJHJUY=gf(*k~Oz`cK2)ra-~??EnUb>oXJI zQ&$2l<?IPpH-7^^!G<97tv8HwZ%QnU^`>&6?!A5`srvz_gdg0Y#s;7-6?QafZw2d_ zKX}Jw;_4Ly3`uW6wWHVh2pn`xmGR#L=sbeFII?HsfI!e$jsLP%)uFax$#4^SAX4Qt zdRscx))2O?GfuJ*%a}Gd0J;Y1s-sc|$i$ZZI#?L}2=kUL*RW7!WN;x?gBl9}-J<G{ zjXnM(HfXDIf%WY?`EbioQz2WYfaL}tFk+cCA@VPbt||pcd7Om!#!Op6ean|1H<3sq zu=##7$p7(`dtL~E=;pzdK-qk>{u88!-dqOg(5d=p`PWK7<mpqW6(&sl{NSBiYc^cJ zNM-d_w5&<#3f(Dg;6lB@t3TZ^KGw(_dVp4UBS1Q)1cb}rXWlByAujAQuKOP_A#|ba zU&ap04F+Dj7ePvvxoI_T2+#oB#Q@R;4EDuZGd?1lruDx|T}Qk)HhJXS1sOjGaU1dj z{d9mM;nezxtDy$oiKP~5hWEoU7!=X@d-pqHtOHf#nY}YxxioI)+&H>Xt}#t24)pOD zKZz!kjiD`jN*uHIfEx)+C}3`KUt6gkYQpy-g;D!#VQ_{!e28aE;Cpdv`6x+itqx4m z-L1O<kqIDS7C)9racq(GlmHm6!qYleH+<ameZ8>sYO8sI5B>i2Tu>C$p}*rYW&`?M zL0Bz=SVG#QM3jYHdusS6l>x=A+dP9@y6VYj8>bh@&3$IB!+sK!=cQls(V3>I<*$-7 zRFoF8YHU_(18!I>86J_QB2^uP4f0g!!-^U&eKCNiWXK$#=iX|UBEo<oNLIf5&1Of_ zrZWWMPf<nXD#tJ>70K&;`~1Z;A6E(W3EbFfJ<p+@(RI=_vk4XTjyzwC-s9Ght|Ms> zKEIVj{6By|JlfST1bWRW)CY)>ozMqIrySi6U3R#7rE%>+bpZ_)QtpXRP6<Qur<#Uf zqrpH}@Y1J2&ytwb>$!?OaP>`h5qxkOBI2Wn{3o#Q3>F)z;M%cJ)x(C4#TbRC!}r(V zy>!)QH9h(p96OThE|eIdvhXwJ4-eYQxe;uHPaTdTf2gNh{q7~yARW*H6J)Jsq+LsE zgXcHdn!@MW=LN%M+6z8YHHFX_+V4O-Z$e-AmBaX`>w}%HX~48ww8P(^+X>Il#MG-g z{xwYikq;Di^0&+PfgSdohD_xX34tk*M=8RejJjmPHWc-$?XoWw611M#7r-!D--Vx( z?kC%v@PHLb$yuCv%hu1zAZD66ECXDC%~2X{v9QIo$?$A(BQ580lUgcCVQ=a8Gt(7A zMGCUk$gN_fMepEOj(gyO5g$1Bh0bC3#>O;=qkzn>6V#!%2lHq=SFJE1Ia-6eSx?F{ zk=py>XpU?cflwd*4?Uo8%824yY!o3@T7jvn!H0DC-`{_u!<MiaPz3S_tn>8(hK;fX zm>9!BY1_B8^*LL$LIm@lFvvQK;`|6M5-J*@pAZ=4Cb|vDsDu=?%dmt4c$CmYzh9jC zWP|d+m)iq;IX?gL>ivH$L`$E09EROMmnvYU%|eD>%zrlB5$amgTq#|^f<xB@6|Aqs zzZ+pINJPF5mVu^=(5(5`Gb_OB%0JUfm!}b~wJ!AFb^~)QP=N>d*8ps19!&gRI^|`t z>CJ~uWg+y-%yV~B&&#hD;BLC9G^kr{41@s(;0F@JoN|V0Kxs0k=ZvLlxn}R;hMavD zF#O|Lhjqf3v*c#ybrhG-iz?5d9t-M>2&;ci62m`%LbTQ$z=?*&g;ZMe&w%kL=I#BW zA)1dwE7yl}JPQEq_h#bSQ>vBKwKqYN3M^HfuV<3YY^cj`;(Xm70_>KO16DfNnzP|~ zhk~gqtHXBG(R4Q=#R@=aZE_2kIdI*;`6V^-1KR~e>xZ#mhZR%$zi1PhTbcW@)~4@^ z-}Q?-JOv0EwlAJDt+lyAoD9XC$}k2FoK#MK7EB`#U79;JjlnDfEuDR-I|kPIdLtgx z4$Vl}%6QPn8`F3a4g%(Er^(q*T@uF6M?bO}QUE)yX;oG}@XmBs<cp)Nbom>jgf=uT zHQq%J81L$X<R*a)R3er+6NpsCTwQK6fmIz#qxZjpwX1_SDuMg!yi0Cl3*h2t(|-T! zb_On9zXFc1pM05rC*9ot=N%?A09>OF$a8N<I}oow^!ray&jyLaZBQju;daCd+{F0| zBRpFltwOMBtE;O+5^CivacARr0A+vA-2g5uPz*y}@3euRnMF6ZsS2rFwaPlxxqyx* zwzaP3_SO*;`kV%el2PffC64}g^qfi*V3X~?2nchk`_rx+)UQ^*|J#ZNE_wi|q|F@C z5U_uCoYdM1|LXgzL9u7xtrsU-HrmD3bj4p*G`LJa#0mN1z^Zck-*Y!$y}`gJ>z$O5 z`B&s8)SVVdjrcH`8Ub}n2<lqbf11qM`~Ers1XjOz=y#x`k`b5xBb(5`9I6(H17sN} zHaf7L?~vp${+FHw3#XVM4grhW<%!LfD|UUuhy0b)IzxU9u$F|tby+G!TxoUxZT2V7 zFzgfqk#y3V^+>u8EN;g#$jB!FDYwMPQ-<R&OBzb!gWB);3EYS%@)Fa{PifJrSm?KQ zcj^cvV9E+7(!^1p@(q!kDRu&+yVsFY=Sy8rB%uF*4v2esaju_x-Dc%UptjUXE*cbP zm7o~Qd#$>eL=OAF7-)B{9lP2bP-3x+I3l~wtb@1s1+ljdXIsABrffgkB-@G^0>xDD zWFCU^I9SiXG9xCVM#)w+`fLxU*m7yzvCN{0?dV2%C)s@EVzXXQ(t>pl`HHV3%XA%( z7ek8uAm-l?tI!I}Wdq|KN>!rd@-ARA^gx%l%cuZa^Ujs?PV}60lopU4edu(s(KwAo z;ZF*_w=9;&-a=b;cJ4-c>#1Zc=pXrz?^i6|kf){)Wt22|<h5B5I(lVNk?e3j>VDm( zbni<7%qP<`WkW3<V-*s~KI0Hh&b@y>@}oqdgU*uncyg<ku%jYKx^_&D@H*)no+cA< z_t}XzB92YrKz+$wa|cwl*Fs<N>6lKl7}44~bE_ecM%ANMsWp9|-2K`jpl@$PE6B|7 z)s_d&$mjC*cuuU}kVMA^g*#*J-}p%bA&Ry6#qC<VYwIH87ol3KE%QunnoZ|6@wr>% zD)X2D4T@tJQC!3RD9~1Fje(eTw($XO|4af`V|}#sR5|HpOI#+HVFgvM>G<wOi{~wa z#(mbKcxSAqIn?w`n3!e9zsOS+))3c#O4$zCh-<)GRF~+K^l=fu1VfokqTdif&*c?a z=W{hl4g0Ot>fM?^lDjZLuIou=Zu}`vt=!97%2@f;p@K(-S6@VpH}V{?OnRuxwH{Qh zC8_dhn7sx~T%ISrL6#B@QkYoKJYcRg$H@E!mavDRVsWU{cs%*7TROb>_YiXW`|k7= zrFq|nkdz=&n44DJ0>lVZkhG$ZxG@F|c8j*hZD4h#NcR1fotpc`{I$92D7jzChtuwS ztUC-R#n?SQ>K=8!AZiiF$mg;49=D?@Z@%v6$@BjFSX{Kb@wQZ!9*w1u=#HM9$HV7S z(`H-MP;W5pQ{1<;(MFl>OV&83^2O_BL1PI#w4=GCU2BhKll3epnmAQ%c;Q<?^liSj zNQWh(p6!m`D1`wmK_DXUKbDG7{HG9_XJVzDa@jB5d!@aCH0f<w_y;xRo!;zbY4?m{ zQ|snJmx^`%8GTvW4(dHxLw`&`u6_@OatBJ4Pr4QwU`pK0DO29}r<jerJOyq-y{n}2 z^-%v~kDA9Y4@*7)u9ok9Rng+-tD2BTj}G{I6aUG8-y1b?JxIO63FCTag{q~wgT{(0 z3y-qT323&XUKWPzt~o_u2&BdW=8nV(L(TB|U7)MT*GcowoJM2mqKG)^W}cX;Y(b$2 zG%dubWyf&I=$@-ikH`-=YUG7prsY`3g6fX)?v~s<r~w<}KJDjfi}2caXZ-jp0VTzS zUy2>`RkKk44fZqRp<yrjJBrbykubsTrJuYGEOXXb#qDr&v>Cj6b`KVr+wdb!GmXzU zRsnBG^exZDJtAH-C{;mX8|7IJc=(GhTi^AY6zY;6dAiru8{biuF={xo^v`X4t@ZZa zTYX-5D_B<K^uV!Vat1m85N)aNS6*XDcYeI4xXy^e{7lyhMYoGKLw0*sBp8u|0Tp&P z&BCFA4%0EN;0hA0G$;NMD*YIlh|U;W1chK{${SXvC#{bzX}G3%mh{tGK_qWX#rJB7 zm!J0&tt_r@&-(78&fPNmR`p`Vt3hErx9av!ltOvtLwL`t1$W`&$H5$glO;G5rU!K1 zAg6k-My+&+l`mjUdz*i>4pSc8_VH0;#TRn+tb#jFUq`F;hvBG5%yMH*uLjC=H!m=z z5GhPetFr_Vrr^qW{YibJr1;Y9UkDOkL9KXsufcu1^UWRo2U^X$ngc!{jkH#Dv?qnn zyJ}MYNjmE2Qp^^n6z4SVh9J+>X7ybTI66LMtG9H%VYXq^T1njt%=<Xc19xAqEIe)S zJB>jpVO;ouXlvO8?cp?K?Ko@0pZ4|RafE2fJo**>3A&l3Ej9R6Flg=Un7>G@^Zxx? zI$z1p#fxwwDaT`FQ5)H+iq*WsE4J`E5~uIpcN%`<<_c)gX)Lq2%IoyJe6D4@Z*28` zN>tc}2SaCS!mNkLL<Ohu7sbQxc4A%0^Mx7ig$hX@Dl+G^$hR+Om&beC8jU-8c^Bfd z!#lKbQ~S>~1W&5Z{1aHS55s5v)+?t+(&~aAeL3NG=P4FFl9XU4+Q>6)?EEgChsnDS zoou@;D5R`xfs&gaw9z<B@jI7wOi77yyvv(h@O2{WwfF<i69)H^(3J~SjI{m*vdx17 z;;s0XZO-0?jnPIYQAfM<TUXLzQ~MiU4&X=LtLB|+MBPe?);E`*eN2K`U+DK0^L}TD z8;exTGOri$T7EaiQa>jX8Pjpof?Id0^r-ei{KJ;TBof)Wcud$d866cNKq7nr^8un1 zmR<U%hijJ2e37$r8jmJIeS-^s@Os`-*_g8kiWm+9RiWmzuP0rP7P)5Y!1mGix{!Is zoqzMAImp@Lpf>Ro`N4P*$u<u(vt=oNY0%s$-+jj7!=iTN_*EmQ9|qFMye=b7*5x?E z%p|r}X_f=OlU~aU>0q<_lAx{ysM$rz<(d)Jp*2WfQ$T>v%Oy3&w$p+=W}#XLDzWS- z<DIM+KBnD~+RhuD!AhD!73z646en-5%|uN<)RvkcSmU$5vh1u8xdBu4GEGX$1H-fQ zKwDhVXbmqWACAZL+LFF!DuM2bV%K^1uMZX9qzxtuJDyF74LaoL8~DK6LBQc`R4SI$ z;DI5E|E{<G@DY6TCn9E6Tp1~QrN`p*ZFi-y#<wq*Lc$x~th`v9Cw8Y5kNUe0gT@}S z`Z$Y=wv%=TeKGC+T#XHGH(!f6_*E#FHYxkR$94^<sb)tS#*TfruSAGyPP`gp7gTj_ zb-M!^B{lBpwYtIO&y4PIUu?IujY*y#Nx#SS)vojhC;@6sQh*a*cvaS?DuQM&j2Y_B zGkGbz;kf<Mj!gaQBMRkNJ1fpLmo^?C{P`f;b6S3ZWY*T>D`_n`iqgw@?k`OtXZD<N zF;yP`{Z?lqM?*sL0>wuUgt1)nXqpFI{zZ#<jpx3VUjaRGcG6jl<%auuO8Bz6luSU= z8#IFJ^Gq*STpwnvE6-YeNNvRKy0^CWoIH-~Nhltv`!%J^SJLA;?CGURO!sUjJ*KtQ zWr;Mf&y-)R+cwGgD64{SkE6Kg<lU8TTt=mqYfZkwT*f<qEy2nG%(|Oh?3<k)DOX@S z?xAXYSwhYTu+D$YC_RH~{{8~hzI-&_=!dr#F_s1Yj*;(Co~Z7byk_E_9MGk0th6#! z)asNpXa&v0sTJ&&?sCxEFRd|oem=YsYGc6y^C$yeO0HMSOdXR@t8adtk^N<7rZ_je zt+Ianyr)Kb#dj;fO2X)wdTv{`6Ii$LE19vP$j-Wh(!F0)tlwqIt)zA1jl(89+!hHT za;ZTXMg6GT1ub_>g4zw-tuu>D(gqsSSU@FT=80u!fE%~V{N;|^`^;QR>V1Qmv5$q9 zt~^$h=&LwBWb_f@RZMsQ{RF6K>M9w}fUl2rxf=Scd?_{NbuZ?-U9ERV_+rUD!&wZ= zS2jM(M4N-V1|^(d@q>yr_uB>7<ysEAip97%{W8$d3rcAt1z(lKz$<br%MR8$O6yxK zC0wiplckE{^p|B{b~>>KFbV`aug+hos%VuGA8G$eFj%2|Q6c}Q9*q;QiYkq!ELqz< zYPFi}tMZp7@nwf(6!yv>HSZb4Ie)h7u!GqZ>hp=oxlrEQy1ftLF7oU%V`JHUFnwyM zusikcy#{byIg4n`B<Nij)skGf=V|evd;01d{ezO2I@K`@pkL`XBO5S8Z_w-Ny{|!1 z56CSp%YJU<LUYa|kpk`=D`1GymCuLElL`!dAM&w%dQ6xy2w*7*R`dAv9@VI!D&O&4 zMaaH=CUUqUDVg84$m`BYPcXzI1Jv8ufEif%LF}2J@@!nebXH_n<`CyCFZsAl|9{Ld zA!V`@#sUmjdD^w{tNRjtY)=gc`i8&J$d#B-2R)olLpp+ffsaQIyh|$)ub8kA5f*l5 zN?DX}k2};BU$Cq&2ga!cOeV)0gGTL|nc`Q10<zpv-EH+BX1>N{-rLP5<0Nz9j)ceM z;+^qt7SrSO4>?tRo;>%OWjGd>ap4gODMlv17I-Nd#~K|R!^`#<#ZK;IXIY=*@}w%P z*zWq1*DIMPfBM><e@{*uB>vWpGoRN^HG0?Kgtg@f6I~vkGIpB>W_psNX1SL!T3nrv z&vni=X1@EY)Bxx}x~C`F{C{+PcOcdK|33#=WrS1`DiKLE)UggJBeQTakFLFogKQ^B zC}d@XL$deYN&^*6c4o4UEqkBe>wS#6_xJt$)9vc*{d&J%ujd|*r>v(55v8Siu~XN{ zuTinhb0IdRQAMKJbxBF&WL9T}6aC8j;N%Yvff4+8KI+o#6|GX`wefaK9AV!2$yg0& zJpS3kuzsL+S=5S2e=6CjFDq^Q14AQzSrH{jcp$y-BQQG!O(W6uyQB#8@j>uEy;iHU ziUW&tlDT(0m#mK?&n;r<e{9xJyBogQ%)&}*L=m0IXRk@vrAaW-M|fR3H0uvPXW#RD zpXGXGt1efRxCX>-HGsOw=_1Q0XV1|B71q_z<-rYt&=%HW?a@Y7NDn6Um+9A8f$Z@I zmo3you=KCYyK59YKs9!BqxOlGWDVSM7_NPg&uw+k+(p>^87`@TPzHKg@Ly()kb^lT zGu`jcZf{qdQOo8Z3dgrUZa>^GJKh>6KOrt@l*z%Ov6U{}(<yQST@eL3*c~+-XyaD~ zHoE#GWLIP)i!23^*_7PtOPM&0Z5PdhK#M!t_BZv#ph`}(P|}qP1cc0f`t&yCK%<j& z`osk^ZDOCJxuJNuo*C3*g0_q(>I4-M0|d~+sLL+?EuQc;P8YvDHG(pP>ekJ5K*^<U z?3`sci~783=r*z?jK9P7Y$?Dc$-wyv`uz|lZ0g9RJ&-c<G?$3^p8MTIKBiNm<?);^ z@1V}W=2{&}9%X4q7+R4mOb-yO+3Y6b1MEditT8Qb7R**cK_DL?LxDd6d2a|Ca*6HL zR)ZUZIu7JMe$;wCS^TL?p~l<pi-VrtYXKK3ySc3eCobjI7NEvkRYo^LjpIZ>?K!v^ zlecG(o*Q3<*D60B&xrB79X}QqYbm*zGfXKJPO=<2!X6}0#V2{Ur{86=Md$UCp7S)^ z<y-S}?YQz+8#m=&Ym5#^>Q6SRoIbZ{{_DokKBp>&uXG)5V>hNikJptggXvry*%%w0 zH_Kn@PP$$#xqU&DhgY)})u7wA;Ffd5S8L3$Ils;{qH0}_1OA-d)A9iudzP5%@@+@R zzT|jo4Uhqy=r=zF+?LGzUBj4I{$|z#TRVAsNRu}$2VP$FvRXcIJU#L3R!(}=1IaC; zNBQgJ?axsXl8XsXP!U;UN>}?Xnzt@ZupoKqJ@Ie0P7fFjqQY|yxOpl;IV%u0OFE4J z`MG)sR;bsdV6O%UfxQJA%=q!@f}W;1n?h*>Y83!ZP~0q+b#_p5{*|kbQ`S>D@z5y7 zpjAaoKg25T>QWjuQ*UF-dt6cJ%<V|c4#(9aSJoNc!Yu_lDG!Giv0m`J-;~j@{PV)q z`<tg{>WsFGx5a020LmFkeQ@n#XrQAcNyf&!ZTTjp&z6G1YP?fZxMSb^M(f5%qf=i4 z<S>t|OxTEC>FXDCY*z4?tOFoQHJ%i!sD#d_nSpGFbZXj~Y`qWRVr@x;@XN;Kb?(Mr z6IHVZp2-z)3=X*9Cb4i^0aSv1AAvmuE-|rRh3Io$RlVNZbPA|#sJ9Iq$Va3>#dI;< zffaxbd7yQWn){4HxKpWOYk7M>T)12{aP~FzdM_8&q{|9xPkldMD!blRr*L>VNHKbF zJ)J|bz3N?`BD=U%>G$>b5jwLarbQjytSOG77w)CxQ|m?bPlvVW48DFeFXT9|^<lcb z)3ht|2a`1@JGLGGAO{(OdgYfP3{1h5fD6~ZLM_)21YAYp>>30_>Y3Lkx-JDZIXre& z;yu<|CCe%jc-=mw3mcPtuzCqQ0^ntzuGNU-{uqr(t^WiNQP7iSZW^DoEwctEQXpRB zv2+@GAwuO}LzwY3DBt{uM7gsuzin+cczZ(eiR6>(lT+E}qGt0<7fvibSK5i~1Y47K z%Ysldh|tvp9oy?U{fNN+zN&NJO{B<d7U)0t{k!gM$w%r}wjkPIqgf)imK4(Sa})SP z$vU}s{qbh?`Juw>m&YZ}XKdbvnHSvyz3s7qqP<yf_&+(YloRfMdMO*O|6-P}?Y(z) z#BykwJ<6@|h=6ujA**fGQZ?je%mBZn-+k;ul0&VJ?e<2Mfu^LsOT$~!o~A}e-UY+= z3pYx7zx!U(mTF#6iTnp@UHII)k?XH}*`hFtePB(FP242aVa6_uzx6{#&bE%qRS2vl z`TglE&w=-&o>aL|Xs2SCGBRZThV8MR6XW-10u~mH4zWd?ok7K{B=hqVumdEeOA!^; zbJ&+x2df+8b3Ev4G%dOb^F4=}Z4a-1e$OxX>UpPt;L04>HzjwBRmkS@6)B&`xus2e zv4G1wwT6oJ?ZWLMeO7M_wnttmY_Kt3h{w$y({*jkn)whlTfH$be<$uwFe4EvFZ$x@ zTMfjWJ}nNabKwkyl?PRNj#Oqp-v%h9e3vEdK6cR<^HHJhyM8G8pxAIX-1ml`Uf<)J zD+->oRYA1@7Gip~J}o+Sc>mwWMbvF>5+qjmI<_j8GHscrdMxObl35fAEh*d|B#bG_ zWOTTen-D{A4R*-LNB34cr6+e0X%2x<!PaumtY1qy!DnR!phRjW<l96EgVwRfb_6oA z=1Ua<FL^mcNAFiGPv}hb*w)ZbtTM6rhO}5_YuQn3G6hMF&D_sPB3x2w{+)54c~EA# z+wV#Bk*UfBIv2Z#3&Cp3lY%v6<8vR9d{cVnWF%z)1W2;PdJ>BuA(o{1HX7~xX~08p zN%f)9dQD|ok_vzYwpc%lInsY=opd9=x8$ID_JC64D(<pUx$Pq>w)M{e{F(1>Jj9<| ziduKY&FZZZP&g6Q{>_yN7MJDUvhmR#%?97Z>C1Y!+EEWb(Kzt#M(#1))VWtd>p93) z9@6OEj~?f9J}@3w@YW2PL_ggSY5|eq$ip8Y9OX-<-)JIydFZY^;OMbliPd}Q@opX< z-W5?S)S#)|xOr{M)-JRLg_qO#`5MBDRm6aG_=P`*`LbPS>`GKIyE1~3w)Hix{a0i3 zm4}w*Q_<Ic)!)eU*ji)?;m^@UWmLF+=6|^jkYbeNA0Y32@P$mc&D2RO+pR8v8?rwD z0F+fXGN)=eVx02v76+9^i^B?T+JdiV7&OrxJo17=RH$oZ{b3jAFn#9|=bTn`HD@vA zXw9~E$Ynu3zWmdog@-z-7JpgxwJ)ysk-2-l*~Wi3UQ;{s6~*IQXg<yQ<51@zk-ors z!k}K2<Dyg$Dq(4!o^SC+j%mETKYxeEIQrXo@^ZUumZ<qJbj4==WS^b*>z3(z;uHz= zsLKmemjuf@^RtI@%n9wv#(DejH@yJ<CV6WcbY^$e`gn?REcNB!K;y<;$<4KBiJTMb zjAJ0S+h#omq8HhjWno|1bLI%Fi!o&DIvtkxHddojP`L}ulWc_!par;i{Wy!{DmCB5 zy<{Me=f{8>_VNb{8bXh+PbRSj4cjNk!`wK48)L&;F0KfvUiM;ZYuDL_rRNy&JQ8|7 zIPWoM;2Grn<TLC$Fakh*3Z{#Hbat1Bf4_CGLL^ljbmkPlKQKwLP!wg>`zXM`L9eV2 zVDT)^ec(n4QPNsmdx)-EHtrCcn)CkhEd^fC=lH@q9qJK>FlO>IBD@vODP{uv2gj`! zuPCm_9^^1|ExPt?I^#m!(q+BIY@hO_=au3)ix&3bJOS*{R+doLjli8dx*HxVqtlrU zjvHEabbZsGSVzmYGOlWj57<`5tYWdl5-a7hRT2P=U?SFeoxAvUt9Rcv(i2U~El`m^ zK%wdBY*#i?Eim=$qc0a<r|&_9)so&xxt`*Ow_7b`OU||Ae+azR6+Kf~byn}S-9+B# zfC!<WSwf^JN5Z1->xHtW_U|`JW@4=Y8tZo>hVrE#lgrf$&C`}CuiY@?J=DM*?@r^R z6H9%|-uhb=d9$b0!?t^vq{q3AOi7};;U|~7l7rqSZHXtg-`~({6|z^2TKve|P*uKV zA-mO4q8dGo4(_P~{ak+IAFd0u5+s{M373@)?^%16qz71cn=ha5^{V{CrK+y$@<=o6 zOhV6Kq@&*%H(RHTz&S4m)Dl3*6zV%5GqU6#u*Cc%`%e5-`_~TF6K<#;iBr9EPx92n z!00EGrn-7}JOpOrSr)ftlg&_mCGbo5vuXFiW6=kH)x^7vCI<wBl(6*ct38~DTX4Qs zY>#y6H5X+`Vc+dzLYY)SZA^_D$T?P)S4C)ACaCji<mOG|jr63&&}K0M0iB3#1FL_+ zf1;p<^BYXF7pF_Gx&D5?ew|_yOF{)(X=-qrFJ;nOg_XwsUVYTMHLH<qROtEjO}nPf zCnyrsdbKFi&8o!RkWF-369NK#d^2uLtA?~{`mw(FV_SN1S|+B6lI+Fm?WbQeuMNNX zNYL}M9_Mo)+;}3h^fP`r+~eo+WBopFVb5RbAARpAMQ_GSPR7-M1XhMTq3=t(*ukS+ zbvA4sN-gf77hb2_cm%~}(ZZ3_dnMiizmzn<JZIbbW(l+mGl_?nCDxRtPFXf+$cZrv z2qHxx1HMV+Q9tOTT9Cw23#v;N>2e(A))CPyX))hzmxoNtVO`EOwfjvK?+*|?R~mV* zJdpkxfhioVCVaQL%ljiD(*!h16=)T36sNV;b%`6=6px`ItyIL^YtE614*C7I>9cQ| z)V$vwj?{0sQ1MIGb@s!URfj!&%whM?vjfJ0Rq*zi<L;r;ZH0?p%sofmzzZFw(<Ea= zdOr$YSa5@ywVHr+^%aCb+idE7)C_ohF_Cx}4|QTe$g(Uw01oF@M-%{<6`7R;E>{tM z=d#h@t5=@Op&fjZ$*l=4>1vrEs^a(L5z5uL9}SseuD?g>6ss+)ntIP=3o0mER=Zh& zj$WIxb-tAOuMQlmFW=bYI`zkobZfRaPCU<B{v4xnkC5Tg^OVh6)gzp5tW($C;cmW` zdu&*jZMUbe=hD)#<WB#P(UdqxH(bht!)~Ba(V@o;xVcb#u3V<N8@KsU_LkOyo>O|R zb>E%Q!jrMnBTruFqb3NTKfDB~A2X<L3*dP2YvFvVkJq|}=tR~U-Hp@D+1+`Qwj=@2 zyk+M$$wH<7fUv6c#`}-H$L5_k8>o{zKLhP>CsZ?ZyMiUdxr^Xc)pyS*T_Ui?Gg4f9 zQYvP%%d9ouC<6rmiJI<h-7c<77j|cp+EBc(ZXlZ@(%v~Kn{)c6v8QRLzGqrbwr-K~ z8jfXY-ShEgq3x1X+;Yrzb;Sz)pY;vF8oGsDZuUYHQ<&BKH6Z{H32@$Gsd)!8Gc28K z^9r&m`n%1SJ}ih?<_@mU9AR7k-U#)%Wi7R4Ws=X0`X$wb<ZQQp8823=-VSRBqPz*v z8w@V$wfePdqS_a;o)mRxpEkc!mOO1C{zA)|-@IZZB8IZ$&G-E1C+q23$ue0XeQ`)3 zYJIH=!g?o7vBS`<WRCNiY|%NH*(iNo-QjEnBw<N_Mvrt>Fk{BK@uTk{ZCMT)a{{YC zjYVbp(jw^-3FhzNzeXn0YQ{m6I9tQ0ak|7r3Dec?QmK5tV*;T85?$XP33oq86k0PM zm?_t}TQUG)`0&1HmprgvEBW_u2~f#kM;ZZ6p_=MEXlRA-`>oasQ>?+j2Hlb#4i_&d zYGo5m`LBFG)(*3&Ee)_HmszX!OYdmzK;<JdvT7@R8@wQ(Pk8t9TO1E%t0H8^UuQM& z-oJ$iP)=b=9bvK)Pyz+dlVE*2&<&k=|AW%k^Cuiu44hnJgnj->?n3Wy=2X>VmG4FJ zeB3Kc1345qDqTsu9ps=~9Uk4Dku_TBcI}i~3{ZxCgOPC`9)<y$%p}wub#SMr2^6;A zj)S>WT@UN5r&pU~ySc2jdw`q5nAP;1?O%K4^oErw^_u1mUH(_)2yruvEZDu0b1<C; zG&cS+1f_07BkunKuEDC3(_DXu;@yaR_;*n*M1`vLu-zCArV=VrbE<eww_6(bf8y4F zO3PmouEpa;ivM?e(vHo@NdZ3U9H-iTAJ?;d68HZU&_8<xT<=HI&5AFcI{q>HcmK9u z;lr5-{IApHhCA^N=!=8nVT;H2qE0(@E4COsWXWH@{)5$EuT~xs#5;Z*RR6n!o&yTs z=y@Y|ZC&t+XE7v0`&GNdmFLw!_E}=)%DV0=nAQI%fB}~eX94BQDVu*X{s`;?@}v7b zl*F}zqrv{#UZ?sXE>rCHv&ty{1lfL}Pc3h6+jp1vcnTDD>brh5Y4&J<P%v8Elttft z-a7(U7}SeH0S>(Sr{i_9KQ%!05${}QJ&crMPW=4kR~P>kZ!%hatyyBt$iwIAD*$!~ z!8}e^wn}x3l*U1jiH>cIDct}>{a%7isn@?Mpg|j+-v)k$&E+Ygni{v;pH8E1FrMF% zF?Gq|(^gK+rU~oo&Q9g)YcQRQgaDe)hINXCe)LKis{N_oO<2C{c@Cg%loJ6$E5T&o z=C316cB3rB8)#EUAb&JRN@TROqX5#6ffl3}S_@7V*2TXzn9QuuR6V&x?Xq891N{!v zRdD}MG9!Xh0``1o3=#&$xcVy~r%#UU^1Wsdqx}YC55^kkpzP=SLSknoOe9ptG#+UD z*SMxA7HD)1)H%Pky}@zJd==oR*i8eKQ>$IH(mX&YT`C#4&$go5?(LDQX^0CN)6~e> z6z*Fd`wH^&eJVAZ`E#3KevTr?nN*L`-gy1WM|o@uz<S@f`O+=<?w)`FB-d61PPDwA z%nH=h(nxs;5&3O6>K){>NNsRflC9I{5w@K$v5pqDJ@<P$h<G*GjotS)ig~(+F2yUk zs)MqNmykW%QEp7x1Ex-7SDA>i8$s6k()g8k)obe&!q$#cxIQQ~j0K}QGIVQfj={f_ zpBQLW0u_5mo3&Pz#)k_NE420sw()Pytg)Z2E3=+?-4*c}SJ*&mbI|EUw81)}_6mbb zDFF1$&XN-8w*g5hV}TWT3!Pct_vM}yGd3}^qzq@Px=XsT0Iu{$M$TrB3%Ua5*z4gb z`k+R+xaWd(R_EH5_iwY_6sMZ{XseQVHh?jG62DG}50Z4S{=LtC9|5`=C#}Oq*<LIl zSO}B&yh!H8U#Ip_2Egdoh;V=80Ev!s&Jts5$S=>QLJ4jrW3l#c#g~Ssghw<Qd#~G7 zI)EW4jV_}U8(^HvSM{wy-*_vKWY(IL`A4^BiFM)znZUvrgx1@cGYdji5*v&5BGZDc z1sxixaic}CS1H+TZyXp<yB~AhTLOFS!b`8tM;Ze`vrN+&u{?)4lozWFyw==RT{%1# zQAj0ur*>z9T4vF_uh*}F&}6nQefKs%LGHOOE?Dvk<?=zm6AZu5X8vfo&@aqQ@Z4Bh z!9Mphg8fy^!kh@GLArPH`7uBZI$p%iPO7BySn|TeB@b6(2GO%-D-23iW&u=<>=#gV zK^TeCB@MA}gelqz^9K##6EQaBFAvphX}fOwG+YH(hmd95^L8!pefLnE5=}CX*u`1^ z9Le-;rF!lllvkbnQIOGh$s{#K-!!(UciyBiy3|=<z_59AMq$05b&>w?GUQ%CGauq& zE;T^;9CZ|b_0}?FN6oBKbS8tsw~Pm1(omrx{G>&B&^CazNKE7eBk&wV`oQ#}tMKnB z+sGvdZO6gbVq=)8`O2|nv5E{R**R9yxBQ~dE?njHwMHcf+jjSgL6cDQS4+Us&Q%-u zKXrq^Dq8M06{&FOYM-G*A$5PFpfp>>EN1Y%2_@ap<BG_uLicNj4Zdf6$hqpykUQgI z851%C#YJsuhSq<6@ai0^VrlCue|WkF$~kR9Sb+*IA^;+)$71r9jmt<l((Y@g@|n3J z#k_8dj4qHIkIA;^tOa=iko!Gk*Ra0SiRyF&sgXX>8I#toLfrw_BT(iBox!R~wB4%> zlKUM~e#ymOknn=B2FJlqrdk0<8Wkmj*|u|~95xQ&txW+!i0IUuXOnH$GfR!BUy_8i zZ{iEV9I(ax**^%-f(@$nhrVeN1$zjsD%9U5qyKZtUZv>QuYBLe7i_loA(V*qZ2l$? zd7en-cQtFbps&D(6ijXE_bDNBUgeZbq-T(WX+_JjYoD$}djiCh_by{7TvhE+U}l+? zKOV?gY`fbG#rIv~-2GVq7SB1_W_%B&X`I8I(t3czQDdP0HAo^^?_v(MURjQvlBdp0 zu@v9wU1b9*7XRUS=hecTx=AJ0_%!ve@<&83d6;fLFjqq9ELV<*QjVb9wjD0US|xru zS<%&?C#tn_Qm^;d&443i998WaGfo2zH5>1{A&?G%uWcUyBz0MGac_FUMzL4SxfLuu zW0(x`cS`(u++Ck8tA!W*VLr5BNrD$H(6MTPc~UVp)Je4<ZyU0T!%o?S+vYbsb;<t} zaHPWYB*Whg_Lx;j#?Mw88xcutoQBxLz{`WxX$|A2F%ju9s4`d|3L>xp8u|^&y1Ic3 z)Ph88V9%`WG~M_=ri-OrHkBTwAjcV=g$$hsF|7kD#Q*>!ooRM^3l9bsg(k(cOuL0# zxTjw_s%?2bo^NBAXQ5NibUL3lqM4;LBk~)n`q|%TZTbAclv$yr&EByxtbe5}Z(&nQ z=ZELPu(rp_Yw{CVZ0|=Al&9%*&uarn6phwdIozz7x#S6^gS}^&7}3o7Zl(5;H51uq z?e^GT{%rc~Zp(0&Ge18eI1Lzf3>v^#QBX6hyi)g04Kk-atPnH{Ffyzz$IS9ge-cS> zEg%dKtToKV1xoR?8PlLRvn8p>>PPL&QHM8;9)pa~aFL3IY$-=Dha$OWEVUNQ%34&< z0G-R|fD=~|=?^XHYPo?T9-HqjlUYM?e;`!=y<lF`oasAC9MAWcHEA&8cnP4N)g&>4 zSbRBur^W(=*`dVaN}Sde{%YVsz~5lvv^-xxnmVB;f^Uu5P3ct-?&kIgt48Dil&x1R zdAA0%G=xY+L0f&WxW_D@@r$4dsD7Q-^a|XwPOBljhZS)-!p>RO`;hb?uwE21$FC&R z;=>Pu%EAc#0T7hzvp1$6Oj=9N$Oh;<EcEYftJbm&mH@p{wnkG8(CTx*QqPBX+2@Q( zK{Myb0e<@Zl0Z5Wda+dFi;d)aA`B8{ZCQv<1y4^b`8Mv~12A~#VbHWD2>oVj{i|*9 zqu>9yLMb0GxJ$Rwp~yWxpb0|7d*XRQ6WK2bAEDj=<fyn(PgrcFa0I175cm#x#zslo zZ(2?Lv}#Fns2FvFs|O@4ukmJB{Q{#Jpt*1803HBHw5~5y4<xm#2m#F8i?$hfQ=N(h zIB1S?F&)uopsRUKi{sq=<Rl0^)BRG%UTC+R#b6SICJX?)Hxbq@bb7hKCS@@nRPePf z-3Q_;OYKd%t<YVNp%{DJ+1TFs;Xeq@d9Jr!otfS`Q!xSQCh@W^qt+L_1t%etZpd7L zpzRwqk9E(qcj{X~(DWH8NuC+*@UG$)I^7;wfqAk#k~3eNEXu2h>W+Ec>zx1*cXr<% zp8%lGRd2@rs)on-!^#u&<*g;xraR5L9^7T~*eEJ?4ahHPICp_>Ipdz1+IWKF%E{O) zr}$QH<LJ3i0tnn%7sR=Ct)tp?K3y<rba^j6nc%U-V!ard&;ei<qa6}-mY|I6!(ZN* zkD*|4O1X6-e=#urV&I0E><@>zK<!8!TC8p6gu|QhBN9i}n->&JH18$oH^_v@F5Uig z^Ak%+hMlB;=;H0K{s9VZ6B>Dk+95Hz<Jl3#(HfVkUEymE_qY3fjfh2ZyxJ6ncCpoc z`%&dQo_ObX5biT^)X`P@%%XnV92&y`07pN)6=YJOD&3!h9bVss^fmgY@8JbTNeE&G z!cyKv^^M7PTj>-pv*hvASm^~RGH5Oo6#kg314zlEUzRRHVI)@z*@Y3q#w*AY%bc3a zd0D1<14~@*hU;$iOxjA^Cp)m52jT}sn|z>FYdc%Xx}dgpghE)&GpA-Se}vmOe$!)| zEHMAJ!YDMTsONL6(;>cdKmXNH0s~5&^d|Z&9x4FZQTSl10K)8slh2k(jIHjd#X8z0 zJ)^Cp>z_+^PwAI*sYy%5E`>iqN<u)uEn1E30v9d_FX{DkSUZ<q2{a_)`KI0_y}DbJ zW(>O-E`Z&ytVRGJYW&6hwTKqRUPp?F6IJ0~dW-mPpfPp_&jji)16^cqtEBd7?@9g- za2w2VPz;^J$j09e;9vIx40c?&joM3!l0VmRNuqXn*NgXp?IYxo&_gs3UUEVW?C5Sq zHSnsB!pvXTc^~R1urB`50!nAjXDy}vyIaNxn*Ds1+58QH;^_Zwur7n(S6%J@^d4~j z|JXOF(3@DUotNf}C&%;u`)t4=?4q#T2hOkH^Q~{Ze^e7gs-oAQhz8^jM*?&8*)&7B zH$sg3D8>JJRWTGsxgFv7*P9TW?xcH?X2&-_{jfOzvML1Mk^KD}_z_6tLCsU(_<;&< z?Ke8VLph-KG=;;{->jMF>Vt9Jw2Y~obFIylDH@0b;;(@}grOn3LrIq*XHlK|oiOOL zm;)%5-35MTedR^x#F`6`V^zlqm`lU~xR}QbkA{{+tQxO$7A{Zs^f+|tjr{|rk5dRa z9w0Vr1qYHiKyBMl4{F}-El>zx$*ZKPU3|uzFKFeMhx5}MfA$_yI#JBnEIDdkty!L# z@Q+C08odff$94^*7GZm<&$sL4#KqX%SOTUJf<Q)A1T;bVF^UCy1>obT9@bAVdUALn zPBuh>U2=k`IX|L)f@*RnzYQ>#rHnpbJZHG-&TOpz>hAnrOezg7XA_Fbcy2sDxuf@j znJ}jD?j3qU_ax*8a!@se*{7^P!)sPmNB8ydOKik1sE<Otw@FodbE|lz-!(<dqbh!) z>h7R(ob$<s&9L98JB~Jj6zEUEpRvt2a6K3^YFtb?v+5lwB#ci!XRb0N>2b(G?Ffs3 zuq5QS=qq2D!4w7iW>6IqXTh|Ki^16fQ|MKRg|~ZbubH+kfO<eH|L(I3OA?unKz;vd zaS!-TvlRq?!3C8DrtzxnV1QtbQuA_QKYATrq-o}lN$Q+ef0{vFm58eGxNv=zXFNO? zS#~PiF?A<wh{&RtNG0W-3@=3T`Vl5`YPv&JB+OlG)stEU+L5cXjd5dTw$<a}qU|fA z=wex7&oxBK#o$uSW;tAT`q^Y*4}WATFS01Wc*O)4<kzd+H;&7%msb9BloFzH(5MWi z2%%bC-$-*<@GmA5hs@L59+GTFJ{kBBUXR3YiN8or-GikFr;;g({OGQ}a&Q-~i&Kd- z_8mXk4m!6pRmmFJaz*mozruM{6S+<(NSkS;Ppj_0IshE2)Qd({P7~tl2{P5vvjsE) z8M)Hj6fT0DaGI(bSN#Ups>5qE0y#z+{<}=`pP_R;ys8hs!G)0cB)vgrZl0NF&9cN_ z+6}kEE~>)bso?mdu;$#Xg^DlTloWPffK7(E#B1Qik+W4aRUG^+&a>^V)g5a1Yws2m z0;$95k!H?H8})nWTfvr?mg$$Jf<@3wbx5hn(cquxB!te+QI`=nHl#q#8+JyOR~~E1 zO{WfaDzH~mf-s?2^vJ{k%kyN`lgd-ED`xC$X6!d7JF*%VzMNgS)MKf=69IG$4RYO! z1wa7gz>Is!w}U*-sd|Gn){H-dd)#3@%Q)?77L%Kg@-~YH4AIJmOzPGwJ=waeW`fyB ztC0LJb8s7A2wt`!%qJqHn~D8~89QLxGYfZp-kjW#UJhp%d;kjBq1eV9TUB)h2KQSI zT`YgxPamspsg*9?=2s!jvqVGqs83wu$X>@afM#(~L7qY-tT+?IQFU}Q0xCr-@D3at z5Uu>^WT{MoaawWcE%Ef77keT6ftz>tN#gOHg^O5l)Vaz}wuURm!riR(c)n^U%Neu5 zxsZ4xy}|fgOYISV^=>~|_FH?(#AOy*Y>1T5g{V8~kA9*K{)eUcbX0sGyTi_1)+Yg) zo{!!IXbmPM<sM{#k83>ApAK1sW9Z_aS!(l)`yWKVf|^~3a@GU}zoiP^3W%+a9-ge4 zbV(P`bdWh(=&^L2=y)MZS~>c_&P7A$F+p=p36{hIUgN?tY5FLeu*4xlk~#~&u%rdb z@ce)ab@&x|KF%_aMT3)@R?V>?@7it2S382sdlGn#8Q!FdFTDYdW?8T9s<v#x5PLKK z^<_2i4I^pAH}{&`<RCF#c3WLxe24u$lA}+h<K)w87ZjA$uVmTXOxNq6&R2dE9*M*c zYc<28I`Y+f5_Yc?sMous>`uJsgNcTWK7lIC<0pdfN987Y(YnLV+;wsa!~BJn$?oTa zm-dj2jDf;>HE6KA(>tWG27KuGG{CJ)s!AEUYT6YO=VDj+(04L%@_BI%iJ5jc+XX&a zj&CuY?OA;o`YiMK&##uxclwH>9v#Aq^Xt#nwg=s+<Dp^CSgkv+P|x3T-Q;^-2w*EP zjz=NzEnqA40VdFr2^k?f@Fz|KDUx<X75UG3EYoct<x?McA^`iIY9E|@qL~n?=i^zM z0kq8>YyRw|1G-n*AS|ujHei%K*+X|pWd~ijBXp8O#|T}wsGT8_j|faF3<Rg<v8h?7 z13z##she&o|2$%Wc!>_+l&hPZNZE<h0N|}+FHa1s^7zLg?Ur68I~+~}w<OP#P80i) zZ<9$2oWx5DowggCO|a+0W^_({82mGFy_1Baa&>nA0|4Bp<(6FrxTXX#z>VE2{dET1 zsIqH8?&n%FNTGyLplef@B)LZ+3QFy4NQijb9juICfnV2H<w+&(yEt{f8~39UqD~sz z8`^D{gMU2o_RFS68mK{z3g<Xec--A2`^|`^t7&Xnq;RNHg&AUl$Gy`Bp)A0&953Zz zW_ZKhNBTd`R7JcMc8Pt&hps&;@w*M8+QJ*LhcSi~Crmy(J*0SCWT1E80DX1ufkWlb z-*L+3U{<R-I`n%AK;O<gpX4=H{{ab;_*<s&C)>w^LqtSQ-aU*H3Izh0d!7Xz*CG^g z>g}xv<Q;b(&*zYkdDXfD^vbZ;$C^e*-gO4JiGE%ob2PD)=frZ($U_Fio#{wrK8I7O zO!9;$cUs{MZ4fc*+hNG)%*?|-d2CD@Z_HHq0{8s!E+E^|gg_C%3Gau#=@)^g@<2Yo zPusSUHBX1Zi@|qD*Xhx)JB{B{{CdY)cBwE>y3P~a>G{-*d6w}LwCMscOc;485j{W- zn1+GaA4HT*#56hj*IS%?6vSoUE<;?VgQHGRo<l!Qol`mDFrT`2pZgd-2FZpO*#p+< zOyCl&zoVtU-nr5ulmID@?|{mW0nKRUoNleQtK7;Vkj7W*R&1ClDjXloSrE&_=c8QA z3_h*)Ep!a*Ny>}NaB6k@8P#UEkUAj!zes>HSd^4K=Nx(}+3=dr;dy^_;2?S`)qxov zw^$iscpF?n85^UHH0KZuGX8`BehkM@>{lG5qudy9eqqu)N`p-2AR?Z)hK8l!8e*k+ zoLn?hcZeE@Lz=r@M4++nM<9tfBucoaLhXDLUgrY;+y+Q`;oE}TsH|&qt0>TWpvf9w zHuX!Gexw=(2%lW4$_O6$1|Vh4Tk`GN`D5GtqNI7OfzD6@Izzo&_%C>ff4H!Q5)i@A zEe26LSf%0S)hW{r)w15qRpvLi3EVDXpWsr>g&hPgjW7f@_U83vV*3@t5gc`3d{QUN zA~-MZQ01qE=XFcc&0`;&LklO*snkRFr7>ARgq!4)q`+T+BnuNMI~yNRg1-|zr&0}7 zA&HP3s8tl`d4AG4ZhTeqZw_q%Iji{Wqe~#C5>J75Jwk#0m57snQ45swc+vUr#z`54 z1g4}pzX(Xrzh$2o4nnA@y#x+&v*x|~6fiP<vMX+f02J%CXWZD}y&JOIk{=1amK(=$ z8&PB7+v4k<uf#g5yaKr(d#N<vO;|Ga<is_NL5>9%V0NN6Qvv7*dDlTe7GTq}PF!S= zP_h%mo~e}P;fGXe3sEJyz76G#U45d0y_^-wM?9^O90b5J2TdCOnl&EoyWfE)yQs4r z57^_&XM&1ZXs5;!KuU-oceh@PKdr*Zipxt5yv_m%loRQOcW=V`knTQ#zQDfjx`!MA z!uqPRX-pf@zXQl#APYH*x&>sB+L8Lu>T#JH384%=W8tr#nL#?*H!<{dEDrxfZZQ7D zxRE^IIA53Fhe4n$%<PQ+1KwI}vM1#ZxZZCOjk~fPL$(*0a!4VtzsuWS0ZE5Wbg3s8 zYWM`AShOQ1ywJ}x0ZrR11DZAiRH7XRiChxQQL2mN<Q4!&qWXYYCIsB|Q3C*^(8TKU ziscNG-+(L=xMOS=Zx|MsezMJQ>O2499%G6~@RD9?{HjKRp%!~9Usy0Q$zCzT&^+r6 z?sw5x_z6qMR+{g9;lG1DC<D2yZ7U30kV%$*2Fpa|qkLGq#KsyB-!E(^72wvsLgjnR z@F+FB(XD10NG}EK8HtcqlhH%?x%mV-Z5g7thk?}Dn26K?8u-Kv(7?m+TS%Ec%r;cH zNrM{~gMiz3MEz|bLkXBg@))}94?N`29rBNXQm9szVTQ}At@7~wM=3mHFgQrXi8VBU znCZfD&`XEREWk|RXsc`o=D0Bm)-L=#{g)P^JMKumE$}ebst9;-z!$;l2+9q3D)JwF zU?d}F@IO&sL$bq?RC$il#JcfrGBH46!l<a5_4_`A3HUTHDaX(lTFhfP=&gfdHdxFz z)$kF-xgkc?fh*wtc2_&agYe~pQo!d9L7Wc|tZ<lex~_06az_iL2p^8U#)}qakjTUB zXd!mUn1&23>;;OhtANsQLPbEau$#V88BJ+*VlUy}v?pm^P#mN1S8pb5`Ehc`<g?=k z%u>>C1?l6|a4))dEbwb!jnU9WxF3%CW)}Q-PWZ7yI|e6F<!dqF@=5~VL!=Mpe&5l5 z+4NKc#VCP<MBc(Pbax^IOr+`sdwE>gZ$oaH4h}h4VKn%6+6mq^fauSRL)Mr1bb1O} z7)$mjmgLC|9!hP^rS9|l(GZ5zC=yF9)k~!8Zzk{Q5lzbl8o;R<v6q1L-E<ld>}zR2 z8$cHA+R}gTLXHnhX5vGa49o&ML>ABrA=!~hs+9Baiz`fv@cPa|y7eN(mqu6o=Wlv> z>{`}Do$nPm#sV+y6atp)7Elhq9c&T+BMpGNv8RU^Nk91AjzJKKQ2V%k!wI^VE?PX| zUV`_pIZQqz)L5h_@igp}{OGxCQ+C|0xkJ1a=nn|v4@|)e++cxI&NWjIIp_k`o&j)> zv)@>_(rBGZAQ9N=JL^yX4gBnBC}Rzv56BE|=AWse^DjEzJ~;kPC&Am!$I~F2XvqPN zF_QB#*}ZzO$f+|}dl*DwDs#=p&@%~u#40lESpbQNHH!rqd89iMsacqdArAzHp31O+ zOGWfi<9~Ljv`i|nNTPEyfX${z*+#=|#lJ~rvuCsIZvw&T0$b!o!r)HC8>c4pN{{hE zo{Jzn<@>JTwki8ZEnp@9><Q9V212{xO!J~sbnu$s83TfnhME1NMbxQr{}CDoY$i^s zuvRj-1JLq_=6!(Q5<>l_XP7fM#H&dNSiJbk50aGM%bxF9NlgJ@OWSrwprUS!HgGR; z9tYn98}cFweabg9%^7+j`jo|kWJXGpKeYyJLrwR%1lmvi3lbfn*0N{2_Ls`{vVc?U zr-A#@9E<)QDm|t#UU(Do_OYs93#=1yrU2q!6>Q-Q3%p+ak-mHg<j<*>+m%tkSKCQ5 z=pJp6p_C>K?tT5DVG6deKWY&Ax=L2u^?)WlW_Y|Be)ASM9y--ARp7lW@B#0o?#^G{ z3n-<5AOYi&-vBXlh?Jd^4?UL(h>%Q<XnHt0{7ffP16D6QwY`AO4$y?-A1fDf2Yk*m zOy^C4HSF1A7kJSpljO!KWyiFkwFJRhtaqWczDHo4pqqCDJ2UNk1z-?4rD5>7yLhZB z5NMQ7iIQ?=!b?5DTf>J=b19ST-oAiFbWn5whS_mFf^U+>Ql3LA5682e<I0g6>y;Zb zf|j}rmNErPz5K+5y9^#?xDKS}%O38v?_4f^V7NB=T?+2K-l~@hQSlsLH{(Myq|edI z5M8r9gAWpC#Eas=L@#QLL4Fsye>naISP9T|PkR~YRR;D#oUE{<hA4;<0H8SF>d$V; z&N3nl%Dm`Cft#;dzQDg13vhUlV*E8jV<U-7&WG*-%Qk5;VA|ATMn2+Rh|#{C1$hyq zvA53weYO_vnf=!ODiAea679uy1$7hUA3?p}MDUguQ6$ZT!$i{6qn9dy0i0cmlZuIW zJCQ(k!-wuT%Qof>F}$%K&DcA_Bp$5&1&Cwm7n&Q;HYurH+9TZQIdjd7;?0+0Mfh5- zt7N*-o`>RYe~GykW*ljRG$m>$zLl>Y-A0-qO=&ksCJj-Ef@m8tPWLQ|<ilRbP>vek zs|chfp!V33ab4w?%BH{riod;QJdwa0fG()E+4|vfkmBf_MvAZ}NIX^nkb}GnQ3_1L zyIM)3>E<@c!~r*{5bcy*DuDDgbcPQ6So>?SU(caEQgCarO>2ecWBbj4$i4*l{q<d< zVKmlul^PNSF(8&vkaioO?m#T{j2V9K&LjN>(opC|&?9!VXlyc>AbaV#P48>$ZRT2K z6W?}ZHG>A}`d+!(IU2mK%9z{sb!-!vgMKP5pE*V-*3|+mC<_+sRsTyzU=$(v@1(QV zTnyJSW@tG|I1M{F@Slbeau5Y}w`yi-Yh}pbe<~(;UlO16QUZoqPvU+&U}uA1HVPUn zb3L(%g@x#nBipX0181eOeL<n=J}^sV?mpKCWY`NhxXwCA_$2wnJp|=78uo8b=pPW> zA-y(CxHKj3t<d9I3BW!2L+LHd*j?a6AqJvkl_R{q1Gx`lVenV&d+tNs&yn{G49^OI zNhvpb67CCT)uHD?&dcX`9}}Pr!h+J&i|5c6-_Fse{%y_w5#A)2339Ye8i>}6#cY?Q zG~EYkO^<EcE_MN&8l-|Oqfj{v@y9L!Cli8}pFU(xih0b4!}#tw4n7#VJB8;psMx8_ zp@Wm==);Kn`m+xjX)mdrn+m={8tV=D4$f(wf$8>ofQiZ<#<E$m6JGyV5NmZV1l}Gn zbs@s>bJZu?F{+q>-T@Y=Rfs+?sP1K}LZ?^ygx(8UrA))_^4Gs~-43tH0TrqN@sFoK z{5O?q&G|dA^uX4!gaTW-d^&Fn0}vk2-8XOD%3-Weg*<0=8L-5z=iG;-vq2*cOXPkp zq;o9%mo$|DxnN>D8*`FZlevRU2Jv3>V#)Yhq}1GfnkoR1ozNvxHKhvC+{bJ}ae356 zK>sOKOHy_cUi1SjB)Z9oqWcyamq>PqJ(YLU`w06-V$`<z;D6@!VK$j?WjRe47C4V4 zUQ7!pia@!sUyww#2ND$t1@NFSSCttpPL%u(<Zz`kFEP~LAg#*dUrdJL!y+EU#d6W_ z63D2y@htG8-wWuJLBy8m2keW~NRmUuy~!vd#u{j1FHQDpB`lZ&a%+N{f>?2E9f%cQ zC&r3{x^UwF2-Zjy(8B>Ca~e$f5nN31sm-Ur1UYwSI-c$fGrV3E&v~O6KBr1_8eRp# z7C}AI&i(9IrJ%D49<Pb-?Ut<5lm<rQ_2Q=KqCn}fjW}fVx6XXU<)~t)nC+GpSR`zP z&iw``@T?M=Y=ocSyM12+d6SZghFy$zlZ*;%Zjf(&Pv8LJK{&w96Y&e><Pl@tkc!xz zjt}66R7BWu1@$|0h)G_-pU!a)uXw<GJgGiHu*(M>Pu<{EgceZJN-)3aaM)!C$U4Lz z$5F^5o9G4uHp`9}xc*DJA-JgUuXTY)X=>fFcjO)co|V7%1RwGz5RjYd9SL**MG{MI z3>50CB?CH4B?FEvH!<C)svpPV@`0{q5OO{%kDia+?|A}-g$XPZl4ZkHUQK<FSL;^o zCR|fa%EyD{pUcRo1F5rTae&qF(@ZW;5N}}$ZLV>qF3Or|8X20&BJ&UMjd~*u6L*1k zzgwQNbJh^Mr|OW#4o&J31GCgFH}m7tdKXI9C87=)Q>kB2UAYZV-?k*MlvGJ)uqyQq z;qGf+Ts~+f>f5%tbW|p~iI48a_KA`MfF5;0IvnVF?%yn54)LnRpBKd1jU37EIuw12 z1alB#FV3?{Tmag%DsSRYvD*gULg>=SD<J@Oy`LT3J4}Q#Dfe7BziJb9Q#kxwooe-K z(0TVP4si{D?Dl^@P0nz!Dq-Tq6~zRVrlqr)B0~?Zx9<HaQOh7`VCqsN7#M?U)4Lj& zq?qo=(J)J@S3+P?$RDI$-qTo-wg;F|kkgr$&~1XgUbO^fwckq)9aJJO7(;DGJy>mC zoj=e_+i3`*eG|%@<)FIq(*3VgGPkgsJU?9w+u3Z4;BvBm6Enc3q{#&cx<-14vM2Mb zBoWQmjjEWez&rOxlh$W>9bOs~n0RqjtQlGzssi6jnCu*CCSvV13<-$kJ{=|%LddcX zQl-VbrVS$uSGXOP9Ap2-```N}!aV1(;8<4t=SbxHeXm5`;?xFO^i7c@{tyg<SQBZU zkAF_d5=EqfXQd>4f7L^C9*2$C(~bxpe|}4F9OPX=*sh9sUI1@9MG;nrTqP4A_?4oX zfY{$L>vr|sbBd$KVaJZBdPoh5Wb}I1#*YEE{xi9ffl6$p*ZzIs*;?E5Xr7%DN=+k~ z-0uOVVlIX-OTUhB(&+epKh3}njKJ?dSl7Cl)?>*qpdw#{Qs+L?zt#kItj_li1_=+$ z35c+`uEt1nYGCG3cZd8p)JJxV-Cz`KaUbOo!PyBmcW}g>p=^d8K+<A{!Ks8+s7C*9 zh(Yl3NGKh#MrZP9?Ht2)VZ|oT;M(<5yYpuLH3Ak4Q5e*{ag9=qcgXZL)vz~UNVl%r zi$W-hKghlN@@NmY{1}v0e|YEk-`rjd%iKqQhmP3?G@w=ouSggQo+rKa2PAs$T|1n^ z0L_fZ>w0nU&!}t?%oH_F`0uM4)&xS$rs@aC424n6?WA9c%(DB(&Z|J`3m|qsF}y-< zacT|#;pp%&+PH!duIIAeIDVLf7>IZiYl7I76?N%4+HJEdv0vcnLph<S=Ka&=W5R8? z@+A!UJYY-9d;=eJhy)T~3c9Fl!K~A&w+wJtsbWwIslhfF9tVnrEhaM>ofk%ZkcMz} z(w(F<CxaSBJ%}A$`IBC%6@E4KLR)bS-Odm?;3&|OR@ES#4q`{(`cy&pjN3mY_?|qj z&n=lUeg)<X<p6>lkLWdeVn9aQ*q9+pyC`4NuU=v3@?P@P;cRfDp|4eup6NY@!uwZu z&J`ewFK+jj*bZc(&*@B?ye+uwzgN^D{ABZR{bx44tKHuO+wUz!yx-vf)mxlwvkO1W z3KUbK_DpCvlj^)gD_dtC8S6n4?RGN;3?C5p$c7Kn<idi%<Dmal>{3n8F5oJLmm1$C zHM<fu5vp9y5@iwO_y?Aem$7~^&pS|7L3<PwyV!AqT_IbnC^5l^<bH%hOJj^FRYb!# zS{xBK6>)}Kc+Dd|Z75jo9S*XcA^9Q4_b%_oog*|EhYhrbfw?Jb^9q+B4Rns#S>@<U z-*0g}+M5{pi!<17#l0wjetYQW`=g112zsJypU_0iZWK*p0@;|0tbL)FtvjHO@tC{= zuw#s>^VL@mjla077IXC;D@Ke7TLCBoAw_HSt1F?{nt74VU~Y$LhoijuS1e;HbEemw zZ{2cwa~h#?7%(3b)#eRsHo3*ZfqO9ylNOa$dr0#ZJgPA(gzik83jG2Qqyh>PdhvZ4 zUT0M6%gHVb?E%a5I+wp}&*QZCLxpE;A6GheM80NWtlu4N;sC;Sl<bsA73S==ye)b` z>pP#r8BBm(5qHErl-&-BW8@4b#lS5dgXHY{0xfbkNZxeDD~@aN^i?`1%iP?>Vg2Wv zYUq$x^y}QZ!$DG942-1ZP`(s^${PCWS`-NUg;xE7eDOeZQv(|AVA;l{2{20Bn6ZFt zRSjU{C+JhNB~}G5o_e~+$6TcB^iNDOUbj8;PW+;9UWNpdNvj@G+Pv-vO+9}?9#%=; zs0mL4!*JiS+}mS$3J}`&RS%?Amvx|p`2af_afsp`2+h$*A?nD|&d!=PMr%-=dCrKb zhlJPWg+y<kQ^8-@cx~f+<}D0>a4I9|lLh6IR7rLfRqBC)b}d?0_l7h$T)+;yJH-C% zN`P}koDLSnRDv)=ptk^*suRqGtX<<__>z}M^B1GtX;s*Z6zD0{_TQL5erBJv52=7a zb_AXg5?c<=9%WQQ2^B-70oGU1@OPmaMqu+rRAbQ#qfy@M5N0T6AnZ9c<{quOgWEfi zrGKg>kDb^NFjo%a^1SU1HfUy_=XsfV0f2o6L$qhkRsaJdVsJ60`66G8jDJj02<%m2 zN>HB>RhH9?P%%u*fe7X@Ii3Rcn_14WLY!Tcmxr;L@e&_77#;o5-D5_?h24<UeVzSe zT>mweL1ED00r+KJ-OJ{5u#~?-`Ccr5f|OkpZ`5O}U3Z9YVa$2I_oWsFSEk|+HH-SP z2->?4Xo$B=QEjO_nanDfIW}IDebAVMiTVz`8QnoNxYSh5J$!=tOw^r-ZQ6@4a^Z6f z%59-e^-1Tgxq_j<M^r%)H@Wax?C$vp-8oJyt4-xa$Ug^g@11$x(yc<rkKfo6H0P;T z>kgd|HKL9*VN8YaX|-YbF892~6=~3u9gU9`z9sQm?<iRYTT=JAoM$V%$B4MR(8=69 zL5}WyN8$ajEA%;6HsHpga?@kTep;*ihO^F+2M&0>BNRBDd~k=^oWsKjsp#}s)Lx?C zu@*v&{Jj_UF|U85Dmmjp&I2-1ijgGtGHNmm%;aZy50jH|p8Ym>@KJJW#YPj_|96b% zw5ILs)VCSM*>5vXOg(k_+QTQ);<8Kn)3cwFkaLodQXxoS3|{+x^-=LUZW2f0zwzx7 z_s#$O8$&7^=|4C29>*k}_4-wv8WaBo`VsG0SR2dVFWPx0rj|$b=oOiVsH4+z0{>l& zQ-@rRb^mwTE|D^?EFFA3wfop9FU<Z|?SCM4j#?&*%YP$v_!+C;yLXrmRyloipWbl} zt-Sm7DMzN9$B&%2qcWwR+Z#M4mCcAFQb$_Fv9A0jvmOeRm?ZK!uvZICY+gd#!qN2& z#R0Mw^Y#amgA|zOObB2LB%Qg(hMD!)jK6OXJno7u-k|fOLVzh#t5TdL)JEmaoZ`a_ zePm_sop<5H(*fCZ@iC#rm8fdU2|Ja;tS~hyBUw;ic;@5(@%5ZFRI1v0hng=<^2uE@ zH^eNR+|fGU`@R9g(n+}`iPI;@IfGH;yaGV|GZZy*o}7O=gNdFI*d!hc_98WYEl7&) znF~GhXwGBp5n9YYs=Z^kb(oE>+m^4<#H`}`jvh^Nr!TbVOXT&uq<$QnFCvfW+R(Sq z)|pGeSAvVs^!WaB%LDXFz6eGJtUm()XET&tB0D;aLC=zoXQub5UPE9{Qe#VVWV?(g zcIg9A&4{hszlD7gSmyyGP#qP@@joa@dgsXr1lTJ3Pewo>_3SVJN|ljyFYi>s+Q=)^ z6aa6ikFC9P7&;b4YKBALkrNn{=axW1FQ>C~{s+(|7gzR8j(V3)FqJ%WJ+=+Tz5oOD zM=<+*wV!=9jCaO9TYjPlVRQiVm}?HyRd=aKZiV4CkKdhmQz{sloP27R8lN)+y9Fyc z2LC$wgX?spJUQ`u!oYu0Ph-H0Y=ML(srir1yfc$>uke0U*isc43X#40;sn8Ks-K52 zwcK7U)em|iqNVna!Hvu7mjp^X{pc5YcCP=Ar5JeKU~LS<@3-Iv=cOq_{)gWf>K$NV z^t+qeJ8UjS#6y%^mb{*@yjS6Wxdvjk-4`O14+EMFZIn*<>!JBqB;3CL<{VWKa72@z zgSr?}Ibg%E|MEPbkU=KwQ|OHNz@~FZ-tV0@@kt*!FZljmi9cDB1^2mKbd38c;sz5Z zV356&*ncxkJjs<OB;?0~fh0NbM5W_z(&4=TYdi9<9n1NE$JBWl4}km7gM}UZ*FO@^ z3dj+}Aud%Ta@Af|E$_Q}|5_6Jnnd>R9}M#WNmAA=97YS?CkqQZ_P^d2>;TTCATaXa zU&jaiwe1$kzc!@~jv3VeV*^x<sXc|T{?Fsk_Mt1u<pf+KSa0(7&fnVw-=E0DdG-&7 zAU=TC4diY%u!HYH<S}65{_{BWdS(eyi%2f;d6&pTjQ+bGCmXpO)BdKIIly*5b&j?j z-T%>lF9h6g{m}8m(&nMhZ}9(JO|^!+9<bdmO}0@&Vpu9lY<JNH>Yrr$*Sh~9;DvG- zPkCorYi}C-ee}eI5!npb6MOGthAzXWJHHKF2DAi&56Q#**Zd(<vj;FOWUt7hL+Aed zZ1;=6JGFQa2lifQ6bNajyfbgbc;=uoP=6Ll(FNcqjX7KABR4$>lY}Y4_H4|QG2#pK zD}2-j-UwwTgkx%%v&Y&9>&C2SP1bdW>YdkNPMrecq~?08H<~`5RjoaZ4}2j8@$%fv zX@*k@Y7Dq{`D^{`RwZYxW25Hg3LmGfI1PB%-c1pE`Evcd{$~Dk$?QwV)%!fgXT%Th z3jASyjC2Hhl3b*idGgj`tAAmPEYl`Z?_nr=@94E2<FTv7Dy?+Ioio1LB}407p(<jr zjxI99lZhn};tF;pKd@NSJANX`HCTK_;b@giK%D1yiB$vVMe=9Vq*Ussfdn~z_=Nw< zcb8~Uxf~v=DAgt3&&tK1edBa#6Y}fplq1>|H_CtDU3uC7a-rLN)FHe`Vbgdpbgr06 zZp3>ohEuAk`5#<o-Ocm@XN<iM=o|8DCZ&{mj(_UxB`0)I^8Aq8{_TvoE!+XRUTwzW z#Jkqxob$~8;hg)pD?4}(!wB0egda==qm)JATL4drMRzP?q{p_pV0(-%@2<+YZTxw{ zWmJY#8CP&9U|JD_f?$Uk25=^~!fV~;R)VHSUg_ujiU?u_y^BKBlnw$L`N)C7P?c+< zr_I}o&VSsMV8bwsbU6EwZzv<suA|@mtmsAmbyL0LA157a)t2WzidubUGPGW;=PDk2 zI(faO%s#G2ZRNSWBOP?R{(dA5KJT87+h<7O*lgNQEPRv7m@;k5d>ve0@awKF)$nCN znb-Ton6o9Q%%19a%Z;=bbW+2wUwT-3+3CXQ2cVgZI`!;h*gM~rxUY?LetQ1695Qw4 zufW1mNU1qR)qN$czl6RgCwMJ1=iWXLZ&@)@T(C858`E=tx~J<+(2M+<O=EV}-=7&* zawqy<{@l?FpJWU+Zv>T16iej#OcyRVHc2>sJF_k$`<M(U{%3%;Wz_v!vL5k^Z~eY5 zHPXY;-_hpx<$ibDk7Rdk<D5n_`Yx3SPm^wy>f+pfRE{4|gRhpCItk0l=i&)VOP-1f z-eIR@s8X{Y22MTje^H$?(=#PgAIG~(@2|Oosef?!pTJsgo*{EP63PL}&Q=On-3VLs zHXG6Cp|{Z>)R03ir83jco$DG9wp`~lIV?Cm1o}U_@^-k}or$w%{p?(Ke#z8O(ASOX zEuE_crvZWvi<E7>pl)v04@*&*mt=__e~;i++>*wEt3On<*J-Vpe-&>~SbE9fjNp6) z<Ye<mM}n0W4_0~VC3R4R+huI8V^7x9v(sNiRj(_j4Zg{)A#7Ke3vN16Iu-OeU9YFR zo|<u`Z}MV~ZT#u!Oo>;K@M~`wZ6nTmd@7GeXJ6^hD=ISY`=nirAC~BLto`k-#9{A8 zKb!Mbu9F|H;7K^bKJB#?X!pAiIW-@YF>_kPa#U<Zt#mBj_4`fFl|K63A_?YK>9quo zc(<7Ys|p4i(<P2M<s9AFMHhs2k1n0uAD@09-}~atmt<$|>biZu*kisyrYMZ)iQL3J zs?+Q!yGzd#Aa_=+`}Zx^uk;n`M|jAls$@l-G%IcDmhw!GTu3{t>nx{SI@v@?wi4*; z<n(Z~(fz`M+a^EU0+g%<j<{<1e(32|;Li%X*cIQoYX5V)v1EY4@%--k(mWSO@^~Ke z6`SRi6j^#2JlL8mO~Z)4yy=cEw?l+o`=TTKsnqx6r3R9Usou}y*OO-P54z-+-{Jj^ z)R16rkHraX)p6c*7~NdRevtp6Q6$i=^9p+*gH*on^Dh~nLPONT;(L$Rq0hF2R&I4{ zT;cZSAg752^!V7Oe=|$hJ$$nr*?-WaO4LE(n}UKurbdSQl!~WzAItrzNZAYr#irAa zr4NV29RXnXf!~J8GpI|W_Ho*Hc<ET2-bC-_{r9Z_01mq;?^6J3S$QTCQzU^;4l3(? zxN&ssh{U%@i8?y-o^}(-vUg$CD|f}L7wqxx>w1P-<K~-|8$|{v6r5&Lk6A_mv+t8= zyGy^_*T&xJ!qDXB!c`OcmgKNqjYsnup=abv!8q&%EWp}8$r(jgtNBa|qaxNSqnG+A zC{-o>@0=yA00$v*gCp%M6aGe?xa(`%I}?_tq^Wc6{Vt&8`61mY+<jIh-&=EXviz+5 z_jlEfvv@|wt-1H|-r|JbmUp&2*2Oea_lQaiTT0FBGF?QGRV|s~Vi9mc$uXy98)aRy z74xOx$OT<1Nd6YoaU|B0s{P^}05VfYbgPim@e}T4@+VKbg<Aupl_p(T9dBF-k=27b zvsOT!%U@ylG4jp1)1~$9>q!~_ZP({GxQ2{23gi48dDA824LnX$$@lQWFAmsEDPV@F zUA`2qc+21p{!QVwMv(?mr#%q==vhD_spX^K@e_uWjRywoJ8uZZXoa2??K&MgTg-ji zv@|F;wm&1rzH@L{XSVa)MW6zPrlOCQTDCb9<9)`jE;Qshjt6_ZH^P`C*KEvCvMN)K zT)`4X^5K{8E%sAs&P-NKn|_Y%xdE?Z=vWVy*0xD~?Vri*xH_Jv_P*MAo%40J@zriK zcZ#(3%LAq=F%pwfC4$ykT3T6y)Vt<!JtIs@;FkIiDIfn+lyVVsq01qpN5n*b7}*>Z z>RP<@y2X7tiq&cy?e5R87Ym>b*J;PMFK>_Ok23$BpY6^HRf^g65?|<Lu5fKzO7?Ru z3-UX+6d$RvEmS7(|M>dqu&TD_ZwW~S1O!1^I=v!Y2ZQdG6h*qbLqtkKQW})*?huib z?gkO0LGr+%-gOAC_kQp1efY=6v-gTwQ)}ikvn$32+p${h1QfKpCmqhv7So^J>`uY* zO=GJyj;)l#RZ!0@(qC9{snWglMSLV?v&JyJvq=XQetn)kT-x_?>%Yg2=rW4?6w41+ z)G4^~JL`_cI+s~_O_0lhy^DRHQrxe$gvO{Z>Tete+B$}If6z_pM(a4$f8=AIeLXE> zzcf)%QzNrS;q=5g%*(sGyj^jFV_6c*uuK-`Bp(@*1WA?|hyFS6@GvW_vedgkD}YXi zU}A`Qjn+a(!M(>53sR1iFcXu4dYFFb!69LyQPADZ=O+1OZ;#M4&UTz*HlIJ#I9?#s zsVY>+KJtPZ2~?|pi|R64FB>V%D<7XMT{KB5VdN_}NXl|`JE;bppttNCXB*?z-r(^~ zq{o@-#hDhTkPaQ*kJ~;lbmCz@hVe}~<&_QFO1Px4p?c&wr)R%mV`AbUYHq!hEsEzV zgkzN1B(oKL1J~3ac&aS5mu~i!cR-$5EF5wY3z=shy4m&!E<OYuzLLbd4_BR6WA}#= zxR=c*OiO~ae&ys>w!6c&=u8GP--nZOPCGtc%=ey0iQ#zpAUOXMaURv0Lw6`ebqAj2 z^D9>h->Z{QzyDLD#Nn^~lDroIMhrQTpUS@vVc3o}(FTy<&~(RH)S84yG0%upI_(IU z?jqeYg9;GGmE%vp8cA3io+z-M_?~47e2gN8>BE{_nfg)MU4n$^!RWO@-2hA!EvnnT zeJ{;R!)1Wcm^9MJV5<V3?>1Wnb++}f_r(@&LI^(~A!ER;GNQ3mb{Lu0uWQhym%K{; zxxwuPB5{0+&jv*Gnh=K7e#ka1%!{+L)IQQCQ`KSbP5dCx9aZ<&h^z13qL6A!4Eth? zvCFKalaL+kq<nYb+3-f;_Q^*5$xlATQwc@VT9ox--yoF<Qu(d7p88n>V;FStSoT+* zwJ|M@xP7MB17Nl@O`2(c*bRF+Z+(o`yZLVZb~{!NOQOCv+bVgbY~F!LNCd)nE(Eu0 z?SIudCoQp-WzO!6%vkN4l9YO;h(dQ>k1V<DuKgt7)w{>m4=!kM?w=<{s1rW>5~iwI z^e`P7xH_L)al&WMtE5uF{oGtic9!*#FFoA8lrT<zRvae0$@@)0GAA3;&P{(taelq? z7{A`*2V%OTA!y285hu)j0I#q<S}QS_-JPnKK?UZEo&ZtV!@pU<WCh*pj+ZE%ObF?> zv$~J9#~qW}&{h(SLyU>}_7djfijnD>>(Q__sR4nBX9Z-09|Y$<20KmJjg+&LPY$YR zSIOhZknZN!tgq#l(d7y1=U`VYag@I*s5fHDQ_=^GC%G`O*UET%p8AoVLYqR;L&~Th z2)XK1m34zsxm%cBLg(8B+#EwI2RIo}bDR9m-L{q7q0=eZ4TC%l`|_NE+A%Y}orbfM zB|X%3QjB|_1XgJb+E}ljbQ100c3^*t_Q<B_HhfxJqIZxy<S0sR=Un)z2k!1wojB`p z6NY(T(v;Q9Xh0v;XGa3|nNpvJYPbCCF}6%_mC}i<Dwf<Dy_MkU5+1O{Qx#{4a`uiV zWgY&fA&;%!1S+*Q4QoUf<c7%V|Bz;!K|TfzY3Ayx-a;BdcuMD&wA6LHTfL}Cr9nZ^ zi3}su39FhY<<7m4>5aPe?^cRZN6pTtH{X!EE=4`pajshRegN|e#NS@W+Rz_IIs?5J zB2}O7W=E^ExuE7*)-3!yTB~HO%Nx^PpK3KP+wMB@MeUc+AvY1%JI;1(9`Mz&ZMl;D zP##3PNK&OR+l6b*%XTgPjXBHJ!%zn@lAX+izMV%CHWiPhG<xBV!?yL$)!x=wd`=m2 zOLF({xOsd+N_#Y>t(Vb6hoDhP+VHZUqIcweLa?#H$dsjj<knRDyI(Z7&UwAf4Y8pa zzpJ0-AS`<`c!ZC{rIToS!tKLe9aQi}{wr}+EI;DKItQkmx?itz5S@e{JRYTYiwO}_ z%U5jad@Ei){LC&g(wo1Oo3ipVq8Aki%hZbz#~Q29+}|sr%jO-lrg;TBcIr_@F9WPr z9a6E+S71=4T3=SM=J(xU%xJ17r#L8B5SP#V%lgKr;-m7>90_N2acJ*oyS<*T;u`40 zY3&Y!)s}q43dp&AR2Cz`l!uS0rE@lac}1qjLW~I|9gNPnhw8V+ScI@zHlp*wVcIQE zan|JMZk5X?v+dv&$Jk}&iX?Z<lyG(ojkrk)k28t7zz8qz@>^?GD^9`^u;3o$Ce}wr z<T#BN*R5s<gxoojl`^4P@Ii`ek`p<d77t|W<JUe7*8rw_V-!VWW6Of`70dc}84O#b zK8Y;-^#CRO4MqUmcQck@497sodkrP`?ep9ZuF1FZ*1hTXqibwYrM_F>G^I70rU1dQ zN1JZ632(E|fKa;ZuE-60Z)0*fmoWi>hU_mMdqb)=<dJm_yJ#*>W2QC0N3gesvNo=` z*{!LIXFTN0Ik1dhBi?098t)W5Qc1v()4XvdXMN~;3ie{6Sifk7>x)rK$6NEs1xKT5 zxtrQaVN1DZWFcR)_|{YsOg{yUI2e$slUEjCYQ(K2hx}x6rG2NejZN$*9U6hZ@7A-j zQBHY-q|S%^V&r5`bbd}JeK|h2Kw9mY*#gn&hY!)X_8Y~`8;*duiHl<SU3WNJZrLLD ziVRNWtP(!GXP(Pk@+}m8#kviT`Mi#NViWVZq^B0Aw%qOD7V5K{;iFiTCjWOR#VeIc zNx(<ttfOT+0=yEVGKfw3VAB2U#DS-(Ag^Mxclc)Z9%HS|JJMsqsXgK&(h7lDZJwi* z9FJz#P8AI^WoX%MAj*DOs{#M)r0oYT=(7aVk}fWL1JbCk+ao;hom|HiIoCjYV6Q&B zu8ahF&6FB>p$kn9;Y8DWWba3Xdc3-NHo9~~J4)l7&%q{Zm_w9jyE?U~7bj@)?$E2e zyt$9SC5V{gfzVdN(qVMA=^ml}&bWz14GV0e-XwRqsX|xC;_L^uh2%QF`y@Uc`C;#; z*2yITrUR4i%ge+I%3n!m$0Pb(@tfH>?uV86qO?PNOP|VM+&P#ee4Vj8Z1xWWsZgKz zf9foscE(JYOl?FJFK;~j8E3J+opNt|SVLr@mYO_6TGie%MuZ>4ZJXgi-oHv8*yTQY z4or5*H0g_gBgRB4LZ*Vrwn5OPMwCu)Bex_;b9TSb!|`}f%~v^J&w=c=uQXSltC{Ik zL+%gFJ+JaOi|P@#`Gslu9|;-<@TSz)b2dOLAA!ZPX=e{~l=%Vjq?g~c-3F?BvBy;w zUn8iF0#Clk<n5GkPJXe(Y+hpx>tN%`yQ}Csg&SNVf&cAn2Am-C67i7ELKEL90%n3= z9HF>E%r>AMEpfMGAg&&erk7-nO2dplLHT(x!pYm%@};{x$L63WYZK`#@=-yy2RZD( z4Tr*i0esS{@EhCRTL*%?hh!$xt|7C$*v$C1E&^Pke<5lg<|Ffw57ZBH^#lv1d%xyo z2UmQD;0tnovDnZd4CldJr}Nm0<chPWs$@y8^jOV<;&;UqM|Mm;^R?AO^=So)mjjPJ zZ|trP8a@F+mtc>RaY{}^dDWO3w53~n;JaV2FY+`V9lts8nz6_vpSDBS`u^zrv!6mJ z(Dv;fDbiS|#gwy-!JfCFmRP&{*%JDG<BZU7n%hyAgZ-49L*<wm4~ea%WP(&d#Z9vQ zo-w=L#KVE~Zq9YL0<32xlPBGzRBQ&N3*E6Mk=Wx4g|L;J6+LyIjK)KD%;?I>?)Q(Q z&_nsp#StITOR619e%`aIV)U#1xD%i6)|7)#AyYwRyIZ9UdCd_B^Gj)*u{b)v--!-$ z1rDn1KKoH3E;C9cC9Te+>ks;Y4xwh3<+Kqg@`R&SAwdV-vKI}{#2V|tq&yC!8+8Wp zESi<0^~ZBeTEm84ibMKAOB%wpd_Hn1<6V155c(VljKK|6+e<`e%r3%)DP2@&ll~p| zBQ86OEhbNxE6ex=FY`~3l{RnyA3isKb93P6MY#E64A*6rW2z^F6!zTdk_%6oR&pX& zNndnxf*{ZU)^+Crxsm3VnGDFqj{$evSB4n}<9-l4$x7Bsc*#Dl@D3GAoEh$TnDpzR zE*>>upOw%hxsI!o^-hA$bc0n!vo2dtn{r<T%9Q`GXIT&RuC5j?<4@a#_oI2mk(W6l zSg=85-`i1z<(n`+_i&=7F0Lw=rzWJ1WMIMaS%UmxmfNmf$}t=NnZ(4)5pT1eDXb#F zI#iSn4<EjYnPm)u4+-|;tc5yGhe5+7t%vBU>!@CZS0-D|2a>Mmn`!-dXynF?j!(+w zQ^Bh*gB(oF;Nbz*ssr^!XmmsF%SA2Aw<W8E_EKIR>wDgMc0YqBTGax7idH((*{+*7 z+sKgxWLTU;L_{q06SWI;<MJ(aebE+REfghBxK$%@THsZOvMl%p<$x==veozjx!Zw1 zb~n#0gvs-Z6@>+Q?J10}k=rdqAa)ce4+Rq~6?G$;Rae_1ipe*=89XldJQNb~VPUv6 zYuh_gm?V)~K<V;Kwa846KkwHtoY1NICT2hS+<RLK(YDTLX~LDQ?jSb7sRdH=Al)OB z9Hb0DRuUg-_d|4z|6X$4tlN8RlbIF`69EUF4L^#`dGV4-6Z2>-!OyUy5hk@h0%X5u zrM?L&9Xc*k6ayw}f6+lblop%T(lzqY${VbLZ=>E!l;vMGbOBeT*D?DTY^x61vWxk* zO{cq(%1|4Qhn(`OjTbn1wuP!(2m=ciTgg2b3&d!LqiY<49u@TQp<?mKdLo|Zy&w+} zW5P%yzy{&bq;hc(4;)4<m%|-;H%TX3Hv&FGloFs5SAI01xI?Q3u5LM%M}e%ZWV#_z z)f3buj$8>2GoOlXRwh^EdL91q-sVC^^5y=9T6WNS-65JLEi(Liw->Ny@cVQ!1dadj z>wvH{ubnyJs7VRQvm$P}@4G4u)B7RkN{7E<+}I{=>#G{y_pja6x%&HNMbXPmrQa*i zZi_jixs9|ioh+nRpxEZOM?^-UOt%v#M@1={H{lKEA>S&ZruKaK9VhcR5?>}E6CF7W zxA!x29ZC?}IdfX>)Ni>(Hf|wfrI)G}ea4uRYnlOF(U;VYH!4{aG+oJT5pb=k`_<3v zFjb~OcRfcROK|?0i)#zgey0s^RvQ@WuJ_24!@Z6`HlB$H^D?o&Q1ddA1a02c6`Phz zCt4Q-5xJCnGuY~19xfR$C!xKH1&p8*xR(hKOrCHV54ODxA$h^}wSyakE%uMYTGvN^ zFw#+KCO^cwXHK#*+NHzI5Tu6ebLp6~c}aC(eZ+Z+)oagFF~idt#hjo!kS;W<7fhE# zY++HqQ`+u!vUir9nnSei;W3iAx)xNi7&m{dopHcGU`fwEMfFBu5a)EVItfqw@TZ(Q z7>vZ_#XfiVJ8KXjvX(J^=tM!pKsxZC{mr9(sb7X-i1Rnkm6H+99m`W9^T}Ly`RX@H zpCm+6xTkZ~i>^z<`JW_G(b-2hI`O4NUCrm8Y>tC06!9bjLSmbiAoOJJd(9`1YrI(2 z`SnvaDF;l{R2M&NJde8Os5q4P(n`u{osoVWM>6<*KK?!qJtOdM0<){KOgYgaA|tDZ zj8`&CCCq|2PL)hJX=rHnNA`xx67E`T?!TAhoRx_P<=rH87$4p@ua5hsS};h1L1?e> zvP&pVzh^JjT^yZh@{4I97c#;&{IV!Fi7X-Uu^j;x+*Lkd_9~30)Yr_&Fil<h$+wP< zc#>pC4U0M-@u*CO+T+qt2$FF-eE=KRZ*TCXC<Xk=9&D_ppzz|Zd1?KCs@PfKu=>JG z-+LWteP9<JvXH1bEr_&`BX^)%=3>IdIz?3T>K1$%slmw<LY%+I^22?ZfH%O+r7|+i zzOVuQ=(8CAnXYQ9fakv|2tNH!8aosdnf_9c;5LL9O#AGy<d;iF$rc@l?00hPO0|MC zAf24cP5H@@Za<uh2mhGVYmyeSe6?D7dU%K@n<wj%4iq-XzmwU2zVnt+E-B#XZ5CzK zWzzg=0C;LhE(y8qGJgh|&cd^iqMlE#lDx@+XrZVViU6!1{`k30a74o|n5%aj{}B7X z0|rE2<G9MOP=ftBjT+)#Wl6o>(m*zT4|6r5mnoPvNxC{KLt5<L2Lh(N%=f})PJIF_ zrNjrczmLc|^4h}d%Vqr@?-4wa)vNvxZ;$fk|8GFAc#ty}G>Ciq`gac6>-ZkT|KEA` z<PDH!8cCpJ(2Ks7^&6z}H-+U6kTWUIN%IEexUm~Q|G_45V#t}8|D>STF*TT0Xd*~~ z3m;+oQhEG7elRRRqR2glFZ`wy*e?>-wXr`Y#YaUjzVu11&Vxc3@PQ)DQ*N|*G6adg ziSzrIFLUsaTkzw36C@M)#|{G$uI*hN_XP#5V*uN0nv-^*c)3zRp8fIc)qs~EflNX$ z@9K4SfH(e|Ij$kLqs?OdO&oA+N^ocbBX&MK#Z3YEAFK{|`C`E9l3=@yoGiC5BORB+ z_R~Rb{CSKI`2kzqoI#0zzi5j%_%Db9oEt83`k}&Lee7uAsaNa1B$!^<HKX4r4)Wo2 zV7%tBjX?ltq1Q$nB>8hQm!kRwU<7vJ0bTelAOYC_*c~L<9Sz9&?>QiDaEOIYYCG!r zIN5lgum2wd4gi#spqbuzh88YYS5)+ROA9&uEhfpK@YMhOaF=)W-iFhAyR}|YB=6Eq zud$NEZg0MLs-Hv%0hl1vhTs(^`c9&z2Qmy9?gy|WI&5>R0JQUAiD;9HKEV)fY(uJ{ zp0+AP^`zpg4rudF#R0zODf?}6${F`Fq^8dlD*|$r4L6KY&R=Rrd$P{%=UbcNLNVs% z!v~P@p7?;Wnl#CaLMS}o+0Yy)#{wf3pmE@*ge;nK3e4X{=m3lPy_L&<!gKlxkMW`6 zpJ(F*5IwX^%p~<si-*<UKKphGzP9=~7vBWq!=Ss)*ZW%+#Jw&-5i?2Q0BhS8RM>tU zO|IuF$rByRjlb06V=Vmn*6cN}7jzUvlrdRZ7WA}2?U>s3y;UDp$jb7YPisD&?#Tj1 zI$>v9A@RL=*RZGVK1+%dtV*2IW!f=rZ*cS@*QQ75XzeqH6QO`aQAX(3M3)WC!3Gva zY%gX!3MaIOcf1s3mc!)CL-~s=`(Ex39{VoSy(|u&zpm%ItJjvV6=GO;6#MR6FeqG* zW4UGovetfe&M|N<E~B?$SrvQh`6;zbHIx19m+a}94wCG^5rZUq;X~0SUgQ1ED8JR# zbrDYhW4d4xfMEzYq963T0!BcZZc!NgFFn0L$j(Cl`gDuZe{eqnI}+l>G!!~OA@xK@ zeT=_ir+F%bj{nsVZQMWvh(y&#kp2I~-0)>xs*iKQng^<o&cIt1=@vZ$Ls3}R9Ou@O zq(nfRsJQsl3VBbs34E>BC6mRNR1_2{+&`vLpZ#d%auXLn9mz^f)m_Eu0ks<N&C=gM zq@lSv(GU?aFLJt-_e>$|?gAr2dyn<koq1x!7z!X7c=(vyL9kr)XU}5tYPUPeI~a5D z>xz1HjEs!>b~0B5`ZDG3aS`Ev3AjK9Vt7Kt#nFo&`%F?hHF9OG*{$;h3e@YNTJ1{l zoZ|>l5S!&%!F6DOy?*qFXGo|%Dg17_IV{sLz4=$%$KWv<x!9?BaZ<!Ayj~=%W;Z9g zTj{i{wuuXxAFb7l(jw(1eJvQ*;DlW9g$&!slef>h+~#UzBOt3>lRuK0i`*G>Q&v!z zdvARXfAm76lmp%fF?s(?-it88FI^bn)<hJHsO?x=QcbQ!k0~$!&E+$1Wq6^5vit{E zz~Pb?<~6`&;}4O#&~1O}3n2Wrz*tU$YWN%#XmZ5=!!Cat(Ow)lVglLj+~>L+gI*tT z5RMo6&5z*3gWwj=4^<Xz9uuMCU*_fymH-eVpzD}fqy_%85&&vo{?FmMfl5rWk$&U_ z@Y%?j2><tP$AIY;bTJjb@)$1mEf#Vu<<AK~GYhcazW~M@)KExyR{x>QujJ^$CSwEw zY5HO;YkVb67kktTxVC)tAe;!vUO-GND1PYy)dj49@r7Ic&n=w8*fN>GymmBVuKyzO z7#-vs7jkI?p2Gc<TO6FqaN{l)c}?{nLtU)l9EBAE$h`P6M_&J5<J}bZto>ud#S&mV zm8~%DbHb%ccv}8n1HwJbEGsJfe^Yp#7D3_)a0$2pj&pi#qQH2e3GC<~82>q-*CZSe zJ85=T;=&~S@z9}&=k{;s&+7(YgCqn$YJ`jPYNJKy{|^W-@N3?f_{|AQA@Titec<B; zXmWU0RM?JyTUs;jfXjn0yn{IZhfj6I`;c<<hqZHp6CBiTS8x8d!T=zcc#Y<Yrzu{+ zJtUE*kgMmcgRU)H#qr?$e0e5RfPBgtkxW;Q{W07hZs>1x57y<IUdNOW@juS%^0gQ^ zc9Wf?Bpf5_H>v&><iEW}0F(#&<)+a5{gl@u3JB>Rlb`>S!UK+NnJLfN4Ez71VgWCL z<3I|6-1<EPL>DjF{%V_7tRIR6w!7R*Wx9crO#Sa40g>S>3U?rq#o!)D|J#i5-w!3L zq03qPi%L~8fJ^f$a2CFyB1T+BEU%6VPT${(YY-k)*?SxN?)UP*&p5K47lz^L%&s90 zfoTi6kqOb}xez4&Z@UB$hUc$(yCfI>950j?;n8n;o>RRFj%hG2MN0F8q~IoN|K7_V z=MUfTe8X1BRV)AjP45FZnj1(oJpb4%1s<{((r>l_^lXN^u3O~-9KMjPTgff|*VtZ& zz^>I_BYw|#bp{s%8l!=%{P|9%EZnmW=X8Q=woGczzcG}*-@BkDjz3tQ*r?yXOnPz( zS}5D!G6qS3Q)r1r>I6=q)JLB8|D5cK`QfloF1SLHR+N|f$9AtFR*8Dz{-I^{{sH6v z2X_CT46b_<Zb+`7vi)m3oHjbdh`&Mo_$YuQeENb15zmQQ{M6I-f5i!YOW;ufUL?;j z1^$I|{l|f0cwZ~~n|0&?>x4)IJ6`P53q}VC{_ib6w$ecklDhrx*^)=m<$mLIx8X!~ zHD>9!)In`Dh!Owg)92!}F#tVnEcWp~=9<Sxz__wPkS;h?I#G45sIu*SE$uR8{`-J| z{M`Ul5s$;gzIyD>?Ovdu;r|0JeE^d@LK}g0rH)+bAcz0n5$MeT=RK@nE9{KtZ1p#> z&R6?~I)Z@J1tOv#?mc<l@{TAf0G)6V;ENn2tfpNy>ntChyFg%KSx*}>Jh7+da(CJ> z>tl<*<#Bqi&H7tiDt>${guTtO_G{bGwK(}@lL~)*=N_d5g@W+AzE=J9Sl*!kiRa7x zX~QXxebuG8Pe2B_ZupnP&Q6aIwrJDU1rmaQBc^O0T05J=RHNrTexul%uI0iv2*dkK zH-lzcF=fxNj6=<)wp0L5#)U~fk}m{e{|tV$`sOK4hNz1et!4l0;K9p%%Excja#Zpj zM3JFivU0JA=bHg4iZS66SM~P_Xv|f@v_8qmS9XD-2Tf1XK2$TzfS#Tec^i&bt2GzI zU_(6Ae=y}`+$+5pW8r|XaCw1Gm7%zM;+nqje$eFcWf%iui}+P4=vwh(<9M{|UYekw zL2yLFZ~Hb0f?aY93A4e2yw~2+K9`5ef!B6-Mrt1_A&Gb9r09fkW$z&4$b&N(qzvN7 z?KdBY*TTtL40kW0K8KkW;fm!=D@<n)6#tZ4;eKU|<?~zU4`m?5k7;49X(^@K38)K~ zH~feEUX!d|pf-hJbFn8WX(BSs7KdIA=o-vY-7J+2ytXH(vHlOOlkjOSxe*`TOFi4^ zGXm-$?niqIJ>PMnTNffqAxDp#T3cYE6-v4y5qf~*2Uq^K_FvyX63{Y{hO#R%{WEuR zS=<Lp{ZTJf0%YS>=vwlrka0UTSKE^yS^g`wwvL7rhYf*aK7P+^Hu*P`q+)?)*-x~1 zGK9Gj41x@|uGU2DRlR#=RR2>u^f>d<(@7ph6SEJ+qLipx{kR(vMh<Y`UfF<+RTmm> zBd<hy^7hh`>PB$ysTaM8`F?RJ23{^L+BurE{mC=&D{b!emJa7tUvk9BgFXpaW;6)U z^m3C1uc?e6$yi{+vUJtFGBLJuI9F8$USB9F#wbajL3D4^6`;#GUhRnrFO(#7gIdsH z<!Oub6EwYdfP3DhP*b8kp$nBkl~^Q7u;He?MBzXL@x(;!#pp~0*;B5B3yqqNV!_RN zCR@-a-62z*FP|b*2&`mLRztoYkv19YVWhAfqb|lBJmsrkN%Ct?mA(urLi%@KRG$0* zl?kbri0U>;#4t=_rb>W^8vpVg*ipSCu$VP=T2TD|B)L3T{#4;tM#LSj?RVFjub5eu z;&v59<o)GEso$ZO?f0JZug4>xWrvF|>uhp5BT&Fa2?#SU)1yZeImoFW3bMR&+u3ri z-?O?Rf^`%`dK;mjYSFahRr&MOOD9sy+tU`i{k3F%X1mZc{`2#O`zxgRsTf{j$PbSa z=&2G6s2D3>1zuY|x8NWc61qmgLs|co*!J7k8k;Nk9AbqBYHq~rac;NY=6xC9dyS*Z z4Dhl|jT^nzEnKlduYM<j??I5OXcq%+?=^lwLn<dK!5bquZHNeA=M3e=PZ28C`Z><o zsn-&}XbIc|*s5tWzEsITNDUnefsn7Vh#VG6dJdjz)MQRXg-PF6sACH%8vMssN*08T z!U$d0X}H?pX>ho^N(>J{@ZZX(1i*mQTGhV>tvcF*uQUrhM)u|vs)Z~8fdd-;O$5dZ zVHZai)Be@r;vqwP2dMmHVfdv4XH5?Sd@?ulM?{tYH6`F`7!^biuCT3RJi&o#vfg`j z#Q+ozXpRd4m?$<G()8jRIBh;*z+LoFNxlK14-iuN1OvqT+*dX{G!&?%N6g%hC{)qp zu;Ay#BM#YqEJN__5qRY7Tw>g%R}>nJO#kq2PvXK)29NtlBr90yWOAhbmmj5s`}yj^ z0O^MF$d2?AgiBgg$$H}c(=R(WKL7+&m0j7Rc~kr!1wt2w6a<|hRhN1aY=$Ci&b{Rw z&s#49=(Y1dNXjG<I!rYFfmE{l=56=5Uq8ua&;Qys1VX=?ht1>S%#w9)2;9&)u*S9o ze}kI>p~*QpLkwV~(S-`Nv(sq8kd*vVj*H<Mr;#>mcii(5Xb@IpW{X4<=|^4AV$fnj zT|B{Ga^(iXo{`-qk$4IxVpt#Xe1*?sNN0<{=kveN?=Fz)-EmmmlhgP3P=DMnfB0_6 zya<|C+xXl3F2hYCYtdV5S@i$?@pnNMNJo5tB;1BhSR8THtaM=BzkjjCS+ce`mt?=A zllUy&;>VBMW#+%twVtm8XMwCO2CLK$6E|(juW2*keDPrUDH{mOovY(!BhRb~5J}vm zP@C`>kj4{TlE4ELJsVyiXQQG;nC^vc%e!*lozH21LU{P`@DD&x`e7G{n+lRcoF4f- z3Zi_q&BpjFu42q>rVFxlKq0xS**hL0;Ev3C9sN&Fh7^JE#^0Xdh12T~d^Fk4>m$e1 zkSsWJq)N|%x`@IV_am09_a5W^xCmGN%xfBov1?-~&*P#47O)W{;L<`-0CYDgP>9NS zifZTjrtKlTwr@x!SM7Z-_&Pe<J}BHV;FatL;$a<j%?F+(2qpFsazDEVFaMicO!BY~ zL{O0Qm%HFG;BFxyNW&y$#Pn06#l9jmy8#s>eCg<e3`s*P%8WuU-GkU$s;F^<w^Kr| zUK_+jXh-p%M*$gmmNRDtG<Y<;>ak}SeEXR`p7U>>h=5W<ae^BkD+{hOPG7xt{<8(* z{FQaQkSu&I;L9~noetJJqRA;<>Cr#f;_@1b0Z&aK8i{3J-nh@X$!iUVLir!>B-g{Q zP!@CWSw1xWebM=SG?#ZWuQp&?L`6iO{QK?Df0SPac!6187`|Eo7Ig5*wM%HxZ=C?& z+WGn*+VFUfYS&ZUD+PJ6zDaOR{$no`p`<`vmo!Bx!5@2a4+8A%|E%$1Ko+pR5k$0q zUpWsUo)7*|Ccx(e*NB0rK~Q$-2}wr}CHpVU1>$NyDZqm~qxAUyQZ^8GyyV?KPRI@p z^JCrhy9jCTiF(HWx%>+@K9^ANg#)Y2`<8zT^~E4wk7yuuzh42Bu7E5SEFw<lWT7BL zlSBE>9Yef_aGKq`Q|Mm)`)7JV#6N2B2H{TE`a86%u!|XD#8pV*4`K6qO%*C<r6b3Y z`rwbPUHy}q+VkEOm8!(Sc;@ApX_qOrc_xI8D`We|DMLun=e_3YgE^>quim^G4V<47 z#FOgkOlAT5L8-Z~(pPeh$eFkP=M@TUxFRU&L%VYN|D5WodK6f`w;*j+Pq`e<bu~is z6VK|anJ&))9Do89@Uv;8s)+rpudLnQKT`aC&B4Fx^;%`}47OTO{-U|3dvLH2UKWHI zZaxY$&=k!PsNJhV>KtgeiUk}r9B&8K$Slt8C=vDhN7I|q4oF0}|5cr(#Xs^QSI91( z9MSo0EhuT=^q98UhnFzHYXx~<t!+M=YOs^=Yr~;`ga{Kzhuwu8F6wBW75pkYnZ_3p zDfTa9tj&LAn-KiIHpP+Agm)|3Cx}PyL7tlRu_}(-QCnsLQ#`jY#Sdh`lU+;~=hL12 z{=kB<#U!_98M}539hN=A==a_SMtmmsIKI_}RJPX@hP0~@F3yoVe=|g7ORxVVkCCle zv0-x{z*&V@LefY?+S_pm{c{;Fp5_DDS%60#PIR%)VsSowdNjL9u2J0+X6avP(Dbm_ zfX%SkEs34Ad@8ooE}d4_9`?gV^A5QRMyXz#flw6%8lU^*OV-h5qyj7RJPoq-d_@7* z;$wC~*+Us;TaoNO+_y(dpJZQ`lEv{e>3%TfBX|J=<&8v^C$ruQL)lAY_UMy2*T1Gr zqq_po2d7;J-d>_bHIYpG{jS*cp=n;S>8Wo1m&v36sJs8`Ad7(}eChPZvrt@KL}3aB zuOm^}8;M8k={?fK8zmpYOh;PGUKetlm^Z*ybc8EyddSxLm2~n>bwnC87C+1hZ@-<> zvTammXb~gp%%FKj>qPI`PbnAYN_Pf|r^M;RzYODfxxOdW_BbIuF9S<P3MreeV=cxD z-ZVjCBaXsNdjd^L6n0K;TN;Z{c!Ufj1QD@-#f52U(HD#8RwZ5Wl0(i+tkjten<PH9 zCEr>oo@R9zSE^>tH;cV~;gPD+eIsYbP<N%kXi@+g#FZlHv5}^pS&%%7sMPma&qmK} z4+oWZLV0b=0qy`uH=Jf83rAtE0^F|s3d2cWlP=vDC;(D1sS2O+I89u5Cdc%J_d2~{ z^NF_0Ch=#d^|A^im)eCY1D(vd-D4Xzl`1Tq+DhAJmQ{<1HQc}!M$RlPpUQEtZ{qrq z0?28|=wC1o(=Z`F5*aSbuekn@4-4cC(G9vOZ+3fEJvMNlg-3da8P;FsalCkBSxW7F zZA<!~GHode%4`8B(~nu}8r=`Rdnof)jOl-49N8k|nDXGqoHMez>9vctRwNou@r9|N z_SWbRmcS&Btbl<p*8_7jec80#m-l9i4+UL#T_R6uKB6Uiy_U?yLS?IQe3p(SKEz?% z_!Yattk%_Gg5}dWrcGJqy5e`lEV24FEKo)74Kko9Cr2}9sy@g26Bb$vynRoLkFdum zZ?Q~Lgz|ck+D~$#)jG;6A5#4CdzR{Ww*9T(W%;%T3&vo;&~{F?s5I>C2YC`-E2kN> zq`zMQemE7qYQr?@zDUK7NoUh=IJE1(MV~VGWZ%{dg-##!R+CJ9L%CVoqLSNY)_l^8 z<Qub#{as`f)QFibMBepD$R0DPK64~cYKpw=3)BghNxjQ87Jfr4l9vPm_>0|6occM( zBTN~Qs>)_P0yTp?$IG%g6ZQ;fZLF4Ik3Wepjp>{g2eaoC)T@Wdaf{vyjZrfuoDl(} zvkuKvndyn;5vptn(?D(siBm9x#A(nlvq?Kr6;7awj_p3f9*;l7Gdnwpi$WE%o<EgD zL@_|q^Mw4Moj}cE&eo;!`2Hn30CruLtvJd3n8ELEx#3+*kEz@-vT5SO+D1^-I;OjB zHyj*~a;rp?BF2@@=QQuHX19H7+J$PIHo~#*P1r){dhzL9_7%Q#)4H-k?Cs7_o~o7= zo3kN!YG}~^GaQx0qQU84BsO-s>7ksUW<yrg^s!R>>_a$<%N|QYc8scy6T9Vv#hJdB zK=!KyyJ73%rnh(V$T|E;LZZ)_C27wk;EW~I{pM9AF6`DSPs?VJKVJbf!hN;7rl1TC z<m$tIms>_X=}|`2;p_<ry*cUV68>5XUq@{_KxU{ju82HFXMH@i9jjYM7hYFpfK5J# z;BmYq6t5WPy<bsWT>X8*G5qHG*i*#>o?}06&1w?sz|Se`>NWfFd}j5{v{lO765&wf z`s3}KWGwK-_;|CrJ%V!awW`7u;~bO?P?P5cqv-`1M-#W_n9*4<*L9?2)<>v$!2^su zJWgZ6`_Ye>R_)fiN_rw1#^{8d;>=9kKee=GE%SrQwR{U={!|_5#$P#@Uc6tQ*5@Gc ze;k&W&GAsl9~OXpz$#xg=bJ#en`@xZF+?154LC2uXr-eTn-uFK+LF2Npcaepa$e!l z#Uv)3J9oI1)V^T4e!;|LsvQv2dRSNxPMY3B5^k?aHHeKcUjzHD`L60sLyE)mxRW(c zm7`JE>e<kTwr?RdDdw?@Bn2-)K6SlhQ#(Imyh8ivK~-Qc<)r++z~bO%gJsMD6nhJ& zy`c`(pBkl^Yai-7jt{@F)fYd(ySDXRp=x;e4k*6vJcTxpE25LV>01$UtCV0j^?Lav zP-O*<EdQ{-w@3a{nuCFXN6Gz+Q966e{bWxST9oI}g2E7!`Pl4GLO6U$FpEXo>~!qc z*;Z@P8u-={yW1W5gk4}?O%z?I13%dlYywT^P)xy5eYPlc#xZrYJbll3PlHLRKPbaR zq9ANoEz@~d%6F!R$sJ3A_NlDp`|FZ}243zvRbRO<4aIN~htSptomXl4W{=8VMNVuc z3~cUF)T{QQV*M3ZUeb#U=`_y6nj8V8rh3xGr$;juEQ$?PnZ@4IB1&htr+2jb5i@2} z+?5|ds!t+ejLic!f<C6NDZ&T`eY0fciM>Rlm>G4_$C)Lc-UzcZyBkh7w1^VSpk}L+ zO=^Mx0~MvQdfm21R%t}a>GA@D-OE2?0?ncr8-8sTm*?$$EoY_8Uc)KVT2WA$dz74l z{_tkQ`k8gw^yg^Fh72IA*3s+ZW#t0U@#e9`F1PN4AJ{!YI`wXwZ|~+CXqc5b)jC9) zq~$FZz#16IZm~}8a1YDAx$Txk{R0*~I{NVVodk_`@qK3*NtDdIP5%%!lzvq)lmKYX zvijBo2EM_F=;Mf_j;x|j`8H#f<v~+;&gB`3GG)4E+wV8D%5171eC)VYrWtlKGNU8I zR)M2xR6lDQj<WVPHm^9DL3H6{&ex*i$F%i$`hK}s-d9tyB>6V<HEH6Z`;Q=pd8KB4 zfri?h!If(Ll#!97pb4n<`>4136|$VGc~~1?F!PJ+?1cu^$t_Dcrb-f)KZSG6*cL3K zsPImURXJJ4{gBch?sS^w;g%HlILd?8gvfFL-0}pT9UPoI%)&PTP`yK$uFB3G4p1#@ zd-8na>P6j+rsypf_3JT1&-)&)&jr36gTs4|DwYh*G#rXr_{xjB6P!mMzod&Jd+z`7 zo7*HPkcVv++uT(>h1Y(&UHbuwC0_Eo%i?!c8Toh#4vy(%AmvFjH>eyrlqWbCzB=h9 zdNEG>^?Ek9ru!IL>#yAb6s1Zf0e_bo@0zOn&|qS6N7l0g#YNgvi-x^=c*PPlB{<!M zRKLzy^EvPkzLh3LAHPcdDyQex`y*En4ugi5NiW0E>2X4vJO-)<Mv95Hr~X(lzmzX+ zuAu1N|Fx18U%sS8bbfz4-y#uI{=L8pGZ(Rm{B-QQS+)M!eX)PJ1qY6-R|=-LGr74w zf%XVWV{=VqI0t?;*!_8TGxkn)LURp(hHnU}@WERmxE0Pa3qM|nK0G=iA4_m}XXR98 z=>BGTdPLxXZJTBI9G4%yLEi*xQ+|DO^Mp%?{YI`MqeU?`bh%zJQMNPIf=kmQV>yxc zdBdm46UXKSuIh)!4vb0$K9NqKxF9}hEgGAYNHwfO(n{_QQNzdbey%F%ErkWH7YADT z%+=Vg0Ufe%=(l6Wo5k3Th9|c^0tPBbvKda>82dC+d$1BS4DAdwb6Rr<rzfAJ0Fb%; zX_ty*-tVeIbw6xUhOEL+_s!(%#UMQf<Sj`}TjA0$lQ4A`*;S%K(C;FBCO&a!#f5`t zWnkMt;NI>1SltTej9E=!z!Drz&8K8}xrSRSIQQ6Kcc#%>p=Cyj2B^y!#(j{Zx2qeL zCw?&H_0{~-Y^_|OdRRwXj@v|2h6dr7@RxcRX*=dh(^s)=-^92rw*bM<3?4+%`3J{M z27BS#LODG&x&|XNZ36N_)GGe-d}WazU~fcbxElA6=#m^|7>m6F(*++NcBE4A`89mW z?itu;T=_)2dB<eJyE+!8*^VqLxK%32=h|zdy`>k{E-F}yG9P`TdbrGHr;d+1ro>80 zBw~^(rp*^KX(6L@AkxT{*oT@gwMn*z(CV&h`yQE3_{2Od5vQfp^Q`4lNu0@#ZCLW- zH1g9RXrY4+@**>@D^BoO5M37{xn5^;%s9yM&3d{`mbEZB6I2EUc-vyQAJYgt^|2{a z<ZT%G&NaCJBi-}gLKk-eFybG~TrKbR@Qyh7CIu#L%P#nb{3u{&;1fd$br&vv-QpNV zO8t1PqUU{jy_z$6lEtx;yy?fs4+8bBEi<JGy=S(2W$LOn@S+1$n*=%Sbw>KnJm`xS zod{^t5$Sol>24>r|30pzfcTT7j64tayXALZ)xOUy@Rb$J@#_@XecHIK^-a&j^schK z+@alBrfK{9J)igQzZ`GWw8V~!!Whd+^q#cS^pA*ne6rM4jJ9SVozhrdNjEkwq4c(} zY{;nDaFuK4yLS?|Qqa!b?ob>k{t-t1nwAOh>wp_&g_0ESajBu=GCAqM)M2RwiB$+w z&19M3=bF|e;L6P<Jqx(I@GN;otQtnKplq5xdmAbpr@UcvCNbGrp@PlgQs%nJz0QzV zx4hfoXa0IjR*Agr0K3nut}ALIQppGN?v$-4sZ+KQ1yv1n0BJvXf~=4-dRp#jdmec< zFGdXb4%9TNgTYPM?)yLu^Ln<?)_$k2Sg<WE0v9<=$J0pV{y?XyGn4%KAy|@2jN%}# z@2K!X47nns2_#=wt&<_mqid4fV=^W^m|yTUe)9^NOM<&F2Tkp$v8UrxDdB9G?+*#I zzH1*vp{G$x!YPew{!`u7NMn}#V?*e+h7K<xLyY}=@36{#l#8JFI24S5N5Jc@Ui4+2 z_8!f`>ww!h9j$g>X=u{z-#5I|A<b*Fa13QD-#%Me^_VcP;lk=4oDb-i&}$LoZuc3` zpuB5QtoxBdd6Jr%9(x@q`%Yoyl>$%3O>w&Tb(PuG@w<5s<!YmK+^4$z%ECwEViZ4g zx~&i$4J4^L2ya%cQu4tv2Uy(8GFQ@%L`XXhe93HdPjs6DlC(%8>XEbJL_iyfX&nOw zqHg{lAKzG9UlLri{hG!3^HemuS<%U5pL=E(NA-w-#bU6#!{&+9K`k`VYI<y)1zMnX zw~fv6-7{O3lAp0Aqr@hsV+(23Vp;e*`TIg<<EDfnR`wHai^iw^B>f8+?KjfMWh6%) zocSM(YI46@12>s%>^S-!MD#EPR-=BZQ^ApXM_;m#tf{E0Sb%G-fZ%$TCFdxmoF#H; zLQr{`d~>N=Vz(}P!Q2G*xQtm^q)PFLM%1Q2&P*X~{TE#wXRBwHL{Z|1tsfQ!!;fMT zHv`CPY|mCE2B96YJ=TkAR%-RfiqLorix|p+>Nc#MMF9(ES~k!IC=BD>{$g}(N-=V9 zncASxZm_@+$AN+nE>`~OLE~Q`v9N76!83!=Z!1)M%+HPkm>OUSjQ%aGrG~<80f{F? zl2EqvITk!^pLu>JtT~3W9-*`1FKNe0ibAQ2=_>_}55n%@OPZybjMeq+(G`_<My(}R zEJn1JGRRh=pB)HlKWMBnz_t&>ca5<<Ww?GQ_I(#YMEZfWv)<cqrum;;#UEVVei9)` zhs(x(*xuk3jWoiq2-WkoJzUmSaCz&YSUoeJ?xNrt76bJD0k=G;8Cu6p;sV(h1H`nn zv|-q1H?7;dHwGot9OSLgJeVw6Nh{bHHkoR(-3mcZ5XQ*k?>>HlwcX37DrtrTJC9zX zH$z2oLXKK(QJu9-TsNoehIjM_r?AJ0M4=Mg<~^xv$;aj-P9fqA6wic5rk9>&T(?vB z<s3XMi!laD^Yk+k`)5G?i$em9q`*V_V$!}->H!-GbKUU#HJlCd2HC>0;{MakGq)dl z4~tIMM`q^d-|2L*2@H6iMx*kQMQ(vAU0dC`g&K?c!|t>NKv4-*+Pb3kMb-qRmU8)5 zsJCU^-giV9#^-Y?-5ILTGUey7KA57dnXG-UNp;<Agtbn3;nxQ5s=AS^q++`KB)n+{ zS6@QDd3HMI(J$|X;4Jrh9gju!<cZ3xYuj1*cs)+iaf4{^Ph)%nrR`MWwH&6zWy**b z-eU<Z7e>@C7Ti$MuWCQuwpoyHJ@k>5hUy&0amXiLhe;c+z0Vh<*KB!FL|8lLo|DIE zL#`|D-O}SK`8=xT-6ppNncS&7(bOpHR=X@HovOcy|2>aszdq8XwhucCv^!XPd&}Ew zvZ+D?su*%pf0|B!w<+;iCAFYLnF#|Us+Mce(XDTaNN#By9^a{JepUxc<Dpt7aoE%| zNRKs%2tCnCa_ctYv_H<XU*C&HE|_bVW%@Lq6wnvoQ6x7Cicx+DK2Hfz%X9}ZwzBwy zVh3>V;I0u`(p@)r>vou=^>B!m-`YSb+35RgaUP0S1vQ!6wY&W$_EQ`c%9=4+ys1e7 zJO;JW@wOESlXa4_(>04e1VT7B`0uIh_9~QO`BvDG6X5>PdV#G`)f~5lw^8`5fM3Xx z%u?85z}?pE$ll>7kPNin*$Lm~(e}EBEs%U%XJ<NcZ$6@UYhles#R0E}5R@53-w+&W zR-G^o%^kU$@OV-fnvO5uYRfYj`*5rgUV^8hWp_LLIS+7hex9M|49_IG8rOEYTIU+E zJ=x5^?P5XgX!7(_yOLPY+OMwGw0v26-BrrPsY?7U6D#@h+Ue}|Cpt;_Q@mrP%h;pr zJ<>%rqFNRj=2bD6*}j#uCX-Jm8(W8>2#mShdOmKBWmK2{IucnKQYZ`R6uFycAxb_# zDfVi*)&QxdA`>YL@zDsX(%KQNi!?1pLkVNYSo*rVa6jWGsgT50RC9l3pwqU#+sU@E z3>h@ieG_6w4-2^WY33M|hgD+#)aF>D;^DDr^kkZ}N813+qA)@Ml2$zV-3W!{Q`3+A zs)|TDLX>qg?$QY*Gf}dHx}c9uJ=>s-c+c~y=DT|(;M?&<t2=|Ti5}l$(oK96wV`il z85W}2^d#(iOOEp8M`Ai}iIS1%r6JTsOnE)N85P6+6UBS6TeQN#tz#~2Kr7Y^+j#j! zwruP}qx6!a$Dnn~1NEe7B&3BR!F_>+tv*(rBBirr{=pD&BW4#`sgLeUh5M+qQqG?b z>(=|)p~&v*SSIVR9C_%?p6a#adWgt&4h*WQlk{W!i%s8rO|;}|L=`nx(xIM}ra&3N zfOgSp!Y?Py?SB!i7a2jvj<1J|OIK*#YMYMzMZ{IU^3~&Mzd3}-CHsLiB`7{UC^ITa zsxcVM2#kBD=h}`{F~uVlEe;npSL!JyYem7VclRFjv36i10n}chg(2S**Nk(4MC4Bu zDVXFb=yOsA3Mn~z@t8H`ltn4VnnbZ0t}jj5%0Mf!x&7Y}bRBL*wa8RV{nZ(?K#gk1 zpUS<0nJO18VCqWrfRfLU<YTj(gwD$$QQ8?Z$*Ar^cq9hY!O<ERq$XKL1vG&kWb3DW zc$1MG9;@rBV_z1@N<ek^^SW;CzADL|+(Ml0=moCkhGW9j_(9*4e+Cy>RWTV(Hh#kh zqg+TUbp8qVv~pba2FoAVy(j(h!?s;?PAK`T7oyu>5m>jD;%i~UoBr2Ji*kW|!;iTM zr_Yx{Z*`M-$i?XOGpH&Z_Allg>FisAK4yDjBXq0GLNP}h<liUNn|IN4iFn68RxpGJ zq!@1S%<hGDQ?^rLGz4*teU4lPy#mk`1bApmmdRrI7qm4Drpl0@j*@0j9q!ukCnH&c zn4zRknCujP1suWQ+KI)FiXFGUDM!?~^N|Q#JE^zof{rN)CphKLMN(_k!XyqmT*shO z6%XF!H;K3mO<6(9hU*_|Ot^)#*f&0PTdTgydh_+y0vI;`BLW8d6NpauHRo&eERj2H z!M@{rDZ6AbzZ~iH)0Bler`=@0&3m$Wx3|~3SLheV>Y|5Q<X^ZGyB#sEsjfnx!f^wM z0Osej;@~9als8m`LAL|0TjTfezI{vEUX>hTY``a|`KpgQ6k~iXv(PzGs$j5<l^r(i zYiIq_3)Q0d$4iVU5Fhx;5X(k9I&$o(BZ1WwTH{H?%YV?z0`CJwOPQ7)vTs^5rBdF- zsd2sP6tsMc8--!J*se^n{)&ryj+xq;(S>yk3Q=hbGmLpMbg)<NDozGwsDw%iTa7Is zY1-bbZRP*v2RcJNgd`E*Js&iWMSK56$K{K04mr7sgin5}!$UVe)dqBdLAy=IGfFFq zAYcz$gKLJAl7>_?hHMM8orZkUed~@>Z;YhATYCUH+;9}EjeNGWG<_|ic~(7LE%PjW z+bIovmwZxhi%BKo?K`zeo6Vc~Q`)Wz=o6sTnx;l>-G1zLdD*b~fL4xMM@Pqtg)F5^ zsTj>^`D)MGzKe-&lyb);Lx+VJBl8)V$DHGiNUHgJ!$*>#l^yh-usg2@qchJb4V(~? z(<B%)+Ko&TJQ>-PZ8((Xnrh=5(|e4E&G5z5^ZUrma$Y>8TqyE>)`3VcBeZ*Bb9KIR z?r9`bf82VBugyS-Xpf#2vu2?hok41R_?#A@`!6P!TKP$rm*95CzZVV<^Tjzrzeh1U zw`+tavQzTyE{%2Vu9=S&SH*peQur0I(Td_^yx?pp?@e=D+d$2^Tp;+g=Ve;Xb+nZb ze65^x+o-I-wflA*YqMi{{_=Yk#F`8`MQcLI(Z!bfAX_rYqv(6!PCv%3X)&@)w7D~7 z*|eu6MDet8vY3U>@R#d1Gu4<6OE(qEnk&&Om`n_C8T8^s*FwbviQSvD8jXdex3%%Z z`|L+`?}jtm{-Q)39bAUico{NRySQwC&WJQ79QWL_Iv)B^@u5A!cZYXysxc@ZwN|A0 z{w`6Vx_~;6*O%IN9JpSF%WYUO#?c24EN^<bQWrW5Ouc^LyNBu=I2GcizBV%G(>I!G z*Nov-cgT_!zvD+rpuBqoZ#lSJL2e^)kkoC#A&*G>?H!4G#g4)Zztf7F{qs12^rCo} z|6L1WVyUm$XAzn|5Ph*gRkF5QnZnFRacE1BgQXpz_vzxEHTi&2xjIP(*PLFo%#ZN^ zGbH6xQS!U5%*Hn?h+mrF-6c$%IJ3nJ38xd}m+p&?8TTyq#vcyPm^LAfHffC0IatIX z;LR;lIaDjJZz)g7O(+Ac@?g+k+*;dxK>tmB!J^6Moe@|;2`|=$(VW<m-Ej$LkUd<@ zJIh!UVl(0RbRW>j?mb%*QENrauI`El*R*33#fSV?!|(P+#(5>}os4fiKAw|UE;-iI z&iFJQqsQ)(*Z$;t2A8*TFg&FortVBowSFg#pE*#P3Wdxns?50RZ0@xNZx5oLucI@E zPW14a)}8vJHxXN#^*dfU5!zYK&f16G5NwCVJA7illtpisjNA0oCWo`L)gQ$2tri|_ z1ldU#b~hwfXf%`T4~9(Y(2avWA%`X8^Q*8)H3LNgMedG`Aou5WFD0B#K4bHgMrN^2 z%Nhu@sh3Tw4u6h_iW>Jy;ksUbxLM()BTaCkworhoea!fXf$-sd7xS%$1B_-q;V~R0 z^)lU>50{t~r#C*%C9i_s2ntrOIE8kF$=GHyv0|Cg5S7(n*h|YQYf1L7t@0LPk8I1l zBXP4*(8Oj~AVm#hyh%;s!-t{N!eK_Su~)lMpT7pQM<KmnFIq{RPt1M~vF>kgRl>}7 zX<R&nnM9IH-#{G<@V5J*uheibm(&=*l@~BswYC49zB^w=i8P1x;qp#1p-#Jcb0%wS zY4+Tmnx%mXmo>H1GoVHzHD0u4DRxBu%$9Y${<QPkNsgJz9;*&ziVRCkai-{+pye$E zezB#kaP-)=Baqn1`5LcM6jIWW#;d#~W%-`L9X+huFWg-em=9_{m+!*s2}@AAr=zz> zv8`SWbdc1g%(8;^)7Q|~NLTQp>R>8zO$G!}Og}3ot=R{@M)4089L~hLi#iW~I~jTv z>D^n%Ow~}>H{pc)vB`Xe{Nac9aoR&eRkVt#W5PyBcjN91^O#~8YSp6_Oe(zB#W(Nb zIL!@bS63!i5m`E1QPuB>73lWqOJOZ;nz)@q99d2qAE`Y`GLZJzbgsP2=%b4-X$88= z&{(3mPy}<6X$MxvPOgniNpW%Ziw2a)Sj*@J*jGm<g^l+4Pd=Cg?GtrGxY}kvLDRi< z>cs>PkxrG<2JVO7l{a3<6eR^qg+H<X)y`9OpIi_1HaFgJgbb$?Z?X4wk5Uai%MIl1 z1kZWInIvD;F5lL^E+*O&<&hJpMS6IgtNV{Vhj^_CC*#hvKqN+cq)>tB)FX|ckb>17 z!IMXH2F^)NVJ=9WT1q4;TA=$3XL5^dtlo)Ha{xwCha%_z!SU$j5y)GrAJ^~x*_rI2 zcrNZzjUzErhr2fTke6G?ny$_6U+doOzI2I>yuX}l5MKG#8ziVpi{j!l-;_*mE#G=3 z8c7-<Lv=`h%(pbsV8BuJL_&XEKl$K+%}@SMiX7oGRV!3FZ`p(U^|gWpsKlt;aUW^W zI>`#v?~k;1$IL}DpHx?8>@Y*@#X{_r(FN-&o$%BHM0G}Aed|D-*{p-=7AhFd^fH-Y zj8s2r%yVnvz+|bQxm_~7LNVmk&hj3#$?Q<RKdm$I-td0bD#)bEXApNySk#dpm{{b_ zQt9<EzOvI+cplvnu}xX<oau9UhUir+AfYgB4X7Hzg!n^--SGw+F>CI^7fje)`VK-> zNk^V-ptYr``t4-wS)*RUf*Yp?AR|6F?RK<D`^vD^>7>lM@d<*E_Gy+(I(8Z?n5$k| z({off=d(qF&4-(QH&HmOaBMo-8uaJc!{nIX7mq#(jF|l^M=_vbtEHxxcjtJAjki&X zP`xo1_-T7yN8>9w1u85Z9ZX!s`d!~t-C^w^2M~>uJlCU`!kYb*osqmp9YmWyd-9mv z@v2W#Ki26%)7OQMTudT&h9^vyQGQzQGO2L9|L!A?Zpd!XDd`x(jJ*(U_>D3xuUpF~ z1AM~8P7UYS|Je>=&3?Vh3zfsvaN0)-F?-$k4aqn}<$m%Xsqq9bOL5zLPiC-%Xif1> zf;|pSQOQC7rnSJ&!PgOeL?9L|2aVAFw1uNVNd$q07yUC#D{gg7F1__o^F!@4HkQ2j z-5I-z`I*j9>zppP2g=><&xwT`^KdigsPKT^F9?`_J>cx2#Z_1!cK<mx|6_uN#fJF& z+G7!ua#fd_U&l;S(7#fT2~~&ka&r}K1Tpf_W6x|FAx?kO_<wZ0bzD?y+y1SHA|SD) z6oEk{q?PUvk?xWf>6RK|2oV7V=@{uAI;2BDQChllXrzXmq2aw|?|VP*{d<1z`!640 ztyy!eE6(#czK6>ZLOuH>|6+Tlqn(hllJ`+V8v1ki5D8;<Eqho+;1`DJ%QC%#*}z4g z)5wkf!x#I}=FcVeW*d|V72D~3ARo@$(oHvc&6A$T&~mr+yZ%1ZJ95wBCF{a2tuIa% zfM1%i+@#IJsj94coRQtL!Dq-M?Dd$*RhiUilFn!3a=E?U$zqYNG+Tdi2qitM(nQXI z0Z|9x^v~E!SV%L`J>u-3_Z!mHC3<yR1lipAS21GtpsEYoHae+!UqfosU?s9Sx`Z=~ zCnKSEnJB-OArQffLVIyU*25ZWcm`iF&RNG-KqNM|-5|}G=6EY*wMe(V4_(U>{Dx_u zrqsZ7x9gUl0Nx3+SqAc>iQL&BUc5J>NsU{NcB7Bb^xbuYkKbiV@wYjN!IJ@K3C>!9 zX4;*t3enR)cT$xI1F*+lz~420Z{pzf0<D{jIK{qg=`JfDSuViaCQbX<kCb&cOwnYt z>s*Jo;dWW!FuIuoGt>njYKD%dbstRjHjgUZ)12|dUX1Bkl?aX>a#c4NedR6Z2-ocH zY2vSJTTN!TqoJdpFwn##TQY>1o_dmU%l0&X=DrwLm6(UfuhUeXoT(7wZ>`T4xW3J^ z3cMPBCpOn<vYJhjuxY;2Vp95NAP8eWT;Keg5}(O%BgVsX%&q;fdwf4nT<7xpSW`^5 zxaFS3gn4ZEV(NRlrduV1%6@Xs9>FH;8z$Qq6s?ZR>^Gh(kf)L*D)Sfk++=5`KPi9U zP!&+CBck{{X337i3Fm`u#D-sJ3)guya!Jh@9ujxlkTA#)(YH>0(R^Y1Sr)>w^EAGF zi<wRLH4WX=xSn5^65^Oqv85EXE=t%M`#7oUaGTVB%=V25Cw}K#-+i1Qx$kUij87Ch zwXWE6lQ#;jKK0FgKx*u92QGHCxZCgZhz`UVfE(0Xv^rB@%bjy7vR81eoTwBJ-74R% zi8uJpLhGc^GekvE-8=AI%Ib_^=0o+Zp;PgffV1=JZwz>*wiCfUZRmiG?WNw<nN+SW zgvnMSuGoGuhW3!(ra~0G(QriAV>-tX?Za?0^axoOe2FCaMxnD`)n{5MPtC17*GarU z!1UEB)Fftkb1NlcE2;om;F>89M8hw>x0o_}N%f0wuZXS{1eJc+b2{7*VhMtan)t4` zr@k+F!E0<^q39B1EZm|EfBRngm2+7I!)=XhO(qLGjz2?V_Jy_mT4r~B)eZr{NFTJ+ z65B&AOI`-;U9@aX6<xI+lqu!IcFicmV{@m0%0S8jZKgiCY0D6KdblB6Lj=#|tdM?m zA{YCL`izalA*k4ud&%8n;cPeroaoh86w}isVC|Q}@s-fB-3DF`pV8;qZNs=RCY=*2 zb=}%0`-+y_ZCrY%?(RtbaA!bbI;|Rpgy*Kqs{Gmw+@VT{V?&{Ts{g2J3c=vRXOj`i zY`PGe-E9+t*p{o0C0mo+NT0J*#fD;b^!3ItHD~K8muv!qSyg@aVll^^Z)f_$(#$i_ ztY~J--dX_HwFH&Fmu!3P34;Vbr+y<S2*MzK`92Rat9V^&5p*uBips0~{`yT!J5?80 zFq&o)#opkj;n`Y>DvD3y6U?;{sl+8UxiK?#Jh>KK_2+wMJ5q=7-GxYzJ%_yS1?B2> zQ%W{A@<a437pKVw2NtL69o@R@+Dy)cz4^ngpFR-Vl~lj{!|Gn-rwi8585y;_^_%a( z>MbOIPtc{q)Nn0R8gU#HQ~ai6Q%1P|{cbbt?u?xs*@=L@O>P5a^f76t4US*#G>OD{ ze~vw&|Jlo;#-BlO$+C+_D>YlA0?I8cU8D_j{#OWLMn3(&(nfe>A{)Ai*Ol((Xyjli zsE4!U+tDq0_S_F?WY31vV3^m9h&LwsCo=K0e&+=hsw`|A+8XzHS}ynP!fj->Lt+?{ z#3nNvl;(Rf@L8O6ul{UbrpSpCbe#OW+?5&@ha(;ilgDgDvH02CP<{3sh@TNtjBQze z-2w1MdUlBQ!cfHk6n56$v|dJF<6>e}miOxPd42P9Ck{sa>f&<l^>ZBx@#yHg(~a<i z9At>4K9sa^y^^lVZw-B?eW=+-V<_^TA3SyJ;@j&7sgNt(0*R<QSe-_rCts@nC-nAY z9PM2Pk+sc?%4L~U9*YqVD_i>qoSHUzZj%qAeYB{Ds7BhK7)E%)Z1lWWLRn3M4@wl1 z-M2<K<+{1Z?{IC|BQrMyNCLk*Cn)WODe{}a!2}USJJgYOIV^M`>hkF2L1@!5Z_nwV zZ2A{tBh4TB)l;&0td_lBo)7G>oniHb@w(kd`J*H{20yj%Q-TPIX5xy4nN!K`vjpV6 z9TAH5XPQ+|RGjU2{Vy7kF3mH<rihM3&{zC2`)LEF=vGdg_Qcd@<0j2-%53Dv70hQJ z6VI!92LaR6W~xGRe9oFLur{P$qwYi5W{=<RXS9X@ZiSS4MSA+$)Kfc^FmCZj{}2<w zCD1bpul2qmxI6n3m6h<5DOsyD?&`G2pPA_5WbNwC`Q0Y%80(;x$obmWlfIGrPSW;O zd#7_fSSn*<x^1JZ%H|;7$5?ztPnnC9NkZkLSaJsikx@OTpk8u`+|hxTN8wz7#z7?| z%FAWi)#Aifx5*y`G-0L~^Tz-c$jZ-2-XR%KsETg+%`H;l1JPUJ3B~TdozBl9)PDbm zF1|@A_aP5WPMV1h%YNSpOL3vG?bvD2Dvs|rvYDsWzFr!dW_J@Wh|42s)%8Dp-j6;% z8jh6EJ|HfeBZQrHMU@-WY=b<Q%M%N<)9|tP@u*Y7ScipsY3~Q*z}ZInl>)WsRxPSw zQ;QHDp`<AX#^JH{4gJ}No1FCnoO)#p_a*6-aW>#NFLZc0t{sMY8tv4;&<+QfSr1jO z#6$9_V9nTRm)lN1@;2?i>~^p1vQE4;rZ%$^5kDE1S)f*_WNM@&MQ^#kfACnm(YkQ< z>6>x`$v;bSkxNH}Bu<*_MnUb&)%U9-KdW*zY^gO1_U0}1BZF!v(2kShe-BA3ghdD_ zqa9St!SS0Dsrsfje~cNFxfEILq&wF8q=D9{kDt4kA_<FF)==W5=ZVUl(^n;>=vxs` zyyzx=O^ulQe$^|QkjqZubxls{whKC#4skPtPJ)lVy1zModJ#9`S<fXNZy0TFRoQkA zSNx88QHipGLQEMu^e^tW6K{IDefK5uCtfm%Pktp)sQ`5PT1!~10MU!33m)f-va%~P z@0G0>sqrNLSreXyq#vk%Xp~ATKaYCKdY!5l;_)<IF|%C>AbsqB(7>j4j(ciV+b0DY zI{;<xG3H2T|5O&D^OSCKf!uDoA<Rg0mwIhGp1BKit&b7{_uAT(jcK#QgSbfku01y~ zkx2*GOpmWC3CVheYz;;q1{QKBn!d=r9+G{2!5VJlG0j4rZE5FuMgx&h|IDapOq_xq z%$?6_y=yG5v9PSN(*i=wA4yRezZ>n=C}S`_JXd5gRlD4K$);5$us`b&UXpb!jD%`M zzij8EOUSp}($rdm5e(&(WEMXKwnBO6Rc`W}WwH~^3%!ctmG8zjEVZDO$npS+=3ojk zP$siq$rO4{--2&_cVtI|#Y-|!X4LvBG_tFUj{i)jliZte+Fwnv)mym?9lSK&mc|A| zOD|$la(5O!d(97KD0rjjkR`F<bgtR%A`AK7eQnw(gF#=4ad}$qY?Mi})#UAEJapnA z^Q-9_k=o=24ruLJJ-jY9;gDV+J$>2~PXX=85u2<Oc~B7;chHqK&ZTv@Lp=~o(aksN z4rs~5%_i9;%w%1Rp=C0J!aX12r5h6DWf3e4lMgk|e?9%@;~8^SDK=OziQ;YqzJrqi z#izT0;X~b8kV&!bfH^+*KsNa}$If&_rf0?SEN~pBNK+Cg2UGSn?Y&$P_|vM_bUyR| zMRb<HA)Kfy7<|EFG483ywgE)8j?E^~cSb>BH&)}aJ(-K7LjUkQtgqQZ&S`%rYz6t) zg)TF2&ZPmMhwYDvJSL9;v)Co{+v6_cqG0n71_E#2CDrxuyy(yIpT0WO{Z34vjjKVb z$PlXW{l!r0`8YLZKjBQrf7&pQ^`+l>C$?TxWS-J0lhv$!T4~luxBkXX166MYPuifz z^VL;d(^6(S&P~$ws@tN8rX5<-=M9BzC$2&)%~1ZoqKD`$!1>-Ca~ufqu^Yf_@o)(` zm6W?CutPA!zF#ar$5OjTx!caST!s$YJXx3GfFZ(-*&0wu)AoQ3zcpoAdy_W5UzQ}Z z{H{kYUr#OPWZrY<%(vrhiv^W&V)nclkgEYRsDYAmnfB-XvxD?2^X40)_U4a*&X$HP z+46Zx40bmA>`IytB6joJHy^K&iWGwcf?1!Xre_A0S3S?qh(k=C-C4`x_;TLu{p@fW zpH}m$vZA1UA#^s<4~L${YABm$hLxzE&!!?<g(Z>0EcUkkXvX)W$h3K#v>rPCZp{^V z@`pTHkHX93K@XD4lm0S_oY49u%vs>(-`vPE?E-zhyE<FP*Yy7q%0Q~YthdbnMV>b4 zDp<MSBFM*o1a{he9aSEEh3P11qbmE!8I4r5&au*-rvCaDEmVu!kmjor>s_|Hhi8hs zUWiZkw$)3l@@wi|xyNghQ``u6&oof6*ei<GYtHJb>7BM1?_S#hb9%!(9_`FfYNc-{ z#iZ2c1IKWps8OyvjQ}1vB4A%(vyygcS7vnSkO35bb*FV3nskxMoZTGuhln{vt^}@D z!Q+8_k|3`{nT5mE_&!tDwQaLj`2DZ&xH#N(pCjKzKMwGAa5s63c%~NKBT6YOPUHNy z7GMRKw=+Z9q}Af(hPO1Su|(RT+YsKp%(L%}Cw@qi&EiV|+Qjy}OlY4KSe5#5C30gU zSXc@!E)|)@Ap9%PPfvzVd<3QG({EeHmvk3dEfXplM~_ya!z+K$VoNZ?_g?e?*3mtQ z!4G+@=0jWG4lq(KQxf8X?+ZVXA#R#h6p*N!WN};XOQ<7B$3%+H;O>Trt+8|h;WQSX zppU<t|50iLAZ=yu`1NP^GmDE2Z&J!Y)gas45ww=SzZfV>WQm<Dq5t}t;eJ_G_SL~h ziibmF>%nQlGOheFy9B4MUQE}(dR$L!<&dJRK<;kAmw0MzN7`g1u91b^8YvB`H2>U6 zMXCadBh;fduny*aF(PG;KjXTcl67<Pp^O^EkM4AR3aTK#&>ib3nyQu)JP)5)w0Eta zlIhXz+>z;#()4J-S%rd>KZyEB(rICXIEc8Q^a7QOPTYK3<z+YHD6+Y%&a{W_3YUIc zWEy7AtjSl;<Fwd&pGQ^y4ZU$TML}>_^Q_eGT7F-V>Q30~+;@$6yC~>^@==nw#@eHH z;tscUQjvtK5D80<#XYNf2mC5;m6y)JhTegMPi|INkzdyBekUyDj+Zy6%^x1=aBV7I zeq{Nl+*|4UzP$XGL4xZ|&;QJxPxfcoYW!%-t<0M4z)$braQ$Rc=A*3eWY+mBeiXp> zF1*igI;ZpK%S;H=@ip}65|YX{i$q!Uvm3rqFbH%U-JCG%yL}#VN30*%y(RcZj5RQ} z6oII5Mb752Z_hLAYE=-(IMqMDoAYps(2jMeh>7LyCz{FYbKZZWZ22%pb#Yz2&kfj) zd2NNujK9WcR8DGK7O5od5_AatneP^Ol!F^(lGhgx8(44PkCg`tI0Z%(eM#6+&|3<n z1zKcMr8C(L0cOXfU&#VTLYp3_sP9+HC?ln!=o=y4HBq#<8)1@_mhs3Y^|THDnpr5D zUeSI08c?y<Z4(oHoxd2p5M~%nd&s^%a#EfFr843DJp%tD^hiju|9Cg!_d!Y6*1*!? zQlPlZNr8#ZRXznQ#^AJlnbd?H$+c5sumZj5eWpq_qW>ee*|2CI)o>sMVa>G7uNr z@jCLQZ?S!v@`)>ZV}5p%Rm8d#4PuT2bA!!UOO7|7h7kC-Znw*zrc|*}X^>WNQ;N|} zp7I1Wy)&!u^4Zo{wJLp4VM~<K{TH|OhN5i<!1zY<w5i(UnvIMRm<(SqU%4sOOf#ld z01tQlbNZQ%V{R{t<`&}gi|NZb4x^y7NH|K5yVvVRclsJN%pDZ*)`5s^9O-)$Xpmd# zoHrEjQ~Bf8W>*r0t99d;R0GIyYBZSL(Y4qVk=8$6yK#Ke$6Ir&xKh=<kGkJxhE+)V zB4tq}jdz&yzFWz`_`(QX$NI7o`Q$>GztMQrTSa_psdw#PK|0H)%^fCD(Oz$Kouu)7 z0W@DtIF~2bx@EuFUjSZ*?TW$o_tv53IFUf_lQ(?b`n=$pzT1Ol=H*po;g!NLpY?;H z^=|-cd~@z-j;Al@Dilc|N9dppxjEun=-P1`Df*jSVkJF7PweKbg77+vJ^7^6Ug&5X zrDj_)f0^*{oKp)zzQ{yJ$C87srbnG#?DZvR^;L|8)gQ-H_LhC{0~7dki;OHb763XB z(9sYQK#<vY@PUlYL;!Ap=*5zNV@7^z2Yv&Z+ZrRNqnXC<?qT<1DlJwIMFoYeik^PL zZV6zGf_6$7Ipl4VlmjraxyKCVU6zn*htc?}SJwu_|A5x^>iMBs?Ct<i;VQ4ThEB?R z%|Sax5frBtwKk0{HrnsEG)B^Z$kuM~{Pw2bP`!#?MxVAtoIgUzGmPAQ$|~*I0Pl~x z>CHNlr_i``9nBA$Y_(5Tzxhc!fTT5tvRRU9w%`ai`TU5*dRuFaA6_Faf`8@{pi1zc zMo*sYOfLDrF{nlw^Fp{T%^ir)FY>XQN^hgeJq+P<V<3nL<v02(;=Rp#3$-o3gxLqm z`-ZR!dViZFXWeAJh*<+H)>z;9p{hw<OiZ`-8<(=)54uN1Mq13utRI%vIcUmgq8o2j z`mO4Y7f?Uz!fnwy(5%zikqA=mux>4}DkC!_uWs~ng>8A4Z`V&h9LqbB9R8IoN`ad3 z%j*dZ06`7b6+IE!8=gSfU!22m!ees<*uEdecXC6eDY;x^paZTiVoM7PYc#+ju=a8J zn%ENBCmK25b2?o};j1Gr{|TJ6t8h4H@~r9eFP+zD^%IvV(W>1}^KDi)oiGk{gQp0o z*cl7natW-|7kW)Up1GDu89Km{{n91ku9iPr&{09&p+J)blYmnNqlh*4a|3n-#0Kyv z{m_A8H4MD@hrl#6XT3zk&i+_|(xzeDROOan;gStzEP1EiyozHeh$>!{R4@cLM9U(n zdfa%pbvvaWkSb0XC6h*2z*1qe%s@Bk2xpia8%+cy2iEIo2mOgvo<YxY#G1We@#09w zC8k^UCE@j^;w)!}5GZqlGYo`!B<_%CU$T`o%l)Xdtm62(10Qv=d(;dh&`h)+-SCq> z>aNPViT;8T`m)WB3`g+vtHQDs`_v@z>H=A7#<aiDi8Ur3-m2&Up5iLOg+l_PprL`9 z)@>58AH<HXDMtKtJ^`6lELTd2r!>>;aG}_WKsS3`qQ*|%c3p9O>p|PAzS3|Kd-u=E z$@@7e4&$@Xn#Pw#R(^`+Yxg|lsto}gmr}d=a}W1|#qonL-Ud0k_WP@YvQ}DzFgNS3 zg`$yy`>#`nxD%J*D(wX`{_8n;<(<S?Q4K7tZN9N}94~B>(3Gva^NmbF#x{D1@25cy z%3|Lq;<>V_V$tH(xHui+^PcWP{vctD4Nv>4wa{%*a&dc3ATfA3$2+3HrXvB5*J(d; zT-dFECuj$M5^Gu3DjNLImecW4Z}Wx$!yUGxF3p|l_V6NNNA1h|s-LULRJKx{rWqd$ zhM3)T9%an|+9b%6rJwlunrXrpen(G_P+0UnU8+xHwMcQb2SFbz5_GVWb?M`R6XC(0 zAGV~Hzc9{l=32x%<Y7j{o9@1O^JAuEPT_6BfYe^3aD$H`rBGgDmVtBYYB|QC80jSz z7#}pJD!K!4HLG?oR_I~vG1Sr5GlBG{bG7XIG@>y@WZdIo^b#xEKReR7J`#0{d@#O# zaM|E5J0m#K{d{HD?`}$3lE4q%#D&?`wg0fLMNAXPORIuUQ)ZgN+Tce^;8b75y1M(A zn4nbT<rg$2I(z@Xkk@8@SYgF*_(E4lf3mOZUOe^*`BVP6^u}_!kxF%<ta<0Nxavgx zjc-#H%QbtRGi4x?ndp6K?H(xYRQ9Kd=WE_od`d*~JYi_Ssk*poU*JB$-NQXr>519t z3!YylMLWu}P&LtXsEwY5|3eR_ZUwg4pB9+QPkl-EnszS#Lacc{@^7NW%uCn48ebC8 z+0!`z^@t5kY@y;V(HFk@vb8b!JQ_{L7BIdC&J~)<L%P?@(<d0hXL=Ou93esY$uZ@{ z>N<QV3SFZ=sIa%5P0IJ1Im6nzfE?1Q_SSd5jID#A*5K(K8q3~A%9^-%orHP@^P|0U zy;vmRQ@{43Nc0%j^O6TXL4Icw4Gor^?*0ep;SEhK@g0OKcj8Mw+qLJ>v|0OXMAh=( zLl}HgbzqvrKCeU-n@&0vt`uFL*s*G()|1yEl9{Bpdx%fNN3^)Ywb3(&rkEK!U8fQk zPPXt%0}i&5&kt0zT)z7rMOG2wVG8)$wFJ?lv4|NvQ?HlK%ewkHERX+8C07h79GUl% zL&nnoSvl~&oJJh`NtuqoH@D~Q${uK0*cZshz|6Qq=I)U2Xwlq9yPtk{xSF`9KW>^0 zmDhz16s{RKHgc<ppB?5<)d78CQ76TMIIoTvRh7E69mQJIyc%T(dfA(9x=_wG5XjWq z_7DhuB<NK0`;G;UJ>$n<7JjaoHPAR7{c@A?1Bq%EGFZJ6cRc^_hvRpIh0WE+3wV%@ z_^CqncOzo;J*5Ty@TV!SwES`(PF9WRvZuTy!o=FuU2W{M5A2k2avKrJl;V}0_CDGh zZuIL>bE=pBafX2r_CDBNH`H9co9{c}dd6&GRM;oIkY>coXXCQ3c`pbZz>oBa&0q&w zzaJuaRzyB!pNV$oJkM-k`vrTbKu6)0J&ezAWFF{gNlkzpBVIYhRQdV8Dn4vxhv;?| zy)3#_PCdb)C;XFFGPYHJ#q%IFPZ`yP!8P$kkJ=C9u1y&1aF(AC(($p}VD1pUXj9Ca zZpxO`Qg7~{dJPs9d(2G8b`X_S68Sk9UHx!e%RX_x?WyNfg*3q;5Z9Se+pB(N@iBq9 zma-v*H;Y&HDX%UwbsK9Zp+)cXUIlCpkDLI3)h*LS3C?`^4<{i0E{h70OefgS<z=W| zn0R&8;*^psocMx_qK~I7kgiS)miijt-Ay&=AP#07NL#|R)Gg0K@x3k@*vwy2CjxWk zKRtI?$FY0Rpc82lq^0Ycs@q9tnZkS>;cU^V^#EIs<#b($lfa(t^!jDIiQ(?N28=?1 zen5;PQ+~TB!f^dg)0=lTGWw)-t^12?s&&Hhdd3S{+d0VKIa0Ozaivo)*%xp49rStx zXvXR7(7XJ8^l|~lPvM6Zf{x0#hcZTw`B$8Ak@e%SGy}t(nQchdSLD{0uL6xQ=@z3| z|5JxN?N>O`^!@l)Jrt_8&~G_Py5~qvRfo|5KkF^GHzgBcUbDWb`C+3nx#L7NRih81 z^oI-g5>Ibb@T|o+k8b~*76|A#vI$xttA~-5Ms{z_+KDLg54ieFK5$LldTU~@R<ib~ zbX0Yx+T%^`hcqrw+v(zu;bR~a<=++`UVeAl$-MTt_Qgfnt#)s1-Tlv}1VR1_xq2!Q zQCq`jzhh~xj-eww2IsM8X}&HG>IpV6F%w2bmXa429-tpn9naJ?Iu@ggg1E-UvRR4l zy>1P<&l<VG9IGU*k;FaiSQ}r^Lgw1Vs9?a}c5!GtTa5StYv2ywkHr>%2wJ44tD#4^ zQ?g-fzZkS*w=Sn2-B|kgWIM*To=}{If?W<LFV)Xy*C774i6$d>v6cF*FG?*&;LHRj zaAe_JjK<W4$Ko(25KL+|K<xI14-9+@Ky|VRtF0X~^4Mlo_t68#QR@d9Xj;WL!q>u! zc=<;rG<+*dt1oQh-)k9SMKR7sk#2YR_;qR4NwuiZ00CR2d|G4PP!U*R4^vZw!-uGf z^3s8Nkx<Tq{^VtfMeDX8Xa}SG)C6;*J3UMH_Kl=JJ7_m!b5h1Hvb~vOBY{OfRx-x< zXGI~Z7H-yn+cr8)N&x?zW5Ah9Cey5x+Z%@g0eMNw8O)ZEV>Dlf|E&eMHY6TnH1A#2 z6l`_S!0J?@mC5~LdPe!VyZmIk2!Oh6ZD%qcD<Co-DQcjKUu?D=Jy=tqEx6UEF|uw* zDR9HUgfH5~@WvezV)v+mWuyO)?G0|`ktCN^k0lkna5X&~7%S39iZ*mD;Y%@4#&gF| z+Y8uK1g>A#)SOT{S^rUh7r_*~I6QJ=s%1ZSJo_97SnJ%%+)1p<Yk(_U%fKStQGahi z%(Wz=NO=+h(Pg9K-DJO1V4jnhtloH>DStEuD(t2T%z6`UGupRui@K6yVm8<==@MUw zPiARzHgpWhi|D;tDS+`4w3yqBEgOSXRP&qG`3Ui8FKX6J;Ar(HHgi;gx0Uzl^@@;p z*w}z1^IKxN?woc2yXKp1j<=0210!0yc}fXLj?E{fD!vno*qc#{+GS{HXk45?`dWDT z=XFgocNe6ff=Y;O@8&`y-U3KEv<7szAA8BLZN=AaaMUW@dj>bms%qm-JySNN5HL!7 zxfcgV?fJlIH(I$A&PLs?WaPPMm<_h?_F?IxQDQh70@WX7`z^%SD&U&?aXsA%vlG(& z9^o9r>&bll8Z_Y@TJWJ)kaW>J1&CP4a5OEs=6aYmQ%$S3clG^np3$ArwFw=IZs3=I zCWvN1$1ZC0+c2NHc__$o!FF$Or6;L7=S-H&u7SDxZs&|9Tg`P1>S~TqwJ%yqdU`hW zo3aaV1-gZ&)wBK!<?B;DZ+^QuZ5nsxD8U_tT=;w(0D+xDVCB7J-`!(O@{SUOVKBtE zPhuzZHHlsmCcZL=Gv@uev<%jaD}J@5INWi&`lzDNPvMAD_}|z`qUQjaBUPRk$5J5; znE6_QxFBJJK8hLlPr6HEW{$@(h?ScBec#n#dAHHXw7Ti7gNT3KI~saYEI$MH1{*H7 z)a(7_#Ie(N*~$>iV2D>d0&{ERcjnfY;K#d|X@3uhg5z*Q*etZiT9>p}#Y6C$OBrmf z6F_@9Nw3EM)Ro4=cUw^exxx5>TLVvLy8fX(+A>LAY4M~7A6|gnSjyZ2NY1S|I3*$q z&ElXABxEO*i<b0bL1`9~|DYd;!sVZNd%-%niLM7JmxYV%GCxT{TuX~i*DJ`=h69ux zho-?jZTS?!e<&%Ep}0}B8n~m^eninyUlZ1Q{+(<dK!+F@C9mShl>=cQXJ#V7z)>fc zCL8s@af%ob`k0DT4vVxQr~eBVXPwk~@Qu?0=OqjNw*!-y&gI7K<}=wbuNL3jY?7Kg zbr~MQGF`S4K)yTSTc@)kd^~@nB1so<_iEE*oR4J#2zmv^I3L^heZzMoSy9SW6$UPD zN3skz(oSt0&^}_|$&XC96Rn8W@zUaq=Yn^~7qfQ~cXj@Ul}{uO@PV<XmgvEaq6Za@ zdtPg{^@~0Co0~Dgid#buFYK3<rMFKQBMrhXFvKvk5Xo*p#L4?ys4q!F9~JdZd}<I? zeq%c)HnIljF3W-4{pvR_PZ5U^|HSL24_^EqmcV;x&KmnW$*yFOR7OsuAJ7j(GDgL* zfolj7M*a~z_z<VyKfu_G419BGXw>fvaeeL=oIf=G_YDVRJ(di57^R6@F(^^sqys5w z7KXDX7p)Y28su!;vIeov<{>q94x7c5I?7UefdD4GQL0}2%uDpYXh8p;So|m~VSm|v zzb9nq|K_^<H@f8}!1u@u{?@wtA3_xPmYLs?{L6*;7e=#834X19lrBhvdgH%2N&oT) z|A#FT#faq);U<{>*9~To(i8vhf0$9XM)#lWga3>4gG~s){y8}*xaiH1FIxXa2&J#Y zmHRIY7?yD)DGiu+NYat6$}jk89{(Hj1OEHJykRwFaBrI*B0K;6R9Hk(J{Qivxq$z< z5pry#N!!rS2pP_&+w=d@*Zyykj^rGcLFA$QGT^^HEB(MO?vwwM$_*w+@JKom;sB2E z@HQ!kM)?2v!~x_0Q>S|UuGIfvj<6REFl3UP{O_Nry#nKvN(ZKq%uf0W^ldOd@Op+- zP8ywBYJtp1PQ>`(%VYBsE6nd!Mj`d;xSklY++5PXuNf5yUh9oH+j<7s6%D-&l?0GN zfCYe2;lH5Gy9AXney<^=v-LcR`d2019Ga=G%<FRMwG!^=hA(emlPtV%sX$Mp=l^$r ze93!k>{+!)PI7p&$8-HXf@ix9wV!LGi8pLD-tf9zxD>Dx^}hdy@JD|DZh`wJFMK&a z-=gadzQ*4mzkoONr0yxFb1;ZLJR3Hd5imXxO3_wQ*Uv}^uK(uvg4~-{eTE7MIa)e# ztGfNhexF1yMnVMIE-!Yj!hlci(ZyZ|1Zt<`oKEQ8om=r@UW)whfzWva2dK4eatvd# z!CfR~Dzg6bAQW*oxK)gv`bRgRS7G&9skhh^Ilp#F>QR4we1GkKLty_M<iWS2{wF2} z3_EcwY%a1S;ittVaP?#13zh!oORi_@9qAgZ1(sj1IqzGQ{moSXf+S|=?9+;+uCSRD zdYyPq3ft}Q?46<-A>3(g{+9<PXZvAg8momk=a*+Yr5q!i4Jzgp+Lj(y>{smD7bjY) z0OC+<r<)s{|GUm2>Y6;3#?(oFUF;_o^l-+2IUm>IDPSlOXEmCXTDL88S*ZjZrUs?S zd?)p9hLaLHXaIj`;Ya(j=ss$DC(*tv(B-nut??jKv%(%+W>zBRp=OhZ&k4EeIYZ#6 zmLnwXp9sfg$^h)qV&-@UAZ3;7UxW0xC(c^*Xdd-b=C<D8E***D3Iz#zA^8SMqrAWA z56V7v1Xo~QpUO-3i%w9<MjU=iU+yexK83d^ov?dJyI&x${FH=L=J0ZGh_ER3z(ual zzxn3tkF!k2Q1gy8J$(*aQ8h-}^ZXr?s75+_Y#Le_5G1ySZkXnIia7Yc+eT((S3AtM zQSVH23wvysl7y$)Z~R$&{PI&aFP5W&O>H!+$INA?im-tWdSZ|wc~0p1P<>wNsFm70 z^wLYWPEY_T$of{%Jdw{ejqnH%euQ^CkQd*L!er|-)$&e$6`zdl?V`R4*FsH`P?LT7 zwOjVmA$J7aRX794N$%c`3;B&iUUj0rnSEBQlsR}@jJ_`0v2VRHq`hYD><=(4m4vXL zXpbo%sK<uNm2wb&ZhHV+2vUFCdVG4z4Q89>$?o|gapC=4%xO!hGkV*isLT!;LXRt& zkx?jeg?{rtiST^Tfrg`BcA&Ue?^1NBAiYiHIIh*RNbu_)oL_~C<c&sb5+nM=JGkg- z_(&~jdv>miEK)hm0_^_@K`8dXyIo+-FUO)Hl2GnnSkkflsgrz?xX+~Nk)^}i=_5zx znozaGIiDpXZ00%BWWnfVsu42J8ynt+g;=r4>92zLStF#VLw78{M;{MDc<ZlNBty?9 zbrAl`;B(Vt|2^>FtH-#HSQQZ+*?89(dH&GG0ECSr)fbgS&G>9Bd0&yW4@+lBC`eaS zgNIfy8&}Jqt^S?p!mTJ3JuNz=4cyz<Tm*X70N`dzO1s!N!#F_eHh(5<xn+n%()f9_ zwgvt@^n6l>*3+{hG#N<>AkCY7c)m4`q8zneuIYp`=JI(Eo#Uy`=Bz8OCj-%#g^+Z? z`kcLpl2ji?qcHRL03^_$&)p+&IZ_?F*bMr1(3ky$4(SNm6niGGrD_YOo6b2R_2vWB zDp0#-4?K}S-_250q+NQ>y|g#s#DpA5f@{T!4lTYBZo>IDFe2S6gMV`tihZQ6FS2V4 zA^kQlIMbGix?*4`=tp_fm)%|71Hx-VEQ*GdhR^9)z=|S2I3G=Loh2PTKYHzKDe_94 zqq~Qz#jyk8fnYJ5(Bwh5=zc42+?vW(4lFg!Gf|VVdB7Mkq?tDWl6W0{Uqsg3_p0~G z-bZgaH*0Q$02J@LR@jK0T3NuHuF2K3tg`3jYVuCuN~R~b#MOCNSoY)}9+j2>p!592 zJK+uz^GbAJp66P2{(nAUp=a84V}3)0f-4VQb<!2L5YgF%@zU#QUhOi7@&)n>+setW zeeRN1J-y=w7G76PBt`>IEG{?FO?24;yN~4mNVg=J!f_TuU*$pipA+21=N4-?QWcE; z3QSB0sCJX#L+KDOV|0v^E}4<xxTxf^6NGdr;*f)-uagG{;(Pds)_Y(N+TlRLphcjV zHt_2b7@)LrE!CH=p}m^Se34Dr?a8P6Z{I^YmJ{$gL~UuOQmsvVF8j;jGVAFTEF$@D zk7m$Ow7w(jSV6!a?x%(DTVJW4ocVF>7Pn<}`JsDH>6DQ?c!{U|Z{vapsiv_u`Z>g% zM!V|7MfnKf$4q4f{Ru7I+(!jgTdMxXM(_m3M9t`I-b|P6^69M+%~Rdjc!oyny^g=O zRk^$TOGz`OfhvyG0-rJbpUroLoTSq?n{yxImQ2)S*(Fm->S<2n4z-=E2kQRt!*fbc zndlo?ztn@(PxJDZwBps>iCxtoPXst3)V$1xwnHfL__GBr<06?Z_!b~sa5*NyqpctO zK=!E}b86E@kOxsSWa+08ZF;f`|7Oa_h{6VmD-obUE^0ngBj7<PiyV9oU=kW^vH1#S zdd}IYSJs08luW<<T%<A%)Ph3=Jo+l3e|~gKFAb-~Xi{X;-Z{KJ4<HF;3Zggf9`xKo zzQ*>K4Lp-<^~kBn5+w&^UO1b$DW}yFC?>+T%MAi?@j$6yRqWy;w&;Zr6`yLLfxVc| zyKegSuS)BhA-0crM&1z|p3n*&fzS8sf%({-{X>1g`Vf_|Gn5vD9{;ui_%>G(m)t=R zDVWTEaUHf=&jLNl-*o8V5Qwb=Bbb@0UA68fCn!m;<^6m|=sk@sp(C4T-4jQuKp~v4 zcDQf4{^<k9y0k|BRPT@f)&g{9!uj=)^|R2;i&bI7MEto^quCdb9@xdCT0b7K>23ad z)G#EYk9}rcIFg)L<HeJS-Dv5p6^lxvsnkdtE@lDxmc{*Otnm_$RbWp7(X)W4aNlyv zPhnR`#7jX=V+-+NWr0>a8_f$1ZkE4@JQDpyGHohnu^#T}$}qU%1Vh=_b^O3CFn zsr&*EKz?HNRKDIMcZByHnQ2x~_1KWYH4{(71wfQFM(N+A&wasa;ry52-%L))G5i_d zwO8Z)EZMOtLhXot?}092?_iU+>JTB3$2W_04C})tu({{)UVe|h9Sm+Od$Ah}&!VW^ zQ>(@DE!eerh#HublYsA;G}pfyu~p8_uSWaq+dhY2mtkSgZ|06EnHy)PZ<0@&fH{k~ zPGxk_;+?payT`>YAy;3O;;r<}EIY{}sfwBbXJTi(y|W&Zv1eVx%1K+VV}LNiogz%b zl8bGGLALjc_&5q8_T!LQZ)I${tRkpi%rdgy^SgJdb5@E`a+<_^C~J4Jn?;CL_agUF z)Ee#+ad0Rm!9ApmgOu$|zu|&;F4ETg30ik77THH+I&Kwu%h{YCp08QBGyNSg$Q?E$ zAw!$zSU-wT>7PgAbzgx~qF}8~31-kD$8SPLX^;Ly65(z?!<o1|I==R0nN5On{QdK4 z*{tPnGlM`SF;-#WI_;gz;Q+Ywyc~B1-aLn_fzJEZe_4@DV+5A-Ze}dCi!&AFwl2o5 zr0WS9t!H5S8>_$5t+9=#-0Yt>pG`^;%9z6k7yG2BOw5|;jIADC^zw}xZFQHtt+ec` zm5=O`D_|#x43HGY9u}p;%C&FjOOL!(j(`)dTNy>}SU+(17En?@My+xpei(Wkp`v~1 zJrEQ>;O(n~^4?8-`^L(^|Dr{BxLJCdmB6((m^DQyPVjF(Xs7sD%CP<0;uLIA@WQ>x z-2q!LUd(B9sO;s}*+<0t`kD9zO<E?Gq%;!ypG~hKq?Un-%%h%>8>o;GgteF{J7FjP zk~#|u3&*x3oqOGyfxQKhNGH4+n+4o(Y;0sOP)BH~oY=it>YMK9Oscsrg3=Kw_I&^t zSlUKYy2kFAHrEP2@VZ_MDVBBV_vSY-f#lQb0O4#<hKw*=1y19Eue*u%bql8`{nUyX z>}COGzPMDOf3OOh_=ERy3I*eZrtWbzqRgp3dVF+WCU^=0tzm1aEj=5*M_4Lv<X-4m zrEkO$CcT~T2~*wzZNtjT8{YMAg_Zn$B1Uy6gMLcVKgN{<tl9kNcXRtm`x9iGpHII8 zP^DX7!zyEG5AW>wZG0Wu`Igpa60%z<0mct%hqL~WMw4zM*`WQ_C+fE+KXP@#StJtk zFEl|t%Qsfm08?PkokR}*o!ekvJqjM%HmEQ6^dtg?%)E|oeHbtC+To_DuUROJD0KYQ zK|ex%uZI&duMtHfuo@tnB6dk1Jp4xC000k=UD_JQvK*CDFS#|jg%k*ITC883h@Vb8 zu^Wc^gBxs_;GcH1Si?xnwpyee?^b2ht#=bw$1}>^`zOrKJpNr=p0}$?Vt!=9Hl_&M z)Z|A~P-`lt-Sb<r*oRu`S@*<0agmG@R6hgD#mLKW>iVzf_6JUXHi`pJRTKHlPQT<| zln=>wY}NW}Hm=kZrTA2Lv$BaWo`Y5)p1dJQ77h@b+Xrp03G`1q5sRzC#1-#IKq8`G zM@6|@WCi#-gwWPJTQ|ifyCw@?T)vJ@t9gD2%2s*~>~TB57L17HArbYAmB*`IM?9Eh zdY0Ozo=V~xb}iLv>*@Kah*`(Je^b*M6}5s@X4hZq>~2Wf$vw5k%V5Qx8|@L1N}i&* z6~Er^o5<mAWO9N-_H~y`%dc&e$y3;dxlJC#NtVXzZL2M+2DbFww@p<74^utHs%vle zwpce4C-RGof`M36x`AkKF2vR4N_|l&Ril(<U>*eu<A%ZuKdJ4`yS&ljgF^D^bXTEu z2c7c^@o*Cojm`0vJWVZJVhTzY4u+^dF71ax!nqd2AA8Gp>c=@p7Z359ICg;@Qu_cd zjjU9u9vUi)46={+8Y@2O9!d<mm8#8Q62AnbL4y9Yt09;T*jdT`evwgbd6YlaUl^F2 zA2nq9x4Y2v@6?BYTMQXiXF#4&g>|>5HL1wGiUB?S+cQ8~Q(WJk9#~aXXzWDjjfZ~d zM=@SJx%91aG}oWtZdb-i7}w?fZ$kOCx1f&Se5*%}K#;4v^FtB`p<}FxGpXXQFre#4 z=pU=dR=bjI?0a5R*SZ&4R(1OVsc7k9S_yXx0FXY-kl^B%-&x6hy9ydv;!h69R7Gh$ zo5Ht9%fH7o;y$?#BC=B7)no|qFbSkQNKP4D-YqOD(dQUY5pjG_cX7BB`khXO_~YF? z&I?Voi97lgqa+<vd;c*@o(68$oFyB)$S)70YDszfEP(P3s`{vuK%))VzB`TVoGp$W zaDWFlA1SeO&hrMKjM~DCIcrDWj<8<VyQaB6WMH$|%Wu3*TXlOE#GVUMHBBzm3K2W4 z6`hq87yl00!{ca<Q)2U4kCHZEEG{DHxsRicuXPb5qa5TZBQMF8T(xK?x%J}&U<$jM zB8nq(6#gpn?ZBFoj-1s=)@qUd2Rb6<+kSneiR&olBUcD|0B?~}w5juOfkbR;2`^y1 zeen0UTV>tW;a}eSt$z06ci7mnwLIBZrTBH<xA>P{h1)CY2X9Yv41QVWHHrBo&<|~V z_f3tRvpxnV_7tFinhwOM-qT{6<$DTW6LD%O)8xw@h3!R5vL19meD9j0QPciqW1O}{ z<0dfX+Xv41sm8u5%4?;4bK_k?S~R?y;#fBvW3%uYft3pB6Mmc#DjXqM$s3$Rj)&01 zTOu1pe^&(J;mD`THHwt?T-J%C>VJk}+*YnJX4P)GB@7mpS;DG4&Z2BdhOf@oT2Lh- zC5x<tM8cax5-jOT$-5mxz_QG2v+u1v3-i0X!P8`*yf*f%-V8meTSRFNAgX$mt1v+i z<WWP|fN4=nypza1m%{ykTBQW9ll}hp_J>JL=0To3W~YV+?t{rV;_ta6KnhGNHU&n~ zkMv0xiz1r8o+<QVLdE+-Ez%q5tEf7?p9X9j8QdC&XJLQOQ10vLpm*d|N-`<6^wz;C zHh-o!X@^eG|1^>dr?FNJzPx=|%pZR#Jzg?hRUWUSFF$6>G$Y=l8RgMxfIQy`fsk#` zGAN$!UXVx`r~B#{Th5xzeFcCXZ@c(PbA1kl!S`cBbuv-fI4;)%KH?4mmiq4i>zm4w zu+GhgSWF*~4vme~xKqVG^7|9Dzz+_kKcGx|q$BI64r<GJcva%09@vu|z#KmF^<+Aa z()!}I^vB(&Emr;X^tIe0P=9{%S&5azFDT4boX}l=kBn@A7d@5Gaw+>H!UM>@246m4 zK+nDDQBFnL$?NpWXD;G=AO=GKw&QniIZHn6g~MY3$RA*n6DeZi7QZ}(^p)xorUv~J zO}tET-IqZNmX2zY6~QXJL@w)iwzCLJ`MYqgjyu-yH)Bd^GG1UNJ-8kS{;}6f9n4U3 z3Bx>f00OMo^ZjMA_@WAmC$?8Pb(2q<`!%PM%m;*`2RG;De7)p;Y|q*XJ5_YOlyCAi zDH0&#oBRv%b~uy+?<Z=K)m3nI@JRV>?9&*E#qgF8ElY>dk6WaUv|FTd@z)mUqYQAx zPydh|alo<UN8?6_t*pCf?>doVqeWE{jd!J(;l{tK&s#kn8xlCPK}BE<nTpOT5&tW$ zUGJ-lZs!({5fsrJsz3dMIXv8Mz{Wb68nTv6(&LVMDLg3jO;8g_{TY7$yxJtbjQ1N& zCha4)5`k-K-C?+hhuH9q+Z#7y^5QTWRhv>&NOe@hbf07T2tNhe=2B7dMSp42<=sZm zg-|B&=^YFH`3KG5{!18k<hFE9?k%ITUZhlgzlAokpJ#YY;-daMyFj5fC+9`p=j5TG z<@HO9-H8DSTfDY!n_`e$P8A$h(_JjU7T2ugu>I&tS%6KK_54_Kr6|%OSG4sPK+Ali zmwfn8O-k~{mZpku$Es*`c{lDA=w?_lr@2+7j%C})bQb1;mlARYdI0>}g#HRgX0rsa zozlu>IDlc>kKbw3hWEYLPB&a;r>RnPpo}SrF}KmPiQn99gS1@H88XE{7|d>7XJrS& zCi3d+>mxi@*cpmCR=|!2)a!~Kir`L^V^0DgO$G}xCKg%7eE>A*2pO;DyBdqO6qjJp zgyq?;VJC(t$CUhw*!^y7v5kh)&PES70guKX#LtxqFnya%zdFxTX!__u__vd*&t3fL z-qa7tBSi<7!1D*%#h9zr=^ew%PaE^1z^+esn*lzw`S75@Txuqm`RNAAc~xTM>!js_ zY3vE9OK533yf(cCOU3c++i=`0ZB$Vk*bRIYk^3xn^Lh#9>t+Z^4I@|ITj#^1=v%0L z_#T8l)`%%p5bS)LvjnqsziT6=l(;Pd6d7)W>=sr5uou5gXu3b9|GU$+dv^;Sso=;P z`6}u@*}bw)>w&CuB{i<#n<|0D)!sU<t`0k|Mu)eSRrcu%3uQN*r7-?jIOuQYE$KdH z8Bu4x9ZdFj2VvxKKrYueTkqUitAf#8th}LT?u%WerGz<^iA#+`i}XsZJYfAi;R0XV z!gq0g80sfK2%LwmNBJQlKLbD)Ae1U!1cQ)KYyor9Jhoe4z4>wjDPMVfexNY<a7LFY zoOJ*AsO6H&O?wnemlwwC^2X9YD#xLnI*9_vtn*%}6|NKYeJO{R?B?XMw<e{?pOSV; z;KbE=;{WL_pv%*7400V}>6ifeiP~JQ{tB#Iqcb^p>N*}T$+e)`?!Ach&g<%nU;z0T zCyHAYL5Sf8=_Y;@&Bbp>Q~^CLX0s4CwDES!{oPTCD~dG(ulpFn&16<-t!jC{J<cKZ zQ6_;-|8(CY7j>+)(Sx|<$2`q*yzR`grd@YpA+sRKcJRXW-|JpfwEpqFO)9segB(5O z;dsz1P_XYDb2L}v!?AIM?AEon;WB8N^Xba4a~M3}YT)G!EJ*CdZfw>o+rL0~Hv`Ia zlfg+|eC_gK)1MQ#lGE+F-;2ak{4dYIgf#vNb`b8d<kQ1-)j9BChw_>D3QJPc;hU8Z z+ot5cseWA~ew2~rY#m8+R|!+))@bcr@0P1M*&p5Qsn9u2(=RU~5?NhErIGly)9*=G zYkqv{H;H`!EJ^Eeq6g0*c@7$T3(vQ8&o;|i+GSnGsZ#uNZM0tkr;R&rYBtWlwSe&j zX&=2-KWrFU7QH0ngOA^{Lj6o8k$!7WheP>&NtIv)J<2a*OND!me|V4!Nfz}U_R?-A zOMvZtd<qXZ{nXR`zZRb-Ylxpixn&#XV1+Zpp$Jhz^DW>X0^=(D>!UE%Jgk4I^rr#p zW(40WWAF9q4-l>4j!B<1fOgR&V$ni(>m=3|PwcDKHyti=rxxB<#>}`J`0}3zH`<@q zu^`SQ12%wtp6H(j!iYq`?s3goLC4hhuzqfi7sDPHADe^_jPOyvZ|ZP7wsLfT11$Q@ z0$7xkbLA+>nac*dQLnBEqfU8?+QV4uXyaE8%RIY2AJP$U`E!t>xid<Cu7a&3At%^y zaz0OZ8rI8?6x{vW8AazbcoZ3I<QsOTl3g}V`LO<RV&9vsz}VuYh1rtHx$W83AIEM# zEj}GBQR5U~^P>oI^?#CEy=!T?QdippBqP3ZSkH`5|3rl@@(_+u40^9!mSN)2>%hMr zeIE)6W`#uLxxYwA1jh|siNfy6-mkT7DpNs-sr(Ftf(@fJALgB(^mgXgSZsfMyK$#E zvOeJoUZQof0k=HqG13&V9g=*Q>p3==+?0%3E#U_kxCFU%QHy=D)g!IViS>br7jhOt z?>qTkRY~khT%EXAlX}ef`Onu3t4!a-OtHJOxXR0~)QBN{O}ccvP@2!eIL_R^o=M(t z00g~m$|m9h2Z}lG&8F`?9omhBfkdLL>`70(3$mmojt6x5s&g2;^bD{46FM8^j+5?- zv54vbM-HKKSeQ71e{aF&lKT&HcIS2PEhM$(e4z;qbhI}i-)Y8tc;8_nZehv}-ZHpy zcCS8nTEapaiUry$l|hR{fy3vuX|PM|pzJF~-LBG-ox=r_Nlm^`2`5zL=zCRfx8T^! z<-r{J#mI^-uDOxw-(Ac3vmQ<~=I+Ct>Iv5F)623}Q`@z3PT45GPJ}9ql}R?9#KWf% z@mS<ZrMX2k<Q9m2*1;KR6vy{DY15U0+Wm67@k1s^#vpTs5{A+>yhVt~!p<~LkPU~b zKuFP1z{aO9KPf^srZ-Xzf#M_H)_IH^+h$gs`hbR7UlS;D%?gc5Z{FxZ3n-XjVhIan zu+2cG$v&8;Z)9og*H_@Ei%Te-Cn25}8lkXfUe&3Nl%RIKdhB@iOIue@rmyB`F8=gE z7e(JQw}B>sm9NYxVU*#v&L25r;${5q-Of?W;GMnwA><u%hMuES%L?M`xBnd-D<ZnH zG@(vd;{gfssy|f#`G%~PtAO)RvUxu=d8Wg>YRIr?kx$NW_wbQd<M_n5F-#c@GW?Xu zBl3gF8UaI(5Mai7GOWYhtyt7^sIFDUFwS~q*?XkMYo$Y?{89;oV667T`W7X=Y~nBp z7B_pJya=|;<YU<d4N^qNDLA^XV0N_0iDFd67ieN*^mxvweNF}bS}t=r5?#X88|G)G z^H11}iYwJ&F?QLjUKQyFsKG>I3MIb5h6Fvdnz3p>Z0@iZr)8=F@IR7wI?>Tz#GAPI zeWP9y_<XHDLBNzDq*{iFW({rwU5Rvg5J=T#8x;{xb)*i;PRIC+;wU_K1*e@jHNut( z_-UBg6zjQUvE56e7a1QbW*r+_ZdQ-x6sH}z4DcA9jYBu5nAOO8E*f|I23TTfGPcpe z?&81O#-%QTPF<97^2?%WGPpZc5qfR&72ur54|GA>{(FpT`5*geU~XKohS-WR;(GCh z+txEHK?&Nwi$flh!_TbH^}j6pzSt?~Za)M4sIC2;mvsz>2xGVzi3diD*qy@_)IN$Z zeZps2y0|R!+D_Hkl+WcZQ$%eL>)|R?^iaX-4(G3CC;nQK5B2nbt?i$1z)7a^-Wr2j zdZLH(Ig%b3R##w7H}mcPHgTTCaT7#O?6|r3nl`w+JMDK{dQu5SYAD1#r2)7vSQ>b+ z_6y$9u@|yNXQuGi1b8eBSjcd)oGwgI4^=15iP-o*+$(3G*})Lz10qmR+d}Ja7?`~; zdb?&D1y2TK<=US+2z$y&Kz^%i`lSu?$Vog-d^<O@R*bBd#_`YHti3hUV!;E_6%c)@ z1gF>zRgOt?V9i7Eqv9VwvU<o=g!TLS7}&xNmahfy;>RKGr_FmwW;BO-diOg@>F8e{ ztB_&FrkyBTNmx(0*QN$O1$bh=*Da?>0RcvAg^g`=sBjN^hsLd$_8jwsJe|*}9#Sik zyb3fd7iCS&E;tJS>ir6ECcf+oXWE$@RMvHG0<<4Ug}-aDt#pj$#>c_hF%C1JY1K5X zY*Q3@R*?s(kBkOS(?(~LwCvH37!RUpRX)Y%#lxx<oE|;-EG)ELvT9|&k`SS81qGH1 z&e;nCH(ur7C(XjCQt%WGJADMF1%^zN`gPHP7&`6}AwUZt{(pN*bpGm#RQ^okqNY1- zb9SQ`8<#>`D@Gcp?tpdc+#I(nKCvRK-HcLn`n$0Roy&{|jM@u|S7qw_1+Pms|1&oM zl|zMUhFKmIA+9UL0r<PHxy=)f><hb5U65)*<|UGSy}t4nG3e}pO3G~=z4dB4^a{3p zwrR(JCnrU#ICZGrsLjT-1q6=lwpVc+lM5Mv22;<Bh;`Lxe+4gxf?j4d7Cf)TY(nDe zBxh>${dNctK=I`kVd~!ek%PaVQoJZ%TcXhv%%@TBF^r{g->~UOyb=$<q-cxqPp(Tc z`x8@pDyvn{Jrk-{p1ug&%&(AEw!pvJfsK32xQ<WmJr<t4WqnpN(W9;D^1dC`i?Ma` z#(1pH4EuVhIw1;LH0T}j3UAt1$o}2!F~)8y!-Z9dxIPZlNMfP&k>bMA^7=-nrf|v7 z5J1x&Smz$0i&^=m<T6eBlikR-{pACv*QQ>o6>`H(#ID}qShR&xlinp|bB*w~-K>3l z9FzZtuBU*CGFlpt5+no!1qqQ7Boq*&5d;M3Qc?t@yK_M#l$2Cjx;vLx1!<*2Vp(a} zrJJSxZv~9^{&)5q&&v1hy?1)<+_^K~;-8s*NgY!+P;bQVf%NbG*m)84^apUCWefia z8R|L<+p`xOVM~gRppGfP#>yjOsH-i^aHw4i5?J1QBvc)aUS_6Y%;)BfX~FslFfS^{ z<Py1fK1r{HJdxokaa6H@N>b+CAsoZjkcQ`R-L8za92F@m=NB3l%i`Z3&gSlE&9n+) zdIPq^KH*2|O0FAe0Z<N#Xt*7kaDG8xeA_(AWxx$6WoUN@3qWM^Va{qMJbd`zFkkqz zc?#GltGeWlYI~8UqAn<?&vd6xr`m_5*aljauV`H3SW4mua(Y2cXrs-pvS2ti9z+!w zUqz4S(Yj5#TBf|nE4V-`FqrvGQ^(1GOL;14aJga`-fkjv@4;|~)37n`ZFG6k>r<LP zJ?Sd*MYwVfd+QF$$5dpoy=vO)fUNN6v*Bm`BD+{$LynxN>(+eVf1%Rse0qr`X$Yq0 z0Bu1P*!=>}0=ftAG%zxsve<t{#T-}bKyPx3H7S8B=^eD5i{uD*&o)+o$k~=1gsc;D zn#nfRlip6eZjZfR-iEl2N_gj9Z;@k&%b{%qeG9ERL4pb+pPD_Nd*E%H*%3(kiv=?; zzwt1%%HzYYk7Ux}w<5A_4*D`I%4FgXH4dj298@FEe0!D=vrNJQr0-7M=EP?ziAji~ zuJ|dBH~L&r#AxhP&%6K0zLf^xk(}Fh<+faveWIFFc-}6N=>D@7JD@7fGX01>@gZ<^ zhT?Af`j;UhgrF1<s98;#s4b{a(POzhnq;z=$~T`a5Bl7M|FFIqc?^^nynkmvPL`EI zw-fS!Jko*2bv^5ac;K{aI=Ee50JFn>QrD#8&A_XWdrPX0)HbL~F<x}FJZjlvog^vP zBg8px#pXD(vy}G5=`Q<T0>VEJx0nTPGak?0*&9P8lz;s|uS1j{qiJmfq$>4(6kKbp zl4Yg5i|}nUTDmge_nh`EDjR=yUQjV%Vg~2!yPJ$*(`G%MPOLWd!mx~Gb-e)-;l)k? z)bYwkUH@P{tv*!EWbN%H$EeLyAfc}f=ZPycM>+k2?Y*yhu69{niW_0Vt3h;@&n-W* zq0h8vCYJ#HZyuDAa{H@3tcG&L_v_t|>8<hJf1$}IpUk2gGt>D2L)ROR^ug_yot~BN z;WwPatAVgT**#XjRs70g_|4?#UJD~X4&k;*cNgF9`s+El+(TX!u1k(}F59^Hkjkt2 zOipQdK#g|?)EU&rXwK<_*~E=lnNfZ1=hFiVXQ^NJ6~*!+wwJwu1JSIG=R4}|^ZB#_ zWiy{vSE@Z$8@_Z9!czuM_f>#?x(tdr#rnIgI?OgQ?~A>qMzkbLfMSBk+5E)xT}7bg zkXj9@`O>HZt@Eb;58>@~s|S2cf%0yi6&;EOX&?IgNuqShW?OD#Rq(i_ov0n#*7WR} z$z>^zw_DbC1WZ1hdOjyx{jIV?nerwrP<7VBxlfHbeTjyID8{Xolt}B4&<g4mog;R3 zmZ3~jgUUJr+Ov-49*kKOo2fjq(8(9kv41lg0PJ$_-_gnB5nb7yxdfb~UG{o%=6FJY z!x-Jx-0Yo2b4nu7dmf1c>@pOoWv--|w7Yf|f);(BkS~{HQAzS<^~K)L@bAsc$R<Zj z&^hd1#cA=-tc?|sydMT<td%sA3s3hx0geNJ3X<ydYC40hkAhEtivu%`jNtH$!1p2a z4=aF6e^1NwAFHS<^ry?DY_^Uo)(Oa_WPoKM8JE2~@YLzQa+tHp-Nij6mO*tPkLJ3X z!-PSpWJ5w#v2;5Nc|Bg>dwf&dp&4&A%{R(Lb50K@=M97D;`Fb|l&tyKmYo)e!s-&W zE>>~z&QpMiGmKOoxU*{?6apcOCpZx#cwZHo{F^cpUD?sq&)6wF_NSSf^qum~^xYv# z=d^EteSPY2DG$Xm!&(+hc(J|m9{VdL%@3I7f;%--RGfB&MO3Ve-xBrk{t9*&C4bf* z(H@cS&MTHhep8HG0WwYv0BXRSuK{Ic_U`X+gB2n@uPsDIngV{FG0qMm{>QL+#TeOw zI;(1z|13k{B+Q{lH?Od)n9;m&Qn|B$A0YO0frpF`!=(&*>AVtPu-xd!OE1sT06j3b z?`qH%-Aj*#GBWapA2u;6LsE)v5;KPNaLb;OIVI+aSOv55IeAqh?ezoJpDzz;0;PVG zX!>JJ{To^jb9bBHX(lK)FvPJ~bzJIzlPgHunH%2fMiHoQ9LZK#p~C+*W4EkKMU^^J zvA?#UV3Xjh<a?Dna%rwWr;VpTHrNO3-Pg=wSbyhJo;Mu4$Q2c9L^Z)(W0yg7WiQq# z8NG-FT;zSi{m|Tg9kc&Q*v#QW<$V(H-VmotMjQFB>`NfgR0Q1|<*d?q0WS`iNL|65 zz3Gd}PTuY#|L8{~LbuQ<?R$}e+0NyAg<%iKX-+!g`uTeDhD<2K#UmC+jK~`qE)iFh z7o9S_iQBP&;T%3)W4VM0ml2~??UU9v+WykW(s32%JO|Wwnm(1N;fXVlioNqLe|qq| z6}HkWW}1fneLo|d4r1j2I-vDtgaD91lv_^E@QX1n;8RLM<M;<0u>hd|V-J^7B+#k# zzPJz1#lrqdI6X(Cj1++G`}b=u`bnOl`9Ru-<nO<vq5<9lr;k(y9&ke7d^zI(Yf|YC zGy#1?7l(>DWe%s_{dYaLuBQI8!XQ+?bp}gGR9DPiCCqk;|B(zEoCHYdOUR`h(SHHH ziJ8Or=PzQDsAvVB{9|zx$IQ~8%VM7AYW^X<j~FU9c?Z=)`k0&f*S_knCAKK|ApZh* zPz-pDz;^vt(@tMcda>vKKP$E<O8_atecgk9vZl{z5_$DA^>3JFuLD$jI7~-&MsGYn zw93CIaq%^E{jyPh0FWa5IM(sMr&}VW!~P917untf=GpRn|A(NoGh_6T?H#B|bY8T* z{~H%P7+-(EhVpNJH^n}~8KBt*Z~k8T1&g8i#$P6TJ>57@Iepf-^)KWBJaLOS^(=4# zMBq>jUQOfU-(BRJ{}*?n7UDZ`8@LlOVD-rTpMlQScp-<V*f>3ay611?`hUMhM~(63 zyr=r_#i8Q{p}q4^X3>%O{+rc5pO(AO+NzM5(YB?G@+P^k&O5Tsa~on@drVCF`s(9* zhG-57AGm;j$sb>RtVA610!{hbJ0xZI@<+mQmsV1S{cebJezlA9E0-+h<)=O2M7&A) z`Hj$Vb=@RlF*J0{zy8VLLZ@71v-FFRwts?!flKFu_V+(u^?h#AqyAJ8i$<_l$k^k4 z_5Am~=45m||M5CIUau{T{wjBL9omw_ztf1J`R?OKNB}dZ#$%e+6lWF616_eH-f6<v zzWvX{#&;rInvb_R8!JNjekA*#ANq{r>}&sY{VbxididG*kVZQe%f6B^?^sGu#ahX_ zgy`&}_EjYHe*ReJlKr=0xb2)?4};f`Gl!)2=)x$@51jjJm(00)s)fGSO`VL~;0^(X zMf>#;V_dm(K%RUz1p<8I%!rxM?$||#4<%}r5Jj(uM1VS^uN>gn-pvwvMf>8{C#S-T z4pzpw7I5fE`gs$VPDu#;rPKv57sx#aI4DIdBjE6w#`DPsW2VrGPr7xLR(=G-^e;Y( zM6`);8MgM!H+yc~h;@5rFEs5s(Jw*_No(+Qh|XOtnF>JICeHA;i9{@jq#_^rA_y&` zgsPv&%@GZ-RfnlGGFly}NI^f@pDOUT#++8+k5H=xzDS5UePBqXzWP9`ai#1%-cme^ zT<CSXbYr~c09`|g03CyBsPjYgOS`^7ho2WxAO<28W?LptZ$4zQ)w$c_^%FQ23{xR1 zdm4rzv3hgR5(*TXz_BX`e)h`N@=lMTTyAwR9Dk7d2Zd|{OdWwNYMiRSDJT9aoZfb` zL;6*L;1yc$B&c263pgS063*rioF*rnp<8$!PqUx4MtRXW(FUoIOPSY%m(j<H|AR34 z%O%8rah^JpShH7*m2Fut8io_b(JvnSn>WRdu-b27#IOQyWm-S%5B-~K3vYcE_`_So zEMS0jA2Ywg0=QL74&$lxKl1|AIwMpWMe3A@2iv^lKaV@*d<Or_`&A{Cg<$WkWRtnM zIqvlmBFPDyyW5=aWqw}odq1O8F~em|VBHFdyv#syIn3!M;uiu)-o7~iy_Ll161sZ_ zhpJQju6?x(1LX;MDCqGu83vM@2>#(xqS;a+29nTl&6`^eqVsKELWC+#oD~^JVr3Za zLLsmDCVIGggdUt8ZIN=lplvs##XT)$BDs8bt7O*o>jr;{*Neu3c?af8Q;;V}d`=~8 z?Jm2pnVW}V$%kU}eM+N>3^{_c4$CH^^>D%?cIMMq^`aZ6?^sg<n1%-SJ?7S8yy%c3 z5i&f3)Y~}0#*T8!C0#DG?P@MLeY7UG{4_E!qPbEGe8dO6=#Kc7*fN!8UOwDy?wrKY zayk4ixK__I5lAHS7_JEwA70Kctb@$xkDlal?u#n#lnb+Yc$6Kpx*X;T4Zu=QJu<X! zqTlF>hs1OqYa5JLo>UFMl=nHKt@@GUZ>*FW#>E!CPC=w$`s)E6wD)xXR#PZdp(XEg z?YEk^b{8N$mW@zk7>e{tK=dl$ZyxxinKmd`0&n))>Jw`F^86v<uWw(U`_$jMP&p4T z_u8hAQgELQuEc?nap@l&iJE+xwYS%ncI0Lx=YKAX*pxVx==}XoJ)eNXGMFR-@vlGl zZc@<s|A&$U7R&EzZ&kyoL-_Xce@)Y=?&EmAE-^|#GY_P4;hn$4`rN1DH~8m+Dve_B zOqi4(f57>#k)}Dt2+yQ|g%lX5%SZya`EjP3g0j(SAN|AT#A0-sz)KF-ERGMJp#LR@ zXY>3v18Sv!EUDLTbO@Zkqn3bn@c7@MaxhUA#eglwf$|B}{~jt@4M0_-efj-A_~aC$ z_!kVi24K1+-Rs&PF)}FseS{*(8HBz+@Bzvk%0I>aBlKG2F9`pP3w%rU1gs8cij}zR zG!u{~^4s#9f1^9Wm_?C{<uyuIh%w6k_2bQ}FP{JPU*a5V0KR;W!>B{}Rl4l|qAoEA z-988n<K9(3oiI^FTK>g&N;lD8{*5eO6=3E1=61t@Xc(`q|MlV-W1i_aTuE|Zr2EwP zf9pW8T&!obf8lnB4v+?3OXE#o=I@ue2>yRu<*=YAWA5<&+28Q6(4won{v$hLb|_4R zv6Z6c>%)9@!G3>m_6zSonWBJ0a-R<&e|`ykQ+thO_D6vRg#*~!7>%99M4`3<ZR5AZ zU0@9bqQMQoZO{*(@@M$>aSXc{{0~JpQTU`4j{Su{mLxQb|774ZHO?&7++g_gKcs=K z2xAui0wp;-C?r?~zt=+{!PlOcj^JW7zd<1e`D%3C0vsNxo_Bwi@CyTZias}gOCdWz zKUmpShcnVCO=4saUQF|w!(K8*R85I!JY?YhuW2GQeBPh`Q7IV^<hTXrTk2<jP|HJG z`fray2#XcKLeI@I{=aB{{sSMhCl{FK1dtGy3Ruoxk2Xl@q|ax$P<Xg%sQ_gjTJya6 zAI9((s9LH3iH8SGpy$6<lE(m&gZ^e60DlDlxAeTr)iI&h{m)70&P4&xcvb*(n&afm zkc)SGFmW%wo-fmw4PfC>>-bK&>v#Se@^j}A&376lGM<LRzd@nvtw&S+4<bDRrVHd+ z42?o_``61rQT%);Iuyp+9O@$3enaG&gK-xS#lIF-Q3l|tupa%HmlJM;-0v4JkPrkx zdx%0h9wV^!PYiGW;yd3aeB#@G52f}A7)rgSufx6)KLYgs4pmEW3HKrvAc^KH3kZH= zWHpW1Uqnic#whsB$|xR_r3a>d^5OYq3|u3U7ear}cxLE+dGKP^0I&=5EfasiMyEuB zk%4gm3V@g&fE?0}%geO_*1!cl_BRLrVus(C>(mFhViP8nac1Jqf8VL=v;CL&Dv1F? zh9C4q4VX{t7FN(dOa3+9FC`)ah^v>twbs9W3D7l$O|0_|L0NTx`S4&q43IKR1>qgF zE~YmQJHSmzlge*U7Z|l(h&LwQT`|XBfEC_K-4sp$`@!)=yx={rZnUh#eflj1#I7@; zd}ZbmN?x}TXDs1_@yzvCj_t0|>Cd51SZjH?U-=pa=oq1I)tf5L9>CQ~q3_u@ee`b2 z=Mo_<r<CY9YQKuT@V}<fo=204eBD!oROd6j!(t7&qKo;CRc!XxDi}$DSO|fAksym5 z`w$gRgU8-#d<*~=BMCrH$=(8N^vj7ZlWq@Qd`8<L=OMe@{hBGFotUKrtq+BVA^P50 zhlR8uYBHBf{z%0$M#+1Udff^$kB>zy>b4s@k*~P|7Qx<7{Z5BRJ}wzJRn-$r*US3R zAoHBON{+rSqqkau$`^?X(0rS4iSdEO6MLY?Z24Q)b2@sK!f=g<eKBwWQ9_eU11`^^ z^HxxleP%P#sh#z6yDIh>zZa!v-*GCnZ+dq|-)T|gvN&f4UyW-@;}V}pQr%^4&9JF~ zgK&KN@uQtX0qr%MP<iVorsK}|&g_B2)JJBz;B$xS7Dk?6&O{Git-z8-J0DG~G@38Q zWnuzgO-c;tF?;?wf-G)%fjM#j5B8&MftJm1fEb-p5Jq$p_s<MKsNh(O03Uf`IbtN+ ztl}x3w(}9(4L=vu%&RPt3FwOOm{;1R<e2@JD+X;-tZx7;C5Dcv<}>fG`E=^JPpBB# z8EVubd?;79as^GFw<wE0XUhHUI^H8wI-up%22d=in>+_dfGEJhTU&-^n42U@GhWfS zYPPJB&tr{Ia?pRdgb8KP#6+9|bGpa{h`wHEjZ9Ktl*$bexP4|9wZ$X4NsO2wTiP`% z@zp#vI$81S#vfVd7{||+@>PLOR+z5yeyQJW31At|F*3*jO~RDgdZ=?-73xcc?VxT5 z@HR><8VJ87@J+<BXBWF8<iPX_C3BxIultGVV5+$&dC`p@EoNxn8bA1W;f78#M_53` zcS85?MBK(?l>-E5aXgsuD$574Dy$p@@EsxiRt3p(gcOKz?D$$DZd?l%ZvvzaP_QM~ zn5=p}V2Ku+NB5QdQJQ;7in(i!ITeE^Aqs9ee+M%0o*u=QzF8O{;&dQiOE^}%GzD-4 znCjlS6C;+1pQG2SLZfD*WNIdob=ya50}Jpf8tu%6KWnk-iG}WcH-3bb{m5bKx37{X zO_u<cklRuVCx3`yzLyMQ8pJ^?sqW%(p?mD|;Wg&u5@^1-z;dL;46kCoW9-#IADyUp znHlK%OIhSe_~>X9i8<`}&1b1whdp_CF0Zq<0gOKF%3u9V;P=t-dbrpUY9$SByan%t zq{!OUd{kVeFpck>$=OSeR6u)N&K(_mQvC?-8gQnDP@<`xDwYL2x_0dYb!3Q`B``+# zN*1GG3~Pjz4?H8Gsa&O+>C9rc>-sR-Uz5>Plqpo4rDWbZ_Z9&5%@O?SG9Fp(3T!uM zi&vgl_g_}~!GA4vDr&_R<ZtXhd+y<hy~S+W!P-GIf!=C-H~*zAiBV2kWTg)r-}}`N z71<FNusLEO0ywnGP%r`ylk#%ThTd&}LvvCt>|!QGPBd@cYN~+WYa|;ZG=ub9QEN$y z?O?%NMU6Y7ho4|tJVx_<1;Anx8~7HNOotAEi$g#O<RN<64R3K@m@l<zv2YsU96_}` z4zbl=80nNtT~<wR^{5n%_ImV$4nrNa509~SEz>>0U{3KYvjXl-%%v!)0N&^?E@LDy z_2wO<j^8t2J*NuKHKpTEOV3&Xv3`hBL%+6Yy;>Lr|FHuA7~#y#Pn|}EjcVkjUZ2tA zmpU@_LRYx}_}4@&q=1Tbt@;XhrL~v2_|7LgXG&l(XB!zYa)66We81j36M?hGO5GS4 zfBDV6u9qdvYamNt!O&lEBC&!!^e_i?r^Im0KE34HDOd52Uqn9t`VeP(r3%T7yJoT~ z9OAo8?YD_2%^#vIoT@vWz_dW&%Cbu`1bcf|K)pqcCxjT-%a_hR*C0ekYvHi;=#;xr z>7Vn98+A7h@tkPk-l)f;tCzk}ta&{))(UH(E0-o#q7H>*x}LI^dW|-so)47~<**As zQZ{{0xtd-Ogi=fBnDqE1bpJod!~l+Im3sZo>2U`4S9zbKKd4bl6PqO1vnXnOM*un0 zx>zPK&sVyXm}f8A*uM`_=LnWwMB0EjRkeK$$(HJqLwvKj{Z;@I#0g$>*bAqHmF$DB zl5N})T$&q5O3Z*;%Ab9_&OWImyS`YbNQ!H^Z#2k%n9l6v3MzqKo`uw!yi!Tvc)4b3 zABQ?ynDQ0zatPzVR@di`{4Rd1v*&Bn7qfTz8gONj@aWGB5?wr++`sMv035Kb$m0kE z6c?0<x%n5c2EKq%9a|nP=f;*N>QVe{%pcQfiJTm5^@QwT58cTTlyoq@bEXNV@1_bo z%8JNc1voo#4|nrdbfGuxbK*k>%lU5~&6*3Im)})IkALt|>OyRnu}%^XO~%~);H03V z4IHPyA8Y7F=Ux(b7rHpbvASYA*&xSz4gp|epUd@YuaIhvInSin=+FSy<>fabJD1XU z+{IZzRj4@gWc;Mjr@K;IC<Bh-^skz!wczH7T8DvGi2;WdcSFv6{?uu#_J3&m>t(eZ zF+zg9Yw;41|HQ|Bjr0(gi|u^OiYk<o+ko}#94o+PlIAZVJIAwy?>noS9)ZAb7ealu zAk;+H*u+q#16X^G6rhvx?ee2c&ajxL?E?hM|6Q5VFd%&tMq9*y%le1?&Y-&pH`6Jh zf**1--?YxuA7E>?F+%>{JEIUq_ZYBjWD)#VB5}^9yLcIRc;T882NeU*Z9uDLubkr+ zsKDcM@E`DXiUA|t|AD)qfKmHDBiCrYk5Jx;jQsSUy(dc|+P#0-?_3w|n}2_B@IUu4 zsr`V`E#79ALH=2YED*N*3jhG*NWf6&-#6EIBbJAD#>Rgm>|%E{%K@<H>Z`lHf6y$3 zz$<b78zn)N01`?k>x~F~m$5!v*n&T^o$J{9C><NJBFXw^Rm3cs=>7hGhDO7{LTyVv zr%D1ok3Xs^&Yw}vzMWy-_bE!pMjHIHBT-96`+ILkhYh^b_TqLV7GTYa&`ST4Q&4gY zM0w{J0019a5%m8Rr9i{5BcbE`3muYxb1gzbg^waeA>-%Y=M)!27ej@3O2$xV-xc;b z`g<y|fA)61?@*D3=B#*blcMj52Z8vYlLM20+Wzq2Bjq@GTEmT2q+@rIAm55Cpau-r zAg87BZkrELndHlm)8jiUo(Ca=0?}d5%U{ir%0K4F_hd8LEN*}Levt`7^klzWcyF0) zw`pr&c_v(>5_qZ3u!|O?b|L~aA`cNueTS8oxthAEWgOSJ=9r*86Rhi^RGZ7gk|8IN z*j719yHKyGItf_ffnlcNA&%6tr{X(7I_!=jSDi+6Mq+x7@~BvnSex&+Y^{Mn#)|T8 zlX^+JSzZs15l_qKc=gPbl!WPvgIF!6ERWdk$}#YTehz_|`~XaknQC^UDbTF)li9Pw zx<{XO4|wv8)!qZh>Om9QYz!=bx{rg`zj1RKe_%T{y~YC^sH7ysdS{V@A0L%3?S30< zJ?Q06>Fy&6v58DmzD-+2nBWK;Gprg)Q}@AkClR=HHeV&==eu0Kemv%M>edxl`DmkN zTvuP9dMtV{>kwyS<%iSu^zL{?8@s_$)#K95{Vhevv*Khgpf8H>a*2cjP>4sQ!yTxl zK>+cn7~iET7$0gp-aUL-m<%|7sb4Yd@&%7Jw~BXre@G{=<kf48I<=Zn@O{+C1N(K# zXNrr@nMJ+%`a)9fBu})3F5%jH|EJ?=*WVVGfhF$Yz9sd2N7CzW9b=3)qT{8lV3s26 zQMKgxs7ue~`^rOh?ShX(VnVOBF%#|?zDie5bQqpnJu=za738BV_N|_D@2Q&b)Eu`? zXjp0YHu-UKNMm^1b3Nw?7C|0oyDUJS*HU^+?~OM#lf(}+sEeLPQXU!^jghys*I3ht z92Rt0HWO4;AA8Um9uo?F-~F+oM8#(vd001~@0L|{5eujS9hGJWmzqxlGET5}BcgKV z@Cm5<`*D~DWI3_c!P6$+$)?6SXQf2f#--YZ|LT-bw|qxBUJv@hl`^1kkG|_w;GRHL zXaN2_E*FI)W%DV$pqj2*Vc$*&a`A0~14_5AY0(W-v2440dYbIgnj*C~o8eVfb+3mQ zNZ?Mlc5He=XPJRMCbxRQ7*mFBnIqIp!uN*2D<vre4PHi4YDp1qnBlIPd0>g#h>1M2 zDTX*Jki$u1<19kaIN|LFhJsov<&e87E-V48cJxY(7!C_OLI=q+ekY;#dG~q(Tq)&Q zrat4)9(B2|jP`WHLAl=(M{B0M6#|%#K*u|Lf@Nz<yUj$WR?+>uBRZ9RwzsgG8mHVP zZ%uOq^2cxOIbrJuvIK6oJ|y^V75sAcaMd8)3aBTSAla~7CWkXK|7xG=%B!6AWVj3u z!QMSsH)}+Z;)99ouKD_{Zo^>C#vFWnj{P{P@~0kip)Xt^$9pAqq-#}ARHa5Wv@3~P z2L{T-98TCdzu)vHW7(-v`oizlU(SJ#6s$WK?pj_lY5UPzS7bl4j|wz(K7aAG!7w3F z@^G7@;ag<UYVWJQ2j0;L6&KqpSO;d^5IQ!x$O0_cTJ{`4qlV}2xNiedRxv#cMMbwS zlLrepW;4$m`yT5+4L%yjne!a$pCW~FY%11DK0*25Odjx$ea^FeIK1)UzOh*GTQ+WH z^DG%+xz#OOJq;ubr$_jTr5znrb#2Ml4T3A4vs_nHoI}~G+HsDxXwK@R`@75dM71Sb z9OJz2)_??Nf&ik2j<niNLot>Ivq$(x#=b9vgmLL2p3@x(2U&rw&9q%6Ct|hCFUu7c zybANZ6T=~fyc(4Mc@ZbD2HaeGNx?GuF`O`z|GF5R2|AqcVN@w#CDejG-#8Apa|*O0 z4d9jCsD^n`Tv@BtBpOeJ3RG?P%f(Y7{Vs0<9$GmDQsm96XRkgo76SQTAI6XxI%aO6 z^wCPG&+^lzL=>MxTk>7h*d*V|h6i|Uw8W9mN$_Y%b;12em4~4d_d(x|Zht5cMZQRV zBdibFDLmfnvUymjOzs|7E7JIW;I%PN`DW^+;#F`b<MV@Mx$lM2%<so~wh3G2=kXN> z>RvcN3EeFfyG%!Ib=Y^h%#ho~@@sFb%qA_f*$8CiL=O7^_s(yquymeP9K<0k(C8Ue z@XdP<N>qEdwI0~4&to9RH5$Zk$*Sxa@KL8bPK1=zhp~wsZ#zUkPSDM|2`5CRniLhe z&xLo^>L6}@e;MtXwz+<=Fd$ER=bQ0ROP=7-8VHiG+Xn-symzv%5Vg1w^JSES%=iZF z-X82YI~De^gPC1K9u*qlIQGit$aTOXAZ1nYk-Xh2DYhWUTI_f-VDu9I_GY1=DO4W> z?QNfIf|n)V<fwkPp*3kqLNa%x?euUcoAp?TT{c0k@lYkpiUcq%$ey^4Dj%IHiD+Zb zczj)#cGN6zq`<xaqA2%^j4xP%p(^sOWV4s#tE3<uj~(K1$8_teomh{W-b_`+I{S6@ zVU<hSlT@PXkqFDfqQjcGAzhck?kbpwG~a<wf#Re{Lzv^1;&su{NuXlbUg=xHgyq@R zrAuVUpP5+)2SW{xKX<B{s~Uz7O}&Cr-~%FopRRlbeig%oTy{-S)`|VaQ|r>Eyail~ z?-HP!aLCW2Z^eiE3*&1zTXRVCE4(Br-eWCQ9RY$`afN#oyHqX?v~56l@$o1MzWExS ztdm8_rD5%Wgd^imdk2Uas{6HG?LksqOPEqKF*pr@e7qdg{Kt+~;e$(*BJ(-ix+lmK z@3+|80kKD_6oU_X1ASs}ygp<fw+em~!7FgV&hAD8rZ3BRkIsX~;&x$s*Q<eIASLBp zYwi{{Ghj`E#v!%ZC%SsfV}2Zv4)y`>sHAT;f!5<|CUH8BR#9t=rf%v2Yd1t%d3pj6 zHVd(RWk~+MQt6Zx1thONcpdNpCIW+p52Q`TtK>KlC1x(wL^_UNhU7W+jmp{6GDLO3 zYM+KqDi>A*v7(9_Hy@Z}Z?F>kUB2PI&F8rPDf`Emg|$^uHQX#oV0BfeQq=RPFFQ20 zU)q$cc$azw63WDcbL99vT~^*+E&Wu&x}hyoew+@v8T#r~>T4_+_lLN%sxG}7o0A?i zj>gkSgrifN95o+MN{!c1t*jtn9B3ELgs{<X`wZOUmR3E;o5>GjORySirsgiL+YOW2 zA&+^iHGi;>RlC34Cq%%uk8KwdPN`8Jztm|2m2O^w6Y@d%zp1VDZYOulyv&*j;fQAC zj91(tXh{H$dgWkTePs#NYgY$5x`hl=@4%L(`!4ULlV<bxIE}!k!~F6bayaZxe7=y2 zXvCGRMudX+MS;G(?{^-qW2(}qEeuHGse6ka_0CL<QtnXXucnUN&Pj}%YF%-*JzSKc zvRo74cZGLQe1Io~l0@F@^-i)th1xpQYfr&7c1NWPH9S^Bc6`;vIo-Kns7cDn`1cu5 z*(muzMoY0Y^bv3pzL$Gn|DX?64Ua@H^>8{8-ka-KsEDT%vOVRm?m^f{txXXy4eq_k z&d%?GY)>P;YzlDZ>W2_w;F3Lgv3+R<3QO#E*>=g_`WmHh{RIpJ+izIU%^$hPIs$Gs z3>TRj9?Ca?89`r$=_Xii^}4+tE}W?gyC;wp*rloKs1CNSJy@l?EWp=S!^}KF4Z<b@ zGX`mL%O`J#P>BEzB+ugOZcxRyt6qwn?oe^IK|8&rZ*xa=H+u%kHZ;Axg8Ju4jP*AW z7DZHm$nUEW9v~G*jI@13^);wvRxsn4c_p6%_0?5e+MTr}<%9c42|J5VUO9>@&g|sr z5wHmXGf)m$wr8%cuL{zFA<tV1iIlRXZYC!eaTHS-RTR9|llTA@YW|3o#yepWR?M2U zXtXv_&dHY)0-tR&(TZ6ex2|m?e7Mgbn)gIga0_Ul@v?cf9(F_<m$FnjGFjFbm}G7~ zI3jT5>LiL>C*^}EeBB*OFP2Y2zDy5L;+;?OoIU`W^bmw6FO`-LI+^Zo^}rRLIz|>4 z_@{tQ)bsD@iVv1h<(&4FG=00lZS~3jbiV%{{ithdKsWL^r4x<!z8zn9tXcJxKxh^( zA6=KQv+!3Mn!{)5^|^gNv#3_@^H$`4#%;T`1&FGJCL>kU5N$FODX-SHg5GxTkga@v zVPUCpoNi~P&0u>V6|aUVavW$ZsHI>wva6&y;}sE37(fZxWMxD4nbol$1X6&vBM~bZ zq}|+eL*a3O3KeQ}W{`~;FU^@WKzAHC>gr-X+}KCY@>&`)vw1K^7_WaY{5VqBV_1Eb zM?w6s|Gjjg0az)`(ISy3#T)4l6<$V1^sS&B!n<saOh+1!dE?7zMiO=NcDLc6Z996e zD+-~fxmaPlzFpXpKTo=&Tak}-qz^v}ci^MfIg0kq&PXwVw8qGl2U0@79U$G6*r?5) z%$<@mWUr3<Y?&KVXjb9Z%NA$?$IE-_Z_=z(`S0TJS}v{iDC*R%;8}x)8@Ck7xOQfS zhN$l%WkQGZiM>xNve-hrU%b}#uAPgk8XMCJr3Xy-RZO)a=|aIp4*R5UdLQadiy%9; zn`*Ce(T__+n0d`DhlN-Vx2sR5w~E0Dm(&^q!sP{CO}ZW@Iq%=fHg%@(MlMmfJhi>F zBl=E4yp1drdG~pEZ%J4orN(HE!Omf-f&b~zy1ur}aivb8z(bFN%#q`}q2L|{1aD_> z?C1->N-B8^v!4-u3Orst(p^Zmm}+1T!6QGQ``Wu640g5sI+dN!S*NDRo{diobrJgP zc|%pZ2`us8q|>h{nmL7U=#rl21}_1&_>#!+VDQreBB|lM9LvG`wZjq!ik=_JqnY^J ztl37_la&uAYNVMyTDRlc-2P6QNkeRWqtN20=1EpCm3fdxJU~O^3b?Z%6Cx^H=;)19 zZN&Ggpm_4?*S(63PJtBqu0y(Sls*<8y-BO$J6TJ~!e<3XWCrWRS0UkSb&w}k;p-lD zyz*0T+p@3+vPF*5q<HbnZ3oKm@(ahR`gpKkvWit{$-kKOA{rkx(VIVE@}l2%5wU9` z!-uiVW*=A&f}1%ZNATgygf<0!Yafd(+?0GXs6f_Q|1sT&bL!5Lj%?c{`GJzxofx45 zQM!~Gmp%pTD0mR$AB#6n89Q1I^Xtm6J40`E9#nUN?S&M(TJ`7gHoGgoGr}7)c6cdf zZvc8=Tb1+27aSU!+#T9Ec_+Hcw%kIF`c;-L(*qp@;izSBj+wH%N^^FK=hTT_^UMxk z23`32{@@AlFuwpCsU0`%4eVf4)5{l9Qplgup0<<9XIXe@X&8J56^t1P+`bPS>ZXh` z&5%KBi<)G)Ei3xmo!7kh#-el6SK<*I6_67r@lXY-ZJGC!CY9;t0h5O-)<ofTUCD0N z1yF%mJc|TNpMiaY4k<4vR@TX2s;GUa;QG&o3HP<yHEh8gMb1$BsrdYW8f+1QM0@!A z-OnG!2N92|lfWM)<pgKLzF6}^drI4=r{|ZzE3sdU*wbyF!Mx<xlD0^bJ<C>`6TF}4 zCJiDo#E-Q{AOqURquAHhfku7r3Ba2=aS)NfW$F)b1wWIlMl#7v(lwwW1FRxM%DT^v zG%8R8O~7)$GRrD`BhN8W^r!3&xMamSNk>x@C@oMVAntn0ZJP87gNF*0fD@N&nDeQi z%V?7m_wnrX8c|*wH7JLG)~-R<xn;C!g9%ZW!z&Mj1ALJwkCx?jlzHJ#6W22iycCm> z{Jr>`;SPs;>LZCZ?k4f%N;93Rs>zzg_+SZr{|s#R)lum7t!N7U8z$9PYA5Qes|FVP zNO^+sQ$P=(YR@cQH0+!h?1k43>A4%%n<WMAjVq?>Dy2sva!+rFT9-i|I%ZI*xEDb- zfP!oje!K1abp^1iI5ituBe~f+i>oAkL9tbjqqo^69mNTLB0XxCV&(igkW@o8_Y7^S zA5&P6hA6JM-FCD0n)|8!x^E%bC9*tm{fDh!`suwduEHDBYqp4ro%t{OgLU|mvZD}H zHa_=|NzJdv&Up0cIKK3FYKDW#2*NV3eJ}g`n$Jk!xZ0ZQu79BA>@lBqoRxq%xyxpn zfDe_-f$~hn$*`c)*tgZ1Em_U(6jFE5hA@JY>#GPni{kQt;KyyxsUc*JQ{$me56plB z%dVnv9Jx1CQhx6{l1qt1;*WSW=Uv9!xkpk~!WFhPpBX$<O*XQJFG+t4sI1@g9=F=d z<HO}+;M7>e#tl_Ev92*oWm|9znatiRqFfP)&K4~9@{`!V{`?zQg5xBQmZem94{ptB zbFFFEJcmHPf<*%=PH?wzIr1=+kI2zUdnMfk=Af&TqO9d)r>pDFvg5<jweOT<-;V`% znksMzt7cBVX%>|gvPC(za1jeA3&u&FYF%2WFoKF3rz5pddOod2RYJrG$7;rQQf<L? zeM-=>bAYJEAqu!lKUk<hVZTa!l8VrGX{ell#bY-)Sr8y{Wl#4$P1$-WHsdJ@om2=^ z8CG*tp}`>b<VSQ$SA2o$K;zwlE)l_6pso>^>)WN~!sfMxNyn3n%^vxuTTwPpab>tv zURB3~cWlKXJ*^`52eI{e=~(nDS8-^rXO9-Fbb?%*@bv@CXQ_8~Lc2R2pc7;V6zNtw zb}b%_C=NU<fm87@biKEA(+C0kaY|I4Saw6Y4use>K}l>T<MU}&szF{)Hr_}Kg8ioX z^FdIzs<BD6J!KF7?l^U#LH_UQ%#Xb<H#k4+ywAGOJZJI1DbNz&zzP<{rKY6jB4?1a zfQTu0?DIBXM#%wrf~ndVapo!)kU#kmF7<AGX|{zFx}EDyn@mtSWJVj6l9IJLpa@9~ z%LmQ6M}=vZyaP=G`{w@ddn?tj@oRC=#o^ld`24Y61I_UOszL-MPc_WI0tm#vHS?C5 zIE+~O`aDWaEHOdIOwTJc#_BC2MR}osQ;BlA4FO(LFlRl}3PPr0`9=qJ{fP+;VmM#) zDZ$#1g^9fV)Q~335jq#E-+J`6TIz23Hx+Bwp`kHzE~{tGwV6;MIgVOaE?qm8#oPCw z&SOm1MV+5QpEz^Tk8T0p77hjB?qaQ~{Zs4Hp=VwLg>ldKXvV=uNzSc(&IhRuuVvKS zHZGZe-XS0mu&Z%ur;BP+kz+SVsIoC}A%L`2P2@Es=(_kEkcJn++st0CK2jSAG)cCu z;YzjR%$jJ~9gJS!8MDgf9e&obV}k4$(kEz;rtylfs^36nz3VKQZNaH!^M+<FvQbcS z3^r!ec=ke5!G?Ox0_(7dg6r13*3=dQuMDa|U9Pre{aH(RHuW1}0v!8Z3YScn6$5r| zML#Bg{$o(aacRy3>{p&8EVO&iNoOBobh{Gq<Rs_4G1TeQ0H3og;*hTI3G-fgA%e}# zee;W`9;aUywqA-(T9Ms?FHYdI5v%I^E5-SRjb%x;{Zr19SlKm8;2JJ?W1ucbZk%2g zsr%K;d;X&d%^u%&c%=qWR^Ba%ar?qbO+IMtji<Ofi|SXhlRXW%q$r^7Yjp`7_H!|s zjueX(iu*UP6S>>Bw|&EInY;Gy=iYH?S<0(wJxpC1>-OgN)C4WK+lYp80RFxLT?)8a z6y^<ErQHdV3sEQwm~@I^11^B;f&400kh3jaG=esWtneC_f~BE5)^u~y1V<<}toC+f z!xVPxY@^nQ?A)dgzPlV|Ah64ZCt6@^&Mg!(paK=2%Z%0ZG#46V^BY|AQ#fH(%&WWc zVow<SQQ^u_g(bMGMtD>#Rj32#E3;=u@#VOT)1RXgVP_)Tl5Hm7EVA96R3$$WR+Kn! z&;9cOa{}BnzQ_@%Gr+Z@l?x}F6x2R#My{Gr=z4<LY}DuT`euHLc+~MAr1>~=^0}rb zn+7GWY4V3$zxUvJJx8smxxOk?W864Op06Y!YDWM>e>_$J7RVzHQXvW|3mJAgFy_md zY0`DkH$0^69XL7JGqyS~(gp4Y^2*e{?MV5eIgxn8Yhi}ka0Cm@F`Glh`>rVH{TOJ> z^X6q;tp7=S`s{n`bLTq)wH*>Ot5@I#?s<FTv$apHtU~iGEN<wMT{)FMfl(3c2+C_t zn7>elGzHRnl1%WFuQ+R)k)Z>*lxp9Rj_AWC&V!e#8G1abc#@(JiEhs}n{qg{kA)hw zbHILKGvHcTD>U=NAGscy_%O_UBd<~6wfZeExY@poeJ1K>Kun{5)Pl>GcBSxE3#6>o zDNV@GfEZ;pP^eI=6hWwER<!_|^G=S<hwP?Uj_cr6a&`#bOdF<lw9}o7oEF$FnJhX< z7l=Y>DIw$!k@(rB@}9xU6=1t{RWetwqJljw>+#YPib3o&$VV)Squ_-4XPYk@0<Mv3 zEf!nrfKynUa9Yx<D4ecM?n45QuNxI3#+)BmjZwva$2uku7BF~+(A3tq3UI*VyCf=) zX&xV9AX$z9G@-WRI?gd9tU8!a;JdC7u7Kf~9gI|MmN2AsN_X5OX-xkS`t)RxC?ED7 zhvD!Wbm^MNsQv9IQ7vcKv5Vp^@5vff4)22jHcK9MSgKzdq%%wOsqPb?JE-P?>9eJ6 zf?~?<2Z`=u@2fszZ1KhGx_BR6opM?7r(#qT%C(8YR!+i9iVW%D6g2DSF47FG$#XUR z%r~E}Z*9(?0fE$POmK51*enhXV3Hz;9tb)j(nj&fD~?sxeirBEmRiBrG6vsyBTJ_w zUi<%uBQxR8xw@Y->+eSz845E=@pzqC=V!j6WVj8SRA2+jv={c;8>(KMed`E!1^=YG z_-!~0AwB-+(`(5!8GQY#BTwUW#$Yt^-KVYNQP7U;)}_n1`bsIDvZAWSDl^RnJq=)- z8K8P|?s`VZF}}16sI{G50qA{VGm&nrrK8AR5H;U?A552t&jMt$I5Z;R+B?|Huwo`E z$qL%K_Z=zOQJPIr)LVz;%SSB|p(!e--A}G9o4XG1V_*z1D;?cjP<8phUs@EIua;~# zT$)uTek@}8Z0D-z@@dg=$r=r*!269EppBOy%tG{dU#?d_Bw5d6jYN`)!-IEoqqo#O z4(i;SllUk_V%M2suo-`ezL8_zLTBI4xEQh<D^+XzvTQXq;1VA(QrWZ76L8KV6I8;S za2S{0kP@k8EB^p@&4012nN$O;szwGrBzsSEOhKr&_y8HxdbnN<Ip)1i%YmSHr-TyO zRn{$v0JQ*k?zNN$Fm>>8V>UC9`oh-0eW&ycMpd1IkQ6NtPJ%TFE^GxpGuY_4nJc|7 z?y=!Nq63Pvs<PER&hgGHYQo=vRj)hYgyJiLvKntm&ZvXb<A5VLe~MmG{l>|n;851U zCX2p@<=xPx8BfqBIH6ZK|7XW5dmDNA3Gc?Lbj2IUIrO1H7^h_AtEn@ZfPC2rDt2Xl z&r~{8ffrq^TqT~Q9cqkn*Q};obNYge8DWa&;5Tbfj=iG+y(Oy^9r!3P$0;yOdl-5> zfBTJoWwtYJsOoxKVB90VFDF|od#|ZHoti`DZyNzgv0l3x*4;!R`*8@kv?lA26<OpZ z?QFNN+My70Q#l1^f>_d4Q8V*d1p;@Qf_dd$T?2T4Uy%rcRnIjM>7*G7#&dYpqnvGO zuqW({H|^~>9VHH#^x8G`x+D=TI8WC1j*VBxZlvTjE2H_5`YCWSSQLhTQb{LJs)W@9 zIGlZNKdj~qEGmke=ulHQ|0pd-z^8*my3>5ubw?UWG6ED%X+&T-#cs{af|T8SEJRDw z&+Kypm}y^qJ8J%}lH=9!m>k)st_XenY2^FjSB)sgz{9#V&qckI^gSHfu?3@0XK{k# zBIbj1W~oT(y;GoM->+l10Y#v^<g;{20>}HgUKLeUQxWAISt}Dq$UZibF`J3+NNVT! zrAxA`J`~yop-Y4z>n)`{A_+yKy1i`KDyQB&Lf#WbTbhYZBMk|){wXX=Hn%zxnL*@8 z7QF?fbUAZL-A5D-K+_?Z_2%%Wx;cHf%+=1S6PikpMZk=rsp*dmW*C@tmDYa`L==C< z7(rStO0puy8K0KjPod%c!_<@RTf*PrP1!qbSO8=9ZSe3cx>IP^hXPb8R#vWlX3%Es zG*>hYV%gq~37~a-Q7@47?!+B&+`O}}Ip93E4NFw6O?PbyZ8^D~yFo3X_|xnMj&9AW z4lE~^itN>qNVEKAn=G|<SLUix!hBdJW8AZEnVO>9Cd0Z$oPbA;_;J?_UB=}A@b)0s z@`sUd1+bVy+sa<;UVb1#$vSIRG1^@$+St)W+umvQ^b`ndufQVUM37@-LV~pDKsG2- zp&a1E_)xAU$)SP96Qp3ZQCtzVJYQjrZ*+>S@IpD#P%`lQ1HAcu-97K0OUU38_ekj- z(@@Yxi{_A>!6vB_U(;f1Jjx*o1!{oik+Z1GH!s|yelX6pq9x!w!LzdeXoy-vueQin z#EG#{;hu%Y7Hm~kmt$n=<uJAV!_%;Fx3PB*D{9Hi^<|;Ez*Y(T-qFt)QL{MMm}N7) z10NmPcGqp_HcfUjhYnCqVQ;c@k>#%vGqQ7(V;yy5ucmGvQqg&Oi9hkkZG5k%h~tu5 zEP=?nJS561e5BP#NZn7{!$W(kK}>>83%L{`f7NvjO5}Ghm;)@+OS}5qJeRS_uSnFB zSL>Q3uXz^!NfJz}U9(_lt$7oqKfLz<9ze@>I&fmiQ`mbcF9)$o-E#Q(*ok=@4xDNR z)FrqOHuPu=lwCGY>@kW5*V9zKPj4-*ncjpOT`|Y)m26nh(Dh#*aytDa1nN&avbvgw zc@WT@yTg1RDB}z3s8k6M8XO*EtqlcEtuv+G2Vjdlc|fv64c8UesgQp#(T6%x9l$xV z2F^z_1viG%+;<+GmWQbp<Fj6IBq?xdah|ZG*i-)6Mq~9ulqYIcZJ^F(F4q8ymjN*o z%<5BT1xfM1X*`XH&pNDA7%bj<oP9{u&(90DpwV^hgR;VHI3%Bd95x<*B=1hJv6Q6< zr$Ow^h~`5gK8-lJNrUDNW8zMGdS1EfSBM_$Qq+4+<$Y`d5m7P$;WGm)`&_|{q65D@ zD(ma~#}&cQ$I8?TDt`K_QQ@Ln4dR+@IQ}mry%go;<=62-k;;z|IlhVnzFNMlNKwyI z{hfG9CdcVaU%f+~iJ0Ok%VwCSj6Pp~hqn360f?z-#1Pi>;F9+<MJ413Cp_*lEnC;8 z)e<1&bja`kK0NrKaFU{KH8r@Udh-4R>R`PPqM(UroH=nef^bhD7<a%;QkM&W+j@Yd zc)BljeTZ8@bSJF>*jRljP}Ew-Or%v935|?(+?eHF-9oziOh2<8%^Z3{btHc`e!l|( z54#FF=)zd7q@v6Yz6<w0g@V3~#0fh7Xs=p)w&y)@M^R)=uO}N{qmkqK$*Ny0<1c)O z9IZ#uJ!&B5xehqyj~u|84a813g|C*3W7V>s^lqegw9|*Myn^0}+gjsK$~FUaRDFM( zP@!}fIW0?|3@3ay1GnJBO`aVnvCgSk9TT)n(US&K;X2*^G=|ReJy0hOFd5=Y9lY#X zSrNBVz<&Lu&|N23h?>`z5l$~^^I#*v_(_t~gF&VY_eNxjt7o2oCso^>*^_~aS1BGh z)hoX)_d=K7O43_Rs{3Rqe7Ndf7(^Hgmi?ikBpySl2#)F<bbHkNc&V_kuu{)sq(N05 z6om8}de<6~oD-J&$@6$;#QwMinVV}?LIgWVT0x$a4x4{Ls3m*sUaS5fYS#B9OFqFL z>T$sH1rlkZa!f7N;>tWyf2UZd-<{k4(Td#CbX<$VxLZBhMJzyY+2;1D8<#66cYfe9 zEDQ?%QM-_o@ugzwv)?XHL!7P)w6LVfK6JkC$>im>B#XFVNXn$*V4Y2yeEqnv9z^^& z#zAxi*!gmKEi1Sj9M&;{PW78fDcl=^W6kauc`(aFZy#2Wr{xDLE6?;%J2#>w>72^4 zz{Fs=1Fu%S`m~2cFZ1jy#Z7eV4I=lZEVP%XBb7(K+vC#pmWcs7_m{&1_u#A*j`aiE z5EIj{!<&WF&f^W*5tyJ-kmqr}DbFX5@FMu^&3@sxAMQj#POQGXPyy~M#^Fjm7*Mr# z3e<tWX(<p~6yy;GQ@=nRw&@0KyvbXGt79UqzvJE6!4Op}+CgKFL)@R*tIiimheX9T z)o*=ESFgNoFE1B-b)Mf35+xt}xYn)>lCR-Z#F-7UDz5Lh?E^t~hAX~T<#;5;Dm02B z7ge{M@C%C_7R^KnNP(+jB^Xl<A8H-AVIQ)CgFf-rO#<52F>H$7vLyvb%eUu0Et=n| z0O*lhrvyY@V&?Y3>ialoTm!6>LB6AH#hdWtDMQN<8k~g2j_I}q@Y8z;!rH8sg-=RQ zPXwX4{<>KoV$V^c5Pp?%q)|d}@4M6vTm5DyRhHGt_?3ePVQTh7ytSMvP`Lss_q7T= z^hkvnpj(yAefQD1SiIJyzW0YxP$PCMFU#A{a=y7YxeO}G>Io+#7c3+C7#O+X)DBt? z#v^1HzKKp|T@rWbI`EU(SMZmlzgoYw+|kh!-+u~(g}|m`E;$~KZIDfw@SVlfwe0F$ z!P<9~oJ-x?&4gyI*SdXi){OTiUDB71ZB?_vs`85-!s_3q&UYu}E2O9Hl_7+y!xbBQ zn1miobl<Q|Te7<&I-n~d4eU#gOTer(+pY~KG|665x2PQFYKPNLB!c6M>L`yN$E+KA zX<iYjZh_ot`PfB`rQBc4Lr#Aea?~%*1M@nR=uH{hnu~*BrZ>4ER8H}zuO+%C4#1{r z+}glV)(~p7k9~(#$Led3K*hIYZUVUq#JG}$f-D&N!?{=0+A3n3Vl-2VTky#6sJ_2S zup!goq1}^#*3Hn~RCVdoFFump`})#A^~LVqwOIVLqowQsn>Nhb2#?0ZN!tRe^2H`= zOL}qW7x9dv#V5odlLUo%YifIcd9PLRgk5C1^Z1J2^1An7?Z|>@={lb+PeFv7u-F#c zETA6Kd_}ZI`e6}Sh$ljY%n1>4T4irJ<J_7Q7c&J<*X{hX*{gn}c~>koy`yzq${dLz z*m5fV+6PPL2s&7kG^G*tg(JwpZZAjYDB<k!3P9pt6J9~XE?oSL=+Sygs^~;Iw(-z$ z^UR<kR2<JAf5<agqrmG94D6>DS|{C;w7mOCbIig<$Ql(?AcPOFxkhdW(w<nj5P78b zDMWPLZz&R-jf|E0$nsgN(Fvy^ON$S|ddGcC^e6)|rb@17bZdZs#AzUV6zKC+phwZP zL&*0!<@{Qg0h7AgaqnrvN!6Owpcmh^0JW%ijQ(lcY139QHZzwucn!FDT$d&7v0bx) z3W0=k$n5oeqkubv>FclT#<+Qve1$dS2i>2%m;Dy&O8$r_eNn#4$<?I6#hsw2;%^1@ zvNJ9}k=U-(gHD09vFgo1#SE3jpuKEL0UPj!g1qxBxL_^boPL4VQs}8i+nk~(l1u-T zJDj)SHRF+YO%EIvoad&dybV2+5;6kL+zScn@;})Qill`%U!iucT&X^#i68RUgs;u_ zcfex&Y)ZFqt~k5+SfuHF$zY}&WGR+z=TVsQU&ziiv>Jcld1-3M%xTTuh4hgq_;rEw z9B}N~A~hj6>?t5o{>)X|)IEATaE471RC8}>E{<~5RW9@}Gfod*%3ptu*xINDG<f?9 zDJiwUU_-NWdgus#Y~9N6RMxTHZSWw(PvIC7NOBBA=|z=tcph8sjL71)UHr&T(=^J| zop;<`!LxvLnyEd<7A~!JS<}@W+h&MO-rO{<XbhcUB0FF{GCj&4pcGM~(krBl)A#&T zgswV+a@hqqqQR>_HMD$EUIJ>WPoLsPjO5A!-=ux+k{5g`fzfd!9@g!C+Ay#F%b0(| zW8=skswMW8Po%nv>~nF$*0WDqV)C<rSh<rbm}-nrF|u2K!8kF6sX^71;W6P$)_J`Z zW&@LIZT{<QOqEGT9Xs5r`aD?QXB7+7akh7kv$N}8xEqIMttp)rvh1J~C_jcpL9IEl z-M$U~^^eO3>&*cpON=;vr*ld!whP+g@6z_7C7_>3dIkW}hIripOmQQ`Wq`n?R&(;8 zOsm)$K4`{`IvhZqG`vn)0q_Do0bJHHU@u6n+&_I^`Ev@ONo8fLSI2V<!8dwG3c)}b z@b$u^LOA4hrgI`QO}>YGH#s$5>ErzeVGdn8fdPj%TZWI?%)gL~=sHN3DVJ;nzAyoH z242^1f4DO^0}IW=F1Njuo$|OV*?#%};O8Pr&wL=KsMuR&)|$R={rWy9WS&-^{}vF? zU&Y=5-)uP5xg_u+b~@}~p&V!*&N|^Z!{ro@nZhBzUQ7bSrlhEfi^K4%iEd1RsjDXj z)gJbW)e#J9wE4d!&8jKVqlj8nm$7~spCXyYf70?Ju1S&OZpHc|dHZzIHL4<;8lNe} z#{Z-1J;R#X!mizIK~y%NqM#sP2SLC>2)zh`^eRXRsEE>gD4|3}K}CupARR<{iPA|3 z*@}pO)BvG{i1Y+P4K?M=xXb%}?>Xm>7ng*Um6f^XnsYqk9#3L31%+*b^@s#5SFd+K z;i9@+I)|8YnrU*;b-HnC>s299Siz349P))e)>EN8uw$Z9KXOCuYQu|%AXeO;vXI;7 zkFTpZioE;D+!r;9h>Ho?d@;FRs`TUhk-6Gu+B&*82ZtQA$4L1dw43oVyUG)CP>V61 zjjQgVkrKOa#8zJq{55;Un!#`h$Ei{7k6CTs%5iaE$-W?EL9pE<x9;r&;8}kg=%1RK z??<Qhc-^!QqF4G%ww{K`_j5QW1_NnL!`Fbx>hCVO?Qg11y#8#7?^Zz;;&rrT%lop* zpoPdZg)ULnnBfgSr<GsJ^FxMerO<#Mxu2Cf14qJI?kn^zVN=Zdgx}WO+Z4#99%}Tt z9@9|mGKNADA+@00;Zq03q2Kjbh|!MHKH7&U<n_Mug-jh|OEN~8Z8^XWcs<^lL1o=b z0>Y!N{vnrLA#{!);`jHmdD<$D-we!ETH-c#9*eHi9Q(QH97#*0)}#!@I%`_kAH*N; zANR@2#<InXV<tqRD26Ji*oO5y1Lv+C^$#SALq~1kQNhz0EoBaBuIaaG59L%-coKax zE&pWQo7dm!6CMj$Jd2UDMs;tj(G|RcMDcuc#a6DPy)=?DSX6`BumKRLZQdqdj{>6^ zR2CzxXis{0`#>sobZpwb*7-x|1C}&S!=EGaX3zOu-%D9y_2<Za%VHwae^_WxLk5fT zF=%))iuzP(Gn+3$$(m@8la(8*ARpxauzLzRRBgq31?#C37=Ya-r{%Xiqf>5M+}z1f zIeO!RJ@O}l+&Z(+^TOP~3VY_p+luah5ij9aJ<a>M=f^736we<($hIN9&AIvabe=dW zD~O~`K|9Sk{m*L$auxN!7_`sW4a|rUjGj%2<hlUq_IlkQF$>0_R<M}W6?*h1nX($h z$hKW7(Qm^UPmCXi_7~>xHlFnBOIdfFjV;SUmb=Na)jwhg_2{LL=@WYl19RrWg0?Z; zjb-1?sYM{~oo-N(#;s}NDMvz20|PdmC`=Dek%rZHV-cm4!3iE8#_$Z=S!_<%%S{r# zhIo<@HsIum4(CyD7ll8G_XIjK@{r48#B>%?RcUp8B4TiTtTIdG8tr_V!YVIbx7Hxh zL9OZ0s<B)ik+%e6xFS)DR`nl7YgT+N8o!L2N?Kr?BlP3BtE;)W%{<Sk0n?xN<4`h> zL?HbJ^j2t`>WTsWidl;l?8mB@jA~B^jXWN*N|vtsx!W@sGC3EyTR6^t7a``ygpRRe zk%8q=#n_UPZ_6C~?;Nl<c-i#|Veg-ro+>L!&a8=r2wtWWVp~rjB5Lf)RdF4Q2Wu+# zkWdt>=M&oY0GX$GNk*G^I&`Ck+F*rkPiAF>uGGVl8V1jqFV57~N9OkJd4DOlVr6uf zm}{c+?1+M1!TQ5I8kjbRUWonajbHOK$+E9mI>QaU44lWNz3(@<gx9!tiO#%e;r$r0 z7~CDcwPjUnOzCW7AVh`jo|}!WJ;!7@z>q6t;T#JaC1NbF^Zf~=wQvp<jUTl>=QPx_ zH-Qt_Y7ravXJ?oHrT%(U=K?<OJ&nwRJn+VE$73UvEH$3i^yG!Y`q4sa{Dh6r1FIp2 z12ZmM(zk>DxjPgIwOr1W*?T(~nmVauKS4_s>dJkkG{FQ&193g0?~{1@q(k6M9Pq(4 zJH7u)ZEHYy0OnPe?SU8bz#EQi+1tu=KxLGYXD?)&I(&s(^up9$FDWrx=j0vCd`*OH zmWV#_?#Nipda7-j>W@53ki|Hh&pdp%%6d>5^Q-huDfP%=-H>z*)duFy8f$rn)7K8{ z9rJI`OS&mLdivz0qd7V#rJj2dKX2uzP5w+U2;6Y9Q`HFEj1={-YHZ?sANs5Ffi*;) z9C2=?m!7Mw>dyAzfo96BHFFKg>|$0-z#^ensmq`61UzPSvE&&c9r`6<b3sK$Zc{iy zjtC|+M~B|e1c$=z#tPt`w2d-Ej{sYtBNnj^S)icLj)t&E6qdi(v#YZp()VZDp47#{ zv)dzVhZ|C0xHfD&m>MiLv>RFE_9yvmgC1sts^sbuc)e&J%SbpdaKtNW0fBj0bb;(u zMvSBs5}s-D5L@WF9~vF9Hxsp`LM&POMCEOT(#7xr_()lw&{Otgv>kDiYcRL1*&Z7Z zaK%+<&Cve1d+iv|47W#846qYFOZL5+hF^;eSL`Ppo6+$&j3$@)0GY}p<J6{=>fW=n z8X!XJ09cZP{2QgkCkYW^zW#@eTW(q{4$i6LC%&lm6f0fAuDuDrjG}`0#lx47JsehP zu{y;Qd(W=U4qco2^+g)vnWf`iFN65;Da;+%62|%aZn%d1<xZ?t1Xl<%G6fo6eFJ-t zz>Jblf5q%)^z{o1Y9Gy|nt(~SPuN00iTV^RWOL4UyGWpZ1&NPA4;g`7vSQ9a5Hk1K zHcglx{`cJicM&QowZgTT<@x1u*95w#Y=38d*2PULjel)|*dDs-0W2*C&PbcYjX{vD zd5nlbX=Rp#8?M!;bv3%Pro}UAScz2{a!>~)rObGh8?hA{C;g!4$`~(2S{ZVCa~w{v z#c!acN#A__1O@dYyMz;@(VPCY(y*I^ts!)4O@tJb)bCF%sc17a*wQ_BWIzxewRA&8 z<rZ=ABYytzHpa*N&AZh*ZUkX}>MiPwOY;&)1G1d`y;h<YS_#FI9{WeA-*bKW^It6> z?ta*95B1`fxkw{Jw%K~R*6OX((I_SpRHuG_8dJo<6TmIpH!v{RiE$S=r|Y3r^2~E@ zf3q}8?vIWSgo~~jWU=2Y(Z0&m$z5&6#YHYZ-rhVn|AfmJ64rq4n!wolkA9`rqo^N@ zCtTeGNgc(JU)c_Y@r>K6TitGpuz6-rtxetTG8d*%RqF7!WtY_J9)_BNd@mxy4KbIk z2Y2`^xFzX3BnRvF7jo<cT-}6Z%x!U*28p|BO;*I{EydcmvpOd~l(GnY15-uyP7H7q zba2?@_GWY4i@>yjg_dU+#oHvg$%FWbk@4k5WVA_BK98Ivs^Ll2B$`R}=5~KQS`)1m zBxZGiHJrL{HPr++Fr{hej5#MLmz;JI?%>N+uvKJO?zVJmhJz#hK~HNLdYIS3*)Vio z1i!NgG2(7#CjN<j?$?rGmAdX=sL!ovLJI4G4}_42Pjo@<Qzz!<QGCCBv#3GgVh`yN z^=ke6N@ZzH&0UO4y!$3jrCyroQ|@7@7Si35`zoSb8G6EtbSHhW6%_tHkXllTZ27i# zigl+U$_@+4+*=2_3WBBUW-TzxZ~Cbx_sAM@i>B6?122jD5sTw(!^Zm^Xan*L?9;NQ zo!We`us#J^E|3t0hD}%OLH<(@5EGO|ShL<EtVfwIi*-%5K4?$(MbAL0;Vps=k#g3T zW#8x5_#k-6_;#~62(T6|b{`p-9V|V-ye+KS=^X0X-HH+|a9rQcvBGaHOTpc)H&#Pp z@YH15>W69M_znJw!?~Une8$v~Nzc<#C5pq(UqgpnOHiesFWikj0&w2djjf`hvXRE3 z1Epmy#}~Qj%FjUP!5AQOD$R{lu46TpXi>r#_@|4;YIi^@NxjP+ZEw+wm%;4NUM&J7 zic171`patUB6=tFr}iE-d)Pu{YI(H7nAOBFFl4pP+y&N_ApEn`RISVC3n!45<L6z< zso6p<A|ipwTLso{DmhuVtju7PAC+;HTJKLY??m43T2~4%Vh%7!phq7WK}OPwv!zG; zOGU3zzSR2c=0Y42f2wZip?M-{I}o)=L)Zwrt<{#^74<KdW!toTEheUmJmlBi<b8=b z`KMK?A>53Ycuu5v3Utl&q#@qWtROw$10rGx6{iMgR72(_iVwt~iVW4_&WLLfb87NW zGr^GiwQ)LqUzV}j!jtQn1<$BPmh@-x#%`Us{2EWzO{s}0Pf_~sfz8+~+<D`m3WI`L zxX)Y%7r`#@?(m8oQVdaHHig}W;I6-Qs!AvCd#UgBwcA@>)+*4My{yp>A{H^KX(R5L zCQ1?0MP)97Nku!MU^%%ItkY693@vh;h4kq~>?VDCeSNLld-A1-&ZXpeEQz{K<ur#4 zN=!*xI^DL4Ut8|9vQKm7eO2EP8CN%!k7X7TRoC>)CsG~c8Y*2CIItMoz(+U+^=KOK zYT;Xy`Zwv@LU9;AAxNW3qc_`tWoOg({DjEj4%~N+kb;;=rM?kKY&f31DH?L`seZw< zgHQ7mEZxSl3yat+wA+~XGxo;66@#8>>N3s=d{s~mZ8~G9EorP5u`+o79%H{DUOBZk z+@jkB_(p_+hEmqoF~%t?VqKr&{;Vdv$&|1Yu-Wwb+)$)qW4SEhEc`-if=}>Rc4~gM zM;ba*t|^6X<+>C2u(S@oWF(Nxlb>3iz55zGQ+&tF_2l^7;P3NOE`07k21g8^^#NO< z;ZFTQDM+d)VzW^L-6ZgI&0|l-JKXa6eSB-K;L5S6NF6o#uX02F5lh8(IA$!*Vr>@o ztsQA1VbKrC#TLe}bg~xyBa?^t>Y|#2|N0!Z#3c>8v?7nc>RN@^9=amO?7<kK9_gMF z^wPia+Qrt{=IxqWy@AHE3+Cd7Y0VffK~(mZ*~Ba`97?l>dD@bt_ZekgZL4x{vmw*R z?^;XRb1XQHyHvOCh9U9bLoS@iGy;6?q*yi%&hWT+6iv-;$?8&^2@08E6u>kKW4jc; zHEy=aTWt(x!<rIwRRtujCGrbPGV1!u)h^h*ZTK#lDF^mrshQLspPTT+83)AI^|6Nn z(CA<04cqZ`LZ++)58`Ji+4U24eat!|{Wmywns$2zgi)yD6YbSH1L4Z^BVI^z=B<Fj zWli|`DRX#LKj9|H88vmwQo^32Ipe0RwAVq?!0+E2My%#c_j6(o-f%IGHxEkP2B=AV z9(f-Mx209_XL$+1HOo|Gqu8yp)+q_rrot#(6F)in(Cd8D-zK=a#Pdl1jnTRTO$P9L z42CnNq%j9~c7b<WNxySo7U?%~CaX%;Mwju3y!WbE_wtAEDoT|_V7F??_7@fw(%LUT zJsA+A)YZ)l3#us3LnlOwcf?6IIA<K3TTc=45;@+-=!KoU$#*^%%&Gd1y+<B**7i!} zuLQRBaT>J9Fg(;&M{fs~XA1>fPz{gU*-@5WTT6)3Y^ef%R>gg@x3lAmLa{64Ria|S zxh_5iI&`DE36U178K)YKn%kV997J5b=~FyPTP-f(Y7j)7;)>B10GGuiyh?;)>KYMY zqsSVlf7iy{AJ?|5ER}#G|JhbcmYQ2B^GVGQmPJK2oo;J9YOh+Y29%Ls!{Je7#3*N4 zZT7l+e{?nOA}`vcY{h!@89;cdLf@hzlG>}JWTjkffFbB-+@9jVX9bkBpyB+3+qPWB z=18DWhh^z4OMDo4$fF!26PVt;2Igl1dH-QRcgF3X5x{4RDr$@bP0;XT)l)P2g#OQZ zF`p0%QH=wzd2QKdRDuHRgh6tq_ypVDWNTn`DtGkC48L@@F)-#_M6OumWKsL&Ic#oy zaDF+y$Y+-39xwH?@jiMmC!*otMM!|ykpsA5ehlc`gev-@TiEucW|NeZMcQZp+D&W3 z$f^L&8LHpDIp^_4z_aSdzE*9?jHQ9Ts?ghRp0?uH`g~GBUN_8xb4p*VwOtBlkdrH> zy7!RtdG<~WJdPnx$(yB)^T0c0*Jn2?|6%1u-1>zhL&+S#yqvRbHRO`Hln^558IxV1 zDLT>D>^xNo>5X^EXkOZ&6iay%H3G?H6>Tr6@POfmM{y2T`o!U3!Ho~r(!Y(E{)Hmh zI8l$lel@m#Ozom$ZN0~9W1Fkxmw)YrSQd(u5+<h5!e`3gGy}<N?{4(-LO)N2hs>wR zdkSS&UW<DWHCj$X-jsxv874s#&dW9Zn6eBsNiiv(aXC!CRtOc&xOp_dp{;-l9)t!+ zF4s77?Cl*}{86Y#!p+IXS8=EHh&kX5Z)zDw8=L2#^~B&&*IoEkGgH6l=)Usd@77UQ zW4WUN+v|p5qI0O&nYP8xVTdBlzj1v4Bc|>zq%N@?j8B&n7K%UDqUTfs#s-q?e0>OA z#_4;%{}U;&#bpxsofLl@e25h`9ZmPR-FvcOhpLkw_Y1zz+wOT&Zq#iGeU;!i6Ul4t zd~(<0CkGB4W~2M+H@N6qGg;--kAM#wY!%BCoty$LB%bZL|3bGK{(y7Jm_CD5fIyBI z0GE4x{R|>F^<}VHxz=l+<I=paKh~a`=N|a;zaRkJ$KbiooCt2!*g$?4jxa<md+z~D zXsuoEf5Y^J%8#|4pf#sFAZFl@&4&Pre!Tcftlx|C{MR6TSv{=d_!b>86@^}`8}ys? z1-JcAIc9&yXFWgVJ(OL!kiJVSRW+4H*N?m1A_a{(#1;L|JF8dkHwi3El7bCvo%7jW z#m)>ZYdjz!xeEe;)WByt7P3{b2BM<<oQe{Xob05Y->|!$)JNvF+fXC$qbmha?oF-l z8Z@*0*yzfCYVkLlK6DUVT+5eRV4mq@v+lu^H&BpGQ2WRKcgjFh@lo)BB%n$u|7UW* z<Npr#`<PQwz{wKqC2GbF9kO`&$K1cMZ~u|_?1;0bBkb^iGtQR(cjm{bc%w%?|AWmJ zfs-nDdHHvUpUKwlNp^<Ae*@_EPrqaiO@Itd(TN!Sf&cX@U%oq@|Gqr?B=~k^qRP|- z|Ng5>>|E>rbu>WWb98`IJ&vh!|3~QK-$wumYRdndmPr{nDJx2n80q(a^j}mj|3Bgg z{yu2-JjaS>oy^Y3H|qbM!GCY|-S*M`f8IOW9~>&VGZperM1#8HuE_uQX~n4j0C^mf z@uvTCUH<v$(6wC^e_ucK2KIEhvF`B}!wwSpk%Fx2cD{a$rz-M>Tj{kCL#2nHGZBjs z2YPvS4W)TCII<Xv#zWF=q2NgBp?kmU+U#-&G*L(jh?F={L=OS|$%jzp6qzYRr8NP> z1|+ILrh-G@!)fbNYp6==r@_C^vRFMky}jIQwf6U$*b+pM^dWY&IAnawWqnyE%SK_q ztD=Kz^|Z-Bkd_f$IGSpTiTK%)1=0Hw;dsFYL#u(0Cm5@G$(9Z8d+A}S%VY}`!g6z- zn1#`nSjG3a1uWrk0O@&@4Lteg459eIy(#wT9^3yxX}!4dCxu5sspQdVNB%^l*XiU} z*R<1@fDpHkQX~Vhv7sze`nH7(-JAb^8Ti4M7q9C7dsGwn?*4b<{w-s^QWzV@oueb~ z-_ViFIRQ$4CCX#0F-kb#duzb=&tleb89Y@(l`~b}@_i`usTl{*b1e=X4m!KC^GVy` z?OF!OJdt7<m;Vyps|H+0G55AsyVN4aO}s9bry^cDnYu6)mqolgPwjx>4`i5LQZ`W2 z<6X2bbyf0~;B8(oZJAuyeO_PNuVu_T?6h4#(j_0Ks`uW^Ch2E4e{mDItA%SQ3shCE z76E(XAjWvG9+BPaY3OyBajj_hrdRGQRQ+^uOr*X-d@Jg$%N=&+p?dX!`-<yHjzj%6 zBl++66Q_|6Sda79qn2u%M*=v~yc&a>a`gt(=3W#HctkPWXBW=u*BF6JkE7rN<rXF` zUj<)liedWY^M(gc+&cJJZ#8SZO=wqp_|D?pi3?*M!2e%SR^uxAO2)}JZ!57k63!mX z%}0I?+Flx(|8*;ZPHT<ancsWD!{%QtVA_*W&!nNcBD8nbh2^T)^<ra{Ys0b1+u4@7 zc6nRX2aiaC;3tWr;+{zg>->b;yg|th2UJsv@|<;Y8JimLY@}TcVXtD>%1cJ;1~yOl zEDmO?;sq%WGxpzSCz92e{fJWklLNS&Mow8pokYi#p~-qR^p*C(-AL<G$Bo%n8l2|7 zUAt+!N#U!ouq-fgX&<?V%N)V%|3L~pd**Wx;=g-Q<`6S-Ob%9CRi@<SsV`OiRH|~` zESw(=aCCOg=%1JSWo<+`w?L;YzqXZEC$5#{IkAmhST74vZQYoL<4u0kKR%%v>ED>E zS)ylkSQBw-weL{hUq8HkxlIw?j9~NKDCqY?pyLed-ImT}l5gw2oja#Ay8vu0_NEKK z-t((n1tTE%%4JyQs+L1V&(J(hx+BXF+L7k*rHYq45lRZ%(5#8REXp22uXigZQJOwT z#8q@Wn!YuZhxvL{DtDr=?WIHbmK6RHhcK!NbO%Pl7^hvonzk($QdZh;EE6hB+kK=c zO`^yjE7+ut659K6^PP5r19FD^W@{ku$=;cs+_kDI)^@P3E^1xl#6_xt-}LnB>-_B4 zn>H);i_ta#MVGqkQ-0kP&;z+3f@_{@T?sQUZE7R^xJ{*eVa7qsLQ0?HiUqX2;8iNb zEg=3aWWetHY*!y2JVPR?8s|JRX~zFhPv`VENtKQToJ|yYmsB+hZ044B?i3A=e4*sy zs@N0e0H)9lAEg?rvR!&d7}(=;JV<a+%sTn>XL-`Kkac&wQjaW5lyeBtu2QOBkQo5< zd%Rre#wg>m00AJpgV~avHQWSJXVt53Y(y6n$G-<tq?%xMLY^P7Ar2*~#rbiuqpJ6x z=1C4p%P;B)Y>Y=`9{I{g?YT;<A$4`+%74N4p&}!g1rGNp<^9cUO%)D&TF^xxn|X+a zZN8vbsjBT%Ei19AORtyn+gyN&=i?l*R8JQ2{#CXb*IDC{Y(H=pPwm`hyCCfZ70OSB zM*AH=KDE?7$flA}o$&sj07;vvi|hW)0TZD^-a1Nv2$xDI;<p$tXXuW2GT`W8o{{wc zN?-UVAkdD0YFydSlkPWJs%-^p7e6#w5p;aFT?8=jlObzEAmqVSt>0H_0VgrLh@H{c z$gxkJ1`2E#Y-bS|BhGJ-*2MZ`u$yQ$z+B54VCb0)WLoHn1>E8l!!fJ*BVYfSo1}z8 z%o7v<3r{^><XEq2FdROSF&fojPO>hZlCGb%2{f?8-etpwj=62+9yMclP^7+5S(hED zFPuet?VmWMXkSaJOOqsZie4TBh~-15!)(jSMZTk5i@2_jZm4>q9I-IXqrSPkoS8kb z&PEE`%=2!{nV=y^S8)sCc<*BZW~HY^Z7ue7=X~~_*o|C4xZm;ym$p<3W2I3kxc8d0 z$4q9}Gf}5vOzYh9#sba>_V`jXB?Oq(m!V_H`G^f1S*h6A8RLfRQ9Nq1!bR9qU=(H= zEqefAVIOR=AGs<v!mv85U6fU1szLiuO&A@v!1a>8q21teQw(69F@PUwHe^5O+YGbw z9KBo-eitzoRB}-1YV!t(H5k@l;q-ZWAy6)ZGItO2%gP#r9iGm*szI?h&iE_Hiob?* zU(9@~%Cmy|x>Jt**}%_RR`o6tYO-GF_~;wxDM<M{=1T{Ssqw$`%l)=YVY(ytiT6+B zEv)?LOP1BQ)QB0d3Fx{X^2XsOS<=gI*)_B-Rsfz+KOkJiT}1`CH`8xEFbtXwHZI%E zuml^Ix0Q&>MQWf^o_&0jl|2)8$G2t&1*ixsGe<^tyO*yAcetoUNE-R(@Z$Z#x&zDX zoFeTJ^Jh2eG|Z7zuF4F#4k9k<r2qT5u;Nte0e_SJ1F!S*>@zI(lucu=2EPvj<&^Ck z^BKtSLk$83?SUiV4j9*^vV7*9{QF&?sk^J<Uu#tOhcG_GS4D-^j*_}+9`1sD$J*E^ zF~(Mj{ycHoTrqJB;BCd9Pl>A@+b^NjkGkwQ{o@XzZYDm$w{pLX5LG50XEY`)6ci!s zyQI5Lu7Wm|z{3?kkL2w<UIz@gTxybwx|P4vk<4;H<vvxFD|n*AO$9Y*|Bo5fuhylo zxt=YP>*15*VzR}iCg=4yGS<aBFxq?xdr;W*qy<cuY5vxm2r5!Pe0V@F>-y$PtZf~0 zhJtE@@3ba6gu~SG%X7o@+aa|qa;)xxjKBp+JBbELQt3`Vv*cj!-7q89-bZWyGN>|* zn>NHBG~CtRnqE15>~S+SE@7|;%<ku~QCyGY3z|Dm7||6=e>m>=Ar@|)8QKYJFp!E^ zTYDXgjZ@ox%f{<86y7TWe1zV9qbzz==VUlKBZ&S;d)f8<G@fIcswC3=VZOb<zy$lN zl(}bt4UFeGP|QqlM&IFAG=nXMk$_w_bUk9R@jXwZ|J;-9!-$1f1LkV8ih@jfWj<7B zl8pNPK54>64nn7|qRL+-CS>I!3VKU?2jZg9oyMwLqXDCy4z(}~+}iS1IhoIOwsG@| z8(rM3)fldpXFN{$)7Xc;Ny@Tol<i6%@_SNOIfTp|=<>(EAZrwhaY&XfnvTh!f4Wiv zH(gG69WTsE1i1qs0CqQ+Jepp#RnM<XVLAokZi;ZiMe;W-)(ygco!Fs}_zgsaW(E%* zCi8GReMwGoOUag<y^fMzDrxBc$lIm5T2Vw@S{iJz3w|>^Ha^qd|3xNwSSlYkkheYh zFTy{iGZESyFvqSvYlrn0&^HZWD&sOT{Q`95;UvL=%aphwPyar+c9Bw{X8{~@jKFff z{aNi+A;YMtn5(a=w{Ufb^*~;zV->7<MGV>>u=;<PlJ%}VWZu;g@rj&!V0l79L{!zV zCix!-{!v5b8QOA>lni_E=N2-Vn0olER|S`}BINnRTYPL)4=>Lr$JjZ(SF0+D-sQmT z7|{8M&jWCwBSi(GPJ#pe8Kq<VuIU7MQU5z;ph0?dEnu<SK*;YCptF0}jR&{s&S13f z8<O5nTnOk2gVyoJ{wWk*<^cd?K@arVMfxr)G&2;rRyg2NU_Z(8?qvxGs~H^Bi5vz> zV5MKeR<C@<TFHprb5}qnUtzSwrMU<42+vv8|G26@OoQ6Hn`eb|i=03v)0BSw0ksbX zT`IYVHQr}aw-navG)EhI;3HBI^;IbGlLLVcQ0i(|J|>bM8c$cCq)#lo5Ys`&5$u(h zUQND3vkJ}=iuk(Gr~N26_n)-z?oO4(bD-DU&O)BmH_Srr!lYPnPt(TCubJf5>NFSD zEoIlf4J#t;6E<WK)5G@SZEW;7rNyQ;LpmM&`VSEnk?g1?N<Zm~l%{m8fW62=J`o`* zvqsj44~0cM$3&R39ZO&bve#E(eLLalM66mLTPOzQQ}>ae1R5+rc459!+K*AB#vH`3 z`AASTluLBPEHvh(EksflWszc4-$>qg^|Y(-s+bcYm<4=@6*R8RMP(~bsd)6cGSYv~ zm#+uR?JgB(6*j()D;Wz~RZo`7px3?Vpo<$8L+cS1JhZ|-abpG0*zL{_kI%E7N^qa4 z)p(_SoD-pOullpfkbS;(l$!$R0Ag>RA!P$!&09$I*6cN!Sh1cdgYxo9Q%?ph*~@wU zB9>E^2Kmm;S6z#>T$3KX7HY6G+-OH1{c<=wb>#QW#hJB!`n(QJGA!HpZg=8LD$_{T zo?8ReKu05h%jJ=}^?^y>`Ht%OgAXlcYPaJ7K}RXu;58@SeatakJ5Z=J8+i$P@vk?m zxA_#$y6^o~{+)H8FMYkxu2B1g$`6dif|8RRc_N8|)>jxbz2pQVc^PNNIkqalREL>Q znfW$crdj^6#>2|H^+b|;A1~?YjCTH(wdYnIj5wZeOYTg8v}=SR>V1kSQs~=4?GH16 z<GHcCdR@`&9kYm8gnsp<f+KV$Jf8t|g}Hp$Z2cT_31rQA7K>tmDr_$FwPplvW@#5P z3dnCeHMM1S$erp)ucd>d69@-Oj5x_w!tx_b(Y)b>AL|*Nk{+bV$3YD40lBbu7SEy_ zHuD7RX;?#aOIFZ3V!+NR%)O<0xdoaIk+aqR*ZVI9*A@rM^jES~zx!V;<&AY8Zp<J; z=z`{sxO_@yLqWbWYOLW)E?-s^aQ}R6&WT`c31t2<3h+Nuw)?^Dl_!tW2EQ1q@{bpC zO`+tQm=Zt3H0uPPh~Bh+1&Dmhn#niOBcSl)E|%_Jml62+qRkI~r=Y$tUJP?OJPGFM zQtKtoqn5RPj3exh(S$T^ejnVfjzV>FXYD}@lUR+VQaJk68eo;QJKK=<j(#GvxucbY zW)0U!e31RHFJ^3q`oM<tCHm52O<YZa^t>~=mm+k}cNt${s)=T7WO?DdHsTOpZxp>G zfT*tuZm12R%4>E}Q$P=KPR7DzAJJubEJU=3;Q#qcR*)#-wigBX*Vy!{ZSd4FB59zf zMb1t(WIZK$^y=@t)v0swluuS-_W$y<H2_0TYqLodZcCsZwM@wa0R|JycTt{D;+^cs z;QnK4&p%QTga$<y#O!M&kF;`O*u<8N8_IJ}r`nLeZ^@kEz*zc<1T>}#GOO~72~ly~ zTenIrfr0SYEa~1@Bm2uH)+1&O5~A-1a=-Y<BwsSeW_^<ZuyJ{)J-oUG6dQe)<7{G~ z)-H_wi4%GhKt0;4eRHSXSJ9fVnCbft_7uV%%sJf!Ax4+-fF%rm9<OKx!n!Da-^T)e zwT4w66bMyFFUhi%|6+`0SnVMCwo~lOa_`S-@9IZcI9Se(IofVO-@6<{{4#~@W^bQB z$figLSkrykvIwRxZDK}!eEMc>7uW?NlA$D=sNvFU_>wF!`vfDXcPp?*VIn>!BBF-J z&`bJ5rHMkZQ)-Eh3!1liP1I*mbK2{UiLe1wtGK-G>zn8y%M8VLH4($MZ~0Yr6>LnG zsF}Zem>Fz`ofdT~6Z!FeD)C`I&DG8A5?L{KK$ze9{@vt!xz^Qy^KHD6hSk;8g16%1 zJz2NDno{&ojobPBf#dUjvC#gww*l1}c8IMMYQBwOUxFz4$gi^|d|9RO33hw^LARI( zK_@aU7k+|G_#d)>!sO?d!qQ%aU+L>c{?ZLAlMDWXr|ZL>n#@0zCN3BvzHMkz*{0dg z6*?z_?{qJQ_<zoJn~n8VQ>{*myWwg##4}UT>4IuFJo-3b<s!q*(U*)^A1w*F%<R$0 z(#uF+{V1}W3O4Gs=|<V`dvp7MSM{trzy`e?MKa`@>5fj4Wro!s8~)V-)&c{Q89A*C ztr$hm$hTPmLghlQQWPfQvT;XM=GI9sTGw{qSpZeEG{<jt7mfq}*kIQ^^9yP-+pP6k z9J)Nb%9ui~-wx}3_9^Nc5uBG?4|<_0M%0iU)LeLT7wpmEs8h7I3t`zOZM)!&?0A7_ zT4S93M4ZBU{DqbQkR+g=U}r+SJ3h%_59qGB1ow}(&em(kh(dKU8omI4?a(Du<j>%l z3;?cn-HWdF5%}6qvNJ)0!I~OfTkm4MjS*kD*aF*oIDEyrU_Dn~dcg}V-d9Uvx)92_ zq{6QkQFy@T2qiy^zEttC{iWy0{e&Ed8T3yeevd};Vz%FYI}Buo$9l)U=gsSN<Yr#7 zsy``05`=RSm4A8}D6JIkk)nP3K78MC5pd>QV%I#7s{Afzf84uYP6>6M&y}`>D2k4G zsS!k(*3LON8{Ao5@7&4vP>H(7%Hi+JD@Xr%dp$0hwOV!Sz<vrmA^d3#A%d55*E}=) zFHk{3i5fyL?2fT5xcBB_MNftLNTQX2Qi9CWt6{Sifscv~tHSRhXMlOU&4KLCU6NyE zmDkT|ZOJN0unL-Bjrp`w?nU5i$l6cC0kp5_EFR`%5xw@w2`ZNi4__ZzJ7uO)&REin zvvoZVvO1*demabXqN9nl$>m(7Rti6KhvbEWT4y=1yl~9vhm~`9oG$}$P(5%c%a?pO zKhoovIJ(JHEFWRDJXZj759Ah}n(prcsgivcb-S4<o-D>%LL_6E5vZn@MyeePmAN@l zki{6Gx#8F@lX76un%#2)fy)tjjGSOGT~>dXySbHqdg<qVZJDi{T6}yIn=|(YH)$5l znfvgE0rH9*jQBHg@|g?n4k%XdjA;`&m=%xUV-L8XMq(XO#G$DN?$a|F-L-e*{)B1q z$n@qkX^(%dV${E#a5?+@@>Ky=Xxs9BUBBqbN+VeMP*|KN^#B*~F}T;sA<6)ft(kjj zFKQ<Q6u?>$MxkepXVG;u1DdrxBu9fL&6YD%IWwHML09TRF<n}@UB9rIP>Eim)d2fk zkD8rIu8@RdB~fM@Hc3mH;GrJ6#B9+xG8{N~d6svhaNcafCCJVd43HupC#Cdu#aru* zt6gZJll*#e-NwgR_lH-1b&<QCCGJyEDe~-#?^0~XQo(%EQBeLtOr)W*@frSZ0yO}5 zlTsQLHnUjtS^KcE^@d@a)L^W+9ooI8&b{^I>N4OH3^7jy1@T6OqD5AZ`Zo3nW8Lh< z@PeOyy=*T@xUw1eeokfk#KX3GPmBipE*D!T+aM0Wd-q|@r52uce=p?E5%;BbIAt(R zA!YYxh0hW{TXW9#Wow6Z<Vup5v}=N~N4{`;98*b0ORLQ<wt*b3?S9loUy%<I7ZzIs z;@9qt1k5=pUQt2*btfcf-jOQ&C>7Orn#e4X1=j=D=c6IOAIdbtct%ckiHRbU=w&-d zTD3r()gS%bDLb)EaKhN#oi)W?i+9B){c_9rId(vHqQpnD$g7Pt`BN<~;l7Efi*pX4 z$6mRXzcxd;tX>O0Z1XLyJ#VM0b}X=xGKqLRd1DteekC^{^R21jKEI1CX_rp=Xh}1- zk|s>wybH)^<!kG!kOcwRl+d|m!opx~SB)W*{J<7I+ObZY5m%b1(l-#b+xZnO1JN&e z>c6vCkQILT!+FAX3KftGKh4h->qy4wtf>&?JZmGs=I@UXsQ+u-)kD8$ile`03KGfc zwlw^0wKj2_7^rrz_tW67=zWYL70GAz=aUr;o3?H{Z;78yhDVan*}fO6>FZ6kL|^0h zx87&NFJFzyyk1%fs>Q!&CcQMTPcLX{lsa`Q0apL?doLa~bZ9=(?ie@CT7PzjW9@AW zC^tD(UersA@6&0jgzcPh5phHn>F$m00!hQOG8S>tf65A2`BBoZVWu$kxi+%N`APXx z6`dqahl_*|f}C@0Z1vFx9mP9}A^LOQWf>c!hkFy&-fHPn@N2;{DJ@dD+94T1#dio+ zGsN%Pq8)+2UUw<Y>Uh6QZy~<-uX+BJ4Di@XM`H|O9C@Ge4taij-Gx2tRRzLk?jktL ze=TV|D^h)5>lPQW(8Q~{ocsGLJ$CW(VrYzmWP-<qUI@Z<2oPKva68c4j(o&ZYgc%0 z;(^MUzQj01)rU6Cqn9%Gw&$Jfs>-x$nfaAvtdQx3rqj2|S0gEr!|Y_Kgv@utv%7Jg z+wwpEQZXdGS*A$budPRX7)Wpd_fI&x`CW?Ye8_59a*E&*{Io7*MFVwe)Uj665T+Ij zVmMBjyx6^}U8*FGDr(V&mVbvw`8!>&Gt>xtE-5^BJ*d$izxwH>fP>tGuk{Q&O2D+O zG0*Rw;RY(4i~q-`f;_mZaM9_8&Vgd3AFc0+`jJH^w+0e<l%0+7P<|e2Wi6&j^(1cC z-bkKmhXEOu<2`FF>e(0e1)t(7yY!p3dP1XFk>t_@k%4BLxrO1oAe-AvZz!=9?%`23 zr)9MIOcdJdEg#x{9r0x~$&CeI@zA~0m!D^b!*V@cuUrCxc(BvMXU7Dop52_5mDUC2 zf4Jp=&_+Tg(lZqSyL)xBc-Q*ihr?`FOufHkV>7>PpCQ56FHzLcSl~fdxm%EK#yY+W z_aU~;b#M_UVOQBo0XP&%+#Z{MQ*<61Hk-IUEEG4w-t0weuN_o9l&eIAi@|cA9cL?T z#dfDc#d?j^@{rKR=Z)!1fR$8PS5b*SJ+ql&$yZO)CvW8wc9W$mw+kg}5{wl@Ao#7) zRW{tp4%6L%Q(`OFJ{{;-raPY~uBB6XN8WZ-v}CK5zl?fW?6&IYs{U*>a(r2eHe;(+ z0-WD$p}%+pE9=ova&}JhQDb-s&EZ>X?QwQnDA4<*4z0N@L<d7?oRAl`+7YN>V-}L? zmV7g#_GDBt%(Li}HLPanOQOD1hR{risY(_+={@zbq$Z}x>oA39t1prM&H5n`varU~ z8Da0#55#fT`t3`1PV*R8O4Y$8ZMM%j><rC)W5>Q9cmHZ&4I%~&%nz!C)B3FfUXzc> zkGEuuf*VDJf6_S8%06#gcn4X8v{1nxSQE?Hh$HAsDY9;tQ1==w@^`ImuJOgGEKGaE zWL@8?<yP_C0Qy<)gBxNW5i0FJHEIW+hqMf*D{QH3ef;v0n|lMOz&68h*AHU_av(%? zREdIPtcS!@fElU>PP=v{`1RcaD$EdNQe5UCKN`BE(Ny9x{otlsG0B17PTdq8PrcU( zDj-ti9flPQo_A_2P80Rn=PU);SLn}HIwPNn5nEh3RKA6?i5h~y7Tpa={Xc*ja<W{A z?@FbH8sO(1sn;L;AQBRt(z!G-f-(w`Tqs_1RSrAbY;5QLNv<5~n(|SPv26d^AZ(ih zp86C}yM+68McPN()Ute)UF}z`3s{zK2EryffPeq(+{n$<XVktw37mN1;UXt<2D3sP zn7_x**^+8{D(WK(Y1gnA2h@N9NWK0sgQ=+*P%#V!dB#I^FPa2BpKom|nKKj!Rae+u z2u$=I_c?l9A!Jw)Pv1-F4wyRj<dR|d8HNI}1V84!R(1QM`T@kjDOACMu%;ERE}UzM zXK5%HCJSu6-`4AdCo2>~J@(YJGNnt=A*hl1K%-0vm}!!XxzRbs6X82FB)KmtvQtMi zZ1{4#rb8e4&2ZovRy~aO;UJ86ubUm%xOsqRp4yzI@*2iE>FjY<n<PtM4R5}+n_J2y zF-yQV{%B!F!MI8#?t#39Zl~oEYuxH7fPg+$EmN*sP`is+Py!b94~9gdpX;lzD|xSj zrhll-50`lHPIGU}W4ok3|GX99r7LF%ZFFURoiLYzG~Ri9hIX_`jlSIARxWr?jkTtq z&=(hc=gC||Av?VFn+pADf23e*+K=?+{VIpY7q5$Md_T8J;@dA%Y=xT*b7k``DzVjn z(N{68qG5weddDI6Ft2m6S`#u|jyh~g1o(w>$uyW8YX2}<!@Z9j;@SC;)NkxrGm*vL zZIH~{aC#vlRN|b@=xVl$TKG%`I&QsTV@xMt0aBYbCKb37f7qtMv^#;fvD*QWa$d;L zkzH^X7kE4!i)}WT$X^)Y=y6E7)Pg4}r~!g!TBdWcW+%3FrK~)YuiBuy`997pk*ySM z8X+NX$gNk@j4z^JXf?S#3E!d-o|Il?52)Q>g|B*Vk$~yGjsyVwMx`;!BbOQ?f1GDg z@`cs|+%ta9=Wg`P)}-N|sKrgKGD+>StT|d}vI8O_rV-fyODgsIkY6M>^jwr#t{LRO z`v)+jgSMg8r(S;#otJvhyHcd2CB^4|Iyg6Gz;8$pvNC=lrXQ?feYOle5k=ugUi{h& zq*gp@f0B8e7kY>t_i_T%Ow5gxNo$IOCHqLOIQknT_B>e;G>|%1c@OQJUGCX!4n0Ya zIn!kj)_VVNW<G69*j1U=*sVy-6{efEv+cI%O`@Lw1XmKZHExPEwj|sx=dlv9M^k_6 z4#EX^3S`Oxdk8gm7(|NA>x0LL5X+ZwwsVlv65Uny5KkWYhbG>aw?Gi6fhgT#B0s;R zd*qX?00<GB%NMFE58uuT_@u(<<H|?fqiE@g&LBWYCZtGr(0w(gEG&wfxCv;pK@HB6 zUVLxFoD>h>L$I+*)9%o+w`$Ex1f7*w73!g6?qh->i}0tvA)y3I72;(Ob&rSHvKM!! zqZShA9g9dq!<Y=EpI=YC(cDR&7c8I|$=x!@OsA)31bumQXB((eLtkhlwL$M(c*HW` z>!L2k2<A{{Cw0kJbTaZjpQ7`lUlP+DFaeak?Xy0J<~+=3HIkwmVe8qb^e)q_t7gRG z*u4HQG8Qm3JD{IHIj~ABJJ^!s7bl1%R=fm?<O#uUj#o-iv42vx2^>l73CHAN@x5yc z*9A&s?Pk?~dn_#21JQKi$AkKQONSvId2eHANo+Oe0<vN5#U<jc4~~U6N$YE~XPilA z*Fi9%Y5P+-4}Ljptk&z<Cx1~fYghV{{Rv3}wJqgQHEqIvZCSl*eF<HdjZ{e$!B|1C z1GRO`02>><k2bJV1ZMVO3C%3v#27(s^u!pYBe$lYhCJ6V;La!A{xMtw``l50In8;# zeF`Yeet}n<@2^}}$2A%G;osA>z>rPk+J5kQph)bN40=frAL2sue?j#;$*x@q4EU>T zmxo#YExnHJy(-L}oPpVG>+Jy`eg(ysscguP`d7YhD*$1qRhby!f!S|WcfOt3INHQw zd#~&_im$E?mqfiAeqf<p#C?6CQq<_fzgmD|vD!s9bPq~%_L!8Qz<Dj$L*N?bpk&Pw zY)|{2z8<sYx@aQ8PKHw~Hwv1b+p|C;jLE57DM-`g)vt*ugnjFXpD+gMPSOZ=#_01f zJGi;1%-G`^V&_Rs4B0q5l83f%Km47i6IY)_z>02IvHE6)m!gIO`8kt%CBJX$ph_tw zV$H{hwM!;rZ{S#QL0Pr7*hv1W{W>T+j7mUn$~BH%o%H1*y&wW6<%imvyohO#aa<dl zws0?uNBOh=W!E(2@s(xt&FgAb_VCQP>yNZA;>5&IO!B$;@|;}RwlD1+=C*;!nQ0~; zvhHn(`p&B6CqU2Jk`4^wHm=l+4UgO|h{cRpGi3Um1$Zc!tX4et<W_F<nXsLH$eY=( zTcE~N5hFJ^#@-ePhuvpoKek!T@cuRad6>sI|1<Asiu-p<!CKJpA=wi7SYzjL)(qGi ztYHVzNmtvYoq+W1cp3F;7}UiLM7{6{`%*uSAy_72Ghl%@-@s)g7v^lq1vbuiF~7ki zTi|t(#q#J(9P>m^nb{)d&iA{abM1GqLN}SSoeCW&Mq^Vx(NN&in_S|=VhC;68v9$3 zpWmCRw9c>espaHI3;mOAO!D@-4R-BRSQBnlF@WMT$2#7M+v9c{)I`StvCa|4S2A|x zXSxR4Uz0LWu+o{#Vbi6YBX$B}SNc;1LD4dSN{OqWOQf=BMWIxooReNLaB59RZFXnA z5Y!^cvtm3p-+S=17)Cq9fn>fthM=eb!mia=3>_s_TbpGn@DRONhhuvLlom%dJgd^} zjGtx|(kg*eBU)+*f5uo>7#@I?M6)ACly-i!kIMGnHCA2NPjGl5YRT?eGkGa~ZZOSH zOF{ZjH8tKiC0mKn)Zz(oE(tZ;Q{36r|9qkHN|*BL=Ggmy=y6hh$CrSiV-Gpz1~^{E zw$_|TG<A&#YGB^_Dv|4NpAPV?EzwJF9gX|o)3$-PLlz)U-je&(!g!S+b${Ri#}VOz z{^Ugpi>)YAq&`3^Sd7?`3J*N^{z-=x+jyA#(B|9X!|nX+;q5-TTsbZeq5ivxZ~eNI zTKV@AyGwkYwy~SvRMa{o^vQhui%w-&jwcuqJ91ClGASxCu}uia?*t!>o7U$JN05WK zDQ8cx9Xyz4f>w|*PKezYAXj!qNKCR$efgL}v5aHjNKv#956gcjKbNSq^6e)q3j&GZ zifm54-8Z%I);!KzbhEb=d+;?IqEMnX^lppzs2?Jd_+4*%$%|G)dM-VAuBqaS-)TO$ zfZDUT&`SSPo;CUNt6Y^0zBxw2D$`9YV-%{4ZVrce_Zaw^Lm}z!UM-emPzUHu`07{r zC4X5qGGvcwK}TgTJMSd~L9_}n_7!&-V>_NzcbicC*<6iFgh#(xCky5TV7}<B0$$nq z2&$bB<L4ntFI*p5T$8`$L4KgOWg5}FsS`EA<XkgIF@qKoG>XOx{TLGwaL10ds#XXA z_HN+j&aYjZRF|t3IEM>N7`sDq;<@h8Pqj7q<3WPbN=;iOMIP_OLYdP$GZ}%IOY<?? zw5p`WsP`*cQ+l~CT6cwAyZ`ljnnB>;c}^iloXv&Vr`td;{`lF7`!ZIsC3#4(vm_l0 zIGQK4rw$`#d=-UdF5mqw`&G1boyAYy8DPmYY_9#>9qDjWw7#Uw<#t@$i17x|fSD?7 zm8ikgGM)&Hugxz=ng~bad&&!s!*{lhJuIhKgi&KL<p(pv&Fz?bEk<T~+q<g9&z3`x zoavtXdx*$X<I|wDTa?~Njf_t1%L;86N8C6wnbE-%st(UDuz+FDTX)?OG>;(T97WK? z0oaCUQNnSywX;q86dru`3y7gx<|E#fFn~!Zj~jsSxaT$(oEezKo(}CXWF>7lL;&w& zH{l;1611{=xscPdCz~s}Pwhqd<Kfgu<)`h&hO0UGHFrfE);C=`;L+nK+MM=ZY$U5V z!bKh;&f17;gw$<ag(J}8sU}KBhN%YH*6cYSYyf>}e|aN7!wQn8Hw|JLKq|qn!$H2d zMIf0i>(d}Jgt#mEeX>=i{e3kJESnXFx9HyMt?QSneOlE{+(=-#^40HTQc5=(F_08X z`r*=?ce}ZDp5H5fR;MqKtyEcHAnYO2pxo*IR~R!-XLS44P3+ER3-jAW3nXG)U)JN~ zjJbTZoiCa(7YsufrcmaSXd@3<Rk*s9{;`&kMOCLbl`CH$#c^Tx3$g3pCi0z{78AK- zO1^Bgm2}mzLfqcWX+5y0I2E*-m0&1(q6gNYxXS`<tXS{xaS#P$P7#<{6Ducb(G5yM zq+HC<+qu=cr)bQU$=FcayGl7l;avH&<a3|Q-{e3k27A#k#G-3kR!y1UU;Xj)wMs{K zdTyXCNK>@|X*ABxDM?QRr6(n74OWX!hmStJyN>V`iUs9NH-BX4O4#}@$%#_n{_yzB z!Ro!=<ADyS0<B}}v$YXY1yj{9_`^pvDFY?h3;eOC60)Xyp6yf7+vwWJtN=Sw=rIEs zoMO+yHHpGlWwLs0ma9rCiF3-B(yKb#l1Gt{d6?nXfL&$c<)-F1?IJL}<qczi&<UIg zMNieR6KFrOIR*R;@debd^swc_%&_zhHCE^xzvD^v7D{e+N-S3LJcUa!T%vH^Ao)(l zcUSZi=_lL47Ugc~<a6P6=<?VF31k1#fluaBk+BoSxY>&;8OlyJ(uAuTsFYQKgnnn# zw~##JInZEWYMz(1<@FKGj_JvE*dl};^gVFlDZ+xY*I$^WnQJ?L>ukkJX@wb0%zF0T zvw_^rqg71*!%iz3tJ)V^7!`A9w8Hf{(<N?!qSYJL1tP&#TSXNXG@*V!3#RMNJbEOy zJk}3Htk@}_;BL5OO2_0(ffoiQW`*o!=E0R|Kb%*WJuBw+X{0M&TyMXRVS%N8(b#(g zRUh@LHmZd<MgB3oUOeGU2O+oP31(q1U*KszcAEWMF&@eT{ONJj$I+Gc`~D^;KooHH zem^O`wSzeDy^Zz3*fFi3dCrw;AMqFoOuu#xAyM4(*%Eie)@||f>FZbMjP13uWBs4U z!UJC_Ee>?R(Yofeqf<zb$FpAfp#N6N1(|1KJCM;15qtSI_TJ!!(qaSkLTqw@p?9za z)_f<+IDve3xG}Xnjq@!l*&*XjL55EiCKncLy5Hev_ljUa_b9Uju2m%2YRdF#P#NkM z?u$pQALK3(HiQc{8$M44>frKlW{fW$Jp1w^vIKR@zOq0S%V2TILi3Rk`3vfsi}Xd; zpM5W0mAjMGhesQ>PdyjO8F0G|lpJ`1HEV~IH9t1ai(W<?GbU#+J+B`|zMMnV_5V?B z)j9hUmf+qebI;PQ4_)HUPR3QaAZ|?jG<)IxW|5)2hrO!xP%quasQuwP$b$3K6+E+q zUhH#|!+i6cl84q|?F&Z^;N6Z}ypvb}1sLz>Pk`>Tz1Q08o&hKL2ma}bsj544?XA|M zL?AY-@9q!|sf;_novs*AJZhq%E<mk(aWVO-#-jKwtOhMg*Vw@02-c`!u^36ryim-O z>sj=qO|L)e3smT+EAgeRQ)+1C#TKqlW8xGG>*DPgvck|?+_=AMSjUzN%WR115G-I{ zbBM9MV~S1;FVo+7pua5L@cnvzw0ZG0$%Uayc(Zf^HVmM5vAg$E?VwA~vZa%)G@LU} zx82G70v$A!W_P+71Z%09&k>$I?+w2Yn?&}1E2|zLYalNo_&3{k=da`*hjV7&DGjzx zeZ?i^lY*tu83p2$A0S09O+QhmUy1KUKJ>cl_BSDvR~zz5o3jVbj`GlT0%+CH5?5<( zfe?&^8Qn);l6%8v<o&I;qO8GMYPyhrvtd3+(V7R%=KS#(eTL%zx}?)M_uuB#{TH+O zu1(p|BHCrJJ*xDdeCCeWZ*xyrY(FHzt1z<v50lb;_RYqi(Dm}rDbQ5jWNJ71z$cH9 zW9d&C%hpFLQG>waI{L9uXB7lHFR-)l?=oiZJwpFpP#yxNPl4;N<!x@LFDlRizW_6G zGuof*!Zu^V0|#qrw*m_&kP9s*2?e)$zv}@v{^M`E{{$VD-44#imS%>)19dln)b5ci z!U=k2%|B2HQ0xYMa{Ro1mGP|!d5X+VPyE{%z1a5W^IV?&f2^4f(+G2}0CunDh7OL! z&If8=HbhyBk387L352OTTYR7+0PggasyC0ubjkxCk@wiE9sriM8{RWmkz<tlhk?JN zrFz|9^cDYq@Bq+lc_uyNJv&%I;{t7RtVJ|T@K3LX*6n~9qSeS7eQA+bx$N^0=h}4y zEIZ52WP6o?1=D>lXd8|;5Taq@|Ji|L(j$56$!pM|3N$)o(<OgA*Xlv+2JF$RokwM= z76>A@fHepZWG`+PRgZ4>RvifFIbUF_zu4x5?W=sicFe#zZY%BX7tdatOAlW6VRzk1 zQEkZQTV@N88!_lsd*tc?q3}i8H%Z@OpRQ9~zn#+i@AD6W7<oCDHgSBEP5-nvf|YA1 z${9A7xGcB495Nc%c~z$4C^-D7RQ1zB)ZDyBd56RwJsPvdfPMn=An>h<xH0>H9W2p5 zP!S^VC`tTpbM^DQN7PidAp!qllZ~keRoS-i-@e1VJ)LO4Hj>{sbV_e;v5`9MX@}g% z_i6<;hBpG>S$Dwy7AtaI1=DCAU$#@F|3K-1f8da-2QTmX=g0pH+<P0;LxreeJiiMA ze}ABV!J1Hx?<c_X2)x%7K)0wy3MF3p7sm+Sed&L9CIw>(a4Ujg1OHdE$KQXxEO097 z??WHe0=n&!%SZm}AZl`H*RTK89kfsmc*aURq9t+cG0qmN{^y_nnu8YJ1}~Bfz`yqX z_t)8LyGsxMUoU2dU4Z+8^bR5`^OwcHulw(S{~hZ)+o^u?<GW-3{Wb7T-Tb$4>)%)7 zkTH0_iF#P;EsI@A|G$k!vwyIKp;d0JmH#<s3C%|q|1_EfJ0|wgp0V4>o4olNp+3&> z{C}M?IJ>`Fdj9eF0yuf->AQQuAN@akeFapN%lEc~2!enj4FZzVAzepO0SQ4ux}`f0 zDWx<5(k-EMcS(15NjHb?_})W!z4!lH-(oEmi}Rj&XZGy9XV0G5&m$Vmt$LRW02;V% z<(k#)AIX3cze0<^7P3XhA5*2?TmOgY^!6EOZIR%$4FNauv{-@>{}RX?4XFE{9s{b% z4vf}nPYb9L0?4Z0{Y6lE`||4<mCFW}xA&E+Z5%f}y6)Bx6)66%svjy>prsC1{15@4 zDLa_{JHGWBb%09ax~VW}U<#gS6;l7zDWDs)pj&3!>&I7tN+qfEUmU<QiI(?Y-|>Xs zOb}EoP?G3o6`-X^GmV0Oze$I(PUW9>E<Oh;A<B)B`k^ChlyT#^)$7~Q0S`h6Of~DF zv&r$|@xP}Jae=08_pU7vE5LxF-ld#S1tlgOA_tlNHTWCJ1JzUct(vd!wrWq7z@!>C z)YEl*(nx0@S}_QY&fFQ~N^r{k6yxmP^$$pR1CF||Q%m}|nHV`-dW0+>7UPb+`6CgP zP(HxVd~rr}*}-Kq?r}|V4gDVUTi^`~dy@8^^ZATjoD6PhyBmUL4Wf+i&WY`Qn+2^k zYv$oaJ;CyU7B@`RL)B;*T|87E(!+%*bAYgf_L?mDPQ$Lp_!wRh{?;x4#cXgsFJ<Dq zr7k9i0r=tn5!v-$AY3T>_Kengm+^>dW$Gg!psKck)MRfK$tpmpsUIJ?158lePKp}t zcm$+emIQMgv0Z%9BD$7Yp#`Jw{L-`8Gx+j5=(!b-wgw3c#?+&H=0Bu41Jvhhs2fC4 zhiJ{%wlg0Kbz&4F#>(|`?8P(UgZVZ-@;Vx~I6PT?vjOL@0XGZKy`zU=dePBrH?mZr z6+y}@zW-u=*Kn~Iaa1ZXJLe}=yw}a`4u}r)?5u7?y;h%(wrZPzb}w(izHz54)%o{I z3R<9?TY<DGY}DE#yxfWgpjvX&JZs+U8S<ff>=DcmHXz=mV!0)zYV)(#rm4hMqK`RF z7D!o2xK%9M3`C}q%+FX_yw{3QMhNA6H25>RFWffODmI^`()tgY6X^<Pm!quzT`71i z;adxZYRw!}K~+k~PVS6X3lW|2FDtvA8ggvFk1Q-?-7;1GWjePm1Zed$lw;VM``e#V zLou4V@xM(Sc-c<@z+`@oc1E$ZLD#824)Xf1KVC9}*8LOvBv2I$Jp=@pq;6&t2Khpq z><Nd6^#Vtu1;>mtamZ_&D_;g6Zw8RvE?ETb{_rnRe%@zZB}VqdIEHzg?c|#<t-8_y zZX7cHmDqD)qf0*Ob%@92d$kFgkdMG+%%E?ZvT74Pn=-r;f{Rg~E>UF#->!Xj@>vE- zd1HVe3kgSP^uegv`HbW-MB25=g-7-9@u7SF793EhoM0r4diAzn-5%z>m~Pjl>i7jd z#NHvZ=JyrXP|sn&$e}J+zWY$lA<eSuinpIG&@IraV96}S@{%pul%{`roZ^)G;gwg3 zt)n8pE5=Y2n$Az|r&Y6RuE&77<UVH9Ao^T`=84=R^t^rsqvh$LyZrbAYo-s20J_1~ z%U{T?k<6ryQSPeMsx*X@?M?h4AIpsBLlU>7=_kCb<(6mC+lztA+l@F_!TD<j=K=4R zXK*H}87FwJhYdj<`BgUeSv$-bv=|K?bUpr-tU?_laQy;Q@xNTk0(91?M4{f*A~Trc z&%C*dVG(cMd8ZqbR09^0<))Tjh+$%G2mg4>+rMt8nt{NR63~=5xZ1zI+bHX%^0#LM zH9<>LEn@uPNqbLWzyDiNuGN+SgbL959zY9*dBMZi)u}fg0;shMR{zsUpzEzrrK1gw zybmQ`bu0S&H8;J!W{?IPYJ;<liJ9eHJbm3eH8<$JfjifuOAR~|Ws36^AiEBK0s8sB zrRA;#b=1b1bJs=1f0X<Kmd4*i*sy>+;T}TE+uX~Lf{Fg_@E>dNPXU%ai^-o0cVX3y z$+U{P>HhQT5AT8D$uH_(*JU0c2Fw1>rfB_vro1f3u>Sq2`y3+r9mhK{P=E<k)lN}R z-VllF;rto+od|##q-OU49@;7)g}(1^mz;{F;e7Wm5E8W17lt|WX7q`iFlqlw?3Qgn zsc-p5CWgOceBHz%DM;+rJrJh>oocae_)2%v^JJvFr~iE%v8V*JgTJNB?UO}x?ce_X z<;zfaQ*aEd<r+X+*#2KX-?p9D3)}eb#T!_TSs%(NH#oDJYVZD~R5yz9k7iMS0EF&4 z?L_wM_Eln(b<wx2{!vyc=#`yR3&~on=KrkgH>*C$%{VxLXf}Zqr|{1Tw@7?jBK=Q; zK-kpa>{M!!!>R4^?->N%|BvIm2PhSd25E@U-7|?*_g@qKTU;O#Xsq#_!U9v$E%Ki? z-2MfnK)?3##L$q-Kndr|pE;KP0s9^QZ^@!(SVQ0EjQsWT9b(?!%6-$=UBB8z0AUr3 zJteza-hp__1$F`PUv0Ij0uN1gDZ;uBV`}`{tw4K#?g|4<2)~CGw!b%XVGjDITW?_( z{)wjn;R9i?_gVX><o74;mYBq<cRKm!3%5;?L(}w)zq3&P?gkm?kG%q8_=}+aKeY5W zb9}Rm{)FBTp&o73`B#7)jjcibm*D><sQ(Ww{f!x2_X;EfwVQ`DA^+AFnfr?W^fK`; zg8F~c(%%gPDtCXV?&Xh#>HH&eXrHO7?lJw-c9<H_^ZuAZ5kOslW?TObfp5eHjdPbs z0GU6tr}h0K!E3vh7K0fE{NT-Vaz4Q8hVtXu$f5rLQNT3+(dIk(LwyG=)OU;`ke1*5 z^Y;6TBp~WLRdm;ax_(-v+szuW9n81C=j3{jfZ&TF1@X3&$+QseRQ=BE+Ev~5Z=DS& z77%C9z%UuZ&HJ9db1S=h&7H77iSOaX#?5D_IdxM1(<@-5dIuwa7pR^9-AYIx62Bc7 z$N*mP-y1hTD(^|9n}Cf<VL%(zUvq!m?0Z_!@Qu^X;DK6=Sxku5ZP!1VzzqMR&o@pL z1jSxqcy3BB!}5Q;<Mr<2W)_2?(>zASbX!Xe^tcB0JIbH2UCV@659&dUJ+LUa8~;B$ z=0)h@R&I*hk16gxT@6-dBZ)n+n|7eg)CD*&o3^#~ZwB7W1)Eiz2unRv2o!MD{8q@i zH2zk8x|VtI{7;UB0v4z{0cxrryg)~%x-H8Jj(!Pifmgf~Z8YwDG&Q1yxO_4J;0aq? z0=f8cwh80HKQC|tp}@=4=*!wkJJ;(gTmUJ#998aGMAaK%wF|fjEigdyv&HZ1f?;9Y zccEL{s*(pkzLeJiSH$(<5KyS>>HQw-*JHf#yqVB2HDW9yS`p4%4sN?G0%RiQyIp3$ zeYtJ`OXVtf?a{-N79kX%lpN~y#>AM2U?qvKh*+nWiNpm_s5vn4ntSgS3X3OHK-Ar9 z(cBhObz{2Hl+xw3)XT_I_UbFg)Cv({q|#i#6pQP3MWZ9aKUDgS$(%#%ew{A@Is|OR zcR%L`FFKRVx08zhu`1!G((}$q$qG~M_z1|UZ+H-I*=Rbyfa>8NzIS_Pk7XQs1FCWl zR+lcZ!lV7d3FAkosh88dro*i!QDuX|iZOp~B|5$iJ19hfVnG3u>f%Bh0Mc=HLY9uR zmbDjI(tmaHIJIOV`l3t5rHsW1W&N%02glsA@tLfO#CNyE5LJIYcb5wQggjY-xcUPR z1~c&_mS?%p*dqALo!j-L3zj;`)wP+e9W@}kTc4<iV8X9tWK$eH1O^syfy>jW&|KNm z_AEGe6j;Nm9>yPIeSl=6<Gy^keK$Hc%n)JnAWV_}H#%kXCwGP?{8;*gsCdVvJ?w?> z8w|iTf@}eW)?aQ^L45j_SPTYFH!4{-QG%30>872=_ZsWjrQMuHgM^k8+PAi#MVi=r zrotlo2H*_XYd(j9qC7eZFGzi@Z+u_Q4FF{|X36-)5^+)(5CI^uT-!||GrSz2gv1kr zKc^FeH_tou(QjQfw>xle_orDSsyhmav?kD*YoE6BwDqu?6Dnf)IX+PIjj>Z@f#?rl zo>?(u@#f!nCEyb3PwtGjBr!$H{jCXaorYM^%7qinp^-`V*GTlww281UV?Hs(I6SBP zbpJNYOH76@_<^m%A|<R_frlY}oA#gz2C=a}`e~t_1j;1C0|H&>!pF0%_|#qCVa85P z`LUci^-FfN0rXZ8w;QyOIg-Q*K`R@8>y>Axm9G5Ouev+kmt*+2n#?D)wwS4+))5+g zdxTB&BPa@Fb)U*hzmtt^>;|zX@g8i~5MgwTyxV&WVVj4+Mo?XHe~1leZyIgyR`46| z9mJwQK)BiS-5(ymrU6C+5E52c7?5g^!D3Q^K3xxK_i?Z4!Ri_kUb?|aV^_hQ0!YCO zVZ5_S15{?s-up3C>^-Jyuau+J83YQs{|;H~QRb`K)=YB8TYb-vcDFw8w4SGa2`0mL z?}U}O?&D{&L`MO`dFM6r@1K=`DB~g2v%TW{g5rLDe^8o;p0VNLq(u_2_TJcg1JK@! zVIq!T+jmyKD}BCtvsVUCVGP0BMzXxmc{W-GgaKrp@L+bpYirVkH2=it9Wv96{w4eH zE^GMl4anw!y4ml>N^-h1Qt78K&!LG%YB3;}Fhm&kafoyfN?zgsUDwnmJO%+yf=P=O zLXlZq^Ii`S=EGoJU^v9=?o+lCT{#tNKPR!E>9Fg`$@l<M%vp7Ly8b@Kl{pY}g7{qu z>Cw@uDvlp06M27iARVBdgT2#NOZf3(BmK><NtW*<fDC-%M_3_f2&?k~G({p#r6-t( z3EeH-x0b(&=|HJS!D_ef`DcZtiUS$3PDarC{K@6sHV=&GgSgwlZS(+w2Rs~UVm{*S zI#-l-@BgG3fMom2Nu#qT|1@y>*PkF0P@KmZ8Qy22&m1}>xlM>+;0|GcA9tKBILvpZ zUppUS9B((cVqVz4n)0l`y~$avZ@_UiD=6j*S<(o()vgYo#55DyLBFI0fiqOj2~KV$ zFHFYU3ZL_N7X6V4Z6U~{lMl#&*__oK??|nnOMw!pU<dItxNj0&jaEcdVo9&QBa+>h zW2fu0NLgFEC~Mxc@3hselyBz?=4n(Iyz(_F%cW9%@@HolCg&FZpZ!cDG_%WL+@!VS zUUqA=*G}a6*PrnwX2DZe%wG13cjx_(Z9xb2`Ou$?I_E^eGh5yF#9t%V&^cD>csbR= zw(Vc>1~^hf^KB$YFoX@6DMimC7ReI1j7W~O=jO^<fk6Sos&EFGv@FV{Eku9wH7!%n zi%@e!B9#k(nTWoKb0!u!a|@h>hyNhx<_LFya3kCH$p;@&IyK@DU%P3GWD>A&9QpN? z6S)eWKPn#POVqX}_wh9=%hhq}54;QRh^47vuB%`E+3?9hEj+w1`?WziQt&e%uFR+d z4v%PMBf0HNUyTUs+!{217gea=)23(_$)X>40i?FV6W&+?0nSalM~npvV6t=ppYnoj zffG$2R%<d9r2v$~y&XG}(<)6Duv{8`pKHjekLZbLFz~zBk*w=zz+E?%CvZ2K_nwr| zXgJH?=D}N<(ijATvfOCZP=6pbyFnto16#pDFZ(;N+;^r*=VmtCKOuL<ou%snSNInV zsy~4-fIS#cS%Czg5`TvMNd%-}!n7;l9vwYqf9dzv45OpLSl$H<*F#&RfCft@kNZ79 z1n{l5UAY}JG=PJ~&A>v{2My=(=pO$a41;oDJO35!>AjpR#0LDs<o#ACa?DNqcPIPn zhR|sMW796?Yy(#Ge?EWu@BQ0HLf|3gmbhZzy~PiM&Hj&NUvI~Vp{EOb@H!U%`Z)0^ zY!=*~s4>wI=yq<r$y-T4lilTDy#J>{=fOfx0qO!ozW(du|7_oyplD^06^++tIKkET ztp3@3+>Ycr|1A$)(VH42{u&<iW5D}Y+<6ZmP10*lR7xl2a{Zr&Bp`zSJPq9?x)(s< z!*nYRUgP{ND?q%9NWpgjH;5Q|R<OrTcDs4-r2%dHuePL74a(3od;i$|U621k#zT}# zgBn8l)N9t8*JYE}IsQu?P^l)i!s-IPe}Ui$@4q_*%yO9fy*GF3urVOfo@*$$Yi&(D zhkt#IqIahZ(Dz>-km;r{1DoOhbormNudqU(Q;StLukml6k^6ej;6G<yphRM5$l;l< z7=r%)+hO!70*<Zu8Ok4P*g+@8{?D5+q1lNh(~5q|Sl0hJzt@=#&^nM8BeKBnj6Lyr z0i=N0mvJtSwdEIdt<;pBAp`$tNwpfzQo_|fIjXHK0P4ZbfO3NY==Fr=6JOR>6Clm4 z$;nc|{Qjqbc842d-FdMCIFe>17rXNDPYYDjzAm5bv?Oen>#OHu$0z6!x$ggXaTOj* z1odOtq>0*T0ss&uL+JaQBFVKv<xDC4=n6sfS4Kp#;UyKDjFhisIS=d`EG4y{GK9yq zhYEx((wIaIPxsJt`RxN1<p`s$C;Z~d+2M)q7|?L{sByc`FkhOZxJl3))dIHBXx?P0 zT@EL3N8y!2r_GpHjB7K5Wdk5@F8U#>USv0O()$vqhbFG}0y61*pH|NxuEv|g6T@Cc zIW=_YIM(P>8dEu@W9vEPyy?1rta}XnSB7W-&P8wbmt$?p#g_pn8&l@Z?9%B%C@Of# zgq|69!3=K6RZWZH6$=7eRIW5B9{}|Ta2KRXTkAo=|HTtZngE11wrF`&IO;+6i6YV9 z=8z-aSepVBI6zLRar|+@<G6kty8w9F{gYD;K`y_t)33r8ds4NEx$({>dxyLmd4iH9 zf~b6LQ1Z8~c-8m-UUCmjVPKb32m&xevn5)H!tKtsoWl^5c~{_VJ6Dj{w3|Cc3;+aX z={0S`w9~f{lHdyFjn2ymHZgEHN-O}YLhn32z1G8~+BJm6tfYf)N3xW%1)54iKYMIJ zENue2o;xrUjwI85CHQrjo?1MaR+)C$dbzwS9PN>fPk(HX?$4QwZesBv5?|d=sVY)Y zo`pk<)ciep-nS-?#~Mderbt4C*><oDpQTDUyaS+qjs=93ZFis$l(vUT5o6x?#%5<n ze9cfo%gy|Wq(cBLEJF3e8|hWR@`5z@*sUX+cOf(aC^mkb7lj9qCkgwFa_c1xE^PaU zAvRwgUUavaW1j(ARz1-}-YJ*k+1jM?u3;6cA&~|zyt3Jfq>={P>Zz&jS&oK7u3oS7 zaKS5p2&ZJm<xD*|4D210|E>RrZ`&Jyap6&8g6knfLun?o?Uxk8d-m8MewGc&R55X; z5i2M*oF70&P-Ig1sf&H4YF6fY?@jmc>Cdg+IbSixh6eyHjpOE6Pq!GG69E5GHp>Ux z9ciOpWGXH{4X7Lqmgt@2TpS7hSuq4)ZIQ_;9I0ObeQ=%vvD5;Bk1qU3(f&y)87lbS z+?bD_OAEtxh3AIX^-emNS}h8`SV!#|GINTnA0cV);&BR1Tzdjw<kU2gu>tVX-N{X# zkvRnIXCk?edSIJX)MTc3jf(<mYFE9!ge$1!S3MCk{2&bY40%n4gz&&JJL6CU`-BQ% zY}H0Abtf5Ry|L7Ds*#J4T0XRI1~Zz1m1cu)4+mLNHd|BBEC-NJQs54tV08k`O8#a2 zO`Lkx^KiLp`MW?_Olk}(PI~1CrQ}BrO*9HJF!k8;sB_;les+gfTD#x%RVxnc%z@g! zv4Nhz{3JWo#pavp;>@}MS+zX7%ad2*8~VWdei}KhazSD8t3zku*djFMyO0#yOI%#M zzIPXi@8|@SvLdJ7L6$M$1O<QydhLERcaN%heQlZTgE%W-E}WLG!mk@>PH(g8_>svK z6~BR!ZqUe!=KUaMzf{gHL(Y!^H#_)o5C4%^aQ_|yPZNa{?)6ngEOo6u4IbVhsINRQ zJ;Snc5xLUd7{h*6V1ePy8htcjR)g$)G@0pR0uZA^Z+gF_T(9?}hV)HY)by1C*U;bs zWJn8LRVDM#d9$By&s<$T&9aNhQ63+TV=qnp_93~=D@%g{dY}LUPb)j+u5DPzEy~!J z@X-#qI-FhIjc0nkt(o#RD6<mArTv53MO79%+84ol?#!5@K)uMwR$_?{rosol*W@jO zZpmZu`Dnw{hsU|Ds=WYTSVz|?+w`NmTmVorn;T_XW({{9R_#_p_(O=ku=DFM0Pb&G zz8I0eJ@YB;@lORn1D>0Kd7m5tSb-v^k*U+-hX68UOcg)d1et57vBuSEdO~3w@A}EU zg)0A^VP^3`weG;s10L(&1DK~OPf```87K>%eAHNTZ02QtfivX1Z1R@!H{K3V#y){I z!|u`)+>FgO*tB$*(32jsOBPy@Pj}TF&pQFE7sUowZ9{pBqlGbokh!6n+@M~aQlU#L z=Zgcofa&`jM#CG#{kN!hP>>;0u{{9yto5b%_)fHXhZjwnfj&yWplwwAqzG4yrwIE* zW+ipa)fRu+;=}wP_DW_7U^!5O<<eU(L#H<@3}9^EAt5LYq~Utz-GZ6SKca0&G8`pN zV2E?YqolWFsMcE100sMmVr_{Z0@xD(xrj03^q}=@FkRjHqUo~lGG#OOLh4MQWPQLA zKoIoEw92>)*|hYEmC9w1u6XZ5rBl__M4oBxVl~wRAW|d`56PkRc9C~2zOaerS^Ut> zrDTW)+!%KMcK-vEA33+1^ZmDy*#3>>)`Q4s=T5JfJpe_k7z#U>j`-emrHr~X7E6Mq za1IAx#ED6+5De0p@BqpQco^407R(GT*Hz@t+}hJshBGR>Y2}_R6{sXF4e@1`pbcq0 z#MBqxIX|B7Nh@IGnIU4iGWS@|s!UsFJDNXC(209LeOhT|I=%hU1b>lr#5SJFMs+h{ zJm<#=O1jVG1~j&rrcUQPnDyVR+|njw+caG(nX#uFsO+dUOX`!S<U5+)OWZ86A{y}d zxNmv{MF(_7-veqkXjMHXpfG9cWk6N!Ay5<lF&!vsGATdF8Ft8wPYX)1T^$_AsXRm- zAo|(U*oY)mp$n~u#ZMK@43oUCo<zj6g2f)h*Zm`kLdvoE5ws`=&w6%SP|9LHa0OgJ zXkE9HQ@gz7Lp~67S)KoLe|<jwLk|E@XltQ!D&t~1T4KlO0My8<o_~;HWFAc6X?shw zKWZ9N{dP%|u&=g_yIs()%&r%$YJm$Il6KWI?NIkd=DYK8oGNES+{u2YmSiM`?-O`T zcuY*0M$hM;wTM4|dYDZ0i5TbJEA%Ee81&#oM6Kq}vsHVN5Wa?}hPWM1*`4)t+ssls zTRq!;@2CriS!QL$I|W`<*@I!_p`o)Pt7VGHqM{ti1hXEV3$2$Q$8Dc}N8^<qezRLK zgUW5J-9n(uc1#g6R@kA}m@oP$mVx7Hw|Dic%ShSzB#&)DYR9K$aIbDd_S9q5jy0(| zv|+|1iCj8Y8VUaC-S!SMoGROy14g5%pM{zH01j;bsmjYn`(h?Orvjs=4TCUSemiE* z$dDmZ27^C3&NiopQAZ(EN2+jq0)k38__l>$c|O`@*Q&Gl`3By27p{B(k4>2E7NJ^p zM%QUAY;1}_=QXn0P!Cj&ar&y?Vn$O1g*Fe@n2zfGt9NX%<E@iJHLJcMvdnE&j)c(n zoNYLGo?WQ+LktCjNnNUv0(p3hlIp)~p93u2+aFUl&bQE==H|`2T4E)6Q%iSL#^HND zA9{h&Djl=PF>qEHe_&K@4gNwk8SeWmO1M1jWarN2Q=}^df?tcT%gn7ZIBzy6G{8PI z?jJwM-kBMH9X22_;nVWWxxd(GpBLrBiqS_i=Sl&v5VyC=EJPG6z|FB!Qdu1us$dS* zYP0GNVDmTXZ-Qx}7-<_H3?Xf<bV8?iug<dFzplbDZqol&FZljzns6tKfHQzvy`dt` zC7*RHHJrq%E>^!z2>eoIP}23Q*_ivjKL0rtrG7N)#LRdxf9DwIr0WcU<a-I~6Jk{? zlvdLk1K;(~74;Q`4A;T?Yw#DC7xLjT4^UeP1%3Q&FW&9xwUq07p11Gy2nDvw+a{u= zFpws+b}ZoI!g3ye+RHV^SbN1rb1|?iE80Bcs84R^x-+coYPCq*30xN4ip$Q?eZc%R zAgkGPP}toV4r9R$%ZC865HP*`r~qyH>a$K}q=aq(HB##<c%j5$#KE);kn-D!&#x#F zbHA&nT{H#M><?;W?H;PnWXrjndg{!p!0ysv&1ruuG<<9Od&xbCc9I*A0X*^*Zf26z zD|y4AWZ6W!kIM@rr|)!rGHNsmxQ73Tr+mWu!)6tu$7_CJi7xs>C<V9je6w=JHW~ug z7a`v%xdK57TC7g>xdnL+#&2FE74Y5KB2ooHM-<vrtE(QX5y7l0l}C@7`&)@NhJv)B z&4+Nq8ura5(HeL&{pK&!oo0)rF9na>Q3N?NYFh{SV)@mbhXN$oKv#=X$@=l!1&Ak+ z%npt#2d{d2=DcU^+@}F(OD+y)(Vi{1jWX>X%hl&nkCCR3G?{vM&zL2<fA>VzsM4)E z6olCPn2&1L$uZ}W69@U889vs1=GMIA`-*h(Cn-^kZ>@QKzgRm6vfR^I)rYRaV(p(K zvA-2NMihqt6j0S*y(gG!@yF#~z>aqvdJ((a?b4|j=SAcl805VZTX<@<+F3f|qW;2_ z<10dQE}NixPqAy$S|!BA+=2>umTA(5@#X7ENIn2j7<JO`mpiN4#DhVl_yXDDaMEgo z`cmdW$pVSWV8A*WhEvhO>ALA73Xz<jjR8*mAxy;SA^vF|gr)O=oE>RXC&3-;rqi_Q zm-_2{7f-Y`;*Imx8k!T-T{jtKeaq)1Ioh@IBa4k4f_K*NG$B!Jq>-bFUd3PCS$L{R zPtvQ@olc5V8$O|p_SLb}9nu^+eTaQA@PaZy-*cYJF!Cv9_WFH<+zf8pUv?kuKC~mD z|I*~USg_(Q?l>`pXz#jcEvIDL#0X|p@Kabj#(|^y+GMsq+P7QU)%o)T*BmM5Tc(0d zCzpN5G6`x<dP+4T)m?u?N@(dN*fVk-#lnchk*RK7Yz#1rQ6@Oaud;h`&oc2}L9joK zZ(=}f#84x5@T~$DAH<WIsS>w7PM;i$Ll-(#a|-X<*;TdxKG<S$=&!bYmmVMPvTXf{ z)H}$Eh)#rq0c}fi@@yKcH^#In#lBW#Ma#dvgwzwuCA0N3zU(M3vjtct&c9H=H@Fpi zc0(L|2;)+Vf;Hzlzn_j`&q>+-x@5EAXeQ!dRpOzF(=2)nqf2z(^eF)L*B3}QaEYQF zPQOK?aM@G*<Jck~=}~f=;7Nx~)kfXJ=jR64J1yu$?49)7W|02I?tAE0_6^ijVdI`- z+0o&zS6kWnocSib3ATSBcT|UR@1f9F>qL?payv*iz9Hl8P1m8}-af<(?b30hv$W@p z-W)^a+`kv=k7O8zyY<}iH967uhPmn^zM>MJ1TBo_sm0T+*ZtjMaf!7RhtV;UHv4sn z*jPtWxm-U$)t|g(PATyirX^?M12#Zh+AWi&`?`>b+8=KC-lyKr5p_Y<zx{}u`E0&8 zHrZ62tk%-};`(A)e>Rf30eV&tG8Ad7Az;|2E%iPGxG`14JNFc<vo%jfgy*shn2e^5 z65xmp!|yr2GigUHLMuv$WMY?OJ{3Ey`IxjS7zD8|5k4E1n^&20<b_*(&aRO+@NGWm z$D6VG2tTkngG7~+2fjCB%Y$}#Yx+@(hQ!(=213il4C+ccXrceNfOsG4Ocs`B(bxz( zW+!%B`PEjWu0gzq-wQ?2e(3mED<(4PTd3Fa2?i{8IVZ2~ZBV?eYT=6OCG7>v`PU;g z{3_|LSB&sV?OR?y=R51q!Q*KkqFGR${EEBlAOoQZxC}Vk@jiE`?vcQ%`g$fSMPJAw zRh#jSko?|aB9DID*hpJbnZx`#oFfASi#LTu0E>h{V#B@`^Ksn$P?X7uGm;4sxW_G( z7E5@7E@dJ_vN4X&#xWNv4RF`m3PReb5+n}bzXN$V84(i2J_&6>GI`}0u1l`@hU}wB zyUfj+v+i(Dy<b9I0Vx#G>Lksg>X1s;D&9)tK;G?MlUaEhYd7|QD1rd2@m1Q7w9)Kl zhIW$<DP2zX1*)9irB<X=@SYQl6ArbXuy8CyR~I1$jad)06Qwi}4OASE(06-b$91K$ zkeZhLDi5eMu}^)!2yCaYIXD=%Q6(k6bonzL>ZDzfR~t8HO$eGLEVtSDqfS*du^TRI z#;=y*os8Sn^2V~eD5&uL8oQ{ckupHHSnogJh~b9NgO|$3*bH_b4VO86i*EMy{>r!- z9TgJPe>yTbqG<JqJ8eFM9trParA0JW+dT5J4!+WHl-#}RLiq}&nqXqOx>Cu8HgcAb z>3q20bG^m(duIRzlc)e&J>IO4C~EES4RY+%Rd%U_jlQe>!4SL2!omD`Y9>n%UA!q; zckI)x5Fh>AXAvLvvmZ?+drL-^l28$CZCE);_T(sLvQim2P4Ohjf{#ePVXMXKV^9Va zvH7su?YyyD>MR(!7bh5x`n|*Kpi$$i`^?9d`9SMQN{K4IDmd`{-HAw6uy1y4y`!nu zct8pz*A-pqWM}h(gM^9($iWuaj7j|n(d}JaAv;QybKIOAyXh};<<or$g<-6Ec(mD! z2&(6K+DkpkT6U7o_c9+Z5ATeO5A^UF2X)qVIL3pct<ni1_G{C=nm2mJVSlEt-F*&T z8&m4`udvA5EE=$-pDygF(qX9Gk1kv%hJ7y04zD=mqQ>a33h9Q}^nE?soGrH-MOyS= zfMC0JmpFe;^Y|3%0%^`yDCg7Ok0cS95WyJ_#${R3EN-4Ko*i!qtt42_;k0+~Kr+mk z2dJ{I+M3=Br#<T{Nj)Pb+|lcbRM*Y(<2HL>-b_H~;1RHHKd<X$y@0;}H`fq(iGblO zi0Z}K{^6H~;X7M<r@n#7U%02F`benzU+UW~dYnGia04c|;9;#OQLz~>&BlAtiD5GR zs}iVEc+iKSV(Vg0b6Nm^_)=G00vVc(b2Yez_b#eZywgL3bE=lB4wBuZ+e3maIA*Py zQaY9)gh08AHv1RJiv1b1uIPnbmn#npT58u`>?afn-h8EOx<1A_tjGHhu#KYecsKx0 zS%<~o+?zw_qO`(C984Iwa)fI0BJ_l3g%*$;uY1KeLY$sFMw8!**m&Axr@dH<+PIed z7UwS|yT9WtSKPDk8UIGe9B#G(7tJ=+f+L$$xN1B6MiYRvLGEd+E>B2{Z~40FFt_a) zQ3W%5Ai94797hN48M*GyZgtL1SL$2*)Opv2x|*k0_WO%D)9?DOLzdGiU4||z?Qtgd zM>g~CO<RRdLd6qW0Meh$jt8nl^wE1<49&krf(Udb!p$10%<JEIr1*vXt`m@@K$Uiy zpDIzMnXk#rz2v6PWQ{<h#b1_n{ZYE$T(5n^!HZ~0Ru_{oL#agY*_F+kiEoFCV5+%y zOh#?ra|Ji}#rA}L!c^R(|HP{YkmcsX;vdUx^25SQ8k(fK875KwV64iJIldmL$XD@F zyY;vjQ-<^WB07<ice#KI1Jd-?7%Zy&b5Os}&T?(lfgL!*35}V{{fAvZe)W;T96}*@ zqdYSyWB!4py}ZtjA^V~Iz*?T3Bur~iEI957)pyar3TBkULD`O2=P8>J3nJdVfXZ45 zNdto)$QZ7Q`cuWKvDx@$0Dy8{16#Mrgh^=uq21*0*p5y(US>-kxZ$^J+noN?qD4z- z;Tqm>7uyV(M9}LP<AVIkH1~O~>BOfiHkY_1kQ#8=8&89y$&FtafkRC$Zrum_XG@+m z$TEj$s1zKwqZasQ^CI{-;D)54LosCeC~|O@Us19*_}HD5_RYW<5xxu?kGbp6kb&ov z%bAIjxyK6w<0lf|<yt<WK8E?!Dlu%$nVMo!F_z%3@BPVkh4msp64RASx|aFt`VZNy z<%LdFyBVFqsO*yQ$+s_6+4Af%IF?WHE4l&HitXW+)pWHL`Hb17MwoWfja3|k?|hS( z?w_K<z1I<JiX0e`gekYUrRCX<%}=;O4<|t|-QSUV;;I^)msM>M&0eY2nMA1C<@NVJ ziQ#j$U9l5S6k4_uol0t$GP~m4EO|pJFl%x`W9F@?G{&d5PiEKUtlw4MfNC_=iNqde zV@$jfi~ys!>ig?6*CMykTqh#M!iQ4MLALRaf)jkl7pjv-1eI%RmqJYOn;u6BPWQ%Y zmwcpw;xEdwp!I@Jh0Z=~A`YtGf7gk5{r>Ly7~P%gxtrDwKoxIoM+Dv*YKDZ{>MzHY zmTHcu8Bz(y=}(eG9Fjyo-9#1Zu@xm;qBsaNoEc9JU62YpnhL;UwY*r<i!pg3l5WzN zh0%(bq}^CBZkSol(Karp;|>i(o80P+a^Fw&n>2eYVmzq-&gB7v&C#Ygl?Wl`Uu|cf z0$bbo8+b5DoF|NJerL3i4?OdW{z~|op9`dW&lf*UHxWK*vn6oXX|erE^U+(&lf?Y@ zEuS!#U0&TkBH&nooiMG;j@tn7Ptr*X?XQlIRw>9G#<GBAGKy+{|0>+@t;epc5UeWf z<{LXbgy1%(@FO!k|E8krGopSa9*Gxv|84Zf#%|5BTBXvA3vU-qu;Qb3_*Xa_Xjt)Y zOxjR&*zuK27Cu`D*&v(*+Uokzu@!g0otz&3W^eh0x{OO8B3hE0B_2iF>U${+g6}7j z9w~qui{&!OigOX6)b<x5@<o|%S);|<*X{-aqy8`K#dO>{)H8XnjRY8{wI#f|y}xW_ zbbB?$)<~T6?;Y<aFRzT2X(y`hxX|v;IhY3!c+kUFvIF7Inqs2UGMz)efC~ZpC0ELf z@YY;SD@IC-npY`{S=Ek$-BO*HDSw|^w_g*{HtBRe;l%i($JOC8j*<2<vT2IXw5kpQ zxsmB3K_oLO3i^>5BDt^13M=g_9$N3#bg?OO^0uB}TQ_t>=_j<AuIpfPwz&(tu=_tV zhOVg&$Z6#}JeKPpjIvj?jPqtsB~6=6Hj7=&inF2aCtEzK)17A5<LQxuQ=PR05N`hT zGneqddFv9uDqp$>+hjS|HGxg9vX*T-wur6x=FOsLgU$X>Lh2&8%{!!>uA21G+wxFC z>)x7aLx5St`C~2;vU=U&YJaOe_p)#hUt3$0cDq7Cr5_K0eR!2_rUy+bd?7$Zi~>2{ zWS?=!?0PYyAMdVU{r(#oh;*z_VN6U9&z6e^60t_`-p!UPUobUMqAoA_u_y)OF(cxk zQzURO^Gli|!MXc|Y5#MXXz=C~nYCJZvexgOVLtmh^!p5l8LJbuKE)3?zOtz#yNvQ* zozrk{h9L{2UgWLQvr?dLi;rX#9uoaZ%=)?f2o_SuqBXSIpRPChOZdoPxhhU6zos5x zT{ldv0~BJpTDSMe3ju?4C**3|XNLPe!d73@DF9pllv3X@&aNW6_OhaT3#}@uz7d&* z;+QU1vAln@=Ns4SNEi3#@GwZ=!ELVZcCIgXxdjabIpCYIzg7FPz8q}f+}kQzR*PI; zlUyP3L;MWN#;`ARl5WsA+9qwEX7<%fZYfU}VGsn<Zwf}f)>yUJG7zc6RBUj4npe{! zP>=68=tj<!&wCZp6uwnA;fX^awPuNuUKQ<kW}W+0%}@S;muc3=eQZ{8?mV$JGp|Os z2$=7+lotXm^Wzob6o%huU7E-CEI^VKTc_^BG{JAd`w}WG$r$7^W3!vJHS+}^B4?4( z?(S#2v7_Z4eGyEnMSJuUqSdjyL<J4w^=`xDSOj`qD$<L}3}Ksn!bfBHW^_zgui)!} ztVB!!TvWH5y!ITCQfS%W520PcUB8GHCC-kABENEFeVB2NA|As$ejNl-?Lf_*Aeh5) z6t?oKA^i#d4aSwZavEQMXIrKNVo1sA+dUSxEECrCaawhF&2FfOe)t<s7rA7`4~@^h zHlvi#PM~sooB{n2VShduQUey-N)i1QI54J2RPqa2g^>=-q;G<}_q1AkgZpu+1+qxg zJpl^MkmV2)WqAkWLJ0%@L8q%`<uCgOJFCGi%oyQz*bkU7nH68s`r+V`)>b)b61T`X z8ByU;D0AC*3cEx#&QyFm;2CSLFd9jc_=eOY@JLySTO}hkgYrbLIJ2kS{q51=u$Vp{ zn|xc+`P{`3A8l#W#l@!U=p?7#&q)5-lTyacGa{#_<0;>=Ni%1w&k*qCsmKjBs=#k! zCrXTPDY*3ywUY=t{Bd=2?Nbmxqr&fW3?**74r>;{H^bq|rBY9Arp-^VNpn|Xy!t|& zHGB2S(<0efx51MXtCkv_Ql8%OkOIpOU>GOdWH1@d@=D@WK&Hu+`F2#hppx$NYNspH ziUGd;!(n{2bzQOT$l!y9iSvpz1^uhj%q!2_R-#E`*JUhMjl-yHjo0|PW>v07g{NL( zU<7aL#2w9_l}mIFi1bE>v^VQ6#w)8gM=g=+eZtdGD#XRbo${*UO2<kz=6R#YMqfsv zXbYz)SZ`NqK}0Arw<0ZT<LtIT+Ft5T(K4F4S8y1mj}c$62ND`~9s-_^2;f@hLk*oh z;9AqGisCo>a-wwlk=t64SQ-OYSE`id6o=@%+;p_-a4@vP-x=&6PBHKXxjz(8p;jW8 zaU*`t$&KKPOo>S=%JEOUN8^u-$V0`?(BA^Uf=^04)Y6VmmJ7_lLh}m)l0-|3u;ZoS zix;d%pL2$n-rk$s)eR;Tn@0%vUfoB;{(GUbT>}<V{B1j`)iV7YR<|{+LVu;-E?j0? zd-k`La63rEY7~+>0zgD%U7}3)2KOW$hUWfqr_109gSQGNwZylIHHNC^Q7}{w;UHT* zSxzYo+T<=1w%MJPXI6YVJ^*T62c>=?k;@?JXldNR24CIr@r=)_nKxG=gqKqgJg?bZ z-5+nqNbr>cFuiKBt}b@cJuT^Li-}y1`yLbq@m~&(t-qtN!tI5o1wX(Rwb;;c8<(oi zd!G2ytDP^76fo)ka^vJ04&MNkls*jm5u1V_TmwOKJzY)jrBQc`XRNnGR*rL#zbv7c zxZM3FP#(dZpV7Dcz!_9SArl-E+!9%Lc)_jRReE)rGr{L$;?T1-+_UHo=j+mq^UJ(> z+gYf42O$bxm&Xr5d=9Iy00VY{`;@~NM%3lphD#qy)IJI?4t?g=tn$06`rYPr*Zd)Q z8XN96LYU{P-(w_k){MDklQlofDmy+~07aT#NgU_^yMT}xE%uX<Png{KPZz;QQ%3^o zCHaU9&$0B#oZ;{+O6)E#U1!O~hQ%3hm!3xK=o76}ySn_&o{h3*N)jyhLSP61m)ogH zWo>VoTjNJiw7){YS4ouE4*)HP?$v6Uu4l6?1ITCwZwxR?SK423RoXXSjzju{VTpvo zj#Vg`sZ3MaKh$8=bOd(M8JglS@%cMmITt?iGFu5w@hZacwBbE*GAa<KF&g+;n3P4x zrBk$nM@VRRPB-mbnmkQ@R`SXzR&FE<XCK^^`Vbq^GAs$lP|IjdksIdatPsP>+w5%3 zS<qsELr?ULu4IxnQwM+<=blgDCJf}7IvmX|E;a-IJXmvx+VQ{01n(e;VjfjJ!GR>K zjMp}K5S`7Ro#MKR{E)(tU*0=JvxTR=0xv|Lx*QeZ+L{K5o6J-PzC1+me<<x40vJPv zDl8HFLlIZer~A{-T=l?y_N6N0J|920j_ahX=zdhU>S7fDzg0eOWZUGQnf~oUMe!_N z>Chw;iw@0l!g)5Hp|AlJb7DYvfc8Z;^|O(%4G?a~gYyf6gcM7-!%#_{5pd<3S-a^U zE0uyl1hmE;P!6Bb%d?_F!5Et&SxLSgdVKS^KK0`o^5}EG??&c=W$wRyDM4{)tor~V zyvp)fxJAgT99*tuoX@4)$(a*y{6j|$%x(HFje%U$SgT>*eM-jimu+RgazA`GzEm1X zl@Q_60n$}JDW!>YeBQE6acGK+eBNLQe9owu$iq48wE;@NxEi+pIkzC#6H0Zlf&~tx zoHA-fmMJ`X=HsJ0{@8W8sws9?@3@S2CSOx?)CF8xJkK4!+5BzZG-^#JT!?*+&U{iS zOyS+T_rt#!zPwrCahX&_n##1&5vQEy+MA7puUuT>-dO0ao`e;^dcvG`czMEA=*SmS zWGLPf>X)S)!K}n4flMd4Rr^hV#^TWud&P5;p`SBfr@x31LfY08Ak8QmHhO+^><9Jh zQ|0p(o4<JI9J7qUu_qyc$<98*Nv<`t0nCbTi=XdSU=f<xWbNn+Bv({*I~@0|eUjTv zXHh&AYHImF?VxA>O1oPl!ClFE*G;FDe<Ej_i*!V0Z$1b!6UK6tr{{~4r)_U)Lx4h2 z%F&ya?#s_CdQ+xZIy20YQIb*gHRgG$L?`#mxD0YW6#pF87<4y;Yr3zIJBhj}$#R&f z|E?VzilvO2Uux=vi#U(DHY%>Q%38~RQ96g4KQa{$-ds9-EMaqK@)#^ysLlf3N~xoC zot(f|3lMFc+nBP(y4F3J)H$;k<5{dDKYt4Kq&k28#_SR<KbTvxA^J>dr+K<c^qF0$ zv*y_Db~dBDH+KuqGsXAerk2p~WQ1lHRB=MAQsAt<(=o_c$G5ld=Z|U3e|bE^$YmxP zZ|g{@eKpdXKe;>L>pL<nF5bW1(VimDwJ2z-(R5YiWmlQKzJi^?u3<Ub+=mem?%HRv z-kF^AbKLdq4)=c2{Fy8yel0e8V_O@m;KM$*EbUXbw>D{ghM8Vtxkyp85-M207Ah8L z@WEJ;Oo}fX=`yTt6iBrdHA=6TVxI@N#}Owy^IC#ZYGBK$b(b|{ce0RSLPj*+Z~)>w zs)(}$k#cRIKCf3eIFJnQo^eqqF|jf*7-|X+hfOQvm~A|4c1HZ=*@T~ab>B$D`}l~L zaT-X3L=jFJ*NR!VqUey+ys$R*VcDFrqsCg2e;D?AZbUtEg!_E<$cX%N)c6m!1D^8s z3RaTP)U*L}r$SGb3$43cKtu^XYD$rK#d;36r)KTt=}Z!@;p_uKlgTQgTqA9L;yQ)$ zOqMDaiR06c(a(y4&NAp7_6Q#mWiD1w$ajXAQs@nIQOiFl;@Z&23}n6hf{@b(e$I2E zWEM|C)Gn+P-Kt`5al}X+r)nSKp}YJ2%)g%hO(NqnUcJw}CH5872Zy0KPR5l5K%hLo z=?^I?{VZ|Md8bLCo1xEr$l18Mp}o%jDkLT6<<lYF_M?`I)AcKzER7?BtzjKXZOE~( z_!j$>t{tDs{KeQ7WnU?b%L)08QRIxM8qATw!hEMPQ&?ybG>aNaF{2^Hf0S3fJDy^D z7A9jW$r$pA($6()Og@BNFqviCbI;p8>r+d@7oU~PNMOga5l?Bu9R4K-R#PBNxWmK0 zjG=~krfC^dD2(|so|HKjeP;)%v#oJ;B@?EY6uXNGUvwY9I;mZ9y|e|m!HAr=4rZ&m zD~x<*K58<DxQDt9__~DKX3_5{VHChEI@rsP;ol#9@BnT~$P&&}+Z0a>U4N?_te5)U zx|_+b0XX0@t?J)OL9IF$nD<CEt1529qOTZ1P_;<fEV634+*h;xe8>dcPACsjTa<9^ z@~y(;&(4^OkQ#G`u@8z*uejVC)3x#s8e~%1G;8;DDJj?+xjf%v_)_Y2njhZ=^_0q{ z<xvc26OIhwoxd+oeJ6-Gm7{2@@@bzF!?KEi3IuV-PwBaXJED8{XjSsUzQ@ffGq)nO z`4jCiMOB{<@mF$`6DWRewzcC680g{Y+XAxK`IP7V>H2uPVt!a}tL;*q*G}&7JzMay zdfosFntr!T0O>h;>Z1z&p~`CvT4}=n^ku=H5%dIkqH{Ot@P({d(V`ixC6OO*in6}o z64^s-=V_kCXRQ81bZgS4qNa4EO9yf>j`2>d6=Ur>4qoz}U*1?GwD?raOHO$GsNQXl z0rd7u%@&@`Q2-AAu`9(Wf=^y&)-Kl*k1Wb>JU+73FFO<C2NxA1*yY7oNY^Q8ER~p! zly@U=Cae2-Um6a!p1bLd?d4KT<tzbLhDtOQf@~&|&KI+5(<S0ZP7NlJtoNCG@WJiH zh+(N;P(tt32-?qjEjD9uH~O*vXvc>f4azcj_NDW4)Q{Ssl3N%UG)WOGR-zUCbQ0mH zI1nfpGn6-Bn(rLu_CQdBgd+A-hPhe?24y?up!IxMIg~+zOU+}9YN`Qmq;hZO;A*}; z9A2JhluZv{g?|Fs+3m>XUXM1)n(Zd|`l#SU4gT`vB_a(K%<E9h?RiQyGaoko-sB1G z`p%J)kIOZ}I>`&!rPMV_uRcuEx*pIS{nP}`nsEv6MQfCI0PeeEjqq+NS^H|U{fsYc z7d2xDvWGA9jN)kMi8MRnU7NfZ=;&-R55RG*-d)NZT~)+y)KYSXD(kpzj?3gL3!i+8 zsV*~iNQFT)#W{4+pRw4G2{i$tWl{yOlWUl`BO&QoB|qSROEfN@L=bFk5U$g&tw;lk zKV!b*0ilBvUT<^X2zzZ>7l3Kp#}1H=+dn7yA`$Nc!GHbPY%H%mTA?Kc{42%2g{VP? zS-*3u64Kc=x_%i!_HY{}0)<6>p_p@n44cid^}Q`IT}f)C#lDcXI4FVraMNriDS%0- zD|6ekL8xO*HxGz<8Pwi)@?Y+_V3w*7x*$@(eQiVK+teu#WGfi|ru?32OC3e$t!vOR z%ghrzmnpg}?$@-xK`yN#6n;_)BT!=y2aMsqx(>W+xYQU)=;h!He_uJ^();KRD-x`H zNhrx!RHeB2I)^U?^nDI9QY#8XE@td6ay17{_2YEl9;j-7Ap?!h`aNJL^fA3im!?WH zLfjFG0f&5!r1`$7jk=2oWjO?rN6pi*xL~4zo!42W>ov+|)dOP#oOvMAUuBh(C4>9m zMopvErLLH9T{!Rr=^o@)TNI$x>)iy14V+{6PCE|d#(WYcYYvtnHihAByY(3)-(`}9 zj1W_^XPI}k4}BTs5%$E4&*>;7%ebf8REeG{EizjkmwDzgC5`HMvE{N}9ppmF?8~1W zTYN<bg^k_QO{R$(t?{zPrRq!4kQ!;!%4b|T;y*_pw<=Clq<j>%DWl6|ilb+8c7$tK zMZpT>C(ka=29M%7Q?!~?d_Wdbcx@<fS_sS2uFW1n_L<>1@;l==9#y@hd5v0aO6R1z z&iB_e(X0BezBctJ$}vF{qIUW)`Hz=2KMN6dlZFH>6&u=^r&_0A8)cPy?~vd^Y#kC8 zq+ZHyU0g(IO*!rnnlenyj!YW^Xd$Ub4|`(FWb#=D9oMthCr8wl(Y87@T@ojEJZy8A zHdfmkfou<+{I9e9-wJq91Up-$lP{Z;J-#IQVmeoDmdLJjvp-E1bB65vhO??38nxAj zRL6LZ0LO5#=J?4<uK>79E@(`+x5Q_<@MVNqRE@t|kMHG-2)v0HPeMQFORccyI@fv@ z;j}0;1{f#L1E}Q6@e6)^+?ns;0PiyzHJ^LZWEGkaB^&5#tJCc|IytF_zjfs6hIt@g zmEY3H>4&?`y);V7p{rvkP}5erf&RW`Z_SQYzORRp+BhA9+q3&fA_jL{JKxv-i%zNz zt$k=WWx?S%rt?p`v)>m%8}(;2r{6O^O?PCs$^^k*1P0Cb&|=vigck_YiWX&$BD9^I zS(OyP?O^jBhD|hFUanfva+NisVQkK`jhZ{h#*S%t98BWgM?0~@UVIQaNvI?wy%oFn z0(%TbiBwi8pb6eZ;*%40IE=IAD6E?q(%Z^ClB2W*yv$rvxm05v=7h9vz)p%q6MJ=h z<mM+;G8ScRGmuW2k0QdDh#a3i?P>M<-V(DKLv}KJ?=lid9yhn)p2A%{`lU!)yb<g# zEZ0(O`)P+Xw0Hiw@BWIt-POgB<;m|lHul&Q?=mOjXY5!n^McX9&po~pUOaJ;HLdM= zLT6sjFnzvhc9j?7k<T?V5Chx+sVd!(Pm*FkeUxD{qTJ#o%oZ@hlvlU3l#e;@ip?nH z^KzfZVQ5c>W?hdabP-9mkCL>>Ii6_eH;MDFr<JjT9nO&+*~~aNDCL%6JEwLy#99Vc z$4Rzz?qF{0r-92ycsfKb+xfD;3w=t=R8-u4n`<rm)+?Jw9bA1_1TPiLVUe?X;NW#; zVbBJ>Cavt@tE{AH5A+(_HkR)^@!o5rjJG>a&P;pFj&G#~VQCmi6bXpcU=NBj&T^Vp zf?{+x%TryFs-ifd8dpg5PvjLi?95AXyQ)3%rG6Ky{mCPNq<I~n(_o@_n3s!5Rm-XU z4CQHAr%FGkRlu9(PfDieOr?|7J|{5G^`Dkj_f!((_MYP?={9HXOwSj|(&qvBLPL~p zChL!b%I8W=-p_Ht%ndbqs*<ZKRSsKObC%dIP|3;3Z6}dLy+{yL*(Ryjef8zP?(sxs z?ZTkaUd5g71mP<J7kjw$!{B&Cr`3L!^P*GXIojshdv)J$A8=>Kb$XW-?-9~NgF!^q zrnI`%P**>pIhyM#W%q`!GOn*h(FDX<dvz(Q-BhKn+1}pH51c^>;#2~;c@={GIZ`ji z*^_N2{Vo*^=;8B;6-VY-TdZ+rHamMQHO#E(C@Z_y=405W%G|sM3(VM9NoLiSnvI+* z&_mNq_-?MV1#`c0Kl-x%B_NM-fV|%#F}hcxnv9}5!AB-WgHc*M{DB3fTLY<_oGTca zm!&A|+c(7`G!n=8#JCyl9@Tt3o#CG_Clm<<a9*>IUUWyU)J3lgdGkfO!1IqEWH7Tu zIe|uXXl*Agl&j*B5`?E0KD~NjCT_cF>2e$ZGr5}1p{+Q(40%%<&?&$}@x@`Hz>c`( z399VW#J90l;Oto$F_wummk2WbE=7F-4>$Tg!zfdq*8}s$fb(6|X9#DlmO%`T;}v%6 z3O_nMJAB%NZGT@zwHuPV8)FiN=JoLJJ~VmA+yRu37V=@Ekr?QAuMCfkS|)%0PDT^e zNuKNhP5eHg;uuScwlFQ(-lgGQPzU@-ync6Vi-6qFK`y+I>F2|ULO5IuJAX(E#;Ve= z*z<LhT0!k(E-T0sOT!Miwk+T7_*vDf=F!Rfh^WAYR%dhCGyT*mh=)us^j2Qq)!Z3C zQ#Rg&jl$O4s*>R7NGbW|(ZfTdoNOEjsh@qESpREx(T-LDA&MMG?5Uf>iI1=kDcltL z?kn^`RQ_a6O8vtbKpB=8&FhLy?O^srsdmnQ3yQtSzaz|KCmiFAb*DZOb_h{)u;*&M z&Hb*3EU&OAaME3)JV~T$KN8wg3f!G65Jcq~#u+?retebjrAf<nXy^i^iD8S1K8UBv zZ?i%cdEI<)wRxSVOna1{(CgWuN>@(h77oR$hOv}0@^HNkfgW1gxH$^!0wtyv6K8F& z{;wiCSuAH<UI;E@cwu3rrWw+DQaJow(Ll<DH&eE9pG^<tO-vx_biQJf|H~~I7PIO3 z*+nEuTSf%&B*7=h9*a{Q>MZHn_8a*HLC2=~i+Y+UTvdDBgexWMJArMAu>&cYXj;~M z#)SfL^Bdt6;H~#1$)Rq*t#Eou{nvZ3@wz*j{>%<Xs%R|!uF9X><|$MZRxvpypG5Ip zIC?*%;?h~OOg5J(ea0*GsMJI=*QLE0q9$5#+Oy~Oc=mz%(8w?q_UUgYNr##pL8a-M z%^$Wx>!F)J>r>1hQZ`Hq$D^jErea-4!uYqY|3ALI1D@*t`#&QitIQBr_9lw#D|^dK zc1W_a_sS}}tYlpjN)gE(AzYGK*_-UWU9SJ@R;WJT-~VwvJl^;He&5$PuXE1pob!5} z=L>{b_)9STB}(s9qP1Vt;c{%E3+hxgnW5ZxqVGF{y*Su@(26k-VA^Xad*1SV+s%BZ zx-|cvGU@Ri%}sd+Mq6y>#HwSNX%B@RY%F!rR(>eqz=~%>yqY}3N?E9%IfP-NR=()p ztu^@-w`j_Rn(}~1&QkTvg%UNBr)*0;V>W}>5Q$`dpJ&m{_h-`Tq~{_iH>x#NXR@MS zRaGEA#YVNWS3i%jUuP5HE!)D7As3b=t86*f_8o`C`98#x9~>V%`?;_uy7{wW%PnWo ze8WDlVN-f!$bO|HWX@M72|c;$33rI7Q`4L3c8HC%bQG22G%JODX{tVzPb9>B<J{r$ z^g7|%(<B@7P}EMv=JlocGDx87exsqQjUBvGneIWYnJ}%DuLXOrp{h_+EWfgFs^hwc z>%I3;uBIy-LmWFvH8k_YuYbhkEq>hC;v?#~PNPSlmnBDM{N&mc>lE2QoDas{JlOUi zC3AM1d)bMwF6A;|xK5e8E;GZM2q2?N#H?5QGb$YHxHs3CM7{=jlY}>Nf{-d1ht5C* z_Dpc@?GNIN#W_Xq5-WFVEeG&R-?H~^a;41aPFRGRb3R|J3Ev~CAdVJ40-<w}VaXX1 z&$5-}D+v}63IjH;D2BN$JIN?Qgn7uLx{tc;A-;VIvgyhx-)#vCHPu9DtrZ(GLv=#0 zIhkH$81>fN${V@4yK(b2#fIEL_i-$M?fSb}!o5(@cVa|lKR))`@_5~uIY(LS!rSzN z>&!vtM(W_CMvlZhpqX9QWjqz{B-~gYl<<NL&N)xL6Z6wJ<60g*w4{$cTep>tg~qnr z<4+2C@uC=AU!n7SGa~)L9R$o_8A2FRB_Xj1R`qQTavk*F7T?h)&DVP=e$?glP<9@Z zJMSWuyf__MDifo+f|Z^yIGjN^kxfN`aRpNp_=cqrVORSRzas`qF0NOsIZmt+aneJR zJsd<6s$G<dttnr^gorDC3@CB=b~Z=YSSiRLGd<{|1iKCzCD^G(QQJuRI@&^`)An{- zr1)7VJGka)?W1ex+eg;dkS+Nl>E6n-*Q|fsu$-YR$`MITb;2Qh^BPZeS%MM|%W#qz zpGZU!z2}Kz2n{46W7#2cjfAA{iVtGT8FEWSONX?{>BsP#Fi-s*MJ0wsrO)$_<!2vy zk<|p1%NlRm4LtVb&4NoS<sIqTY1~Hc@v4yq#ZS78dWE|Py|lSjOB8tC@pGA}wy*VS zrSBBo2FEvCNci_e`7|XZ_SPHM?G+W-nXMHk*wvy<>S0Gr@$tj>VUGvFE)xCyulUrS zDt_FldKJYJ$)uu_BFmS|5(z~mycZhIvP-BpCB4tNn0mK7Hu=pn;#Eq%V&nKC;*e1a z$mGIc0d``B>AJ~}hS)E7S2N_w&+h0sW#0n(coQpU8Nu|biK&>mbk`ucUJT%hcx9#j zaQpm0P<fXhccymhrpE2^FBW|K$=ew(USuwDaJ_nmKsavq+mQBCVY^{@9%66SQ$0UI zSoYV9y<~da!_KBKk{$9GlYE3cj6HnN?H*0pU1YjqO$H5f<J0a|PKSoL1g$bTq47kX z{yIPR#H-OF88kV?ZH3ce_t7_KNNX!N!Ax9c&M9y(x$oL+XvVJMh^T4X$=Xq_{boBT zE9_(`L5{x-_S)iel8d^kz1(eQxK5|`ZgqT<UkyLM6{)1eF)yoNb=J)L2?k$04cHuO z=;GqHKn>?TP?cx7568%Bmy4(xQe@Z}G;OvWqAh{Tb*;YWT6z;}V>2c7vG87X<cpiP zHEt%{qhjh>l|*LxmV^0SN@(w*`1FMEed3n;yF0j34=a~zTB_)21?^dRkfJO{$seOF z9pvbo%-Lfv2#(6mJ@&`Bb=`=S>(#*W*OEo`+Zs<opFR@XPf=9l7}&Wts3a0=lcIl{ zN<omgmQf~|s@k#!7}o15Kp4td<u*rdR_<`Hap5f-7Jb{;-9@$uDtSu`kIxFodMzDl zq;@fQyyR1y=}kE5KdZ(h!f00ao=WToyU3NyuiGA(#-{6T<7PWlhirn9EEk4<P?9^% zsPQ}B-EF2W`AA8!*}%kP;X*$^<g~K8%DK2<$2k=~uUh4GKuJ@tQfd(U&OWHeD#wj) zUv*KOdyuB%nM>sdk=OBV=Q<)@t$3MuKQmHzF_MrF7a#cXrVnQCP0iazmO9}!sS$p* z3m#=G>xS8$MYlNb_QTDG)UrL%$v))nzdLtR)n9UJa7EPiBIbzWjABkK`pZQSNb0LP z+q2kiCD_m3@udU=`rPz&ISrf(!l?~EEHG>+c2DaXnfo0gG*$QH0<UnWPgJk2izf4J zH7T}gLPF7SJv?0dFRf@zAGBIWS9lTP#f{zUkd373pS>cr_)?erVqn3HvG*sqh^abh z47Wr1HdZ6!^2J;3JG<}gKRQTU`Ap{Y$zpZa1P1k6ij>*zo9u}^u&HejC~=wOGDw1B zNAj3X5)?#_M`y%7+Oa(9c^oS@pl{FPGA;M)S?Q|Xq!Fu;;P9f_+RfJnSr?gn+CY?0 zyHO$u!|NL{c7xOQ_(g9nAJ1$qFRQdJlXc}PV?Od-$oGmQE~9-IKdax}vs)pKAETlY z+e5re?UJ=h2A;c*TpBol>dL*sQ$CN{E4n@Ld4qtti_)zgGFWH}7r&X5WH2Fqah_=_ z!u=I~o~#M7NngokxvDZklEGq(stF-uq!ymt^JDc#lUSOkYr=v_y7%4ex@b}2P*Ic2 zhXgK{1l#T=+Y_sB7so;lt{7I(QdF2_n28}$G#5VzLIjxyO+KxJdIrJjw#ll-p$2V9 z!|Z;~3W|$AJ;>rlcz5`kzs_^Rf%qO7E>Ei{bk1$qVzw#{oA8CqNFVG)kJx%g@Q~-J zN9?&Pd#-j#rZE|`aMWhi9xN#|q&n`ulkwGAlZL6{b{connt%um0`e|VOmv5^m%N8Z zv|?7=%VY0G77sX^x-oxv+6`hHV>5ugud@CyLn2Zwc7eK?&}HX^%CzwP_T`aAqoa*G z4AI3>s3>k#YztxWwIMu`(d>#x)7T}1li$p^^@~N}MLrENzAQ=JQX-1tG3jM$Rg!4_ z5?HEh$UU&N@PNq&e;s-t_SCRvhPauU*$yXJQCz<9Au_chBt>yJ(_Zq&R8miL)151o zKCP^}L}iv%dmo>A-HCboNX-zo%-5po<8HI&EJaQiA^1X$>SF8o@L|&GuBp51)F6UM z1e`#;vY3))xYP)Zl4%F2Q20F66`hAsPrqH8lAmHQr)6e|IW+Qg2_Pt2^cK`prRDvS zEJ$E)2sRZ_wn*zRh=xc?OkOar*9)+D6oJE$<^&?XRAxl=G6c1~Hs(e5sEWe<ai&7g zOr9NJ7<ePi_C0&izY1!^`*>e&ox+wQ3)0)f(|=u1?+B{@shYQCz^VI7;v)2R%M`Ua z*1F`8beS}kME!Yzk@OM)O))iZD!9yx=ru=O?`P7zo5SMvpDZGj%e0CxkS({~l#U3y zZoN}VA$;t6R_IJQS`ry0MSoBs-%kA}wK#rmIi9WWgKENugg%0knoZrD0*|(js-DPG zJ(FH1w)ogVJ!QLYlqxg<C$}Sp>|qCsT0ngRNbJwj8Gp*DOK^lY!9{0Tc2#Qj5}E9j zzbN{4(?OJr5oK`dGSevW9}iXxrWaj;W{D@ntTj6(S5hP2;JtS$ifK6zvmP_Js-Wm# z92or+E0l~ITVQw)S=NO`Im|{LPT49Ev}EWyT=(73Ej41olIodm8l`vF*rz+%@qS6! za=SwBA(K<euVq`$%1=VEKbkyG8oK(>k~FA2Vx2+RrgZqbU1!2g^lRsz5kA2p3HI_{ zZ@HyTh{=d~eV$-^Vp7LV#Sl8zMokQo>|9;yHkQ>q^a$KK>kyO{W5TJ)bbV`HEjlf+ z?P3!R?_Q%%V{C<hSjaB#H$#LsgZT?YRW7x1(`w42=<fUq#46{wqR}4BOOl+5tJ6H_ z^f7+ug}2(O=VZK^&Iplzexuf&?E^0%#hIOY;>w!5&C}&$?6t&IYKZI0(qvm6s-GPq z9=R=)z8=|uVZm%W@NJ)7q%*p+iREd$Mj=%7rCNr)o*-UQY{kb`wK%k|p|?2SdoCp1 z_2TB@a;T+FJ8J=Di&4GJ+wV3i7BQnstQ?a=!qUqN1OzS!{CvI0iU5P)2>5HC5~J7o zoNyDc*wt$O?WO)RBnXm!H3m%`hZCwx>nI4cH%e&6f`ln?uF>^K9!*a2JZ-V)TKm`h zhf;j~m&x$<>G#RZbx3CmZ{78g@Dbd3x$?t+s`NUYcG|``MR;RMnq4WgNO>vt6XR|L z3TDnIvm5BC#=;Jc1Q^K`of{8El`V$5yBE!i3@FK*yxEq+_vXG!_M^5Jqmo`Dh-{)L z#agEQd&^LJBQ1Nu#s?^-^v5<#a6!kox;JAykZ9~{3sUJmb5~B?o@rlbSxlVcc0P}G z;rCwv4q6N0g^NXDAYa4}U1&-@3~_0U?Y;$iRc2H3$J>`2tF{*SL42uTCn>`a1ObnK z_=xx-a6+s{7Ozh-WO#R;lQ3c_c&n{Eq$Z1M!nw!(>+I+Rss84nAx0Qlz8CIY2dM-0 z*E=ejl&HcR-#AQiaSU6o(_}^JTC)qy-}u>VnD_;CBb26Gt?<5zQQa=lFhJvS>#Kt6 zX{|W8@~${H;q<_Go5H*gbuga#q*WD%DH~BypMR;lc{jIdgGc<%7s7rC3wICDB@osJ ze^+hLy&u{1xg-u;>m_^uVXIutd`~TKKHlhOQ^WlEIM6?+fl&Aoe=iO2^yWkSNq1Zt zs_(5-G}Bi0u^C3cFIl=x33<pd@bI+>hzFuV=TgvD0@u+|D^01Luc}>y3j^02im<Su zXTi$ZFCxJof!;?vV0#DLBQz3L&qg0K32F<&pIrrm^yeR)3i>%_RI%W%Q5xiI-SK?R z4)(nL>Ht(6mzC?31}8(1OM<R3)XVNVto(Orze<Mf;^qeZDv~~i8aOOYlR16AzoTMH zBACt;|0y&8OA6GEwUL`guEl-&^3R6-`U=i#U?Tn5MOINzJ;eyWW)z^=@9x0zac7bL z{oOTrP%2eW-V6TAuy_A`4DOs3D<2A|Kc}v7@sGv@>?=WqNRA16%(?Uobd5ew#MH@H zBrxN`j;VD#=qTbr*GSZHQLTg35XVf^)QD3~D;+l#b@x0jYsbIMiQz}lN;Vff&c<c+ z`J)vl^#@F_z=%=Y1w9Mi<+ueu9=l&<HOfF=g8e2Z;{+~P<x#YnGSkeKfi2_AqJql* z{rgRWTz%BAa`_Ga%_>yq(Bd`!Xgp{?U>l9099+dZK>c|Jv}uLEAO9MaUwqKHiX-nZ zx|&w52vQ3ESLMHNsz>9>I~YepqKZJD)Nf(N>HpP_W77X50Mzz8AgTcC0`0#g#-#Xr z|Ha@iVicjqJA+Z9M2d$NFZF*mwNVkp|2{?RiT{qMxfIml&r;`8P;!dIiTlNlzUb^3 z|Ni8J2{r;<f+CJ%0dk;*gF-EU!Tm2S_LyK_Ppg1QqPRv<+?DJ$s<~8rXz_oK$?sPI ziAh~?UzYJK&g2XM`{cLW9$$PVM;n$q?eG1^P)UwuiTzp4%IR!2zB@2s)JNUl1(vX1 z?&(Ku@opPvxtPTlzwSSCfo*%?58uRW#mW7`+9n{?q0*t^0(Chv?4YM)BoUSLBNIlp zQyNwK+58g}+=sfrco#l~^Hir<rN3OIkKqrf%>ELyNVli(>mhXEjIDb+jidt;totiE znz>G-;5nzNjG642Y)~PTCO0@gv&rseClJ`I%%I<*4Je_WaVqA&IP2&Cd5nPP+C#me z#Oy@>B`3H8))-%%kYp+zD#^AiIB4Tkxl*%+`$cSL=)Pu7R3Sj#l$6CkS3`KPVC*Mg z|J_(ZXLY)3MPo_B#l@sPXxw9IDDIZSdAKecu%CBEMB10DoZbxFY9Wxhi49(6?w52a zXPtL+;gk9*VSE_WeIdXdy(fD(MSaCz`EtLcS@Jy*E%^3UZ$S)Arv#~^UYy$@ch6gl zWV;G0?^xr40z5^B+Lam=&ZK^jdty^i4NfTC84^l*QrSnUOtU+eW8ao68>vI4T(gDH zM8qo5<n~s-<kNkJ>Dp&H_@W4dFW4OWgMN9j{uUee`a^T<Z!`N^EY=J>07cZIZd<L@ zJ(2`IhXu!JX&docdA*k8j0f7C34SMSTRd11Y97C@j_o*4cVEa6P{%qc(vIbnFQ+k` ziT~CmC>abGK<U1v!hCNQL*R1%!*D1WlR%4C|IKqnbl_d`PEwgu9-M#bzsz-7$?uU< z9|Ds!&+<&N-5jav>C1lz#Oa)J_686lbPx5`?9<x6s-d^WpML$_DrgNZY2<`BdAJ_P zpgCN2tBqxI#%isVIZ{+q)XLFjq4K7I`9veR%_#!BFTm^+0PAbvyPWZ;I|6GvQb}4^ zhXPKoFp5`@f*J2|ree>ya3of|Ds!++Zt`>y_%3Di2q~Z?s4YnCi7KY?PFK22>R`B{ z!)WeJ27RBcZx)|mV++t?i${%j&KlDma)0BVzKuN#&8o%gm!UJpWE3GaM#NcrY38nh zMMz0mPUij$_4KUu)LMbZ+hWE(!GM`q1HS3#t4#9GT?)%2{B(z`2*bs|M;*COSIDWH z04FTGH9dN^HnQR>lZ(fO_lO9v!`}z<F-@pH)x~nD@1gfAy!A$P9X6^l-kWvDGo<j= z;k>AdpNu3OAPFbACbd51;oU1A-1-xk$itJ4!W-|r?tR@$Py=eZ(%Y1bl&0&zyi<59 z@W{tvP?ro^g|%g4R`^WjXw&-zhB^)FE4Lykg-tp3%D)K@t-)cX`B!(tqkzWjchKa# zkV}nTk@xp6ezDQ<lu0EDG&Z$2+4(bn6cP{ug<AZY{ZD2$)=Q|Vt^K`*stl~=g1YZ1 zxBQ_c!qWW}S;2&YjY=TJn5}sESJl8iW3T?}&Lb#0YHG`5kN~`1e;Jl?V$1!>>c5zr z3J29vc%aUee-sokNzC6}{3?i=SxZ?m4^R?<ffoPET>hh-sK)=AFxAaaO}$dAc<Wz5 z;A4WV{-x?nm>a9_2cX(dDuNcT_V4>AWy;6^k;(K-VFv;8zh!nR+F#>ODF>qi8cN_c ztc@y+iXAOp|Nksi2+UF9a{gi5{}pFyOlP9g(K|N5Z!?koR49*FVAiKkPsZ~+ux`}- znc^mD&On|Q{nuJhFU53rJN;d*0;;KuhA)rR$sCEg{ORMrijC0$lcXA6Ec*XYSx_G) znD@zjQk20OzV!ID=x<8L5TPsnZ=0bV=j-!{ns&up>XT{aPwIZ9LK~JpCLWy|XzWb8 zI@`$`UpdiU{+Due=mcR<4DBJoT+280|AY0Q7)-D`zpI0qqKpLI^km0l3ec<TVmcfD z4;ti}qG-iC=KNImPwVzXy`R{XfIFZSfdAAI<LXan@(6m!0K0Vh^_Yc7FQaI+n(;%2 zvGK(DIHfx<K2Izos1Gxk3VeKpTa!;&kdzp0`X`_LCAoAwp#Ba#Stbol%((p1w@)Z{ zYFtAx*+~Ei_=x_Rib%21;(z&df5_Ll1fYP<B4*>(23TMs|AVrB%v|$nDD&<JKMvy$ zQU=^%fvx{b11J`%t!EM*hCzMkVO6J1JSGvi^Ls*s{TwY*aku!NCf)BY!^Vl#TmI1= z^Fn~E3wszE+tM&z9M;6YME=-tJT}?6Py<VD^{1KlQ|#H%%KvGN)@3jPWQ>krfLNW; zTWkMs%EF$ZOz}1~U5kG_A9#@e-%JUuM$Pcm?)a@iD4z%P<*%VUrvEP`yvGFI_4Q!C z_6Jpeav+=t?Im!mkGn?SX#(mWHGx#00|L@{9yhn`^x4TvzdSciZ_s}VB)=B!zZL)M zLj~Ms1l4oZe}DVy%}h*liWC0-;{wIArUIy84S7EC4++87uQX`GddE@?#SBAv0y0Q{ zZPA~d3fRP9jr%_c%Nj=vf@iF1ihKXeV_-mXqcP)HPRRln0UWRqrG@*OPoepkq{gR} zo^}<?7>qm_q&qGB@IUPQljrBc{T(@u39C*DI>i&#oO|PUub^KpsJH%4%6?FSag*+R z(7!RP@;__k#+gk!`Jo<a8c=!=cH)YvQ(!u)op$C#AppvPu{z?{`RN!R^TtVIPcF_q zLW%0;yEyIRLIU<>pymHKwy0tQo}<`LMg5DoO5=ZtiemH=1>}$O0yX}MqU)zG2Hdy| z^Zu_Y0A3<cYtstfrG?`DurW`0;n-3EEuN=A$?7n}&5*F9j{rf<Ua47{^59^j!>aM} z@IBG~V=smqcXnj&GV~}dO44Z6?NgfSrTX3L!YA_vP+9vs&iLy$ia*VLx~zOPY7vkZ zI51&|=hJy#H{@Wf8Wnp#l5HCZ1mAp@#zPD_b!bzkT^$AB9`~*uR|2@vA6ij_vHp;U z+toa99^VRaQUz3u9`<Gm>W{1zraa>}6+CPEAg?{;K|O94D=M!2l^1lw`r^B%6u{)n z%dcSfOcM0^oWS+g!el)GM*Q1C2*{*YFAD~sBN^G<+y(=!<-a+dR2;PavQ)@ddCB|i z!&EJAh{*!zQ6qCfRGKV<5NGPa=jXGt_vyb}3d_ws;TsP|b&^AGl^03P^c-xzM><ym z^BgY=>&ix|tvNQ=#Wq3hmn`V7fHp{f9_=kdw}Lqf-RSRswb6!P(0KT}B=syzK9x)T z0Z8#4_m+BwP?M*7pHG}+*edRnzAKcL&6}M)0Ed(ubQ5pEgRNBN223WL+=C4_a2eHI z9xJvBr_82AmmWC%QYrEK=tFkPllH#Cd9eicf?rOLJ!3@yMFS(N9Ok8sejyhF-5Itw zySx5GmWI^0^n|_O5251whp(;7pIneR=G{d*JN4sOzy($u^u5^~J>ExbkI*?{>DA3q z@>zuadV-V?EpDfLDj|v_R*C8wvF_s&9{q}gW*%y=?>q5SHqu=6kNYC%n}~Au70sGg zx+{ur@E=1RE`W)#EG<V-(*)CT4*Jc5ystsW^*1}x5n(#^+woA8GZ5*iap0aku>j#b zpyvK;*8a=-j$th5d#EYH_c}Y-1$fvQntK8?rUDK{ttR7g8prAumWu-*cHRxpYHIOn zotPE@#W?0!QcyeSvit(p7DJ5VWpo)-=p)nX1-p921sH!DV@HtgOcL&u;9nLYF#YIb zA}_%Nw~Ah2gfaY9S&fos`q2z;Fu!b(?N3+OKL=Eqx)>P2Jj)m7>A|qiit^8$=f~C0 zqST#8B2mZxJ%VtO0Oct(wxtbB!<J)JheiT7uN0fYcP2Y)FjUb|;Yf$>f#OhFI(FO( z@c1+DN9SH-wDZ#_o;#^r4OCtZt9Z&c+oVOIirh-~cLa{a&-thPyu7aK7;VrrCwLo} zrNCa-M^;qg1YveldgpE6JG49%L3{aYs!|`r?7j)lVK64Wj%9J8#6bXUZkBX2+vqtj z9>+6BeHd!&JF#<YC?IIUomzp`E@_QBZQAt5T?#%Eh5)NWzCkV1v|$|Rk8$C@3@4a6 zE**sNvxp-Gb5iXP7~cDdKzV-ntnWq=5QnKg!g3DU{8(X%MeqXaIdpa~Nuvxr9ZV3+ zU`%Kw@}oRq`VhG@dvr<b;z?c&SucotS<#r%1OTafWMBHDBDTaXagT@Yvj|q4#)f@Z zV&qjjlRdW%U$Ob^F~W*}DR4f9n0uyl>(cZ)Z5lfFfR6S?%@65U;}dYE0sx)6%)ffb zTEV%|Kiq%{qU0jrA-z9XN*m+<0;8TRa5*(316a|fg53MjJm{%pT`%0D!<=`y^0KU; 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 z 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 diff --git a/process/process_areas/security_analysis/_assets/exampleTrustBoundary.png b/process/process_areas/security_analysis/_assets/exampleTrustBoundary.png deleted file mode 100644 index 47b2f11bb5b18b0d3ed2f74ee426b884cb2f62bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72831 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 ZKNJ16~(EZ8Y3z1UmE2A0DOJe?i&EekzQ5HZA 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 b?V#eR{$q9IdZz*WhDudY^AhfYMd1GdzSJm7 diff --git a/process/process_areas/security_analysis/guidance/security_analysis_guideline.rst b/process/process_areas/security_analysis/guidance/security_analysis_guideline.rst index 8ba5e8f77a..de788db837 100644 --- a/process/process_areas/security_analysis/guidance/security_analysis_guideline.rst +++ b/process/process_areas/security_analysis/guidance/security_analysis_guideline.rst @@ -34,8 +34,6 @@ The workflow of the Security Analysis is described in :ref:`workflow_security_an The single steps in these workflows are described in detail in the following sections. - - Step-by-Step-approach Security Analysis Feature/Component: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -45,8 +43,8 @@ the feature or component architectural diagrams. By using the threat models a structured way. Apply the threat model to the diagram and document the results in the template. Use the content of the document :need:`gd_temp__feat_sec_ana_threat`, :need:`gd_temp__comp_sec_ana_threat` to describe e.g. why a threat model is not -applicable for the diagram. If a threat model can't be applied or diagram address the threats , the reason has to be documented -in the analysis, so it can be recognized. +applicable for the diagram. If a treat can't be applied, the reason has to be documented +in the content of the document, so it can be recognized. The attributes of the template are described in :ref:`process_requirements_security_analysis_attributes`. @@ -85,61 +83,20 @@ can be recognized. The attributes of the template are described in :ref:`process_requirements_security_analysis_attributes`. -The analysis is done by as described in the flowchart :ref:`platform_security_analysis`. - **Steps:** -#. Define the trust boundary model for the platform under analysis. An example trust boundary definition is given in :ref:`trust_boundary_example`. The trust boundary model should be defined in a way that it can be easily recognized which architectural elements are located in which trust boundary. The trust boundary model should be defined before starting the analysis and should be used as an input for the analysis. The trust boundary model should be updated if there are changes in the platform architecture or if there are changes in the threat scenarios. -#. Identify the assets of the platform. The assets are the elements of the platform that have to be protected. The assets can be identified by using the trust boundary model and the platform architecture. The assets can be identified using the following questions: - - - What are the critical - - features, interfaces, components (HW and SW), data of the platform? - - communication paths and interfaces of the platform? - - configurations of the platform? - - What critical information is shared between the components? - - Compromise of which assets can have an impact on security properties such as confidentiality, integrity, availability, authenticity, accountability, non-repudiation? - - What are the process assets such as development, production, maintenance processes that could be exploited by attackers? - -#. Identify how each asset flows through the features in the platform. The asset flow can be identified by using the platform architecture and the trust boundary model. The asset flow can be identified by using the following questions: - - - How critical functions of the platform interact with each other? - - How critical data of the platform flow through the platform? - - How critical components of the platform interact with each other? - - How critical interfaces and communication paths are used in the platform? - - How critical information is shared between the functions/components of the platform? -#. For each identified assets, identify the attack surfaces. The attack surfaces can be any interface or entry point that could be exploited by an attacker. Some examples are as follows: - - - External communication interfaces - - Wireless: cellular, Wi‑Fi, Bluetooth, GNSS, V2X, keyless entry, NFC - - Wired: OBD-II, USB, Ethernet ports, charging connectors, dealer tools, external storage - - In-vehicle networks and internal interfaces - - CAN, LIN, FlexRay, Automotive Ethernet segments, gateway connections, debug ports - - API/IPC boundaries between SW components, service interfaces between ECUs - - User and physical interfaces - - HMI (touchscreen, buttons, voice), infotainment, smartphone apps, mobile keys - - Physical access to ECUs, sensors, actuators, wiring harness, debug/programming pins - - Backend, cloud and off-board systems - - Backend services for OTA, fleet management, mobile apps, web portals - - Data centers, PKI/signing services, identity and access management, APIs - - Development, production and service infrastructure - - Build servers, version control, CI/CD, signing infrastructure - - Manufacturing/test equipment, configuration tools, dealer/service tools, update media - -#. For each attack surface, identify the potential threats that can be used by an attacker to compromise the asset. The potential threats can be identified using the following sources as input: - - - :need:`gd_guidl__sec_ana_threat_scenarios`. - - `UN R155 Annex 5 <https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://wiki.unece.org/download/attachments/179700184/TFCS-23-05%2520%2528OICA%252C%2520CLEPA%2529%2520R155%2520Annex5%2520table%2520C3%2520deletion.pdf%3Fapi%3Dv2&ved=2ahUKEwie0--t6IWTAxXXR_EDHbXrKDgQFnoECAQQAQ&usg=AOvVaw1XygSpmzqxlOxJ4Fb59a9w>`_ - - `Auto ISAC Threat Catalog <https://atm.automotiveisac.com/home>`_ - - `Capec Catalog of Attack Patterns <https://capec.mitre.org/data/index.html>`_ - - `CWE Common Weakness Enumeration <https://cwe.mitre.org/data/index.html/>`_ - - Other relevant sources such as security advisories, research papers, etc. - -#. If a threat scenario applies, use the template :need:`gd_temp__plat_threat_scenario` to perform the analysis. -#. For each identified potential threat, identify and document the potential mitigations. The potential mitigations are security requirements, which then serve as the stakeholder requirements for features. -#. Document the Security assumptions derived from this process. -#. Risk treatment can be done by using the following options: accept, avoid, reduce, share. The chosen risk treatment shall be documented. +#. For each architectural element check if a threat from the threat scenarios :need:`gd_guidl__sec_ana_threat_scenarios` applies. +#. If a threat scenario applies, use the template :need:`gd_temp__plat_threat_scenario`, :need:`gd_temp__feat_sec_ana_threat` or :need:`gd_temp__comp_sec_ana_threat` to perform the analysis. +#. The title of the analysis should be easily recognizable e.g. "Component xy unauthorized access". +#. Link the violated architecture with the "violates" attribute. +#. Replace the placeholders in the "id" attribute with the name of the feature or component and a short description of the element so that it can be easily identified. +#. Document the threat ID from the threat scenario :need:`gd_guidl__sec_ana_threat_scenarios` that applies to the element in the "threat_id" attribute. +#. Describe the threat effect of the threat scenario on the element in the "threat_effect" attribute. Use the violation cause description and enlarge it if it's applicable to the considered element. +#. Document the mitigation. This can be (accept, avoid, reduce, share) of the threat. #. If there is no mitigation or the mitigation is not sufficient, a mitigation issue has to be created in the Issue Tracking system and linked in the "mitigation_issue" attribute. -#. The analysis shall continue until all applicable threat scenarios for each attack surface of each asset has been evaluated. +#. The analysis is finished if for each identified threat a sufficient mitigation exists. +#. Unless the attribute sufficient is yes, mitigation and argument attributes can be still empty. +#. Continue the analysis until all applicable threat scenarios are checked. #. The verification is done by applying the checklist :need:`gd_chklst__security_analysis`. .. note:: @@ -147,7 +104,6 @@ The analysis is done by as described in the flowchart :ref:`platform_security_an :need:`gd_temp__change_impact_analysis`. If needed the Security Analysis has to be updated accordingly. Therefore all necessary steps have to be repeated. - Examples for Security Analysis at feature level =============================================== diff --git a/process/process_areas/security_analysis/guidance/security_analysis_process_reqs.rst b/process/process_areas/security_analysis/guidance/security_analysis_process_reqs.rst index a49e767e9e..194dc0c44b 100644 --- a/process/process_areas/security_analysis/guidance/security_analysis_process_reqs.rst +++ b/process/process_areas/security_analysis/guidance/security_analysis_process_reqs.rst @@ -26,7 +26,7 @@ Security Analysis Process Requirements :status: valid :tags: done_automation, security_analysis :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8321, std_req__isosae21434__continual_8621, std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15722, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: Security Analysis shall be hierarchically grouped into different levels. @@ -46,7 +46,7 @@ Process Security Analysis Attributes :status: valid :tags: done_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8321 + :complies: Each Security Analysis shall have a unique ID. It shall be in a format which is also human readable and consists of @@ -61,7 +61,7 @@ Process Security Analysis Attributes :status: valid :tags: manual_prio_1, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8321 + :complies: The title of the Security Analysis shall provide a short summary of the description @@ -70,7 +70,7 @@ Process Security Analysis Attributes :status: valid :tags: prio_1_automation, attribute, optional :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8621, std_req__isosae21434__continual_8622, std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15721, std_req__isosae21434__assessment_15722, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: Each threat shall have an associated treatment (accept, avoid, reduce, share) or AoU. If mitigation has not yet been implemented, do not use this option. @@ -81,16 +81,16 @@ Process Security Analysis Attributes :status: valid :tags: prio_1_automation, attribute, optional :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8322, std_req__isosae21434__continual_8323, std_req__isosae21434__continual_8621, std_req__isosae21434__continual_8622, std_req__isosae21434__assessment_15921 + :complies: - If a new security mitigation (avoid, reduce, or share) is needed, link to the issue and keep status invalid until the mitigation is sufficient. + If a new mitigation is needed, link to the issue and keep status invalid until mitigation is sufficient. .. gd_req:: Security Analysis attribute: sufficient :id: gd_req__sec_attr_sufficient :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8621, std_req__isosae21434__continual_8622, std_req__isosae21434__assessment_15721, std_req__isosae21434__assessment_15722, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: The mitigation(s) shall be rated as sufficient with <yes> or <no>. A mitigation can only be sufficient if a mitigation is linked via the attribute mitigation. @@ -100,7 +100,7 @@ Process Security Analysis Attributes :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8421, std_req__isosae21434__continual_8521, std_req__isosae21434__continual_8522, std_req__isosae21434__continual_8621, std_req__isosae21434__continual_8622, std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15721, std_req__isosae21434__assessment_15722, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: The argument shall describe why the mitigation is sufficient or not. If it is not sufficient, the argument shall describe how the mitigation can be improved to achieve sufficiency. The argument shall be written in the content. @@ -110,7 +110,7 @@ Process Security Analysis Attributes :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8322, std_req__isosae21434__continual_8621, std_req__isosae21434__continual_8622, std_req__isosae21434__assessment_15921 + :complies: Each Security Analysis shall have the status invalid until the analysis is finished. The status shall be set to valid if the analysis is finished and all issues are closed. @@ -120,7 +120,7 @@ Process Security Analysis Attributes :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8321, std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15721, std_req__isosae21434__assessment_15722, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: Every Security Analysis shall have a short description of the threat impact (e.g. threat leads to unauthorized access of the analyzed element) @@ -210,7 +210,7 @@ Security Analysis Checks :status: valid :tags: prio_1_automation, attribute, check :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__continual_8621, + :complies: It shall be checked if all mandatory attributes for each Security Analysis are provided by the user. For all Security Analysis following attributes shall be mandatory: @@ -251,7 +251,7 @@ Threat Scenario Security Process Requirements :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_platform_featarch, wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: Each threat scenario used for the Security Analysis shall have a threat scenario ID. The threat scenario ID is used to identify the related threat <:need:`gd_guidl__sec_ana_threat_scenarios`>. @@ -267,7 +267,7 @@ Threat Models Process Requirements :status: valid :tags: prio_1_automation, attribute, mandatory :satisfies: wf__analyse_sec_featarch, wf__analyse_sec_comparch - :complies: std_req__isosae21434__assessment_15621, std_req__isosae21434__assessment_15622, std_req__isosae21434__assessment_15723, std_req__isosae21434__assessment_15724, std_req__isosae21434__assessment_15725, std_req__isosae21434__assessment_15821, std_req__isosae21434__assessment_15822, std_req__isosae21434__assessment_15921 + :complies: Each threat used for Security Analysis shall have a threat ID. The threat ID is used to identify the related threat <:need:`gd_guidl__threat_models_stride`>. diff --git a/process/process_areas/security_analysis/security_analysis_concept.rst b/process/process_areas/security_analysis/security_analysis_concept.rst index c04fae2a1d..ca704b33d8 100644 --- a/process/process_areas/security_analysis/security_analysis_concept.rst +++ b/process/process_areas/security_analysis/security_analysis_concept.rst @@ -22,11 +22,12 @@ Concept Description :status: valid :tags: security_analysis -This section discusses a concept for Security Analysis. Various methods can be used for Security Analysis (e.g. STRIDE). -This concept is based on the requirements of ISO/SAE 21434 Part 8 and Part 15. +This section discusses a concept for Security Analysis. Different methods for Security +Analysis are used (e.g. STRIDE). Inputs for this concept are the requirements of +ISO/SAE 21434 Part 8 and Part 15. The objective of the **Security Analysis** is to identify and analyze potential -cybersecurity threat scenarios, threats, and vulnerabilities. Security Analysis +cybersecurity threat scenarios, threats and vulnerabilities. Security Analysis identifies potential attack scenarios that could compromise the cybersecurity of the defined elements. How to perform a Security Analysis is described in :need:`gd_guidl__security_analysis`. @@ -35,21 +36,21 @@ To have a structured Security Analysis, the threat scenarios have to be consider categories: | - Attack surfaces threats: Interfaces and entry points that could be exploited by attackers. - | - Communication threats: Threats related to data transmission, including interception, manipulation, or spoofing. - | - Shared information inputs threats: Same input used by multiple functions that could be exploited. - | - Unintended impacts threats: Security impacts due to various vulnerabilities such as privilege escalation or resource exhaustion. - | - Development threats: Vulnerabilities introduced during the development process that may lead to security issues. + | - Communication threats: Threats related to data transmission including interception, manipulation, or spoofing. + | - Shared information inputs threats: Same information input used by multiple functions that could be exploited. + | - Unintended impacts threats: Security impacts due to various vulnerabilities like privilege escalation or resource exhaustion. + | - Development threats: Vulnerabilities that occur during the development process, potentially leading to security issues. The objective of the **Security Analysis** is to show that the architecture created to fulfill the requirements does not introduce possible vulnerabilities which would break the security requirements (cybersecurity goals are top level security requirements). -Alternatively, it ensures that the possibility of these vulnerabilities is reduced to an acceptable -level. This can be achieved by mitigation actions (accept, avoid, reduce, share). The Security +Or rather that the possibility of these vulnerabilities is reduced to an acceptable +level. This can be done by mitigation (accept, avoid, reduce, share). The Security Analysis is used to find possible threats and their effects. The possible threats are systematically identified by applying threat models :need:`gd_guidl__threat_models_stride`. The Security Analysis shall be performed once at platform level to analyze the attack -surfaces between the platform features. +surfaces between the features of the platform. Typically the Security Analysis shall be performed at feature level and component level. If a component has no sub-components, the result of the analysis is the same as at feature level. So no additional consideration is needed. @@ -60,8 +61,8 @@ Inputs #. Stakeholders for the Security Analysis? #. Who needs which information? -#. How should the analysis be performed? -#. How should risks be mitigated? +#. How to analyze? +#. How to mitigate? #. What analysis shall be done in which level? Stakeholders for the Security Analysis @@ -69,10 +70,10 @@ Stakeholders for the Security Analysis #. :need:`Security Engineer <rl__security_engineer>` - * Analyze all feature architectures together with Platform-Level Security Analysis + * Analyze all the feature architectures together with a Platform Security Analysis * Analyze the feature architecture with the defined method * Analyze the component architecture with the defined method - * Monitor and Verify the Security Analyses + * Monitor/verify the Security Analyses #. :need:`Security Manager <rl__security_manager>` @@ -98,7 +99,7 @@ Stakeholders for the Security Analysis Standard Requirements ===================== -Requirements from relevant standards must also be considered: +Also requirements of standards need to be taken into consideration: * ISO/SAE 21434 * ISO 26262 @@ -106,40 +107,22 @@ Requirements from relevant standards must also be considered: How to analyze? =============== -The Security Analysis are done on the platform, feature and component architecture. +The Security Analysis are done on the feature and component architecture. The Security Analysis shall be done accompanying to the development. So the results can directly be used for the development of the feature and component. -An iterative approach is required to provide the evidence of the cybersecurity of +With an iterative approach it is needed to provide the evidence of the cybersecurity of the functions. - -Platform security analysis -========================== -.. figure:: _assets/PlatformAnalysisFLowChart.png - :align: center - :width: 80% - :name: platform_security_analysis - - Platform Architecture - -A step-by-step-approach is described in :need:`gd_guidl__security_analysis`. -As shown above in the flow diagram, the first step in the platform security analysis is the definition of the trust boundary. An example definition is shown below. - -.. figure:: _assets/exampleTrustBoundary.png - :align: center - :width: 80% - :name: trust_boundary_example - - Trust Boundary - +The analysis were applied at static and dynamic architecture diagrams. Examples will +be added here in an future PR (https://github.com/eclipse-score/process_description/issues/409). How to mitigate? ================ -Security requirements resulting from the Platform analysis become :need:`wp__requirements_stkh` for the features. Identified risks without a mitigation remain open and are tracked in the issue tracking + +Identified risks without a mitigation remain open and are tracked in the issue tracking system :need:`wp__issue_track_system` until they are resolved. -Resolution may include accepting or avoiding the risk. -Further a new security control may be required to reduce the risk. -Finally, the risk may be shared if applicable. -Security assumptions resulting from the analysis are documented properly as :need:`wp__requirements_sw_platform_aou`. +Resolving includes acceptance of the risk or avoidance. +Further a new security control may be needed to reduce the risk. +Finally also the risk may shared, if applicable. What analysis shall be done in which level? =========================================== @@ -154,5 +137,5 @@ The Security Analysis shall consider the architectural elements on different lev components and their interactions with other components in the feature. 3. **Component Level**: If a component consists of multiple sub-components, the analysis - must be extended to these sub-components. This level of detail is necessary to + shall be extended to these sub-components. This level of detail is necessary to identify specific threat models that may not be apparent at higher levels. diff --git a/process/process_areas/security_analysis/security_analysis_roles.rst b/process/process_areas/security_analysis/security_analysis_roles.rst index 198faf7b05..3e5318ef25 100644 --- a/process/process_areas/security_analysis/security_analysis_roles.rst +++ b/process/process_areas/security_analysis/security_analysis_roles.rst @@ -65,6 +65,6 @@ Contributing Roles: * :need:`Safety Manager <rl__safety_manager>` A detailed overview of the responsibility for the steps of the Security Analysis process -is listed in the section titled "Security Analysis Workflows". You can find it here: +is listed in the section titled "Workflow Security Analysis". You can find it here: :ref:`workflow_security_analysis` diff --git a/process/process_areas/tool_management/tool_management_workflow.rst b/process/process_areas/tool_management/tool_management_workflow.rst index 9c142803f9..24265829c1 100644 --- a/process/process_areas/tool_management/tool_management_workflow.rst +++ b/process/process_areas/tool_management/tool_management_workflow.rst @@ -42,14 +42,13 @@ For a detailed explanation of workflows and their role within the process model, :responsible: rl__contributor :approved_by: rl__committer, rl__safety_manager, rl__security_manager :supported_by: rl__infrastructure_tooling_community - :input: wp__tool_verification_report, wp__requirements_stkh, wp__requirements_feat, wp__requirements_comp, wp__requirements_proc_tool + :input: wp__tool_verification_report :output: wp__tool_verification_report :contains: gd_temp__tool_management_verif_rpt_template, gd_chklst__tool_cr_review :has: doc_concept__tool_process, doc_getstrt__tool_process Each identified tool is evaluated. During evaluation the Tool Verification Report - is updated accordingly. Stakeholder, feature, component, and process/tool - requirements may be used as input for the tool evaluation and verification. + is updated accordingly. After successful evaluation the status of the Tool Verification Report is set to evaluated. diff --git a/process/process_areas/verification/guidance/verification_methods.rst b/process/process_areas/verification/guidance/verification_methods.rst index 8f6ee41c4a..44cd5aee71 100644 --- a/process/process_areas/verification/guidance/verification_methods.rst +++ b/process/process_areas/verification/guidance/verification_methods.rst @@ -74,22 +74,13 @@ Interface testing is a type of software testing that focuses on verifying the pr and data exchange between different software components or features. It's about ensuring that the interfaces (the points where different parts of the system connect and interact) are working correctly and reliably. This includes validating data formats, protocols, error handling, and -overall communication integrity incl. the respective consumed and exchanged data. +overall communication integrity. It can be distinguished between internal and external interfaces. Internal interfaces are best covered on unit level. External interfaces work best on component integration and feature level. -It is important that the interface tests include the testing of the actual intended functionality -which the interface provides. The related requirements, architectural design, but also the descriptive -interface name indicate the functional purpose of the interface. - Types of ``interface-test`` are: -- **Functional Tests** - - Verify that the functionality the interface intends to provide is correct. - Requirements and architectural design describe the functionality provided via the interface. - - **Parameter Passing Tests** Verify that parameters are passed correctly between components (data types, ranges, units). diff --git a/process/roles/index.rst b/process/roles/index.rst index c6355f959f..48d58c2c47 100644 --- a/process/roles/index.rst +++ b/process/roles/index.rst @@ -108,17 +108,7 @@ Project Development Roles The testing community members are responsible for the test case development from component to platform level. They shall be included in any requirements reviews. They can also improve independence argumentation when involved in the development of unit testing on safety critical - units. In this way the testing community takes a supportive role for unit testing. - -.. role:: Architecture Community Member - :id: rl__architecture_community - :status: valid - :tags: architecture_design - :contains: rl__committer - - The architecture community members are responsible for the features and components of - the platform. Feature and Components requests, which add new ones or modifications, are - in their responsibility. They are aligned with the Project Leads. + units. In this way the testing community takes a supportive role for unit testing .. role:: Project Security Team :id: rl__security_team @@ -136,12 +126,9 @@ Project Teams :id: rl__platform_team :status: valid :tags: cross_functional - :contains: rl__project_lead, rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer, rl__infrastructure_tooling_community, rl__process_community, rl__architecture_community + :contains: rl__project_lead, rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer, rl__infrastructure_tooling_community, rl__process_community - The platform team is responsible for all artifacts within the platform SEooC. - Additionally it is also responsible for the overall process including its support - by tooling. - Depending on the platform artifacts, some of them are assigned as codeowner. + The platform team is responsible for all artifacts within the platform SEooC. Additionally it is also responsible for the overall process including its support by tooling. .. role:: Delivery Team :id: rl__delivery_team @@ -149,21 +136,8 @@ Project Teams :tags: cross_functional :contains: rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer - The delivery team is responsible for all artifacts within the Delivery Container - SEooCs containing the Dependable Elements. Each Delivery Container has only one - responsible team. - One of the committers in the team acts as the "Project Manager" and is responsible - for planning and reporting. - Depending on the delivery container artifacts, some of them are assigned as codeowner. - -.. role:: Release Team - :id: rl__release_team - :status: valid - :tags: cross_functional - :contains: rl__safety_manager, rl__quality_manager, rl__security_manager, rl__contributor, rl__committer - - The release team is responsible for the release. The release team consists of different stakeholders like - module leads, project leads and quality managers. + The delivery team is responsible for all artifacts within the Delivery Container SEooCs containing the Dependable Elements. Each Delivery Container has only one responsible team. + One of the committers in the team acts as the "Project Manager" and is responsible for planning and reporting. Project Roles List ------------------ diff --git a/process/standards/aspice_40/aspice.rst b/process/standards/aspice_40/aspice.rst index 83040b6056..8caa666d6b 100644 --- a/process/standards/aspice_40/aspice.rst +++ b/process/standards/aspice_40/aspice.rst @@ -60,7 +60,6 @@ Tailoring | - MAN: MAN.6 - Measurements (not applicable for now) | - VAL: Validation process group (pure SW with no (automobile) user interaction) | - ACQ: Acquisition process group (because there is no contracted supplier of the project) -| - Process capability level 4 and 5 (GP4 and GP5) .. toctree:: @@ -421,7 +420,7 @@ Generic practices For guidance on how to perform process improvements see the Process Improvement process (PIM.3). .. needextend:: "c.this_doc()" - :+tags: aspice40_gp2_gp3 + :+tags: aspice40_gp3 Appendix -------- diff --git a/process/standards/iso26262/iso26262.rst b/process/standards/iso26262/iso26262.rst index 42dbac782c..6ca57c7288 100644 --- a/process/standards/iso26262/iso26262.rst +++ b/process/standards/iso26262/iso26262.rst @@ -50,452 +50,377 @@ Part 2: Management of functional safety .. std_req:: management_5421 :id: std_req__iso26262__management_5421 :status: valid - :tags: ok .. std_req:: management_5422 :id: std_req__iso26262__management_5422 :status: valid - :tags: ok .. std_req:: management_5423 :id: std_req__iso26262__management_5423 :status: valid - :tags: ok .. std_req:: management_5424 :id: std_req__iso26262__management_5424 :status: valid - :tags: n/a .. std_req:: management_5425 :id: std_req__iso26262__management_5425 :status: valid - :tags: open .. std_req:: management_5426 :id: std_req__iso26262__management_5426 :status: valid - :tags: open .. std_req:: management_5427 :id: std_req__iso26262__management_5427 :status: valid - :tags: open .. std_req:: management_5431 :id: std_req__iso26262__management_5431 :status: valid - :tags: action .. std_req:: management_5432 :id: std_req__iso26262__management_5432 :status: valid - :tags: action .. std_req:: management_5433 :id: std_req__iso26262__management_5433 :status: valid - :tags: open .. std_req:: management_5434 :id: std_req__iso26262__management_5434 :status: valid - :tags: open .. std_req:: management_5435 :id: std_req__iso26262__management_5435 :status: valid - :tags: ok .. std_req:: management_5441 :id: std_req__iso26262__management_5441 :status: valid - :tags: action .. std_req:: management_5451 :id: std_req__iso26262__management_5451 :status: valid - :tags: action .. std_req:: management_5461 :id: std_req__iso26262__management_5461 :status: valid - :tags: n/a .. std_req:: management_6421 :id: std_req__iso26262__management_6421 :status: valid - :tags: ok .. std_req:: management_6422 :id: std_req__iso26262__management_6422 :status: valid - :tags: open .. std_req:: management_6423 :id: std_req__iso26262__management_6423 :status: valid - :tags: ok .. std_req:: management_6424 :id: std_req__iso26262__management_6424 :status: valid - :tags: open .. std_req:: management_6431 :id: std_req__iso26262__management_6431 :status: valid - :tags: n/a .. std_req:: management_6432 :id: std_req__iso26262__management_6432 :status: valid - :tags: n/a .. std_req:: management_6433 :id: std_req__iso26262__management_6433 :status: valid - :tags: n/a .. std_req:: management_644 :id: std_req__iso26262__management_644 :status: valid - :tags: n/a .. std_req:: management_6451 :id: std_req__iso26262__management_6451 :status: valid - :tags: ok .. std_req:: management_6452 :id: std_req__iso26262__management_6452 :status: valid - :tags: n/a .. std_req:: management_6453 :id: std_req__iso26262__management_6453 :status: valid - :tags: n/a .. std_req:: management_6454 :id: std_req__iso26262__management_6454 :status: valid - :tags: n/a .. std_req:: management_6455 :id: std_req__iso26262__management_6455 :status: valid - :tags: n/a .. std_req:: management_6456 :id: std_req__iso26262__management_6456 :status: valid - :tags: n/a .. std_req:: management_6457 :id: std_req__iso26262__management_6457 :status: valid - :tags: ok .. std_req:: management_6461 :id: std_req__iso26262__management_6461 :status: valid - :tags: ok .. std_req:: management_6462 :id: std_req__iso26262__management_6462 :status: valid - :tags: ok .. std_req:: management_6463 :id: std_req__iso26262__management_6463 :status: valid - :tags: ok .. std_req:: management_6464 :id: std_req__iso26262__management_6464 :status: valid - :tags: action .. std_req:: management_6465 :id: std_req__iso26262__management_6465 :status: valid - :tags: ok .. std_req:: management_6466 :id: std_req__iso26262__management_6466 :status: valid - :tags: ok .. std_req:: management_6467 :id: std_req__iso26262__management_6467 :status: valid - :tags: ok .. std_req:: management_6468 :id: std_req__iso26262__management_6468 :status: valid - :tags: ok .. std_req:: management_6469 :id: std_req__iso26262__management_6469 :status: valid - :tags: deviation .. std_req:: management_64610 :id: std_req__iso26262__management_64610 :status: valid - :tags: n/a .. std_req:: management_6471 :id: std_req__iso26262__management_6471 :status: valid - :tags: ok .. std_req:: management_6472 :id: std_req__iso26262__management_6472 :status: valid - :tags: ok .. std_req:: management_6481 :id: std_req__iso26262__management_6481 :status: valid - :tags: ok .. std_req:: management_6482 :id: std_req__iso26262__management_6482 :status: valid - :tags: open .. std_req:: management_6491 :id: std_req__iso26262__management_6491 :status: valid - :tags: action .. std_req:: management_6492 :id: std_req__iso26262__management_6492 :status: valid - :tags: ok .. std_req:: management_6493 :id: std_req__iso26262__management_6493 :status: valid - :tags: open .. std_req:: management_64101 :id: std_req__iso26262__management_64101 :status: valid - :tags: open .. std_req:: management_64102 :id: std_req__iso26262__management_64102 :status: valid - :tags: open .. std_req:: management_64103 :id: std_req__iso26262__management_64103 :status: valid - :tags: open .. std_req:: management_64104 :id: std_req__iso26262__management_64104 :status: valid - :tags: open .. std_req:: management_64105 :id: std_req__iso26262__management_64105 :status: valid - :tags: open .. std_req:: management_64111 :id: std_req__iso26262__management_64111 :status: valid - :tags: ok .. std_req:: management_64112 :id: std_req__iso26262__management_64112 :status: valid - :tags: n/a .. std_req:: management_64113 :id: std_req__iso26262__management_64113 :status: valid - :tags: n/a .. std_req:: management_64114 :id: std_req__iso26262__management_64114 :status: valid - :tags: n/a .. std_req:: management_64121 :id: std_req__iso26262__management_64121 :status: valid - :tags: n/a .. std_req:: management_64122 :id: std_req__iso26262__management_64122 :status: valid - :tags: n/a .. std_req:: management_64123 :id: std_req__iso26262__management_64123 :status: valid - :tags: n/a .. std_req:: management_64124 :id: std_req__iso26262__management_64124 :status: valid - :tags: n/a .. std_req:: management_64125 :id: std_req__iso26262__management_64125 :status: valid - :tags: n/a .. std_req:: management_64126 :id: std_req__iso26262__management_64126 :status: valid - :tags: n/a .. std_req:: management_64127 :id: std_req__iso26262__management_64127 :status: valid - :tags: n/a .. std_req:: management_64128 :id: std_req__iso26262__management_64128 :status: valid - :tags: n/a .. std_req:: management_64129 :id: std_req__iso26262__management_64129 :status: valid - :tags: n/a .. std_req:: management_641210 :id: std_req__iso26262__management_641210 :status: valid - :tags: n/a .. std_req:: management_641211 :id: std_req__iso26262__management_641211 :status: valid - :tags: n/a .. std_req:: management_641212 :id: std_req__iso26262__management_641212 :status: valid - :tags: n/a .. std_req:: management_641213 :id: std_req__iso26262__management_641213 :status: valid - :tags: n/a .. std_req:: management_64131 :id: std_req__iso26262__management_64131 :status: valid - :tags: ok .. std_req:: management_64132 :id: std_req__iso26262__management_64132 :status: valid - :tags: open .. std_req:: management_64133 :id: std_req__iso26262__management_64133 :status: valid - :tags: ok .. std_req:: management_64134 :id: std_req__iso26262__management_64134 :status: valid - :tags: ok .. std_req:: management_64135 :id: std_req__iso26262__management_64135 :status: valid - :tags: open * Workproducts .. std_wp:: management_551 :id: std_wp__iso26262__management_551 :status: valid - :tags: open .. std_wp:: management_552 @@ -555,55 +480,46 @@ Part 4: Product development at the system level .. std_req:: system_6411 :id: std_req__iso26262__system_6411 :status: valid - :tags: ok .. std_req:: system_6412 :id: std_req__iso26262__system_6412 :status: valid - :tags: open .. std_req:: system_6413 :id: std_req__iso26262__system_6413 :status: valid - :tags: open .. std_req:: system_6414 :id: std_req__iso26262__system_6414 :status: valid - :tags: open .. std_req:: system_6421 :id: std_req__iso26262__system_6421 :status: valid - :tags: action .. std_req:: system_6422 :id: std_req__iso26262__system_6422 :status: valid - :tags: open .. std_req:: system_6423 :id: std_req__iso26262__system_6423 :status: valid - :tags: n/a .. std_req:: system_6424 :id: std_req__iso26262__system_6424 :status: valid - :tags: n/a .. std_req:: system_6425 :id: std_req__iso26262__system_6425 :status: valid - :tags: n/a * Workproducts @@ -671,271 +587,226 @@ Part 6: Product development at the software level .. std_req:: software_541 :id: std_req__iso26262__software_541 :status: valid - :tags: action .. std_req:: software_542 :id: std_req__iso26262__software_542 :status: valid - :tags: open .. std_req:: software_543 :id: std_req__iso26262__software_543 :status: valid - :tags: open .. std_req:: software_641 :id: std_req__iso26262__software_641 :status: valid - :tags: ok .. std_req:: software_642 :id: std_req__iso26262__software_642 :status: valid - :tags: ok .. std_req:: software_643 :id: std_req__iso26262__software_643 :status: valid - :tags: n/a .. std_req:: software_644 :id: std_req__iso26262__software_644 :status: valid - :tags: ok .. std_req:: software_645 :id: std_req__iso26262__software_645 :status: valid - :tags: ok .. std_req:: software_646 :id: std_req__iso26262__software_646 :status: valid - :tags: ok .. std_req:: software_647 :id: std_req__iso26262__software_647 :status: valid - :tags: ok .. std_req:: software_741 :id: std_req__iso26262__software_741 :status: valid - :tags: ok .. std_req:: software_742 :id: std_req__iso26262__software_742 :status: valid - :tags: ok .. std_req:: software_743 :id: std_req__iso26262__software_743 :status: valid - :tags: action .. std_req:: software_744 :id: std_req__iso26262__software_744 :status: valid - :tags: ok .. std_req:: software_745 :id: std_req__iso26262__software_745 :status: valid - :tags: ok .. std_req:: software_746 :id: std_req__iso26262__software_746 :status: valid - :tags: ok .. std_req:: software_747 :id: std_req__iso26262__software_747 :status: valid - :tags: ok .. std_req:: software_748 :id: std_req__iso26262__software_748 :status: valid - :tags: ok .. std_req:: software_749 :id: std_req__iso26262__software_749 :status: valid - :tags: n/a .. std_req:: software_7410 :id: std_req__iso26262__software_7410 :status: valid - :tags: open .. std_req:: software_7411 :id: std_req__iso26262__software_7411 :status: valid - :tags: open .. std_req:: software_7412 :id: std_req__iso26262__software_7412 :status: valid - :tags: open .. std_req:: software_7413 :id: std_req__iso26262__software_7413 :status: valid - :tags: n/a .. std_req:: software_7414 :id: std_req__iso26262__software_7414 :status: valid - :tags: action .. std_req:: software_841 :id: std_req__iso26262__software_841 :status: valid - :tags: ok .. std_req:: software_842 :id: std_req__iso26262__software_842 :status: valid - :tags: ok .. std_req:: software_843 :id: std_req__iso26262__software_843 :status: valid - :tags: ok .. std_req:: software_844 :id: std_req__iso26262__software_844 :status: valid - :tags: ok .. std_req:: software_845 :id: std_req__iso26262__software_845 :status: valid - :tags: action .. std_req:: software_941 :id: std_req__iso26262__software_941 :status: valid - :tags: ok .. std_req:: software_942 :id: std_req__iso26262__software_942 :status: valid - :tags: ok .. std_req:: software_943 :id: std_req__iso26262__software_943 :status: valid - :tags: open .. std_req:: software_944 :id: std_req__iso26262__software_944 :status: valid - :tags: open .. std_req:: software_945 :id: std_req__iso26262__software_945 :status: valid - :tags: open .. std_req:: software_1041 :id: std_req__iso26262__software_1041 :status: valid - :tags: ok .. std_req:: software_1042 :id: std_req__iso26262__software_1042 :status: valid - :tags: open .. std_req:: software_1043 :id: std_req__iso26262__software_1043 :status: valid - :tags: open .. std_req:: software_1044 :id: std_req__iso26262__software_1044 :status: valid - :tags: open .. std_req:: software_1045 :id: std_req__iso26262__software_1045 :status: valid - :tags: open .. std_req:: software_1046 :id: std_req__iso26262__software_1046 :status: valid - :tags: open .. std_req:: software_1047 :id: std_req__iso26262__software_1047 :status: valid - :tags: open .. std_req:: software_1141 :id: std_req__iso26262__software_1141 :status: valid - :tags: action .. std_req:: software_1142 :id: std_req__iso26262__software_1142 :status: valid - :tags: n/a .. std_req:: software_1143 :id: std_req__iso26262__software_1143 :status: valid - :tags: n/a .. std_req:: software_1144 :id: std_req__iso26262__software_1144 :status: valid - :tags: n/a .. std_req:: software_app_c_41 @@ -1097,421 +968,351 @@ Part 8: Supporting processes .. std_req:: support_641 :id: std_req__iso26262__support_641 :status: valid - :tags: ok .. std_req:: support_6421 :id: std_req__iso26262__support_6421 :status: valid - :tags: ok .. std_req:: support_6422 :id: std_req__iso26262__support_6422 :status: valid - :tags: recommendation .. std_req:: support_6423 :id: std_req__iso26262__support_6423 :status: valid - :tags: n/a .. std_req:: support_6424 :id: std_req__iso26262__support_6424 :status: valid - :tags: ok .. std_req:: support_6425 :id: std_req__iso26262__support_6425 :status: valid - :tags: ok .. std_req:: support_6431 :id: std_req__iso26262__support_6431 :status: valid - :tags: ok .. std_req:: support_6432 :id: std_req__iso26262__support_6432 :status: valid - :tags: ok .. std_req:: support_6433 :id: std_req__iso26262__support_6433 :status: valid - :tags: deviation .. std_req:: support_6434 :id: std_req__iso26262__support_6434 :status: valid - :tags: ok .. std_req:: support_741 :id: std_req__iso26262__support_741 :status: valid - :tags: ok .. std_req:: support_742 :id: std_req__iso26262__support_742 :status: valid - :tags: ok .. std_req:: support_743 :id: std_req__iso26262__support_743 :status: valid - :tags: ok .. std_req:: support_744 :id: std_req__iso26262__support_744 :status: valid - :tags: ok .. std_req:: support_745 :id: std_req__iso26262__support_745 :status: valid - :tags: ok .. std_req:: support_8411 :id: std_req__iso26262__support_8411 :status: valid - :tags: ok .. std_req:: support_8412 :id: std_req__iso26262__support_8412 :status: valid - :tags: open .. std_req:: support_8413 :id: std_req__iso26262__support_8413 :status: valid - :tags: open .. std_req:: support_8414 :id: std_req__iso26262__support_8414 :status: valid - :tags: deviation .. std_req:: support_8421 :id: std_req__iso26262__support_8421 :status: valid - :tags: ok .. std_req:: support_8422 :id: std_req__iso26262__support_8422 :status: valid - :tags: ok .. std_req:: support_8431 :id: std_req__iso26262__support_8431 :status: valid - :tags: open .. std_req:: support_8432 :id: std_req__iso26262__support_8432 :status: valid - :tags: open .. std_req:: support_8441 :id: std_req__iso26262__support_8441 :status: valid - :tags: action .. std_req:: support_8442 :id: std_req__iso26262__support_8442 :status: valid - :tags: open .. std_req:: support_8451 :id: std_req__iso26262__support_8451 :status: valid - :tags: open .. std_req:: support_8452 :id: std_req__iso26262__support_8452 :status: valid - :tags: open .. std_req:: support_8453 :id: std_req__iso26262__support_8453 :status: valid - :tags: open .. std_req:: support_9411 :id: std_req__iso26262__support_9411 :status: valid - :tags: action .. std_req:: support_9412 :id: std_req__iso26262__support_9412 :status: valid - :tags: action .. std_req:: support_9421 :id: std_req__iso26262__support_9421 :status: valid - :tags: ok .. std_req:: support_9422 :id: std_req__iso26262__support_9422 :status: valid - :tags: open .. std_req:: support_9423 :id: std_req__iso26262__support_9423 :status: valid - :tags: open .. std_req:: support_9424 :id: std_req__iso26262__support_9424 :status: valid - :tags: open .. std_req:: support_9431 :id: std_req__iso26262__support_9431 :status: valid - :tags: ok .. std_req:: support_9432 :id: std_req__iso26262__support_9432 :status: valid - :tags: open .. std_req:: support_9433 :id: std_req__iso26262__support_9433 :status: valid - :tags: open .. std_req:: support_9434 :id: std_req__iso26262__support_9434 :status: valid - :tags: ok .. std_req:: support_1041 :id: std_req__iso26262__support_1041 :status: valid - :tags: ok .. std_req:: support_1042 :id: std_req__iso26262__support_1042 :status: valid - :tags: ok .. std_req:: support_1043 :id: std_req__iso26262__support_1043 :status: valid - :tags: ok .. std_req:: support_1044 :id: std_req__iso26262__support_1044 :status: valid - :tags: ok .. std_req:: support_1045 :id: std_req__iso26262__support_1045 :status: valid - :tags: ok .. std_req:: support_1046 :id: std_req__iso26262__support_1046 :status: valid - :tags: ok .. std_req:: support_1141 :id: std_req__iso26262__support_1141 :status: valid - :tags: action .. std_req:: support_1142 :id: std_req__iso26262__support_1142 :status: valid - :tags: open .. std_req:: support_1143 :id: std_req__iso26262__support_1143 :status: valid - :tags: open .. std_req:: support_11441 :id: std_req__iso26262__support_11441 :status: valid - :tags: action .. std_req:: support_11442 :id: std_req__iso26262__support_11442 :status: valid - :tags: open .. std_req:: support_11451 :id: std_req__iso26262__support_11451 :status: valid - :tags: open .. std_req:: support_11452 :id: std_req__iso26262__support_11452 :status: valid - :tags: open .. std_req:: support_11453 :id: std_req__iso26262__support_11453 :status: valid - :tags: open .. std_req:: support_11454 :id: std_req__iso26262__support_11454 :status: valid - :tags: open .. std_req:: support_11461 :id: std_req__iso26262__support_11461 :status: valid - :tags: open .. std_req:: support_11462 :id: std_req__iso26262__support_11462 :status: valid - :tags: open .. std_req:: support_11471 :id: std_req__iso26262__support_11471 :status: valid - :tags: n/a .. std_req:: support_11472 :id: std_req__iso26262__support_11472 :status: valid - :tags: n/a .. std_req:: support_11473 :id: std_req__iso26262__support_11473 :status: valid - :tags: n/a .. std_req:: support_11474 :id: std_req__iso26262__support_11474 :status: valid - :tags: n/a .. std_req:: support_11481 :id: std_req__iso26262__support_11481 :status: valid - :tags: open .. std_req:: support_11482 :id: std_req__iso26262__support_11482 :status: valid - :tags: open .. std_req:: support_11483 :id: std_req__iso26262__support_11483 :status: valid - :tags: open .. std_req:: support_11491 :id: std_req__iso26262__support_11491 :status: valid - :tags: open .. std_req:: support_11492 :id: std_req__iso26262__support_11492 :status: valid - :tags: open .. std_req:: support_12421 :id: std_req__iso26262__support_12421 :status: valid - :tags: action .. std_req:: support_12422 :id: std_req__iso26262__support_12422 :status: valid - :tags: open .. std_req:: support_12423 :id: std_req__iso26262__support_12423 :status: valid - :tags: open .. std_req:: support_12424 :id: std_req__iso26262__support_12424 :status: valid - :tags: open .. std_req:: support_12425 :id: std_req__iso26262__support_12425 :status: valid - :tags: open .. std_req:: support_1243 :id: std_req__iso26262__support_1243 :status: valid - :tags: open * Workproducts @@ -1814,53 +1615,5 @@ Part 9: Automotive safety integrity level (ASIL)-oriented and safety-oriented an All workproducts of the relevant parts are included in the list to enable the documentation of the project wide tailoring, but the related requirements are not included as these are not needed to be covered. -Exida Audit Status of Iso Requirements -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. needpie:: Audit Status - Software - :labels: deviation, action, open, ok, recommendation, not applicable - :colors: red, orange, grey, green, green, green - - type == 'std_req' and "__software" in id and 'deviation' in tags - type == 'std_req' and "__software" in id and 'action' in tags - type == 'std_req' and "__software" in id and 'open' in tags - type == 'std_req' and "__software" in id and 'ok' in tags - type == 'std_req' and "__software" in id and 'recommendation' in tags - type == 'std_req' and "__software" in id and 'n/a' in tags - -.. needpie:: Audit Status - System - :labels: deviation, action, open, ok, recommendation, not applicable - :colors: red, orange, grey, green, green, green - - type == 'std_req' and "__system" in id and 'deviation' in tags - type == 'std_req' and "__system" in id and 'action' in tags - type == 'std_req' and "__system" in id and 'open' in tags - type == 'std_req' and "__system" in id and 'ok' in tags - type == 'std_req' and "__system" in id and 'recommendation' in tags - type == 'std_req' and "__system" in id and 'n/a' in tags - -.. needpie:: Audit Status - Management - :labels: deviation, action, open, ok, recommendation, not applicable - :colors: red, orange, grey, green, green, green - - type == 'std_req' and "__management" in id and 'deviation' in tags - type == 'std_req' and "__management" in id and 'action' in tags - type == 'std_req' and "__management" in id and 'open' in tags - type == 'std_req' and "__management" in id and 'ok' in tags - type == 'std_req' and "__management" in id and 'recommendation' in tags - type == 'std_req' and "__management" in id and 'n/a' in tags - -.. needpie:: Audit Status - Support - :labels: deviation, action, open, ok, recommendation, not applicable - :colors: red, orange, grey, green, green, green - - type == 'std_req' and "__support" in id and 'deviation' in tags - type == 'std_req' and "__support" in id and 'action' in tags - type == 'std_req' and "__support" in id and 'open' in tags - type == 'std_req' and "__support" in id and 'ok' in tags - type == 'std_req' and "__support" in id and 'recommendation' in tags - type == 'std_req' and "__support" in id and 'n/a' in tags - - .. needextend:: docname is not None and "process/standards/iso26262" in docname :+tags: iso26262