From 110200c404d98aacc9241055bf1e28aa7a414c47 Mon Sep 17 00:00:00 2001 From: larswik Date: Fri, 7 Jan 2022 11:59:26 +0100 Subject: [PATCH 01/13] First attempt ARSE --- E1a-ARSE/ALSE/Dataset/README.md | 50 ++++++++++ E1a-ARSE/ALSE/README.md | 171 ++++++++++++++++++++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 E1a-ARSE/ALSE/Dataset/README.md create mode 100644 E1a-ARSE/ALSE/README.md diff --git a/E1a-ARSE/ALSE/Dataset/README.md b/E1a-ARSE/ALSE/Dataset/README.md new file mode 100644 index 0000000..d1932ac --- /dev/null +++ b/E1a-ARSE/ALSE/Dataset/README.md @@ -0,0 +1,50 @@ +## Variations +The Following occurence variations need to be checked and certified in relation to the targeted entities and concept templates: + +- (Entity_01) IfcAnnotation/SUPERELEVATIONEVENT - *Pset_SuperElevation needs all variants of Side and TransitionSuperelevation tested. Furthermore, values for Superelevation shall include both positive and negative values* + +- (Entity_02) IfcAnnotation/WIDTHEVENT - *Pset_Width needs all variants of Side and TransitionWidth tested.* + +## Model Dataset +This test case utilises the attached dataset documented by the following drawings and data schedule. + +"Synopsis" (unique entities for this test in **bold**): + +- IfcProject + + - IfcGeometricRepresentationContext + + - IfcMapConversion + - IfcProjectedCRS + + - IfcSite + + - IfcAlignment + - Should have straights, clothoid/circular arc to the left and to the right + - Vertical is not really needed but is probably part of the included E1-ALRF + + - IfcRoad + - IfcFacilityPart/ROADSEGMENT + - **IfcFacilityPart/CARRIAGEWAY** + - **IfcAnnotation/SUPERELEVATIONEVENT (one for every start of alignment element)** + - **Pset_Superelevation (left side)** + - **IfcLinearPlacement** + - **IfcAnnotation/SUPERELEVATIONEVENT (one for every start of alignment element)** + - **Pset_Superelevation (right side)** + - **IfcLinearPlacement** + - **IfcAnnotation/WIDTHEVENT (one at start, add a narrowing of the road somewhere along the alignment)** + - **Pset_Width (both)** + - **IfcLinearPlacement** + +*This is a later step tha involved the detailed documentation of the certification dataset (model)* + + +## Drawings (Visualisations) +The following Drawings and visualisations describe the test case dataset to be modelled and certified. + + +## Supporting files + +| Filename | Description | +|-----------------------------------|-------------------------------------------| +| *filename* | *short description* | \ No newline at end of file diff --git a/E1a-ARSE/ALSE/README.md b/E1a-ARSE/ALSE/README.md new file mode 100644 index 0000000..02ef7ec --- /dev/null +++ b/E1a-ARSE/ALSE/README.md @@ -0,0 +1,171 @@ +# Test Instruction + +| Documentation Code | Title | Exchange Code | Test Code | Author | Data Owner | Version | Date | +| ------------------- | -------------------------------- | --------------- | --------- | ------------- | ---------- | ------- | ---------- | +| IFC4.3AbRV_E1a_ALSE | Alignment Superelevation & Width | IFC4x3_AbRV-E1a | ALSE | Lars WIkström | FTIA? | 1.0 | 07.01.2022 | + + +## Summary (Intent) + +This is the test instruction for IFC4x3_AbRV-E1a-ALSE - Alignment Superelevation & Width. + +The test instruction includes: + +- A basic project structure setup including units and global positioning +- An alignment structure for a road including the horizontal and vertical layouts +- Assignment of superelevation- and width events along the alignment geometry using linear placement marking the locations where these design parameters change and the values of these design parameters + +The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). + +... + +The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. + +:zap: **This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test** :zap: + +## Itemised Roots +*This section lists the primary entities and concept templates being validated by this test instruction, these are listed to understand the scope of the data entities being addressed. this is the documentation of the data placed within BIMQ* + +The Test instruction addresses the import and export of the following IFC Entities & Concept Templates: + +:construction: under construction :construction: + +
IFC Entities + +These entities represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** + +- Inherited from impported tests: + - *IfcProject* + - *IfcSite* + - *IfcRoad* + - *IfcAlignment* + - *IfcAlignmentHorizontal* + - *IfcAlignmentVertical* + - *IfcAlignmentSegment* + - *IfcAlignmentHorizontalSegment* + - *IfcAlignmentVerticalSegment* + - *IfcContext* + +- For this test instruction: + - *IfcFacilityPart* + - *IfcAnnotation* + - *IfcPropertySet* + - *IfcPropertySingleValue* + - *IfcPropertyEnumeratedValue* + + +
+ +
Concept Templates + +These concept templates represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD, that must be correctly exported to meet the validation criteria. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** + +- Inherited from imported tests: + - *Project Units* + - *Project Representation Context* + - *Project Global Positioning* + - *Spatial Decomposition* + - *Spatial Composition* + - *Spatial Container* + - *Alignment Decomposition* + - *Alignment Geometry Gradient* + - Product Local Placement* + +- For this test instruction: + - *Product Linear Placement* + - *Property Sets for Objects* + + +
+ +## Test Case Imports +Test instructions are defined with a modular approach to reduce repetition of validation criteria and test content, and improve vendors ability to solve issues and bugs. therefore this test instruction *imports/reuses* the following Test instructions and entities with the relevant associated validation criteria. + +:construction: under construction :construction: + +
Imports & Reuses + +| TI Code | Test Instruction Title | Comments | +| ------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------ | +| [**IFC4x3_AbRV-E1a-ALIN**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | + +
+ +## Usages, Constraints & Logic +The following itemised restrictions and constraints shall be placed on IFC Entities & Concept Templates: + +:construction: under construction :construction: + +
Semantic Usages, Constraints & Logic + +The following itemised Usages, Constraints & Logic are normative entries within the AbRV MVD and MUST be satisfied to meet the defined validation criteria + +- IfcAnnotation/SUPERELEVATIONEVENT + - *Each superelevation event shall have a linear placement relative to the alignment curve according to CT Product Linear Placement* + - *Each superelevation event shall have one instance of Pset_Superelevation attached according to CT Property Sets for Objects* + - *Each instance of Pset_Superelevation shall have values for properties Side, Superelevation and TransitionSuperelevation* + +- IfcAnnotation/WIDTHEVENT + - *Each width event shall have a linear placement relative to the alignment curve according to CT Product Linear Placement** + - *Each width event shall have one instance of Pset_Width attached according to CT Property Sets for Objects** + - *Each instance of Pset_Superelevation shall have values for properties Side, NominalWidth and TransitionWidth* + +
+ +
Model Geometry +The Test case requires the following additional checks related to Model Geometry: + +- *Constraint* + +
+ +## Expected Results + +For certification of capabilities the only source will be: + +:construction: under construction :construction: + +- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) + +Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: +- Screen-shot of ... +- CSV export of ... + +--- + +## Validation criteria +:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: + +:construction: under construction :construction: + +### General & Imports + +
Click to expand + +- All the concept templates must be correctly implemented as presented in the validation criteria +- At least 1 instance of each entity listed in [Itemised Roots](#Itemised-Roots) is present in the file. + + +#### Imports +| **TI Code** | **Criteria Codes** | *COMMENT** | +|--------------------|--------------------|----------------------------------------------------| +| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | + + +#### General +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +|---------|-----------------------------------------------------|-----------------------------------------------|-------------| +| GENE_01 | All requested entities are present in the IFC model | per [Entities Table](Dataset/README.md#Entities-Table) | | + +
+ +### Some Concept Group + +
Click to expand +Criteria around the representation of 'Some Concept' + +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +|---------|-----------------------------------------------------|------------------------------------------|-------------| +| XXXX_01 | A Criteria to follow | its expected value or outcome | | + +
From 2ca848e66fe9f92f84e65ab8093a0f468b5deb51 Mon Sep 17 00:00:00 2001 From: larswik Date: Mon, 10 Jan 2022 14:17:22 +0100 Subject: [PATCH 02/13] Update E1a-ARSE/ALSE/README.md Co-authored-by: Stefan Jaud <59165496+pjanck@users.noreply.github.com> --- E1a-ARSE/ALSE/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/E1a-ARSE/ALSE/README.md b/E1a-ARSE/ALSE/README.md index 02ef7ec..5d1fa93 100644 --- a/E1a-ARSE/ALSE/README.md +++ b/E1a-ARSE/ALSE/README.md @@ -69,7 +69,7 @@ These concept templates represent a test-specific subset of the wider AbRV_Ex ex - *Spatial Container* - *Alignment Decomposition* - *Alignment Geometry Gradient* - - Product Local Placement* + - *Product Local Placement* - For this test instruction: - *Product Linear Placement* From fe01d587f6888bae6ab2dd2d29428fa7a1e037de Mon Sep 17 00:00:00 2001 From: larswik Date: Mon, 21 Feb 2022 12:05:13 +0100 Subject: [PATCH 03/13] Added ALSE01 and ALSE02 --- E1a-ARSE/ALSE/Dataset/README.md | 50 ----- E1a-ARSE/ALSE01/Dataset/README.md | 44 ++++ E1a-ARSE/ALSE01/Dataset/Superelevation.png | Bin 0 -> 16380 bytes E1a-ARSE/{ALSE => ALSE01}/README.md | 107 ++++++---- E1a-ARSE/ALSE02/Dataset/README.md | 59 ++++++ .../Dataset/Superelevation and Width.png | Bin 0 -> 31635 bytes E1a-ARSE/ALSE02/README.md | 196 ++++++++++++++++++ 7 files changed, 360 insertions(+), 96 deletions(-) delete mode 100644 E1a-ARSE/ALSE/Dataset/README.md create mode 100644 E1a-ARSE/ALSE01/Dataset/README.md create mode 100644 E1a-ARSE/ALSE01/Dataset/Superelevation.png rename E1a-ARSE/{ALSE => ALSE01}/README.md (54%) create mode 100644 E1a-ARSE/ALSE02/Dataset/README.md create mode 100644 E1a-ARSE/ALSE02/Dataset/Superelevation and Width.png create mode 100644 E1a-ARSE/ALSE02/README.md diff --git a/E1a-ARSE/ALSE/Dataset/README.md b/E1a-ARSE/ALSE/Dataset/README.md deleted file mode 100644 index d1932ac..0000000 --- a/E1a-ARSE/ALSE/Dataset/README.md +++ /dev/null @@ -1,50 +0,0 @@ -## Variations -The Following occurence variations need to be checked and certified in relation to the targeted entities and concept templates: - -- (Entity_01) IfcAnnotation/SUPERELEVATIONEVENT - *Pset_SuperElevation needs all variants of Side and TransitionSuperelevation tested. Furthermore, values for Superelevation shall include both positive and negative values* - -- (Entity_02) IfcAnnotation/WIDTHEVENT - *Pset_Width needs all variants of Side and TransitionWidth tested.* - -## Model Dataset -This test case utilises the attached dataset documented by the following drawings and data schedule. - -"Synopsis" (unique entities for this test in **bold**): - -- IfcProject - - - IfcGeometricRepresentationContext - - - IfcMapConversion - - IfcProjectedCRS - - - IfcSite - - - IfcAlignment - - Should have straights, clothoid/circular arc to the left and to the right - - Vertical is not really needed but is probably part of the included E1-ALRF - - - IfcRoad - - IfcFacilityPart/ROADSEGMENT - - **IfcFacilityPart/CARRIAGEWAY** - - **IfcAnnotation/SUPERELEVATIONEVENT (one for every start of alignment element)** - - **Pset_Superelevation (left side)** - - **IfcLinearPlacement** - - **IfcAnnotation/SUPERELEVATIONEVENT (one for every start of alignment element)** - - **Pset_Superelevation (right side)** - - **IfcLinearPlacement** - - **IfcAnnotation/WIDTHEVENT (one at start, add a narrowing of the road somewhere along the alignment)** - - **Pset_Width (both)** - - **IfcLinearPlacement** - -*This is a later step tha involved the detailed documentation of the certification dataset (model)* - - -## Drawings (Visualisations) -The following Drawings and visualisations describe the test case dataset to be modelled and certified. - - -## Supporting files - -| Filename | Description | -|-----------------------------------|-------------------------------------------| -| *filename* | *short description* | \ No newline at end of file diff --git a/E1a-ARSE/ALSE01/Dataset/README.md b/E1a-ARSE/ALSE01/Dataset/README.md new file mode 100644 index 0000000..5c4246c --- /dev/null +++ b/E1a-ARSE/ALSE01/Dataset/README.md @@ -0,0 +1,44 @@ +## Variations +The Following occurrence variations need to be checked and certified in relation to the targeted entities and concept templates: + +- Pset_Superelevation.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* +- Pset_Superelevation.Superelevation - *The test shall include both positive and negative values* +- Pset_Superelevation.TransitionSuperelevation - *The test shall include only LINEAR transitions* + +## Model Dataset + +- This test case utilises the following dataset: + - Superelevation events according to the table below + +The following tables lists the entities that shall be present in the dataset in addition to the imported entities for model setup : + +´Superelevation events: + +| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | +| ---- | ---------------------------- | ------------- | -------------- | ----- | ------------------------ | +| SE1 | IfcAnnotation/SUPERELEVATION | 301,82 | 0,00 | BOTH | | +| SE2 | IfcAnnotation/SUPERELEVATION | 331,82 | 0,03 | LEFT | LINEAR | +| SE3 | IfcAnnotation/SUPERELEVATION | 331,82 | -0,03 | RIGHT | LINEAR | +| SE4 | IfcAnnotation/SUPERELEVATION | 443,00 | 0,03 | LEFT | | +| SE5 | IfcAnnotation/SUPERELEVATION | 443,00 | -0,03 | RIGHT | | +| SE6 | IfcAnnotation/SUPERELEVATION | 503,00 | -0,03 | LEFT | LINEAR | +| SE7 | IfcAnnotation/SUPERELEVATION | 503,00 | 0,03 | RIGHT | LINEAR | +| SE8 | IfcAnnotation/SUPERELEVATION | 513,00 | -0,03 | LEFT | | +| SE9 | IfcAnnotation/SUPERELEVATION | 513,00 | 0,03 | RIGHT | | +| SE10 | IfcAnnotation/SUPERELEVATION | 573,00 | -0,03 | LEFT | | +| SE11 | IfcAnnotation/SUPERELEVATION | 573,00 | -0,03 | RIGHT | LINEAR | + +## Drawings (Visualisations) + +The following Drawings and visualisations describe the test case dataset to be modelled and certified. + +| Filename | Description | +| -------------- | ------------------------------------------------------------ | +| Superelevation | ![](C:\Users\lars\Documents\Projekt\IFCInfra\MVD-Infra-Test-Instructions\E1a-ARSE\ALSE01\Dataset\Superelevation.png) | + + +## Supporting files + +| Filename | Description | +| -------- | ----------- | +| | | \ No newline at end of file diff --git a/E1a-ARSE/ALSE01/Dataset/Superelevation.png b/E1a-ARSE/ALSE01/Dataset/Superelevation.png new file mode 100644 index 0000000000000000000000000000000000000000..31473a1c8ed71cb89588b22d1e43537d11ff81d4 GIT binary patch literal 16380 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 literal 0 HcmV?d00001 diff --git a/E1a-ARSE/ALSE/README.md b/E1a-ARSE/ALSE01/README.md similarity index 54% rename from E1a-ARSE/ALSE/README.md rename to E1a-ARSE/ALSE01/README.md index 5d1fa93..b1171e2 100644 --- a/E1a-ARSE/ALSE/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -1,26 +1,29 @@ # Test Instruction -| Documentation Code | Title | Exchange Code | Test Code | Author | Data Owner | Version | Date | -| ------------------- | -------------------------------- | --------------- | --------- | ------------- | ---------- | ------- | ---------- | -| IFC4.3AbRV_E1a_ALSE | Alignment Superelevation & Width | IFC4x3_AbRV-E1a | ALSE | Lars WIkström | FTIA? | 1.0 | 07.01.2022 | +| Documentation Code | Title | Exchange Code | Test Code | Author | Data Owner | Version | Date | +| --------------------- | -------------------------------- | --------------- | --------- | ------------- | ---------- | ------- | ---------- | +| IFC4.3AbRV_E1a_ALSE01 | Alignment Superelevation & Width | IFC4x3_AbRV-E1a | ALSE01 | Lars WIkström | FTIA | 1.0 | 07.01.2022 | ## Summary (Intent) -This is the test instruction for IFC4x3_AbRV-E1a-ALSE - Alignment Superelevation & Width. +With these instructions the infrastructure (e.g. Road) alignment exchange is established. This test instruction use the same alignment definition as [ALIN06](../ALIN06). -The test instruction includes: +| Info | | +| ---------------------------- | ------------------------------------- | +| Number of alignment(s) | 1 | +| Properties of segments | no | +| Horizontal layout | Straight Line, Circular Arc | +| Vertical layout | Straight Line, Circular Arc | +| Geometric representation | IfcCompositeCurve, IfcGradientCurve | +| Superelevation | 11 IfcAnnotation/SUPERELEVATIONEVENT | +| Width | 0 | +| IFC reference file available | Yes | -- A basic project structure setup including units and global positioning -- An alignment structure for a road including the horizontal and vertical layouts -- Assignment of superelevation- and width events along the alignment geometry using linear placement marking the locations where these design parameters change and the values of these design parameters +The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). -... - -The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. - :zap: **This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test** :zap: ## Itemised Roots @@ -34,25 +37,35 @@ The Test instruction addresses the import and export of the following IFC Entiti These entities represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** -- Inherited from impported tests: - - *IfcProject* - - *IfcSite* - - *IfcRoad* - - *IfcAlignment* - - *IfcAlignmentHorizontal* - - *IfcAlignmentVertical* - - *IfcAlignmentSegment* - - *IfcAlignmentHorizontalSegment* - - *IfcAlignmentVerticalSegment* - - *IfcContext* +- Inherited from imported tests: + - Model setup + - *IfcSite* + - *IfcRoad* + - *IfcRepresentationContext* + - *IfcMapConversion* + - *IfcProjectedCRS* + - *IfcUnitAssignment* + + - Alignment + - *IfcAlignment* + - *IfcAlignmentHorizontal* + - *IfcAlignmentVertical* + - *IfcAlignmentSegment* + - *IfcAlignmentHorizontalSegment* + - *IfcAlignmentVerticalSegment* + - *IfcCompositeCurve* + - *IfcGradientCurve* + - *IfcCurveSegment* + - *IfcLine* + - *IfcClothoid* + - *IfcCircle* - For this test instruction: - - *IfcFacilityPart* - *IfcAnnotation* - *IfcPropertySet* - *IfcPropertySingleValue* - *IfcPropertyEnumeratedValue* - + - *IfcLinearPlacement* @@ -98,24 +111,22 @@ The following itemised restrictions and constraints shall be placed on IFC Entit
Semantic Usages, Constraints & Logic -The following itemised Usages, Constraints & Logic are normative entries within the AbRV MVD and MUST be satisfied to meet the defined validation criteria +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +| ------ | ------------------------------------ | ----------------------------------- | ----------- | +| SE_00 | Superelevation structure is verified | See below for further specification | | -- IfcAnnotation/SUPERELEVATIONEVENT - - *Each superelevation event shall have a linear placement relative to the alignment curve according to CT Product Linear Placement* - - *Each superelevation event shall have one instance of Pset_Superelevation attached according to CT Property Sets for Objects* - - *Each instance of Pset_Superelevation shall have values for properties Side, Superelevation and TransitionSuperelevation* +SE_00: Superelevation structure is verified -- IfcAnnotation/WIDTHEVENT - - *Each width event shall have a linear placement relative to the alignment curve according to CT Product Linear Placement** - - *Each width event shall have one instance of Pset_Width attached according to CT Property Sets for Objects** - - *Each instance of Pset_Superelevation shall have values for properties Side, NominalWidth and TransitionWidth* +>1. The dataset shall contain 11 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` +>2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects +>4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values.
Model Geometry The Test case requires the following additional checks related to Model Geometry: - -- *Constraint* +The superelevation events does not need explicit geometric representation.
@@ -128,8 +139,7 @@ For certification of capabilities the only source will be: - n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: -- Screen-shot of ... -- CSV export of ... +- Screen-shot of a planar view and a "long section" showing the superelevation changes --- @@ -147,9 +157,10 @@ Considering the aim of this test, other **optional** results, not subject to the #### Imports -| **TI Code** | **Criteria Codes** | *COMMENT** | -|--------------------|--------------------|----------------------------------------------------| -| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | +| **TI Code** | **Criteria Codes** | *COMMENT** | +| --------------------- | ------------------ | ------------------------------------------------------------ | +| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | +| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | #### General @@ -159,13 +170,17 @@ Considering the aim of this test, other **optional** results, not subject to the -### Some Concept Group +### Superelevation event
Click to expand -Criteria around the representation of 'Some Concept' -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -|---------|-----------------------------------------------------|------------------------------------------|-------------| -| XXXX_01 | A Criteria to follow | its expected value or outcome | | +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +| ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | +| ALSE_01 | Superelevation events contained in file | 11 | | +| ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | +| ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | + +Question: Shall the events be nested to the alignment?
+ diff --git a/E1a-ARSE/ALSE02/Dataset/README.md b/E1a-ARSE/ALSE02/Dataset/README.md new file mode 100644 index 0000000..6d13c6c --- /dev/null +++ b/E1a-ARSE/ALSE02/Dataset/README.md @@ -0,0 +1,59 @@ +## Variations +The Following occurrence variations need to be checked and certified in relation to the targeted entities and concept templates: + +- Pset_Superelevation.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* +- Pset_Superelevation.Superelevation - *The test shall include both positive and negative values* +- Pset_Superelevation.TransitionSuperelevation - *The test shall include only LINEAR transitions* +- Pset_Width.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* +- Pset_Superelevation.TransitionWidth - *The test shall include LINEAR and CONST transitions* + +## Model Dataset + +- This test case utilises the following dataset: + - Superelevation events according to the table below + - Width events according to the table below + +The following tables lists the entities that shall be present in the dataset in addition to the imported entities for model setup : + +´Superelevation events: + +| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | +| ---- | --------------------------------- | ------------- | -------------- | ----- | ------------------------ | +| SE1 | IfcAnnotation/SUPERELEVATIONEVENT | 301,82 | 0,00 | BOTH | | +| SE2 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | 0,03 | LEFT | LINEAR | +| SE3 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | -0,03 | RIGHT | LINEAR | +| SE4 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | 0,03 | LEFT | | +| SE5 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | -0,03 | RIGHT | | +| SE6 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | -0,03 | LEFT | LINEAR | +| SE7 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | 0,03 | RIGHT | LINEAR | +| SE8 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | -0,03 | LEFT | | +| SE9 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | 0,03 | RIGHT | | +| SE10 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | LEFT | | +| SE11 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | RIGHT | LINEAR | + +´Width events: + +| Name | Type | DistanceAlong | NominalWidth | Side | TransitionWidth | +| ---- | ------------------------ | ------------- | ------------ | ----- | --------------- | +| WE1 | IfcAnnotation/WIDTHEVENT | 301,82 | 3,4 | BOTH | | +| WE2 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,7 | LEFT | LINEAR | +| WE3 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,6 | RIGHT | LINEAR | +| WE4 | IfcAnnotation/WIDTHEVENT | 503,00 | 3,7 | LEFT | | +| WE5 | IfcAnnotation/WIDTHEVENT | 503,00 | 3,6 | RIGHT | | +| WE6 | IfcAnnotation/WIDTHEVENT | 532,70 | 3,05 | BOTH | CONST | +| WE7 | IfcAnnotation/WIDTHEVENT | 583,00 | 2,75 | BOTH | LINEAR | + +## Drawings (Visualisations) + +The following Drawings and visualisations describe the test case dataset to be modelled and certified. + +| Filename | Description | +| ------------------------ | ------------------------------------------------------------ | +| Superelevation and Width | ![image-20220221114609144](C:\Users\lars\Documents\Projekt\IFCInfra\MVD-Infra-Test-Instructions\E1a-ARSE\ALSE02\Dataset\Superelevation and Width.png) | + + +## Supporting files + +| Filename | Description | +| -------- | ----------- | +| | | \ No newline at end of file diff --git a/E1a-ARSE/ALSE02/Dataset/Superelevation and Width.png b/E1a-ARSE/ALSE02/Dataset/Superelevation and Width.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf83b778d6b116bee691573e2c548071adc669f GIT binary patch literal 31635 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 Entities + +These entities represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** + +- Inherited from imported tests: + - Model setup + - *IfcSite* + - *IfcRoad* + - *IfcRepresentationContext* + - *IfcMapConversion* + - *IfcProjectedCRS* + - *IfcUnitAssignment* + + - Alignment + - *IfcAlignment* + - *IfcAlignmentHorizontal* + - *IfcAlignmentVertical* + - *IfcAlignmentSegment* + - *IfcAlignmentHorizontalSegment* + - *IfcAlignmentVerticalSegment* + - *IfcCompositeCurve* + - *IfcGradientCurve* + - *IfcCurveSegment* + - *IfcLine* + - *IfcClothoid* + - *IfcCircle* + +- For this test instruction: + - *IfcAnnotation* + - *IfcPropertySet* + - *IfcPropertySingleValue* + - *IfcPropertyEnumeratedValue* + - *IfcLinearPlacement* + + + +
Concept Templates + +These concept templates represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD, that must be correctly exported to meet the validation criteria. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** + +- Inherited from imported tests: + - *Project Units* + - *Project Representation Context* + - *Project Global Positioning* + - *Spatial Decomposition* + - *Spatial Composition* + - *Spatial Container* + - *Alignment Decomposition* + - *Alignment Geometry Gradient* + - *Product Local Placement* + +- For this test instruction: + - *Product Linear Placement* + - *Property Sets for Objects* + + +
+ +## Test Case Imports +Test instructions are defined with a modular approach to reduce repetition of validation criteria and test content, and improve vendors ability to solve issues and bugs. therefore this test instruction *imports/reuses* the following Test instructions and entities with the relevant associated validation criteria. + +:construction: under construction :construction: + +
Imports & Reuses + +| TI Code | Test Instruction Title | Comments | +| ------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------ | +| [**IFC4x3_AbRV-E1a-ALIN**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | + +
+ +## Usages, Constraints & Logic +The following itemised restrictions and constraints shall be placed on IFC Entities & Concept Templates: + +:construction: under construction :construction: + +
Semantic Usages, Constraints & Logic + +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +| ------ | ------------------------------------ | ----------------------------------- | ----------- | +| SE_00 | Superelevation structure is verified | See below for further specification | | +| SE_01 | Width structure is verified | See below for further specification | | + +SE_00: Superelevation structure is verified + +>1. The dataset shall contain 11 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` +>2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects +>4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. + +SE_01: Width structure is verified + +>1. The dataset shall contain 7 width event instances, each represented by an `IfcAnnotation` with `PredefinedType=.WIDTHEVENT.` +>2. Each width event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>3. Each width event shall have an associated Property set with the name `Pset_Width` according to CT Property sets For Objects +>4. Each `Pset_Width` shall have properties `Side`, `NominalWidth` and `TransitionWidth` set to the specified values. + +
+ +
Model Geometry +The Test case requires the following additional checks related to Model Geometry: +Neither the superelevation events nor the Width events needs explicit geometric representation. + +
+ +## Expected Results + +For certification of capabilities the only source will be: + +:construction: under construction :construction: + +- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) + +Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: +- Screen-shot of a planar view and a "long section" showing the superelevation and width changes or a table showing the same information + +--- + +## Validation criteria +:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: + +:construction: under construction :construction: + +### General & Imports + +
Click to expand + +- All the concept templates must be correctly implemented as presented in the validation criteria +- At least 1 instance of each entity listed in [Itemised Roots](#Itemised-Roots) is present in the file. + + +#### Imports +| **TI Code** | **Criteria Codes** | *COMMENT** | +| --------------------- | ------------------ | ------------------------------------------------------------ | +| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | +| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | + + +#### General +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +|---------|-----------------------------------------------------|-----------------------------------------------|-------------| +| GENE_01 | All requested entities are present in the IFC model | per [Entities Table](Dataset/README.md#Entities-Table) | | + +
+ +### Superelevation event + +
Click to expand + +| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | +| ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | +| ALSE_01 | Superelevation events contained in file | 11 | | +| ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | +| ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | +| ALSE_04 | Width events contained in file | 7 | | +| ALSE_05 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | +| ALSE_06 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | + +Question: Shall the events be nested to the alignment? + +
From c6bac0c725ce6e041ddb8ba2aa76a44da420b89e Mon Sep 17 00:00:00 2001 From: larswik Date: Mon, 21 Feb 2022 15:31:43 +0100 Subject: [PATCH 04/13] Updated ALSE01 and ALSE02 slightly --- E1a-ARSE/ALSE01/Dataset/README.md | 1 + E1a-ARSE/ALSE01/Dataset/Superelevation.png | Bin 16380 -> 59148 bytes E1a-ARSE/ALSE01/README.md | 14 ++++------ E1a-ARSE/ALSE02/Dataset/README.md | 4 ++- .../Dataset/Superelevation and Width.png | Bin 31635 -> 107580 bytes E1a-ARSE/ALSE02/README.md | 25 +++++++----------- 6 files changed, 19 insertions(+), 25 deletions(-) diff --git a/E1a-ARSE/ALSE01/Dataset/README.md b/E1a-ARSE/ALSE01/Dataset/README.md index 5c4246c..819947d 100644 --- a/E1a-ARSE/ALSE01/Dataset/README.md +++ b/E1a-ARSE/ALSE01/Dataset/README.md @@ -16,6 +16,7 @@ The following tables lists the entities that shall be present in the dataset in | Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | | ---- | ---------------------------- | ------------- | -------------- | ----- | ------------------------ | +| SE0 | IfcAnnotation/SUPERELEVATION | 298,82 | 0,00 | BOTH | | | SE1 | IfcAnnotation/SUPERELEVATION | 301,82 | 0,00 | BOTH | | | SE2 | IfcAnnotation/SUPERELEVATION | 331,82 | 0,03 | LEFT | LINEAR | | SE3 | IfcAnnotation/SUPERELEVATION | 331,82 | -0,03 | RIGHT | LINEAR | diff --git a/E1a-ARSE/ALSE01/Dataset/Superelevation.png b/E1a-ARSE/ALSE01/Dataset/Superelevation.png index 31473a1c8ed71cb89588b22d1e43537d11ff81d4..ac3bb85f2ae9815299ddb620a26f41d9821b580a 100644 GIT binary patch literal 59148 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 FV1l*OkS+iK literal 16380 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 diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index b1171e2..8df667a 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -16,7 +16,7 @@ With these instructions the infrastructure (e.g. Road) alignment exchange is est | Horizontal layout | Straight Line, Circular Arc | | Vertical layout | Straight Line, Circular Arc | | Geometric representation | IfcCompositeCurve, IfcGradientCurve | -| Superelevation | 11 IfcAnnotation/SUPERELEVATIONEVENT | +| Superelevation | 12 IfcAnnotation/SUPERELEVATIONEVENT | | Width | 0 | | IFC reference file available | Yes | @@ -45,7 +45,6 @@ These entities represent a test-specific subset of the wider AbRV_Ex exchange an - *IfcMapConversion* - *IfcProjectedCRS* - *IfcUnitAssignment* - - Alignment - *IfcAlignment* - *IfcAlignmentHorizontal* @@ -57,9 +56,7 @@ These entities represent a test-specific subset of the wider AbRV_Ex exchange an - *IfcGradientCurve* - *IfcCurveSegment* - *IfcLine* - - *IfcClothoid* - *IfcCircle* - - For this test instruction: - *IfcAnnotation* - *IfcPropertySet* @@ -100,7 +97,7 @@ Test instructions are defined with a modular approach to reduce repetition of va | TI Code | Test Instruction Title | Comments | | ------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------ | -| [**IFC4x3_AbRV-E1a-ALIN**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | +| [**IFC4x3_AbRV-E1a-ALIN06**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN06) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | @@ -117,7 +114,7 @@ The following itemised restrictions and constraints shall be placed on IFC Entit SE_00: Superelevation structure is verified ->1. The dataset shall contain 11 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` +>1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` >2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations >3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects >4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. @@ -159,8 +156,7 @@ Considering the aim of this test, other **optional** results, not subject to the #### Imports | **TI Code** | **Criteria Codes** | *COMMENT** | | --------------------- | ------------------ | ------------------------------------------------------------ | -| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | -| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | +| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction including its dependencies | #### General @@ -176,7 +172,7 @@ Considering the aim of this test, other **optional** results, not subject to the | **ID** | **CRITERIA** | **VALUE** | **COMMENT** | | ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | -| ALSE_01 | Superelevation events contained in file | 11 | | +| ALSE_01 | Superelevation events contained in file | 12 | | | ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | diff --git a/E1a-ARSE/ALSE02/Dataset/README.md b/E1a-ARSE/ALSE02/Dataset/README.md index 6d13c6c..721ee6f 100644 --- a/E1a-ARSE/ALSE02/Dataset/README.md +++ b/E1a-ARSE/ALSE02/Dataset/README.md @@ -19,6 +19,7 @@ The following tables lists the entities that shall be present in the dataset in | Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | | ---- | --------------------------------- | ------------- | -------------- | ----- | ------------------------ | +| SE0 | IfcAnnotation/SUPERELEVATIONEVENT | 298,82 | 0,00 | BOTH | | | SE1 | IfcAnnotation/SUPERELEVATIONEVENT | 301,82 | 0,00 | BOTH | | | SE2 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | 0,03 | LEFT | LINEAR | | SE3 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | -0,03 | RIGHT | LINEAR | @@ -35,7 +36,8 @@ The following tables lists the entities that shall be present in the dataset in | Name | Type | DistanceAlong | NominalWidth | Side | TransitionWidth | | ---- | ------------------------ | ------------- | ------------ | ----- | --------------- | -| WE1 | IfcAnnotation/WIDTHEVENT | 301,82 | 3,4 | BOTH | | +| WE0 | IfcAnnotation/WIDTHEVENT | 298,82 | 3,0 | BOTH | | +| WE1 | IfcAnnotation/WIDTHEVENT | 301,82 | 3,4 | BOTH | CONST | | WE2 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,7 | LEFT | LINEAR | | WE3 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,6 | RIGHT | LINEAR | | WE4 | IfcAnnotation/WIDTHEVENT | 503,00 | 3,7 | LEFT | | diff --git a/E1a-ARSE/ALSE02/Dataset/Superelevation and Width.png b/E1a-ARSE/ALSE02/Dataset/Superelevation and Width.png index ecf83b778d6b116bee691573e2c548071adc669f..37b0919c95a35d00447150c9491a26e3c4b8fc1a 100644 GIT binary patch literal 107580 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 V^C|KlL7;#`R#Hi#M$9JSJz90Eb>xrGIu z(Q{#=gh1#Z^3swTZb_RnUK-CW8u%}El+n{IZ@+~Wq~JgFmx;_X&Uzi@Wv3>iyC=|~ zL>?=K82wdEK0x(gPo^Mw%BsZqnf0Jmu`^B*&&Xuy{g;Pj0?N$`Ure@NXSmq>cH>oW zv!)fyE*P*<(;XD?SqfrgG$BEUv3QDGm&9#a?^s_KGUi{@AuEhablB7(x+2@n$z5k;{oK|{gqd8IQ}(hr3?-TQgN?PrqT$$!Lu$w+kE&|+nQNh^YtMaVN)zUW znZFP%Cq|8{T3q(JQW+Q#?7hSg%<=)(ahuc~A_Pa%yg3Tchp;SuRv^xG)9c5^flSLj-3&uUoVhY%pG6^57?a7 zPk7QaxhGKX@h$w!$%;y}yL_fkRWRoMdi6sdjBJA3FkoJnyikAR$vl&RL`;D!$f_G|VQ+Y&4$SnsI=tj!cRvN3wn)(v*^TPCV^DRv)Y4?@O zlPxw3Z()975}Yl0Q;ytY(TJX8#S)KM$(>NiAv^ZFvwB(O+TX~i9=T@J4O~{i>=o=E z!oz=m)$#gae*WF2Z61SXcmMHRlZl@2I{v~8OT1}X{9_Mq(YkUHuK2I#aF!;rZO>LB z7%h#FO4HRR8pp7auf29-cwR+D54)xo_ucmblEm!;Y^lH?=@TP#ZFHQGgHk359yB{1 zwYl3b%oiD~RXWN!^{bDt$V_qG^~`(E`KpZV%8+Ir#0x`PqNx!Ao)Ddi&TjHk2}1&0G364n?J|N5c z@u^2m`?~()F+wQ~<{#_D%%9FUDyfWAMi z&K1HCE_9y%QU1obz$<$)Mpt7818MN`d|&tQ@tk#)ZoV5I&2(jp)~b75QtJHW@Y4r= z7{Ly0p2)bSNmvl2Bld$5*5-|`-zyv}$Z`8xzxX|>b?r;LL^#>o8Ox8+oQpJ-x}CO! zNvd#v7+d8iwq*dT{uy*}#BG2r$C`6$8+@h-7~k6B*(t)eGm>@ZnFk+^Uet+9wO0Q^ z&B!Ap^4qtW@#-R1B0u4Sc>?bG7DJ2V=PDm>V#_CZuS;!;K$OazE8A2?=34r;MrrQZ zkDVTR;1;ZWe;fbsdPNaSN#*xIz{t+V>0_74;CIR0Hbo=zCc3{FijI^dmFI`tT#KLM znxDGgR-Fn7v25FT1|`|wTd6pJo79)P;Xmv@@>DAw%Dli{WQf8$hqkiml;OhVFZx=C zwVoGSCU&$sIAghJ^sG^9eLlYzm%Q7cO3&>mWB+jFL{6#m_hFDFb@X&=5cEPOVP=Ajh4&{mS$I1-M7y!!o-=zoHQRe>=Wkw}C18gU zZ2DX;8mZG>Gq{muJi;JLSmy4<6y;|DA z6fL^y=iggu_isqg-0`y)vQr?HoSPvLrBwJz=S%^%PM-TY7`up;i?L!SJ4WVl0lN9{qMh^lOVy#@tb|Flyh%k@S7S_9csjcaq^2 zx`x6HyTib~S=9suY(HwSF)wutF1jtsM1FL{93JoFdVB34Y)%{#a*GM_rB;}im?T!g zFGTIfhtnQ5(x&mw-49j-kZC?;G`~a!BBE+XMtIurq8lRpiAsO+2dn2g3FQcGjY$lM zYs;N`Lo{F2ecOq3cT_^&j*<|m`JPrsf{TcVB6$CYlOZVd&+DNrZBeL$N!nyV4s~** zV=gn?1V@P_MR~GJ#StUtxc42?)i1dxXl+M=CD;$mM;7QzRljt%e3Cy}q#m!`^IFrj z9b+J>`C()%))p6|&*jJndWu%4_}H0;W^mc$nz1PbYF8MBxLO|Mw5ZVXf(Mjvt5(*G zsy1$TeKf|$*U*jWJu~<^VE5jUG4(Q5F-*SnHohhaIMfIRb)Ih~-D0A+%GI+zv zHml@R^b6gClK#D)DrTz14g3?IuE(L-dc6XZ%<1~-_41`9j|e(`;Ii9_hW2Vwd-c6# z?6pI{Voa^6Yl3?R>_j58qL$yZ{%LZXwQ$5w6~C_pOjXdr>p8~VHv0U;O_!_X4X%4w zdofAyXJJo>3p0Lw4|yXWv6MN%^XF(?(wnj}w}_=@$|Gf)jFFp62#$YM8yD~WDMX|) z%^G4^?>QqCG$7APul3gq`#;)MrrW|tFY_=(~_F*v@5 zk}$u7qJ7o4Pe_#ZL`TQ+ZT7ohwt{O423x3Ky2kx48uy>9@MNjpQe_Q9O(E7Niz>k( z@1)TUClf*f+Mi_`#rvLSUA-gjk&F#S%0NPrH&ZCkByN7v^~=n+Y&()q((h*CkB)go zaB?UCri6Fibq}uMhCI6y<&Os6jR7k~Zfk84EVX39xiosT|Tw{D2U-H;1(fYP(iDJ7O^_VxbJivlJI9M;qrh zbV#G>Ixa_CbS3C=1ZsgskV12r>2c_T@u^#ccj^L;j$EXlKAqn~&?0g*^D^jXH;>=C^GylENI&#!kwhhO3##ll9zkGc%9PD#=DH zseK$8w)bs;d!wmLFC*ZKy)S>k7fEoelM5}S-Cr>>n{UfF&90vf|ME-A501^(TDh3vypwH2i#TBxc`q^YGD( zCM?ABWbAQ1@`&H&q*W00PsH#oj%;Jq<7^>}RDs7^GKa&ZRc{JzYb)1b*$mEyY@JMU z@DyL80OR?syklEgcM{03Y3m8}%PybDT1H>;KjEZsczg+V?S|*{gMpGM=)~o{I9u4{ zvS+02{-oB4^VW9rYHI+=+)>@K_m;zL2betTXYNjoT6SS!VRW}zLe9JT`i@R(@{Jk|_bGzU zS;V|0jGzoHL8Chk9h-t|C+q9IV%RTPYX;7!8)_EnT@RB#6}{u8{G|asy{?P%`aO1i zRExZqxagM2MLcm1nX}q#JbK6H2vrKgK6P_?A;i1Lj|S1werpnZ?*Hu@mVQD#@o9j5 z{SKQ8pcuk_mm_y2W}2I4d^@ql?WIZOBI0X3`W2;+UDR= zaPOrYF(OE~*5M_KjZ@iA6EU^mrvdq;r_pF``wW{19P^#&h>PDBNaS7KbkD6|ougOO zSm)O&ktMW!&3-SJPuxB@lTyT{t`vqgp$g;YeoA7cDilhL)sa{Pt`|pdxKE7oYEOMpQ&9 z{~#CvRSgYBXNuPC5pARPgMRUya{auKg~Kr;+Kv!8cr?jQM_aS|=zb-z0$vM|-dt}~!c!9KjU1Dzt1w_khUgn4LM_V`_Pu zz)m>a?DMOWYP723aq9JycH+{}oXVl+pFPV*kj#5y>tlInaqD<{(c*7D?Y z?LDxey{9gCGMS(HJ|uH+;+P+%dX)95%xfsZAr`&+Iu*w4>hXTq1h3X?wZXB+E4cvP z@q64cAXlY91#UGN!DQ{npLcLm#9pmJ1-@7M?7P>S_o-V^TQO!AHjy@|P@a&+dno*| z6lw-Hb4yVFA#f&eF&eD%;v1r@*v}}B5Hs7nO1Q4k_PdW?@DEs~I@=dQaQH_)LA&*2 ztxnvxTofGS+u$VrzL89Y32>%xB}bK+t?t0{`}y*_Tf%82j(JZAzo_D@VMj$+-jMWF z$Z0A_891fFdCrz7LQJGa3#XBtz@x(Vw+YU@WSmNSE#BplJ*je(wytVL(3JL?o_=4+ zd$Ae?AsH3_KSIvGkda<3;s2p!yx__(Pw}0m%vmI~W?jIm81uDULP1u^e*H%TEp@~R z=W$=mQy_kcw}{jv{@hT0cUn9Zo z+Yus0_W)7~0;n6?9}-0W79eVzAUfw;Xwf15W@Myt)L2AnAr9tR{C2B2{4O!c6;BaL0OH*efcBBM(< zozi^lFT+i!Ym{3~IYuO2G5b&MP98pl0nr^XKXI-mVSuffv6A-0t_XZk)JBU5C%b6w6G-y@~2 z&iPG5T0CjS@&Sr-MtVx$q;(`setWl*@8aqp1hNvT z<}PxlCZax6$F!Mj30l;Kc-18Kduv)UftTTqfNR%F6J_P{ctatA!-t$s1^w1G={s8m zw($=5Ii0$u50v!%^M@A&X6Hm7k5#}{JR95mIXWc;b6-P-Nu^*SH%DIf*%oYb955AW$Zcj@f(_6Z%GgMTaSY<#!y5Rpfbo@6%RyC_+i;uyVtO>sUD{EKvZi z03)+hB(-1^OdVF43bkzea|8MjA*I)jmnF(kWqm|RFJ@qMlJWN&)-&(QwF~O+4+gA` z81L9R>3=qVh7(hk@M25MbwGCNX}cTtDi)N8=mrUDp}SPf>)Do!bC|wX75QS=*l?(~ zDuB>FYi^;k1wVt zJ(O3!54_rwp;q78p*nVA#KG}zH#HD-mX3UFPFK(eY$CmFLZTNX zh^P?DOu1yV)pD*C#iS@XX$%yxv&58Rce^Q6g}-|I%a4(MUDi@0CNd=CtQql;cyJDN z(SK&U|GxFW+qsYG(WU&#fJX;f7UZ_&M`R67W@Tc)_~T4R3z@Og(~TEUN^y^FQ<3b+@5v{e4R6h#1<$~y0cDL7FA23ov0rPI1^=NL z{r+D?TPY_bMF)GjnVzqGsMDVg3-Stp{`C)QHkJTXpu%n@?8a>} z{rWPt@fAOc)f~!x1;wrrp?Glc1$H8&U|887S;oxEbo{bO$BLuKV?n5l%Aou6_kHLx zin!PGq}9Qr7dATcdRob2Q(|OR&z!T{Z)de3R?d+Ph4wACCu5pOBK3;KdYj)8$Y&f^ z9AE2diK2b9y!Q97xAhvwwH-B5wco(zbRYl3Mfu=BKiXo)mO=;|RIJ%af==K1xnsHl z!@_U?Af~xZ#_mgZD}m3NEX950?#H;e7Go|sLN>Ksy_ypKw9nV7^aCE$9FT$0_bR$( zs=GSZ#BlI*s8ihd~4lmHQR~MlPt%rZ>Mw&U<)>`x(hZ|hc#kIVzc@9y&#A7N59Vl?JvzD>1CO{em zr13C@E=IM;DN)#8zEB?>-*Nn-)hB$Yrs}0%e=F7xOD2^AEUv!D$7IX5FKQ7+`g-fG ze2T|9+vY^+P2B=A%7~5)cbN>LuV25qtt49P4oDG55@NFJ6hk(~ie#TYy`jWB#3l2L zG^|i6i{q(6++`M-kH3?@Gv&mK`sHq9EoZ}e_n65O+=WYO7wVpRmZ$fy$M(9q@bwHv zrMXSMAIM*pi3Z;AhMNu9X{d;XKN$N4c~)CuUWhOIX13{xJwgrm5S3=H+pXOkvW|sZ z4c+kGS)Yc;GW_7#L2TD}ZiXD|um14me;sH&8BwnH%J{lm2yw2NlIoX)NwoT92lm!& zi?&$ld&f!0NdM8rvQK>|g3-FCGbTFP|Kmr}cr&a3G|)O0FCm^2ow7M14`cSnZid%VFN=E|tX zOAsGeax6ZssNO}M%enWT?HJkhI9X>!R)mL@kl;b0FY5Fa{B|6bIuY<`w))0?Ee7P6 zqq#AnTxh9{V2PPhDZ(|6=N|TuBh4#2$vY0c!Qz+|Rwaax4}KT6O@6Hr3w?XL4J`P2 zODQ*MM1R`DB`71X+}+*BODzZhdcHkf=T0IUNz?wIsLo$APs{xoR&8x<+SmpPh34y& zpzrPNRUIQ?C2o7Bq<8K}7L8?;mO3TqNs(gOv{o|FhFt!%ZK1t6yfIdJ1%x$DCulp> zT)hh4yzwR!n!TCK@aucmk?)k9b8!_h%vNfmfTfq~9?`E-v>xRq^{T$+{8`QLfD)(O zhkeJ+RIlTIe8|rgQ>O^s^n&d29vQ(f_Aa42+E2ug`f>QZC(j_hD0n`9Wjh1p_)=~9 z)Y*mai^u1j&$qYcWtF{w7Wg49?j6{Q5G8$m$`lbYYlj}P{pK(jEY*5yYRYkK;2u=y z?Jd1ZyBm1^1g#N}M&OBdm} z={BTm^bdi^24d&)FOV^Us@!8|ptV7nM9F*0Et9S8bN*E#DI&Jmnbe42B0TT4XkM= zQ-obP)z#HK`zjgJ=LU5(Lzj2jtC;<=uKZuL6P7G1uTf2U0nK0SWQkdWAA@t|5fTm? z)Q^KFKkr{q*d~P-aDDu0W;>Aqf4IjGbiCN~z4Ro(Kz#odY*yR~lgsJEjw)3z_(64j zBmZX%jgkUUz6eM(h6W2>UR9L<7&w#D{bjfrb4=IEhRn(>uTAV#WIc=;u~{G0)zw9_ zYD%p3Atb`@05g8Hdkn2j?oLELCfF-xN`c#W{grIw+~$C&o|^pEfnvSWz^8{3m7~Rf zsj0OJ;SG(8^w=gcYT)v|E`i-HwizUKTy^u9W%AB@QXopI^SYcePphD1qo@&{Asg9Z zS~6GKFV?DOUmsLgCz9IrrPeaA_ z@U%AfpRzUqkyAHzChO)KOe+7hbzK{ZM)aLYZ#{#-AnIQWk;icpT6(G3Qp*0$Oo#Sc zF{Tz%?{YU%+5E-EE4Yyi!rvHISQ);J832t0+xM zAtj7(F#xB<{utxxLsNU5UrB6N!4lyjOfab*oDwTzWg%8ou^k>{* z9`!UYU%s@ox0lt>AVnPo@$)Y9>1hjc(B&g0Z=KIr2STDLduGUmzh(rLsHiJCZ2~4e z{YQxJww*gu%T_|J@qtE}|}NO73q0V7D{ z_PE*ih6Wm$47J}!Vz0|5!8Gs+a#K@_GApkv<+C0&?oSa#i%1RWOlJ6Fp)`F;n69>M zrnVmPPf<5X4)Zuywq$Ji~$eRa3?pILxG%eRRSf9;f(g99Su`fBGI z-{Gyabp1OQVH#l6#b*`3etXn+S4fzW&6ZVGngPrLf671f?OA|sfy>0L*(0x&K0n5@va(Xm8`1B5CXLb2#(j&+@gqMo zoLB#?5cO!05pD4qvvSg{a@`2<<)sR=z{6?i4gG#-s2QR00;|0e)T-*OtE*Xi*d2kl zYpSW=!NT%9ny>(P)xqZW+r5RS2-74#2b%Q?apkD~6=r(hP&3tkTqxiSF5DO`VCCR& zw%ICu)k|4-vJf5;9)94F?4|c5ocy5>*<6ShC;wc{Sf)&dpKigCyEr}0GbLyMghbXI z(3a-huV35udbUVdl$*>S;jNW~0QU&K>NG{ZV9ERG-ur}*%zrhBQ~~TdCR`N8Toh2L z8H^d4&ISd~$ucXr$qtZ$?}a6Vydxn&&^5KGArl0C${EiRcQ!blN~HK>RB^VI6zyu| zjYv^&6XD%phD-W}X4G*zW=7@K*HeS-W6#qrri<})qrAmYfnRh?O!X?G8t5Jh%mjfS zR3O!$?NN^$6t+@fzuAJMN=!=X5oHNAfA=3<7S0X4Sirpocg_BFuj{uiEU zg36vQKxN$*p&*h$$wsPv6J@GMH~XQkCnEYU2Hd|>l7EURVuJ6$Oz;G*mCcsCe(~k~ zwmwPCJ&ce;)fJmFl1Q`beM`u{8FCGaJy$>EIsfP?Q3TZE=QVdD*Y=Bjh#|c5LHW8i zg<+MCUR$AgwBApj$G)V$PNo2`t>4BBPkvm9;ubJPFN zw>~8VXYmW=MiyYr&CSJAL()YJ)vlZ66KML1nLpWPshwHj;=HYwpSwV;NE85IJcXeX z;QfOI&!GE^zXdo;D4q}!@-GW6B1OcIYM1a`boR-ukXQKC8!G z6Z3~S);}-498$u5)*(6A?7%%ghrGFK3J5!|@vDzLBp>t`oT1XKnOnTyOBJG`HN!}^ z-^_v^F{C(Y- zRvHkAGemgE%$voHC^Hdo6dvCN^`6O*rTI4Ii@o{{oli{tCR&YLRxZtea6aj9wB=4< zCdMnrtSjRtIw`|Gv|}pJOkJcSj@tgH)2mjkRhbu*fEdb zzUueygoLQxV`t~xU)bgPdPr-Q8Ns0XQQ^i%g{PgKE2KDRI6;Jf1VWy2UHw{G`y!mx zUJ)IkqyK@`nOBSCY!ewLDy~^E#;MUzthTwRF35mUb&^iZ%3sTG z?x!;BXFkbiUeJ27hVErnibk4{5Rrs1e-6RR-$J^p%sBp+ES0G=3Y7=vxUez0F|{#~ zD)`6qns_gGX5>aM5JCiucD(x}rk*TiRSb0^-6#v-7}Vo>R#-GH&ypN+v2PMB>O9-z zVxx&{GnDPRSzrH_^S0dC0|K0*%+pnx=#>pi7sEAE#V``)aMt*HvXN#W?4;g7q-tV< z^Vaov4xv{G;!RvOq7iBPG(o{^X{y;zzKH@4ZI|n1XW2~%y-dy*4F&2TS~B}UPCo3! z>TVM@y-h7knXWoUOAC}@rK=V5fbKaYm*b^__|(*CH6Ph{9%uhFmO;RcIB7itm007h z5_HDNLea){^zg0ePx@&p`pBXpNxNvW0lp^n50=m9W9~j=%%5wO~lZYvWmQuA0qRVQ9;bIg>q_R`MW03*@Jl6X44WK$lUrEeIkR4Z2)&^DY-^ghtEMV4_ zV9qU&fANenu*V6=iLJw?$BWzYrg(1(ZVvMIzf~F4$Ds~QTNH{s6xQY^kdJ*)(N>tc zQO_6#KM?KE3eY#9dgb;$KIB3ZNDDVokFK`4t&k^T3foTNb`~?|d%%}W<|icAJ)VI({Ml{_@MJGy#iy-lhz6)n}uEGOn835T=O(MqjG3zuEgX1qam0A~=#In@G9C8OR4jva-#o#>XW#pblzy7N zDu=0<<~k=#Eu0Nyt$y@3TwLY^{u&u@mVmOfcCmbrcd~n3F+c9(F?saPvlZ2Jg1E-hHtZb9kZ{&f0^Kc*>#yN*b5hi}hQloQ0ogq+)En1uffpqcpq{qBI`m96?8q?EZ!NqoX14G%f)15YQQ?b+QCC0r z{WhcXXe_YB+TJ*=auFELE0=DBxVsMr!q~c~dPyf}O)8|zJGKCk0P==xYsbLalx2x6WaslSy1h8!7g@>Heo{5Ls zvzF;wUgB@KBp>P;{8-P%V8EfdK3XNK^BF!rI2$cgYWnVejBh60yx5PJQro9R z3eO|GxBc!>@esJ@9J(wI{QjX%5d^9a)Fx zFQ^A%hHdzeKefa%(kg)-Th!irJdj`f_wOb0^~lrxV<{fQo}3Be_hYoCp>dxrJVbmN zVzHOm(|g_4vcvv+@=FfA@k(85>RNsi50m&EpJ6NK9o;*^PkR224hpZeIFv4%Uy3GGj)(J**WVPB*Jw9-QLQ*bnX}i3F6njT)vk#f3J-3%H0*N{p zWumaxto2ZS6JmSoN;;sqpUOS%pEim-v*4bc()&<}^TTbim-F{;T(LRRn|1^#5++_m zP-V32U9bDvGN;@|Ys&rIl|V?%ec^Y*FTrvC3Et*KB15p}B7%L&>iN@G zaod0i3C9RY&E3;AaGG$@AOChZP4z27xzR1VfAumHD1 zdjy1YLMnQY4+q@>;K}LZp+QzR8=Mx+!e1smRSp-aJ}K`UVoh%mBWf&4()z9xL4MSV ziw}v|Lq!E$31uM=kWp;%{S}%5qjI%Ji{p56|3J&)i`ns;>k|+k^UQ$Gh;#I>6_cX+wIdLe?G*>_@3;4@qwFt_i`5SOwt zdBi)E;duSAc2|7+8vClsos8!5!=alJ-Etk9sS8`HG);}>9j4%F){_y^i@oX>aE>qN z;u^^fq!hHF*cC?F+HYS3BZ=#vvSP?-lvE>U-5f(ZuOI|D9!Yb)xwpL;%f%Q{rTxV$ zIR2bvDPy-w&OFkG3bH#_Q95p79kaUFXG`p}rFTI?@a)lL-PVWZMU&9Z*PE7iw5|ve z#maP6h?$=*EME&st#kSR3`|hdiM=AA>0Ua|UkB^^JDFRlkWbTXL-X_e*Wy!c7Mk6k zZBjKwLmJbJVOo4dM0f-M0Q~n(rp7+(Q~Dn(vwKT)KOP`}CxieA;M}0QwGZ>bI^bvI zvH&47f`79!7fqgOa;g8*&z!3Nr=K}<{@?qV2-UlfG0jCZwpj4Nm-EUN0%1Cb>`wp` z#mu^KqOf@v@jqhJ|5I4*f5PhjmcstuF2@XSH;ody1++5yXz|!fT2#~#_?35@k6EXy z2LF+l@(qEKU_sVu92FPj&>2LOLb=T})-H~2f@smLuj)WiAUgTB_zggX9?`*!Gz}c} zU|<+LYDHPIAPD}yeTDy*_xf*_`-gRzw}jn!08$K?^@fq#+jcopfZ1^WwI3*OvvYG> zMho;xjGNKl(}+?IWvR%zxI6|N7%=SNd&E)ZLdC9TY=#0%&d@YPCTEDWG=}3!Pofw? ziJ1gE?%%%;MF1h|%b?|lq@>Lgej>agAY-zgkS1KUEsi&eOfFZE-90fi@DCh}694m| z?&~>O;Jxp8Ec%*^xxm9sq~DUa#gexMs;HvD`u@4I4lu z>PY>E@43bP7v*_3fot;Dp+|h$CJ3dYl$=!YSv7lo{pk-KD!e~$5%fzoYqO~79y;~7 zt~+PWEp_JGO|L}(7C=dL_uV$FT}IX_990P*9Y_ornDNpB11*BXcn)oEyNr z7BNQ!J|mt>5H5WdsTs259kAr>?C!>Z0O3H`gJDZF25?cY!j0|i?HDEHB!R)f2Ua_2 z@590n=>b3Zwp3eF&Up||H=#gxpfgd6I}lpL=!o#FeM}a zeS4w9Bi~b>|MJ<3yAmbw8&k>*dN5-0r0o?CzyXN$p`nYBl}{Mh(0ql-?s#}?2P%Eu z1kn8_4Wx>s@YbI^AA8(@hYveh4g*CJ=n%lB?{RSSI_8&_k^rS1#p8J6&khu->Luv2m{Vro0_SE0NE@-4ihAVs}~iQ_Ru5u>t#` zr3$)=2>#-}r5>?W2ZNn_hLcT!W~@%b9&avqzYU$y^U%N!9Zn)O@$~fcGe%UG!qc|S z&O9h^u_C9=%gV~W028HufokO7GJ)wYSSpHEE7zwqhXYO?p#wS% z=sm6b%iYvqCB<}m%G*z!kCXJ(!;XdE6EKFY2h}q`hK;bSFhoQXeELGABpP4T8c4Bp z`Z>^@@-^Ai9RW5R`6{@IvWs!=zNKvXNvHX049X1J8tO2bjOnIB0Jhs1s$1|*x1a;W zV4#T2aQn>zrh1MBN26t1BhQRMOQ>iJ=n)2O`yw+dcHi@h{8#_7RHS?2c$ons_tsN+ zWv$5+M@yx{M~;NivhBRMzU+>0w-XKJ22NiNE(c2TI5SbXN&<@su|SnEcq^uBcvVOx z+#U=FG!zI}l3+~(F->5}mM;2+UQtHj9m37f#Z651rv=?2t!D=10u;hGHMd)bea+me zmI9dbUyK3hzMX~?gfH;TNA4H|uXP1yeRAM(!N+&|T(owtLY3$3c`YxH^!K84Q2rVa z!T+G|p;gb%D7-BQ(vjz)%6?2M&POirgk#sLAYGW{377~b2P?hfjXvU>`c=MgI6hR= zgA|0I=;Iz5ZS&pT+}wQ2UiYHTjeEQP*su+OAXxjO%T7#8=oA~H0YAqtH#axUl75g7 z%z#5Du9;;Wbi>@TJ}afJ`%e|L*vgE0_ev5Nfy+D7C;P4{)A1*U+hHihMb5a#On!cU z)UI^;$*#pUy5>QT&a2v@%dBI0KEOvW1aKO1o!L@j56Oqa8^iNKhTi#dX{5*=vuuGO z=ogntvLD940!TO^BY}_ct~Js$cxzS>RC~B>;jzCh>{)gLd}9`#!?OMXqaVTFO9`l{ z$CFpF*8i+h`iVKWb*MtHy|7%;kmthbR7Jh1wr=g**4tQ}y3Nh=v}&6}dNi#$>~ zZXD{KT%WQye@WeRz4cD|%M{6{03y;`K;moz%S25>BM_JY=@}Uq2)f(RP1V7J>&&V$EJ+yDg0C#|2v1EZT&>Raveh=;e#2n!elcj)f%Yv7X8dbc!AEeoqX!S_tGFN@IT15Uu7l| zTW=GA1QEuf`Q_UwaG$^j!aN=iRXSzoV?L|S;1*M{U``-sL9`DS=&Jw4AW9HW_pP?q zLjEVY+&wufcG{OuP&02N;jt~{&!0cPXysLZ`W%AA-sA+$qRXnetz9_b{T~TL&xZ&e z-#-A{+v^ViAF*ZU0aYf(;rOyPtD8u4c0Jzq4M!Yy?xNB$Cz1L_;>M?GqcoIv0qQCC zzVv7;;s^$)+)%xEVkF|tVO1GB>HqpopEZJyd=ZJhXkpf``Gx@Lc>|8EM%(J5$bC| zRqCqU_R<&S1yX>wkWpV>ud@ahvDl6Vj)C@Ya_ZX- zXHySIv z!b@!O7gjNskYl3V|B7De@nqGWRq1PBQ=Oyq`u4Vqh|`qV@Rlu%&VDnmE$i9m6^bJ` zz%l6|p_T$&uGt=h0va6l->GwtNP=^%7>n((->&rBMHE+#XU#!Idk02d^R4u!?&!=H zXypZSnbK3@{LAZL(1gK+!6FC#8%nhQ|IKfhNv)8QmWuqBIdL&GG4X4hva{jYfCT@& zowc>O7OHd;#!IX@Q0GMd^y$+>_cD6p8K zrOdiO8)cYVz!o1Jr8^2X5AekI1aK8$t~4-#H%J&WKanOSL>;|y#C+9C>!JR5+L|P4 zw-kY7bQ=d%w!kV~j8e)zSr^55;Tzz+xq;?SCqcN9*7oxK)Z@A>*8U*t)P$ma$|alw zRrTlo?lc=m4qmA={61zRgO5u^Iag^{|0A+kfZ*vy`)J|eM(sHwFRhN!@fnoeS049R z7B`ued=Xj|C{vkOmHnjl=ppuG;z+Sh{xV*TQ)kkuuD5r1yP9G0bGTA`CU{rkYDqf? zC%(bG5!&avt>?q{$bc;1H~Hrs*m+F@R<*pY#F%k?gJiHq=94kw$dX1>GU)Ld#5UUL z&D!W_(i?M}>giuctygyO?;IRw4n?zOJvOgHTgYg0DUyk*mN#?R`HC8kzfu6(Dq z=e_&3jwxz4HWts2C&!e8gS&5f9G9@>_S^BAmLsTqgFh_}Fk=tYQ1@CvKHS=Hu#YA~ zB;S5s+NL@4S7IeT7az%Jo)&hz|7tdksvxOGgv)6KuZ!;jk;Tj{2C zfle48CgYEdnqjqVOq~j%`2WZr=8Gb)t;E)gx(;1iH_(u^-*A?5gm~Q)Z{3`B$=mNi zwm(>j{7>OSzYS>5r)i~+S?k4vrwyx|j#u<*gs7Nq+I$t6ynoTi4^t3M_=m7aGezdf zNH#}paQ_F-7NXMR9jArwp*BNSUFDUMM)<}c)n@%4N%H3*A8}I5sQ2Wy+Wog9FS3=s zr&t@no?}@%k!AEOjE*`9@j@Rsy!UvB%$CZ%^jh?WOG`=?gEAdoC+IS$y;_cNg0fNk zl?6#g$Y7>7zc7vc0%=7oIm9y@1k2Em;&W_?gKlr}@LDAxqMgFZRCT8pGbP_!qR_4VrwVD*FTZY5h_D!sBZh{n5Ac*o=TR#AM<=>=>P^ms}%mGcF`XiEb0fV{~aPz+#8y95+c&u%1k~-ISnNu#@ zk`<_|_H3L+Rnx)5$`3Q|ej68b8__~~oC^6;RFj`}MBfRZdcwc+8$KL+5<@XxA^oXsx}?X5>v1wy3Pl0247S!$27|5J(GFGnYi z`1q)4mj|*76hP$xzXrexLir_8CRJwG5p_B_#f2s~Ae&yU^fwUEW1&ol$x50AisMvS zPpTw|`^_IUgNG&WLQf(OICuR3^>Ppe@dFeEEVCK{;t7CN+>Q%v_d*ihy(>pNyKJK$ zD==q9NZ|2&n({q85`@_%TT0;4B;rCYV{ZmT4Y|m^a{j++Q&DjcR4Vsx9AtaI?Wp1p zCV2VBmjrOY4du#hQ)cUAI-l6Y7j^oq=V7G3NUFp1i1k*Y*QeA5K1ed4Z2WH z6k!wzRRsTPLMrg=I=r)vev9%91N;T;L|?`%?8$A)fAky(~!v@JTIg`QYsU!$sp)tevJKCZ$Gsiae`h<6YGH^ppP0bA` zQpKL9Z`8&nwI5MM$dpx7;JY!E8URoR;yGMCSDvyvX)+mmS%T7xPHEiOA3$yy2wy1q z!vLc?{y1MdD zPEAoC5a0BFkhuKy-)aJrz6`om-@YC>a}8v>lW^CEeEa;DWsVdMCAn^6Yow?vArEI= z{|0D92fT_Cd9 zW7g#(|BFa%6;W%^<2GwlZmnu;bx}7Gakk&AcmUtUy&I zR=i=ygqYL$Ou6KXPKP8-dv10*3prLyezFX!av>6-o#nND=OfAdn-)~-&O@{odNIFL z+Za18FDdWkJ=?%fj7m*iGy06)bPgNyfdQuWv%Ky8z}DV=_W4!U?}LgX2ZogEQzak0 zr-tL&TvMyi6ah!{t*tF@+mCpV<7p>?hSL?QqGb@2P1n|rx!^V2-hW|O7TmvbG&VG) zqDcKj^^wsP&GF^i--Jx?tjCf(-XsuEFJ`eEY%RkvR%~mf5A>S6Kcq*o87wbhy1=ZN5dxgul&K&BN$sGH0d?vj%Sucp8_348B_DuwJ_GUkrlJ-#Qnw`~%}?3U1Q zfe$=Kt<=?voqTDfGx;{Ir=%kA)LJ;f_2f$Vg@rgZhOwLnl&5%6m)r$X+~?XOd73W7 zzVF!Hl59}*odi{Wdp8yTAXI1xcV)_r&=Y~G?NecJ%Hl1-iwF9YWra>ER>?nz|0SQT zSb?kwp{r$eW!9d(Y_Xsqmvcm0zaH1$Q~j-t)pH}GopIhN+M^q62dn+AHts{S_g6sV z38h{EJwn#XiVY|qju?-=U1$#moE;@6O_{cb9+r`#U#K!<(p5DB;ZG$qdIw8F_C=azFb?Ixk}S2kU(5 zu2^iTc%!Edtyyr|aA>!>RXzdz5@uWUizNc$FW~sLxIF6{k#A~f2F!qA?||7N#e)D3 z6@eA)$JlR2!YIHXjF0Qcsw^0%WD?)G6QphEexs;vKWx_dgGf*w=}E7+%F{s_l0u*3 zjP5psa86r~3zM>n>inHs*oE55;m`{akAY?tO$m;@g*{0GaqD?pOK( zSN-BDPGBed462Yj`n)LFyKgQmYNIRzkX!mC!(?Ay%Cq^)KIYP^y|^ zXQ00qE@DJQ@X-0J+k)L|gH}l&qZ%khUz6{wacHTny16~evSzZ9x&FKCzuh^x8v>ld zfHNwbCr2qy&KnIi_nq@w=liWQf6ba1hCTba_ukiiUDtg-zGw@(&c6RJe>IsRLz7-l z_wML1n!AuQ_OunI3PRdjUO-!B){06{?Bjf!Dg3KqpvSFZ?+nKDVqVp$-&sQEb72COT7XW$M6F%AL}=WS_ia zummhd1!`E#sI;atS;~+=0%175p>51x!WsGgDHRbRF1372){fUEx@6Alr9oTlJ*{NY zlgN4(^S^NBv)_CC%bRHPqBHii>}hM@&S0BQJWupi&b!dCMvLx{AQHSu|sm_8f5{Hpuzl8^=WqoPt?7KhHwRiiu=ZIowis+O`OUXwm0UfUB6yEr=>f@Q{tebYuyyI*(p5ZWMfmz+zt!dz(<#-JM;#C z^Za}@X4?CiOg87=S28m*cT^tH9irR{oO}gXIqaG!=&#SQuVd+NgOLi(f2us6;QZ66 z3j4qJHl}&ybg>H|!a=!q=Q1i_aA&60C*1Vdr4KnWI(qf$O>I1T7poL08WKcK&Ynd# z+#MC;ZMkJEUgu=1Y6D5xuoYVHLP3v!v;g>=^&Zw6%n}Xd1|0E;fKQ4C=ZF5}>-a2s z*n}f<%YaHjYnsso9EYLm^U$NiIi2@~babz&!Owgh#VE~1MjRgI6WSgd_M5f`)8qvj zp3t!{5n=2Z_lMRkw#zSuCIFvJ|KXVQ_WCK)oPt+&};C0KUo6h|I8_=RR}cu2=x zzgyKXW=m3L$dP!dtV?X)s6vc$0G0@OzQ1A}h$SS%lqdG-_edw0JAOUqd)CgNdy^litB1hqC&JxLtR*jAVLY@=XpMYS6IF8^a+95cq-+Rp zqz|Tbq|jl%Up{nKTRqJEtGXDu&Z@FQDP{Lda=gk?p~|E%pZ-hj@#|j6yDqSe+Jh&D zHPN3G!vu3i+s%Ih7%K1E%g;;WA?5>RJXagknn8Ar4LXIIx&RlKcqdd*J8CriZh7P|A_*gcPQF(S%zr zSc-0lXX@vdjVAO0_lqh6pMbwm45B);S+5tzeLISL;7kOibj?V}fe{J`6 z=|oL&K}oWs@rXS;5bb7mefLVq1*^OM`cn#1NpNOfz3l5hCOs^{;&+OF2q5B*U& z3L{_y48D<~Mpo8pi`W=c2TBxN4!1M$@sZkk-6T~ui45uP{>?QlpEoAaDp8bVt(1jC z8j4z!3kst*DJd|KJLy^MJv_)tN=hv4?Brg(!k?L$8J?SqEHCG3+yyxzIrQC9^U5m~ z!(Y zX*E_FeEm9%LwJIg2aeLO#I?}8Mf0FgqJz;ZZ^-4 z&AYJZI5kCg17AN`S@e$RI2Tavxt`TWEc4fG>RMg4EyTP&OyyY)fE^DW8_t zSz0ONZpysE6*k5u-8+a=iQa{gFl)!FIIA8BHlr|~Z}s)$^YinT*4CY%7NcZwC>V6F zadP4&A|^(B|BoLsj~E&0czJ)ztH=2)bJjKH4HC_*d^mLI7&Vzt)qDTTnH#@Z6ngKE zgeJ#F;V~NiS?4#pzOY9`i$tw=o+@e5B6*gL#T20>AT?0t#sueBqQ zIxqG$s%Lv&|F@jlY|RPlRi;}GVmPr+YIqXMbn64bkmsfe5R_9++IS*(4xY zU`cDAo?f8B}kc^c3{IlE>5KSZrNjDxs@(a2MVu`D`*aw(I+F6Xu$WA}X_Rn7nw6J|uqEG+(j3 zZDndsNXVBu?D%9k(vFgJpWxcpzX%!2NtzJdl5C@q^9i>N)= zSFuel;*c}xp&G`}+q56y0ST#r^s(aLN{~aJ-vf(VDO1Ji`rI)xDhjObAuod!1qVi+ z0sHIou7YzK!Q9o}Hq2-UL1><{a(T&uFWGSWmn`}};#iJ zgDfUk^zIJ`wBGF6=jj?~YqP)vQ~DHSc$QZ)w_Qv{53ql`AXPM&86T;f|M0z-C1&Y! zYMyXI1^|fq)^J;JqjO(F-_etc9OX^r-m>g;_6t_r zhioe!$#H84+fY~T8np?(&Be>X@K4>;q(LuDAXe;}KY3*R@WCXk5Lq@!@-f}K{nYTV z|Lv_WjEB%d_<7eC{j#2LVkW`3#IUBHu=bHXLPiKx8MGWnWL7+v$#ctBR9`5N{*622 zrS$h->!+dRhdyFXh#|{hx^di~Kn_~^=*uBXc0wa0bNa8iOY5~ZVSF(H>z{BIcEnKq z8}}Np7k!SRW={Y$QemM@#Bl0M&-$h3d}~6u>i7up4oSibh_+TNlmt0l4mFO84pT zz8~HTD{dcIlzKj|T3{)_OSc#lYtgJ9`lgoA;p#N_3|m#g;Ug(TjX1bk2RAT~m+av~ z%?1*YG<|1^D98;mrJVicBz)NBiB5hH4X0oO5BLug6B;lAXA_gGlg#O~kBr&bxw$&j zp7a)^NBjGnc+^iLD=N5g@bRU~CQT+w^*r|KH$Cp?2rq&c(R-#19ggj9DWGCqOZobx zUiit$$z1&W{HrF@vMYYS52?^F-e!*c zQ5&Nw(EwxC-~%uQ46sTkr|9d$*RL{pQ;OB#w1g@&Uprq#)6%_Ga(1qC<^CDZs##q5 zRg92=A_8$vJbGj}U19d@<;%(t89F*X1biR=zALr^hu0=|?c96I{j>RO!TLsYV{Oe8 z7%(_Al|VTs8R$E(#LLU8#gza33~;}Dh@@e$sJK|h)3e@{w2~>ij~P_+RW5|~E=bdT zOEd!C+B!Ku&sHQq;>P{6!mJ+*;lh%Fjt-8%^8fARj3Nj7uRz?^_J5a@{V!Qp@sQ*7 zB}dkaiDmW7m!yU+F3`orh7uPReZmT6Ob92p*URM>P4t4#KFEG>A#1r!9nJB0ufa-l ztR&V#-cSHO=d3v;Wmz3KYDNHXDI(88SZ)6g>EQ>vOGR+_TP|$>3;V8_Wo%_!571?_ z1;{!MzQu8#YE97Nbr)iMw9=jhzzWS`7r*|pT;7q6M`7Z2%>Ya_=)D+43%%3BpyJ(F zmU#sE>cClqH>B316=bkl9>?4+mr_X7X$sC&vWSk|j-2m8lCK9eOebrz8&&EASW zx@CU9kVh$H{|e*jUc4jtsxpGVJ)UE|@j9!;IevCxKVLZ$n?y$n7TF;PnPOf#uBN4V zzLUt4ULyU?tark#PIK?pR}yPL_B2yyNbgT-X{}4m6>Bg8_k_)TnDZxAfA~ZkF$FlV zJThO`&kX|jCEhvdKfEuwKlpF2;HvI!P?II4{&hl!nMQPB%R07c6H_3`u({(rg>a&( z;uEyasqf#DcGG|wl1Har+&VvTLQzs%&#ZooU!uMx;YdC~&C|Ca=2})|Po+~tC5xo< zQ5$3>PoGRr{&O{W`a5I&C0(W$;wD8R-Gb@eF4RPH_N!4)37ybR&6O1f0KDfr-teSOv)Jwrr{j&Pb=gY}+aY@PX=Z|JYM=VZEVpe!y&Nz9~ z2G5%xlwY~GeVCA6eU>RS&v;yuv1UtL!B!SZ<~7#UbEbQa2@?;m_AJRBe&XyW&hT}> zoCo6L2df#a_J~r-YyV-(!}uc?O|(RAhpa`6E7O5tA(If*vI@DoXMBW8k|1Nu%E4M! ztW{c4mv34v=k;@l{iX$X#E{!{R@K5D(()<(89J2uR&4(EwvPfDTIQDr+Tm6T zKEgCvoYzp~9D!9s{L8sqQHfKPP;QXf>>}r0BS;NP|1R40bH7F3GQ{%Qq--Cy{0c&^ zH_bI)M^P-A*qpMvhe>TLH-o0UM}-ZvlnFPCvYN>n$Kp&LKe^4%u1pIHYl@6B0U-kX zA|Txck5BLahD@00@~Q`Tc_VSqn!b*UKf23{QsW7}N&__A@_L8ke53oU&f1al_2iwz zmXnWE_}K^s@aRp|@}l-* zOfFHU?`Wa7TUh!fdmWj64T0%*4df-elkw~W)^p7m{)M{Ssw7;?h~ zaWP~N&iHTU>kn2cjyRAoA_aNIogQ-4pR8O45FX?E1hl?<(LHF(3Q=V_g=z&6qtO4M z_IMD}>PU9~P+V$snuM=GEGD@|=}khTt?m;J*TK{7dYl_ z##T0iv9R53;tPw~6JKzMH!ql-Vq(ND1sv_)6Vv*M@ zPv8Dg*zzrAhZ5ekU1qpw@+o;z3D`1x3YvUKI1mqFL$&m7z}nVXE!^obtSqzQHfhxC zTy3+O&_>5QVJI3NwDdKa9)(^IS)z%F732Qwb}TWrjgWBQZ5Bi!XR5`8Re112ziev$ z)DfOr%WF84xddRY?zmpT?VCb|QmeTQH|t4T*H*DuF@1X(Ud=D>IlemGtZuoR=*@i+ zD(n_`dTRrL`;Efg-u;|$5WQZ!J`c(;`_sf9sQIcMZXAX=d3AjKG)+AzFIRDN;k>sW(fD!TZ~aEWuub}Y3GG1f1kOD_G8ZhMi%O(w|s z_$$BQsaC8V?X{w;y|%`?({%R5o-SIuz%e?$2KUm}IXgb+Z_T3F`v@&?v0*32bEuiVri|T z{=&WsGQ`mIx9=CN3@p4+;}JT_kg}`WawKQTqWc71c~pxy1ILb}x1P<->5a(l@7aPi ztnctSE_5(n@OQ2DqnLjd&vs#RHhWs5?I~avowe67S?A~s{qSJ>W6do_A!by~WoY-l zmFt6+W}#>i((V0VEH4U5mXoJmVuD^#|Ked(Ss_vU=%*V-$q1Sl07%U=40-D0F1T_A zS`UJMEBh&RRgXM%HuRzW$M+g^^VV04R+uV0@0!Pl&A(lAdBtRrC|%3yT{ND|7L7}kP0}*=wmwxE8RG}Qvddo7gY7z2qbNY5=%CShP!*uxD7pQ{(_b6z&sGgu zg?VGfH?VpoXi)vWU9{VaJ8|Bu%Vo3b1t%1gE3UPAG$Tnsu?7=WGF-@y&<*VAsw>gu zt8s#mC6qs+o0#|ts_nA8jEU7*$XcRd2?K7_ z1caPC9|HM@2cF=v>vyn@J9fsi`nCRb2cBg0j?L-4w3cez`$8O)q?G7g<2z{2LY2-M zR@!gIEL%#3DH3~sSNA;ITjz3N%sjEYM*i7}Pe_>^X5LVR)U>zTix8Cx%_P$YV;@~wcE#*#bZ$9<@TlIr~hI3zn$YxbI` zl@YDZWt?4i{de6~j(=Kb57b*1sl*z~G&V{AM#y_P#YqUKhd9;=;I3zsNjPD(mUVw{GbB~V{L&G{W;<5E(nG9)=mNI8m~cialmfV=jft@-=0czhvWcxeDkC!U2-Ke z5>J8uewZKVOcZPHm@f=*$e(F-L=@+3VE=o|lm9FreT!?khd26IJ5=*6Dw1%j7k9Z! zS)$GYJwQrPH2Jw=6u2~)+n#=qazrcC=;An&-`ugN1VMfO6Sm>B*D^7Zl>QLm1+2D4 z+j*TZqKm(a4z68P(WX1|vph2o;EZFMppvit<$xwwG_zRXs!^>2ss<4SjrF-{2Y|f< zjZj(s6M#ZwZ{VT*7ySNLeD(kDZCTFb0dvUt?SyTP^#MhyQc(D;xk8vCwuesCSGfHv z1!f?9S)w9Ql=vSwx>m^(p#G_%n4{1ff-8Si!j@ESzybpm5Z+228F6HQ?H6{@N|Ige z)mR0F>zAQHBBKiEzy5Kd`18P0-Fe_GZ`;a8!*PV!t4SIq0BAbbqXf|pQiEAo@i`u` z=zV~;wl!JZ6oB-3WQv#{f)`Q2q5Qc^KN+KAx zp{~pZ50q~^6Je6sYkMv}H3Ax$+sp*}z>*0b;t0tAC>WpFQT!DVh#oB@Bn18Q=g)?K zq6Z1tRJ}8k+wM$`i#EwH0^5h$5TO- z>;y|)E}#@a$$tzf%<=v+8n7aKP3Z6MKtfjek&8_>dgi6=b1E4`BkoRHr&Ig6fIDcoAu%_uFXVCupKmS9dNOA?~3!XO_-!TC_WYr z?i0+lKR3*805oQZVd8PTN(4JZZ~YBZf_6(yf;%!~kVKfn*|gTrXuhhyuW_wuaIYrz z=ys5=x;k_t6#waY8w>9XFme?Q4gQ|{u`|t@*DS_So|Yv)gB*`&Uii8b8rLK?F;!H* z&^5T3qQQ|pg@M+S6DQpRl$=wzwRqpMJqSG2J{C=wGg@rdPw@(s-}Av-Y5!M zS|U+-tIaLe5fDoFmiI5cLM&;<7$@9RII#UI&~1897^N_|meA-w`>qh4Do9@WdMr1@H-SaR%N7 zxF4K93{^2oG8XboNSXAEIO{#Qxls=1?=4Ut`BD%*C@$q) zuVG+du(Y(4aCSa|s>@r|W?6C%BP5DroNo^yUX2b7Oi;8Kg^;iLzr4R^<)KiYA&(B% z?nW*m1PTM(S+rzISv#*SU8uNg+0DV+1mo4*-V8rTI9J=FzUVjil8KV>VUF>gRZrK> z^UWT~nk@uT{*kyrgFLtm{*)$2b~aPP_s;2tWDX%s{8FyoLP_c9^k5)`96COlG}n8L zYz*axU+z;bDWlauAfvHhKlrowF2Zxx-TZ@a`#D`wcwp^p z=SApRK}`++@yUtNKVlQazgw;x{~OR`Iy*agg!KUvyw`f?+h_*Vb%;OUn4V}?p#Dn$ zTUs&$jiPxNE2$OTi1%~*pYO+;lMtDX69;>ewR-+A{$To{F{8=p6cKKc1F|1mUuaD& zLbQWcg8FR*l5%$+ZzL~y7>R#M*u#L#Isd_KvOmHghYWt+>)Gxgw3ZN6B@3LlhqT2B za_v{BI%K!y)|^e2i{V7CMUY$r;~he?fVW%?&Ja)imBq@13bHaY+xJ?dK_vyC3y~l| zL_n0a5fKp)5E25fEGFQ`emzem3F|O&aDSD`P}lWfeK|O1^OXo#Ent^1^Unj_RuMTGP5~04h-w zQ>>$lQw*ED{IDO1KY(}%cCtO5v%7CgUE}R#50MV==T_tCd(+ns08Lf;0hd`<1jcQ4 z|oa~xNB9XnsbV7D|c9sR?8UHK)4HlLk??XaXHU^Rf-(6PC+7bgFHvA7b~X~c*vg05yN5WD|2H~KN}B6d3%}6+ zPN$&+GGWOX2T1-py;UBn*v@M7D>u%WpGU+1RzLRO2Z!<)+Ov6Xz4cJX3+49=TEbxi z^2@|myES?B58~d$_$Dt;mEv(wP95H+?V)mpwvSBi7VM(7E#+gGn3zoHOBVEe&&$IA znwMK=--7XMWv$itcWPz6ZuhY_-|jmGo>fOS-CP7FY?;c7B9MlwMKf~{mFf8(|Sg^Q*}x+ zVYE2fsr7a?OY4pVc#xsf+vd$Dg0{?15AruQwE?j8t4WTwKY!}1p7zn3st|zm4=k{S&y_NSgXzO=0U`U|7*?W)^^7HCF~AO9?!RBC_^6N8ELxZKK9(bj(3jKM7;@^DD(3<|0X#e{Q@ zy`IsIX_kH1y@?03ZZbbJF-vA%16HE_``OSoY-*!-T&AK<@;6NjtCk{9FvFyS;%E=V zni7vWlWgxK?B|i5;I?z;?b_aDY-a6;6YS_;Vn9~j#mPS*w$|lfDs#HJ?DvQ(LETR&YxyHremOoIlU)vp5XJ`)?8UtTep0?%ogXlar9zpx$YFn4iMJ-gK@Y>|XAwpevFL7O{);>{Tve}|mH1J;&Z z#}r&umKr#ce!1wN1*25L_Z~+jk8=d24$L-zV$pjZQwUo9PwI|i3M<&t5j}~KJV5IZ z;n#w(QklC1#lJ=52DA6~tU~H)nNX%rH(J0MtuMkJ+k0y?=Rb$xGlY-8lNK))+Xpqb zQGC%$lL~glUcd4FU07c~y?T$?hc^oTtT`C+F)?w==^+SGti;JO1NZH|&(bqJW0{`c z3Jz8us+moYwce#>qTe+PY{v>pIE+53A&^t1<;{b!Hbr>$j8_& zWX%O>iEq#q0a3DC* zw^8kmcA&r^tG+%l(}60^i|Oj}^1JmU`}-o=B!lZSsvhknvFO_Yd${8<0UVT9e7oon zNLN<`Kvbr%^Z$;5N2DKwK(_tw*{1$0DAr(wC=YpOkG;(xL>;e^&q6|#6occ_)Pw?- zJl2puc>uD1Q!@Kva)nPg6`i3$Uj7wTf#SLHe)_%J3iuMX1c>b7MJ4d(D$ zzB;~AFkdvOUzP#EoTBCZm$Wpc)W6?giX+ke-(jdD?~ek_iRO6|z0A?B|}&D*8Q0EP^+v^o;CJOO{MZ73fL8-}gT(994- zi_SLCOB2ROel0~(ZV=xhW~qc-KQ+C_U$aqbLXs-j{Kbu=fRl8ecwSs5871i$JcTsr*CdwUKY- zp6$(AG(YD(t$M?7GQ)KP?0r9A(#U~!hugo zff@+qXRy2dj~j9{Ss*dhRrs&z`Q@;1)bGIIK_;VFHc+@=R7DRh@3$~G)BPt~iz#5S z)Sl%Yr}tz3x=+=yYaa5UU%cbegfSV75&C2g!rv3o6M?Y51TlMhJ3Vx)7#92a>NpXJ z8ns7w=M6=m*{G%*OT!cEK@z1_A8*gR{w%k6`_#GG?{+imX-?`N=7n}9>Jhy7M&VyJ z2&j-?t}5oT-pXNMRs8&Dd7+c8{(g00UpRPGozlOE;*)P+VA*!@6@&SB=1sZ0EfpUL z5UgBw1V!qjmRZl5t8QN)62`XV%0k$8jx5RxzKgJOJ)6f}r($ia;JGBzV{YHbqWAQI zM5+<*sBcN+oixK{=Vn7X0usu*91UQHVBB70tV5IZ7^Mkt1Nd^WRa~UbFrX=+OYvT7 zKa@r^G*7yJPIb#BPxu~`^%}HmkKg`W)gA{Vd5Ne&jD=qZ=&Q+#D}aAaN)U}~@`XVw zoLJ_?p4&;W+*PPI3UI=sLx}Or$CqP9%WWBlK7#eAo*Eg?1u;HCz-`CZfj88$kbkWV z*OH3zx0#(&M@CFF?I(vfut^V%Pqu932U=0?!$!z8Q#VMr2=-h*am9~dZag`zu_KFr z_a+17;=(blI{Z2zUEkjO>CTTzac$VZ7ou2-dat(HH~>{PX}!B)kIFqVALDa)XwiA5 z+wVCxeW&h=mL4j<@G#pH`LZtFJ>JnrMF?}4Z?)BS^(|&A^+iMK&TMn`|KLjy^`D?fJx za!vY22zlW?7~W8C1>ha9oYsGCf#nyeD#E%0Cqx-m_a#ffCx`Ay#wpaqTQYhy6B4Rq z?Ato<#;^Q&_{EzX$;Zo;o7qjzmbA6N59?|>C&x9vd|ICfkj_i~gceU`KT|>6?A|Q9 z)o%hX4q;#xYirw8eRNOa#yP)jyy~RF%yEDE;jNtO;SkK$4Y1H8y~1TtOGkq+z`=iW zVX1UG*ydcgsMY_S2JbmrC4P~>!y2^c8#5$QwhBHJQQHNpENuK)OLrkrd9vBVD(_&* z3h7taZf!Qyjy)zyvOXjX0ugwL-LzHJe6usm^PYCG*y@|-2101M5!dT_ zUqcJ47*}!6u+$XYyIqz-V@N#!(lkJgpu;LD! zu$I2lXWI-u3y$+|FXqK{!zwytP+`cMM^b4%TXZek?lUpo~v=abBeC` zUG_=Ji{xspTH`*b=2}lW)H(O}xM@IJZuh@}nUn6`#e^B4_{&;a-cDj~!P(DzVEnwu zZLn&C0VBRjO`!P9m3p5U+&Sa1CYtU#s=c%)h5R`Yo@?L>n5{**N<)8+@N8U{VT?=v ze?ua`y$xX8js6b(RbXE6=rE7}xg;QNX@P z;Qf4?4GsDEfS;Gvb&g{vVH43;bR_j0!>U^k{lb2FO?HmIh52&!jE7yH{^ghsn}Iyi zdJBtJTISTsYj4qWL;^Z@`Nn3tg2cxOp@nO~Qzg-c^;Tx(_)V%;tq-5y8;tX$QqT!W z&yitPjujs&Ohao;Ro|rrp=IwYQshM{Sd?UWTMrZopg?p-C9i@LKD6pY95a8|5(Z-J z^IbW1^I{~eR-WXB-wo?rqp @@ -118,14 +115,14 @@ The following itemised restrictions and constraints shall be placed on IFC Entit SE_00: Superelevation structure is verified ->1. The dataset shall contain 11 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` +>1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` >2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations >3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects >4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. SE_01: Width structure is verified ->1. The dataset shall contain 7 width event instances, each represented by an `IfcAnnotation` with `PredefinedType=.WIDTHEVENT.` +>1. The dataset shall contain 8 width event instances, each represented by an `IfcAnnotation` with `PredefinedType=.WIDTHEVENT.` >2. Each width event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations >3. Each width event shall have an associated Property set with the name `Pset_Width` according to CT Property sets For Objects >4. Each `Pset_Width` shall have properties `Side`, `NominalWidth` and `TransitionWidth` set to the specified values. @@ -135,7 +132,6 @@ SE_01: Width structure is verified

Model Geometry The Test case requires the following additional checks related to Model Geometry: Neither the superelevation events nor the Width events needs explicit geometric representation. -
## Expected Results @@ -165,10 +161,9 @@ Considering the aim of this test, other **optional** results, not subject to the #### Imports -| **TI Code** | **Criteria Codes** | *COMMENT** | -| --------------------- | ------------------ | ------------------------------------------------------------ | -| IFC4.3AbRV_E0_MSTP | ALL CRITERIA | As outlined in the dataset [Imported Entities Table](Dataset/README.md#Imported-Entities-Table) | -| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | +| **TI Code** | **Criteria Codes** | *COMMENT** | +| --------------------- | ------------------ | ------------------------------------------ | +| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | #### General @@ -184,10 +179,10 @@ Considering the aim of this test, other **optional** results, not subject to the | **ID** | **CRITERIA** | **VALUE** | **COMMENT** | | ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | -| ALSE_01 | Superelevation events contained in file | 11 | | +| ALSE_01 | Superelevation events contained in file | 12 | | | ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -| ALSE_04 | Width events contained in file | 7 | | +| ALSE_04 | Width events contained in file | 8 | | | ALSE_05 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_06 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | From f7cf7f8829c47bdf8276c631ba090764cc1d81a0 Mon Sep 17 00:00:00 2001 From: larswik Date: Thu, 24 Feb 2022 10:35:23 +0100 Subject: [PATCH 05/13] Adding input data and correcting links --- .../Dataset/HorizontalAlignmentParameters.csv | 8 + E1a-ARSE/ALSE01/Dataset/README.md | 42 ++-- E1a-ARSE/ALSE01/Dataset/Superelevation.png | Bin 59148 -> 59330 bytes E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.XML | 70 ++++++ E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.ifc | 220 ++++++++++++++++++ .../Dataset/VerticalAlignmentParameters.csv | 12 + E1a-ARSE/ALSE01/README.md | 2 +- .../Dataset/HorizontalAlignmentParameters.csv | 8 + E1a-ARSE/ALSE02/Dataset/README.md | 14 +- E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.XML | 70 ++++++ E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.ifc | 220 ++++++++++++++++++ .../Dataset/VerticalAlignmentParameters.csv | 12 + E1a-ARSE/ALSE02/README.md | 2 +- 13 files changed, 652 insertions(+), 28 deletions(-) create mode 100644 E1a-ARSE/ALSE01/Dataset/HorizontalAlignmentParameters.csv create mode 100644 E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.XML create mode 100644 E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.ifc create mode 100644 E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv create mode 100644 E1a-ARSE/ALSE02/Dataset/HorizontalAlignmentParameters.csv create mode 100644 E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.XML create mode 100644 E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.ifc create mode 100644 E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv diff --git a/E1a-ARSE/ALSE01/Dataset/HorizontalAlignmentParameters.csv b/E1a-ARSE/ALSE01/Dataset/HorizontalAlignmentParameters.csv new file mode 100644 index 0000000..edcdc81 --- /dev/null +++ b/E1a-ARSE/ALSE01/Dataset/HorizontalAlignmentParameters.csv @@ -0,0 +1,8 @@ +Name;Type;StartPointX;StartPointY;StartDirection;StartRadius;EndRadius;Length;Type +H1;IfcAlignmentHorizontalSegment;276,867419000715;935,549266999587;0,00172462248684613;0;0;229,405681;LINE +H2;IfcAlignmentHorizontalSegment;506,272759001702;935,944904999807;0,00172462964706543;-110;-110;15,594208;CIRCULARARC +H3;IfcAlignmentHorizontalSegment;521,816665999591;934,868200000376;6,14314439461041;0;0;91,725737;LINE +H4;IfcAlignmentHorizontalSegment;612,644434001297;922,064788999967;6,14314439896281;-110;-110;120,80482;CIRCULARARC +H5;IfcAlignmentHorizontalSegment;701,264387000352;849,049537000246;5,04491873079937;0;0;25,538554;LINE +H6;IfcAlignmentHorizontalSegment;709,601071000099;824,909996000119;5,04491876114541;110;110;49,633636;CIRCULARARC +H7;IfcAlignmentHorizontalSegment;735,664969999343;783,164849000052;5,49613363003069;0;0;83,739856;LINE diff --git a/E1a-ARSE/ALSE01/Dataset/README.md b/E1a-ARSE/ALSE01/Dataset/README.md index 819947d..cd30f22 100644 --- a/E1a-ARSE/ALSE01/Dataset/README.md +++ b/E1a-ARSE/ALSE01/Dataset/README.md @@ -14,32 +14,34 @@ The following tables lists the entities that shall be present in the dataset in ´Superelevation events: -| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | -| ---- | ---------------------------- | ------------- | -------------- | ----- | ------------------------ | -| SE0 | IfcAnnotation/SUPERELEVATION | 298,82 | 0,00 | BOTH | | -| SE1 | IfcAnnotation/SUPERELEVATION | 301,82 | 0,00 | BOTH | | -| SE2 | IfcAnnotation/SUPERELEVATION | 331,82 | 0,03 | LEFT | LINEAR | -| SE3 | IfcAnnotation/SUPERELEVATION | 331,82 | -0,03 | RIGHT | LINEAR | -| SE4 | IfcAnnotation/SUPERELEVATION | 443,00 | 0,03 | LEFT | | -| SE5 | IfcAnnotation/SUPERELEVATION | 443,00 | -0,03 | RIGHT | | -| SE6 | IfcAnnotation/SUPERELEVATION | 503,00 | -0,03 | LEFT | LINEAR | -| SE7 | IfcAnnotation/SUPERELEVATION | 503,00 | 0,03 | RIGHT | LINEAR | -| SE8 | IfcAnnotation/SUPERELEVATION | 513,00 | -0,03 | LEFT | | -| SE9 | IfcAnnotation/SUPERELEVATION | 513,00 | 0,03 | RIGHT | | -| SE10 | IfcAnnotation/SUPERELEVATION | 573,00 | -0,03 | LEFT | | -| SE11 | IfcAnnotation/SUPERELEVATION | 573,00 | -0,03 | RIGHT | LINEAR | +| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | +| ---- | --------------------------------- | ------------- | -------------- | ----- | ------------------------ | +| SE0 | IfcAnnotation/SUPERELEVATIONEVENT | 298,82 | 0,00 | BOTH | | +| SE1 | IfcAnnotation/SUPERELEVATIONEVENT | 301,82 | 0,00 | BOTH | | +| SE2 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | 0,03 | LEFT | LINEAR | +| SE3 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | -0,03 | RIGHT | LINEAR | +| SE4 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | 0,03 | LEFT | | +| SE5 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | -0,03 | RIGHT | | +| SE6 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | -0,03 | LEFT | LINEAR | +| SE7 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | 0,03 | RIGHT | LINEAR | +| SE8 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | -0,03 | LEFT | | +| SE9 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | 0,03 | RIGHT | | +| SE10 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | LEFT | | +| SE11 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | RIGHT | LINEAR | ## Drawings (Visualisations) The following Drawings and visualisations describe the test case dataset to be modelled and certified. -| Filename | Description | -| -------------- | ------------------------------------------------------------ | -| Superelevation | ![](C:\Users\lars\Documents\Projekt\IFCInfra\MVD-Infra-Test-Instructions\E1a-ARSE\ALSE01\Dataset\Superelevation.png) | +| Filename | Description | +| -------------- | ------------------------- | +| Superelevation | ![](./Superelevation.png) | ## Supporting files -| Filename | Description | -| -------- | ----------- | -| | | \ No newline at end of file +| Filename | Description | +| ------------------------------------------------------------ | --------------------------------------------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | +| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | \ No newline at end of file diff --git a/E1a-ARSE/ALSE01/Dataset/Superelevation.png b/E1a-ARSE/ALSE01/Dataset/Superelevation.png index ac3bb85f2ae9815299ddb620a26f41d9821b580a..2dd69ae728a3454d95949196261d536c1190d931 100644 GIT binary patch literal 59330 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 KMNUMnLSTZAh`5*l literal 59148 zcmcG$cQBmc`#!4oUZO>}dI=(WuUUQd5?ut*iB7cWZLJnvh=@+2_b5S-AOx!uEv&x! z{$8KYeCM1wb7p??n>pu?ci7k4_IaP@zOVbb?n}I$jyf>`JpmdT8u4=t6$ly{dO5IN znG^{|Uy# zMlZ*U^sSsKLoNpkMWiWcDCHn-x%|J4JL>BxyF&xRQq~R&1-9W`r};d=oYOv&vRs9< zMDIkuT^?^_gvl4ykJ~)Sr|VovO^5a!3E7l6Jh>G=3X@j@<9zFR`>=1N_vVh4hmHt^ z@vtu(6M@X&Ihwb50$ju}7B~R-tse*YQ&gV~9>c?dI8m&xAFcx&P#*ytkcM+~hg=!c z7GL6U9EGI^p8mydrYG7Z11jb_^ z;`#}=2~@~hE*#*R0JF)fIl$^Y}1B~Fut-t&&xBmFUiz+>*s)d_8lWs`;|9(61Fe?7Sj#Jt_NQbkQ|^l0tdR`a5}fhKObwA;ed=NcM6n`22Bq52=xDqRI< zywO%dkp)zI##(Rw{V92bwfTsEpJ;L`rYhA(yFf}T_iNwztERxymrHW)a0yV>SJycl zbB^JQgGIj{f5Er`%tuqxy7Dz;XKS&{pU2#Om8wQ`m4?1lC2F2-DUkNZxrlo`->4dN zz6Z*-^p2mYGSOZ16f#YN(;#*8^s248%n{gY*L`@03`f@&x_HyT+|U@Y!DA07`{MGO zcm9iW20Y|++`A8(<~!;hDL+ym-SX5OZn~&lC}ZZ{d8{Uhg!>o~Q1f#1++SB6Vsh_E zBRUP3!Y*y^ZkK}*BZD;7)!W2F3?7}VfhU{kZw?klzRp=yZAU)wq*GH@cV(zfgMu_i zLy=2dz+|tp4B9PU;0(U_HwC;^w~dI&tJCedyZpqPTEj{xzje1IQvURZsP|e7&EEZE zN$*b<&>Wh#WEz{_p`gUgAGrpL)I1QCmlOGwH|i;mD~CP#?FSmfTxNdWY*^718P}LQ zTaYq`97R}$p8uxL*a#DB-(hq9Ssd|i;j1Rn=XE8dyiBJ+iq~pI;-hs>*us$KoBz&2 z8OTX>EW3KjcUdHyy<9Up3lo>*6UE?3go1n9)}w-7h{YCNtKb7M?dYR*9X^v<7+-Cx zQU(W_SI+5#v~K&GgU>~>As6#bC*de$_}*Uz(U(bugr!QtsIzI^1su%^yTOF^gLHK! zeOD|(LP#_o8ynk~rD%Lg!>hT^Mw-uF|0&*%$iynJ-1iV}mg*>jX76)%KBo!HyEDl$B+?W+2$Ri{aBE_?>{pk8cOl@bv=tr z0626gi7rAQ{!gpd2VVE1DNUiuvB?`E&o%Nq0-c;*Xs-zV#EvpKWee*gY!(XG(*cSk zCfT5!P=x@reF8R_fTQBDi??|sjVFixN2`57aNxzCH8Fc`tQCfw{ZjwRtgo-%&e%Wt zUaaauh&GMFI8z;*MqNgn8yk7^BTFFf-+Yt0{7TS%4W!0g?5+hD9u40B_F-BOIT8M6 zLHDJ?_GW9U5~kT{r~36jhk0?J#oLHc378uOArA%Q?=L@aO0G^wqi#<#cozIuLQMoP z@WwICyiB>>7QXzN%qQJq+M{Rx7ZR=l&qHGy7)+TsV{;`p1+ zlTkhq=P8b>ja2zEAY9Q45rWETtV8tWgYiJ11#%yk`Nr}v5*$IL+8(<>f;%D}F}DRn z)ImfUp2mnKhH$>@L#(%r?qLH>9=sEafPh3NF{8yCN2&aLN^-om(|X6qK}fDdpO%7qt#-jWEP?}P_Ik2#Ok((i#SQwj^JcA}ZgnP5 zsELeEh?ZR~>8As!kYrSksm^i^?f*RN7C3ELGXtk}?c#8W;nEi)ZKm06(NKmDYioS0 zYMHP(jAcLR?A6KA`yHuevgO_GoJN@Zkcm< z1_gr;v^UV zEc(cvJ%NbO65%NSdB{8f#IVKuKRMvt6Raxy`p@W9OjuFWIHt#|hJ2v<>xdTfC|qNH zn?Tly*vlG{wSqa{RIXrLL*O` zBEMDk`f(4FcP?O6iFoSNr9g3q*e~h7;CDBhKnu3ABZt|kzMQ5UTbNO_cga3xv;wNU=DKXk+Rmmqyq%ucu?|aere>8A1xX#94VE5Adk;#u&6u!hbr)asSrCz&?oMmNEBBof?TUw)z^c`&^~Gyr=sN2DZ=Q$4$>xYT zS!$`j)i|5+=HFP<{S9J&+eU$iA8cNsQ_!0=kSjU5cG!WKJ!Lh_+oA`uzeXbm%VUj= z(@A+7&2_K`}?jpnrUWBZW`0-wf& zdTwFSnDv(|wMAjqJoO;S<)D3muTzmGxTH8BDHcpvI5#(M-0xv)($*6e5@S3k$77py z5}dN(R;-L_+|izCp*lN(T9wZmO1@#WDjK;yfdeDRZ!U*lU4BFM2?@FWbj3Li<^*K% z6cpFPY}^yFrup>%K-q{z9CWg&@g*dVUm(!#^^yY zlmHM!-aSE2AkLxKa8NK|`i=IHKnu6`at02NXKA1>@+st8= z5j=$bw~rlUsaVm!n+Cb~H*a)YL_ozjkbvhWs*h2y9@ZEA&hdFN_sc`mC@KOX!MU}* zs`JeXOIgSXl~}F%f*tD>dNyA)qs%kY3Nqr2@rJ_R=sK$4)|JQ+K3Y@j-=B@9>5T`H zA|nz>{VSYmYf1~-4wy5^{7YxNgZqFbJiw~F?KBX z6#v37P%{vhmF`d*O*U@P39UZ{KbUydpzI{;&+Bgn*+GX9p{?tmtOxEO>+mRbFn8ao z4>sxEBnnhs5nCf!ZullS_oE-U=slXFm74w&mf579{ z0$4`Su@gY+=TWD>#O>&r^l~f{G2)o&)#$Q+<_zbiQ9PovS5$k?tam|1dMGYLjt*I0 zc#Ft%4HRZxH!CTN&dau%=MI3tEgcbZ`<3b49@z|+iv^GE{?wW-%ZKiE!u8QDWL;B~cv1kY~HonJ~PBSd2lfe6}3ecSGgM;y-%ac;(~z z?R`ydb^`g?3H1&pffUsoP$QYsJ{k71`tcCkWnnMy?YyKWym%oe z{7*Rv3dJyZ*4$4O9^m;i3y3GN(uzD)Km#hb=NGj}+uhRCYj3B$R@UB~F2_q! zdzuAuV4#bRk&;|z#1H5Ed>4&XrVxSgK4`pI@I^b8Ip?~TM!W>ITbDz+UfR|7yR?XH zRv2uy+U$c$Dg&%q%}%ecOyz=cJ|jG~L^*b^%O>>rPGP1bv^R9vVXbc6mx)Jl70tWC zQf8KkE(~7uKs)qBKv@0|?<(+eC;v2ias+w1_{Ev>k2l*dbl0`I)j`-TBvCd%7$hXX zK*TI(naL{ZLdwL0jeD%TmQEq+DGz+33=odPh47Jj8{8f=HKXj<0#IjJtAb@K$Vij^v?zQTFM}YcL z?##}t9s!CLqkUZv*vm*% zS#8}TSHIh#N=w9ga{5&Rmd4ncxG2SAK_G#iDn(ZkYI)enRd)`50sDNY6gDah@MO z0-l8-E*_l|(bSJ#0OeI3QX{F7j z#yc0rR28)bM+Ea{nMO@!U5_y;v_0eBSQb^6PF(ynszoKhB28>7_@i-0pVoW(f6~l6 z^$x3Brofu;qq8@*cFJ@kg^N~wGVqRO3;R-nCG#~CZ6i8y#-a<3xv^DqGLB@H8CnHu z*lGL9gUw`~^U^7(>+k>J|9p3+dLQZc_hoJv<*Cl=o5ayexBlctXrDt!VQLEVTa!iB z?%h`}@5B$~UoOMmtjf$tDY3MFHmc&}gCk9f-;vIJ{KTZPYC`_Is)I_4=&^c4+iF7F zjBx4B3xJXRO4^DhNy0b5_bmdVW@ca#4~5U%mq_sq2b3ugbGT@d$DZzKmL#ELDQR=V zZIiI=-^J|wW?=gTq!5ls5M#>|WLj;)}#Y%ydE=M|s6YcgMn-<6`6JdsM? zNdhbKlf)T#2{Iq4?L_`FUjXPuqRd*7-}Sl3^buM)st0u^G}86$--3bGKtcW62bTDb z=u=G;gd?IKa|E9o9*%)``Z3RaDp+X^g3B$zk_w6{C9bs_lhq^ts+#yHLZEb@U$WhI z7fL04oNxn(2G^?AmB$a!MoEWjhJGXEnBZ>S6ZajY&d{0+RiR|Z3QCu=AwstES`7|`2( z<%S@ncY7I@89eOfAVN33_qy-B^Hf=U*x{ds4;RddvE2cYgVE=>ENtM^jUghOLy;kT zXy4tim+6y9c~s|elgS&I99X?ZE0+e1_~YT?TUK>DXYSztFpYkHsmaP1H<-XGrqE?1 z+Lbp6qMeK+v{#8BMjgz=;)y3Pv(TriZY_hc75sNOYEj=a?ODkNW$k|#y`fdP3KGys zD!k|{9SSKE>q&9)?$IAbQ^AUg?OOmmR?$IS!hHc@LC?% zKI_KRND4mg)?H8lx5AakwZLgKwVgK569q@R!*A@$)wZ>Cuj!O(WeiN$oYDVFISrD( z5B29w>r|M+z%u-(MQ3!&tz>Cd7GmF~V2mfoZYfhJ9p|4EAiv#%vE6Tk!-9z?DxnjD zF|@TsPV+WEsRql^K7V*oC-}MrNRnmUEZpHjg{uDuN?D7UiG(h`7b=W)dYQghoK5i(x# z7!&B|_n9{&M+M~J{n|7H6bw5XfF1%s0G0eSuQP?ua%F%dQP-Pw^xyD$WCt#p_wU0C z^&j+ED{l3oJVpQY!DtIAW1^XVeemHwc$-g!d+aA(liGY=9ZS!&$GNd*@eRZ8qj%!h0(1cmwygg~W*7WUh6EjF>M6*iQQMEoiZWS#(=_3F7xPuID6%gg zO^w*rTRSC|NV$gVFzRjqBMO~owf|d9>>`C`5-qF4#$Y4b3PUtro1)V4je}(#fgCqt&HQRo|4Z9(fEO6@esN*_78#?oWQ7w2KnRG&?pPj$~=tj|5Jng--@*V zuLq>@toP~*KNs{m#;0KL|KV?~mUX8?@;HgwI3`~5JpbOTeKF{&?( z;`oZ6(cb@yN5>hjv_JEk0pHReU;1n= z5$VoIE2`w@^#Ns@Ex-waT)`IwEae5krJ=ypBXZdC%U?YKnCR{@D!NP-TvAXgvu){= zB6&>nRZG9*2a?1InXdil#C#H-nA5uoSiT^SFw+g`!0u()KvRY}Fj`N_WOUd-uOf)H+gFp#e**OJ-Frfv%Cril)QxNAd4t*Q zpp4lI6k1?%+>NbQ`5KmyJJv(2$M>Y8n>;=a=L-jo{;2s@6s7%$Y&j13J19jFscJ`q zBqs%8i0fK|4PTgv&%`60$6$LjT#R{{k6*apQ-1*=+qqgG(a(jfG^}+R)V0N4H=ei{?m~tIg?!Vd|=9nw1Rh z&~EuVs0tYM_dW`FHGas7R-IZ^HzC+{Lz2d>J}H-un?XTccys$y!+Wz;?XbqDCvQN8 zSG@I@_H19HEHRv_ybdv8y$|3-YSbV!jFKFblMeh3j;C1qF*uNN9kYB0ilQ@_6EN|l22 zLo^IY;vfBt_%3nR>3K|_$=Jbme)>r`WAlA}+h#>rl;e0iV>{!P-=B11W3{DrQjK`1 zxW-(|ipf@lT?7oA-K`q7bJe6GSsvE=g0Q?ZWQ$YXn;}2OPXUqmTF6p?;n~5gDUGN# z-jsn&d;**Pnvi9u`6Hnh6~?q~p5%?PrVaTi3gFd_!!A&VLHii|4$V(e3hMZGJXFaz zw7~9N2pu2Q$_e%I9ka~tef)IINx(NCio) zYx|FuVOP{s$n8E9emnyZ33*brxF@V*Q?k}UU~q}j+}PbYGt_&FcXZ=GnxOq^SPrwy zJM;5riDw>5?Am#pJD(lsC&^gkGtwWV@VjhfGN|o8 z(1|C>^zR7eH>xr=i6P&urPBg?9kaR4x%qF0shs?6Gd|fGt803VhenYn>z`{_71q*u zHns03J!mm8j#T<}#go%RkqQet zlvfe#zO=jQ-qxkBkoZT%u-Sl82oZs--2(<$KE@I#DB(j8e|^v|EuD@0hn15n-D!HFC4AmwEhV%~l_^ix99GTe{nQjgj3r zjPm+`-Jq{TdK95y*QyDR_*gAknA3JeX-5692}Wm}PYo3V0Bq5&5W(q9Wbq48@$CDW4f!k>AZiguw zHpm?*U>e0ya*n3~abBa~=Fp_P(`ODnx5cL1G98p?*m*}nCmB?FE9d^1id#?PMT9Bc z%K1*sN+0lqOLt6ZT+(vvhkbcl!4&18m z?4auI!HM>f4Ne9bgVVo4S@)RX26kZ=Z6*VCL@F`mTDoo4;PQbXqi@2zRc%NbdQx5P$qs5nkf<@v1-l?GGoW1l zR@$#~w&DoJezAj6Zgw*2%E}g7e2}c;ahRsbrm`HbJI^m}u00k+-r&9{y1M=6Bh+!~ z;WMd*t{rFl!=z?@y|B_4Qep>k>k(2|kfH1f`zN$r=wGN4E!cXbG_uDjBI+bGo3j$0 zUi0cd_(VilQvmX%_5PK9FL&Qx0rNr?@V@w=acSV`xcl`7A&c6`+h-y9=J-B;1+p=) z38e{b658E8JIIuILPE(alHAicwJkn@ve?y0+KxX?=`=9T{vj(HsJ_y5Qhnj2`Y88) zJEXwbhZ(D)jl>ws*eo7ezKLuwm>FgJh{hxK>Zc0+`j$xt__vFg!(s|vuB2YzOMb|azuoZ}IiQkk3ZUW-?W#MxgH#zaw(ZxxcVA=_aa^!WHuBO1qEH9Cr%isU zkA~k|V6fo#0MdJA*Uj=}3*0+TM~|fj(1I)XGd5V$3f(PpzQ0~>v|bL{#%!xn(_V^o zj1x=9YhK!5%rq2nn&9_0uBn}c)GYXwLCSe22wcjA<+_;<$D3fZMQx|qW86;Zc56Ks z*V4}`_e$<04TOQ91Yye6dymank~TlcpULe1O>JCGBO$2S>YPXa=Xcdg)xelFPUa{+%SuWwVUU`QJvU)GZ6ZXI4TI+g;M_a zZ~GpdH3YB`v=I#YZ$1v?lu>U9`AyS<%6z+||IU?s@XhbUe>=xn4$6U*k`C|Ep1$~S z)<-DR{c&ZwPkC6ZiULv^x?NG^kEL&ppR`Tr8@ewm9wxqfcZ%TkH=dR|`SB~9Q%FWs zCR@g-tk8$QZ17xy1bTFs9BQTIJXgrwHI(<3% zJtDm%2OSd}<3CuC&80G6`w*YhPAY$`MES_L#;QV8ZykRi(X&pGV1PQ{ILiTNYLr3T zy@WF0|r%wIvDx8 zrY;NOa3<^*>eV%86|RZ7IgPR`CO9gBLaO&A`a-U+|1}AXozW2%h_xCry_s7peC9S^ zlTaHF51Fb%=~aBPE1P08Dl2UY2#9?(RILiBTaKc~Tx<|kdJX``*YpN#?$JMsQVQC+ z<0(;WFVzynYP-qVxxPCUg;oiJ>Hyv7MV?SkCu+@UBFK_2y#0o)(n0q-P>cZ8@f$>Z z+N0Fwtiz??eWWrQ=4PKiArF_Fc)8z+u=5Fj8-U`UQu-W2sYL?5bNe|dNy#uQEu&O` zc0;?}&6F3dui`sVeNOLPbhLIoe|WWZ{FQxwn|>+FpTU%JlygQV$`PCz90dyy|D4k# zF~SkkO3T2B!yI-SBPafUo9JvGD9_YWpuLUG>#*Q&@3gl@Qgl0VZ@hM|?By$7BlJv0 z>en{%{d}q>j^bm;)uZ1?D(#(7D&71kMApWK`?mm*UetIZDt zM{-58mr=6FnM^uSn#yzK3&!VD zJzQRF-d~OL?MWe}OOzpOm1M=@=eizj`erJ3cShK_ME+<+sEz=>S^biNQsbR1QO{*# zhnz+AsI1Q{g}T;PG55ja)-8=U@kwA`H#QEHv&)jYZWA0HTQ9r$7WbQIITMbR+eP6A zruZTBh;(v&d3o@r;MeJf^7GoodQEDwN5u1QIHZoe1>^(pqG>4+sXyiP1DSqNyNX_(&|ey%pgf2k7R~iO=%$T=^}(m_Ncg#H7hW7Lpoc411GYq(AO! zFnz==%`b@eRwcQv``+sLXfX3o$Ng@?cK1eM>oerHKSv&j!d8<*XV=wx{o>c`&5{4S z++Jy}V{ax{5PI9a-eI@T+KB{Pa-}p37{x3K9e2k&gSZSArrvRoSr)cx$G3RB@UVnH zBA5KDci!d^mu?m|fJxfBIon5cWW-yicKGbm|GX)`Anh*}ShNnka|1Ch2$(}JnJBma ziiZ9TUPZ7WU-;a96u9xVj6x*etiKQ8`XbvPpfntZI9y3d|8M1J`K#~FRG+N1vtG$` zIK>PkuSA6@6c{A01(P|rWVmIoU|f_WMP1wn-N>%p{@XC6^6+G+9h2<5IclDMb{0Y( z>@`Y2LnG>qv1;mP9lE3}Ku^J^rxS)e@~3!gVE4E)n4r-4X34DB=*cuO+&yr7+~ZM~%#~DP-2qF>pkRbM)fNRzjx3c|x0Bt%caR0u;p&EQ&t;MQ zeBNUDtiz&}GIz_TC+uJ!LKcg#T6weGKz0*Q?8^HcZY_#E)S&*)|fs` z5!j_Lp@xxEBoyW08)Ep;*@^M7S6`)H*ou)1Mg3+~SZ_XJWIm*6Detqse_kOyv&mPc@oq0RnemzG2`jN8m-l2tNLJx3rPu z*%>cchT{rQuK~TU%)*cp8g|e_bzE*+w#lvrz6XZx0Vq99f`trdj94eZ9;8DUK!c^y z@?0gRLm%eK)Dy@F(7F%~B=?6kMz02zvn$&aQUgD*E8uS$BkD=8TR>lbP}rS;(*SCs z2O!HHau)IbUpL(YZlewkyAf&p?>l@EL|s+!z(|Rxst(6L_l}p(VmUs>@4gXfS7A<> zZd~>9!uRIpoo&$$%2d|(^5*z!x>{im&|et27~#YZCJPNehlLJATn+~f++RI)=;m1i2)c^8=a(*$RW08*-pM`Hu|}F5I%MVsfA$sc6!_ z<9S>j-B%xF?k_h^wz9290S+4@n8=wfD|DM3*o3kG8jOlW;?2Jtpm5dn1{&VLAGLC! z96&ytYI2%X;8QjSTF3rp_#qOj1^&y=)ztdDfri_WIC6Fj0l+-rlnK*&6>G0z2S+Sq zeEJ6cg3|Ln3H_e_f$fGZMJk4@W;obQf^;!zl9~6*_U)HcIW~II`7Uw&bZ@z-U`hEK z_74=$6wRtKn1tMLMl$K$nJdErDk@gzjM=uDwrRD2&>un&CI>yd61rignL*i)T-;o& zXz=`Q@Y^>YNoS80Vhw~ezc!0cN+Nn}tKll)S{B{^r+K3|=_<65=+-gkY+v5+nv|Az zV@OwXK|XA~sJ(`H{etw?v6YBf*lM`NJ>o4t}fL7;=4 z4%DvbqdlbTn_I*A7WoEdE@Tn@Pp|n#0VNz#IuNEMDqCPBZ6>^s2ha6iYh^8}XIFHf zdEodd1k9tNsyYHRTRH%3W+K5Cuj%B&I&T5VV(P1_iSt}-0UYRThkSXZZ_P%K2{c?; z9ky*VIRjnfoyS8AQy7?IO7y1Kz$&Idaf|A|?3}R^V>A zcp1P6c^mBJZIvbpLSq@8rXNVNXTFN8`#Q(NJ~6*FpAA1h`99tP=Y6mx$e{YG7B2LB zJNaKUE4sj6SODA#g6V7>QmnvA2k>!5#tqI%FuklKL@*+pH}J%YPkbdLaUWrHVmj8G z5}?cJUL6^eXgpT%`w)72Rp%qWS_=7ebT0CGK;r9T015J?%FU|P3R%vCs*8Vj%oTk= z_lDR#lRPM(F2r;0>1b(L4zu>&9?3fkZE;1GQ9yQ1$?5#G{!Um6X7U=P?-NkLlwxWD zJ|$svX9e~1zHX&e^Zm16!&)JT78u44GO_fE>D(#o!b~5|AHWWidN)0Iym9-{4kRUI zK3n^OZ~CKlhGG=X2%rcG3UyzW0(KfOU{Bzq<})^&Vtux${uGtzFj@El4C7|?hkM1& z)LC1{?*rzT48S&3weK;JFWKm}_$)p?KK=6YQb7oCIRGmUcs$mYC1V{Scb_9O#xwtFcgerl5|E;%noQ*V zjIgZL@BQuC(qUh^*%wRyye~4w zv8HL1f`UUkeX3*!>uXYN`yTIA^G&Mv&QEf>>qUf=9DoKwMQC^k@)7H6u?%AZDVK9@ ze|D*mtZgkivVhH@?1qHRVLn0oaTz;Nv%UZ#ws~0Tqly zdbaC^Ni@mLZUp)Sy*w(CuxuC^3M?azQ0t{@NQn|?zBMqF{V)phK}~??#q}e`L{-gM z7t~dUe>jW+@={%E`reX7Jvl=Mqqb2y@7YMHYNEp^j7P+GNAGH{s%{f#;Wg^7e9_Si z2ZT)Taj`j#EPgXzrN9Zv?Mn(Z7eZkk3hu_2<9nRdS8!2C-<>g27GMe*xk2;@-Cds> zB)T5L+ZqA65ip+hKx@}}zL{~A1GSN~U2aVRR=BLF!DQEZTQb{{+`V!8hXmh%#-{7D zhLB4J=F9tR!4(!0>w*{E_aC>Pm#Ij@NY)3jT5)FQ3<`?;W`DDO9)HI=`VF> zMPbHuRt7cB8oMeeN{7Dn--jLDYD-yKdUi_=ISAQUgZElFI~(NwI(4WXA|_T7t4t%# zHhg_Gw({0i3GqHjj$q`WQT9UF^Nh`kqA)0_+@*q){~aqW3^L&7Mv zbG$X0IeqG7rE!e9N1#GdWnZ-YYaH8LaIN#BTx2MB`ThB%7nAgRhOQhB&{SfOy#d&! z9DsAA-n4?~G{5bxRYNI6CoOg89`Ocr!Gyv)zPQaP+N+QmdRoB1s0ihyAG{S>d2-fB z(Qiwgenm--W%U7q))YT>{_a}4BcrW?!l^$#`odwj!pQbu-rq33wpRKhAmF6@oYe#> z6GuQ#2@*JTn@>pI8@;Jj_h8J)`7naHvc|z}s*!gyRE`xPv&mm{ea<|4{{)A7_Ci+% zM9sS_2#8R=48tNM1{IST`EA}~m+{j^wmvB_iF2R!t8`ba4UcQhT3&=PJTnfu|D!wH zsJ+Mq`-AL=S9ZyO*r9fVJE5eZH5LeT=b2Br_YD4=8$TP3EGoU7#2ESNP-*7_@-H<6 zD~dnrnA=lgS2 z9WFDU^rt%fJ+1(2+Sa^NQ6{JMdkIKgt-Bze+O8z37!2M;ScW;j_1moaxORGhe_hDjUjrl!o)aYU@vPgQ@&U!$s2qHbyIxFUC|-V;>~i-9-WgeP zbtp`v?CG0ZD$uPL`+vXB413(`;5cSLuonb99SkFwn<`hfH&!n zbKPT6l>7ec;V;B2yW{n_>DV(!8~AsIhI3idt#|v#FPO6rRKxiKUJeFxto;nfi@$G5 zzTdbnKZsD~;_LLpBya~h#Tx;Cs9ASNTN0h9+R93wcffi)*MpUD;&bPVOi)v(-OECe zyNVN_cS%>U=hoZr7d5}Bo&aSvE7@! zVFY?I!c}xzRV|(Rg|=yTy23RCzcgek)1(a0Pad3j$$^27Xb!!48YEuW{_v!yY292EJn8lMF}B1R4^yR`?yuGHO-Si1SOl zREXtAR9mksylr!M88g$cbAy#3j=22Hr^g!P+Wh*EFl3%5(LTr>=#BZ;Q}a47aIaF3 ziyx#Ogj_)t)=DvK^RthZtHA4ivZvbNV9rSMnClyz&=1O})@&jFQi zil{x7$(@5#ZbmOtnBY$n?6Yx)W(Hd4@pF#yN+|oVn27CEkz&@Ai*^w0(U`|x_hQ3- z+R*Xk%`$G$=wP-b+e#SH{_`-5g^ZKh(Veg2j!PH^$(9Al;1qzGfosfLrbmc}IoQkf zDJg1>7k(94v)l*Uo`A2Q8ULYJjgb`dhVpMDaf}jN`|({>|%B zmadb9vW>pG5Re%>e&9XOTUMH-H~wBMlbf{`)!(SXQg?fGI_B20^pTQa-PbhB)Djbi zDDA-waVQwNTAfaz(wE9yBu{|hSZ_Pcge=}p2M9OmT#?ZBF+xb`Cb16dV?(~T_DIIK z-=X=K6zE7vRiM?#Ox-vhkx#~~Ku0d#>!$pK8L}=4zPbQsZkegunbMgxy)?k^hJP4d zof_TeFJGGo!dL@?lgRr5@u(fO-iDvfzHsM6<`~Z8fFo1Lch}Afwy?~E|0dB1Qw(`t zz#Zw?+2~k?w8{RcNy&LN1AHtf<-_8TaEOo=(RZb9vX7{fF+7LMD0qIMi1Xf5?Hk=7 z9LAbu>7_rLp9^-a3~ci&E_GjJbpM=9Ds#uF|g&k8U zQpL^Igtj@P)00#dVhKH)u6PzPIhFp;u#0J@h54*n){`~hrU!|Kf+$MoPJ?)Szu%>JZc zeE<79Z~nCaS}rM-Dmyi^QXBH?oAVY~KmG;`PkF^g6U%f!NIq{GXuA`ADKHDW8PuHH zmHggWWz>;!W3}#=ufHt5u0h_qsjuTS>p!Zk(`eQX@pPh@EWO`C|GN7}G`^V5iI z+bK=l5=C|@{aM494Lvo06q5aL%1Vy$IUN_@50>UYuUDBIW)80&h5AQ)f6xBTes|J| zwAEDH9sUWSO+I-8c-&{!*~UnreG8!OOhDA@`TC~e=M?1xJ&!80q~MAlq9!_OFfzuc z=0?0$nhG-kCk6>8totmoCHr1OoNwEdpK&UKZ`sPssk#gyQYBzfTgq?QIXmu2O8qi(V2X!{OFV}g5ZM%WnUtwuSsri<0cuv&P!nA7RpFLY zntV-ItKyRV@2ZuWS~<9VXOHiyjissM3hPhIF5J=G&W>h&=8_KYNr*2$)eV)=&k3szULjBF^fN%CA}+Zv2iR$#e3ypyHgy^ zZ?EjhL7AJS_c5vxPKejkz<5X^VL!w#^_xjil@;>qh04<=$aeS5l8>KC5qh&W(DrjP zEZWQQeIJGHF9>y!yEzhU(CIARFr+& z_p1UTiXwv|NH<6c1|1SI3E8~dL!{3y)u!w5;+%4c z9%Fajnj&MTJPdF9{7NbK_ATqtxri&%VGn55?lYHW)>TOCrnKl6UA>6>GMYxIs5tAO z^3!X!+57fIG4mGG)e6yWm!=kK8!fN)sngk*(%`XYy}_~Awn&U@$<=YUw(GQtT%V3V zaqMFX9QMiddXp;*$Kz{_qYI8BlS+@*^|Bfo7y6HC)*25h$}oQg!dSw-;y0YSs0FN3 zzeRISoeFsjVtsPQCCJ4w?8n}klC2E;NZ6o(MJ)>}a^&OJr7#^S67?`iT1-JM=cL;- z>!0+?*VvU&hPZF=n~-HvcA*`GEaN5FoOg@Dilc~pf0Fff+Ix;A$1T0bcW0v5g!_dX z-AzW~bQOw7L?tH{;zm=_Xq^$hKO)M+^ipmx9ff~V@eCbYm}yv)a%N@sF$0axOOCzI z`(A7~af2_l-pvoZR7|)Vfq)S~%jftK`rV6Fv>Ou;x%xL&c24mWjs>CP^0}_cdh)@f z+mhDKx_R>3%Fn9prq{Cw1<6^iEAkm->LHNxk{N<$35N-b@Mk!C zY<7(FV@i{J-EX&ay*1cL{okS>qN}syBGT|64$0ILMC+WzLSBCsA;Q`QbdXXidM)Gr zYcMru5m83b;c%BFhdvnO=6h){w`^elQ8Q6Sf2;j4Y_n`E5pwdluY9OL!2yQApos=; zotq*Y|D^xgdL7pI1EII*yfml89f1ZejU2-Al$W2(+q*yuF`t*G{YN=fPehMYJm!a& zbiqgTBv1Cccbp&`kl2wten}&wl3!@Hm#rnIpwJz|qHrqx=&I&gwzw$eOx^~ZvsPM~ zOta>=|LU>u5Bt+Xq55!JSIP%y5&D0~q*VaVQm%b#ZL*;OuPo_@;XVftR8JDjS3@`E zKJNwOt&uu!EKo-942{cdxQ7(0Ui#&B$!Y$rVVA2h$<}H2ZFw(gmSiuQ!s&S)AQv(5 z+&ar{$ULZuz0Wf7m?o-|I{Sm@S<`d8N@ARz;l}Akrc3|0ZaabUx)02de|9kq$C5=t z8@`>t1l6Rq7}c8 zr&KENoAG}hDm?NCK_B%u=$F|jf`o-ezPfGy-dsL~^HSx2<1J^t!foKNEV`i*o*12A z64-%sVKj(S#_ciJ+Epd@vh+17xjv!sC>MNz6*CK`t^|DdIO-T`J7rPB#@-(gkJ2T5 z1xsmq|E;@o`6!ae6N{X<#AI1~|EaN7AO85~%(i%8c_1&-Vmct}S^md*ed{&OpF!uY zoZexrCJqf%v!YW@71fF_%+)-6Dj&^jaQkPuy@9EcS;pzl`@(>e$u_8P*rzsq@Mf-x zGK<{Dx8Malxw_${WT$heq;TR{LbXu)-lzU{1xXOSaWeFQV!&X&4tHM9YavxBb1k#H zJAU+xdH9;MWUBN>$|1){mS_h7F%Y9KdmXpIYeAb*@um?|l>|sH8XGGE2x* z_z;ry&)0c`iOoL}Wo+|W0yRhIg)!>@S|CXSUp>L2iWTB;Vy>3Qk4 zLp6-SjLF%j6c4m^XxDG750gc!PtEKTkD2+un~R zdioH!MQyBDrcn{eqya{@8SOVff_hbW?`0m8coiwbiFw#C`u@a75^hdGLBS$6^2V%| z!|M~eIfhX`k`$hPX32(QFmZVb)H61~Ajv!KS?nn7=Aw+7JHqnOUu~A*4~9eX3H2noh*Qwz$O3sbNwe*@^il|qTAxgU{Q(%L`sPJD7AwFtnyymBw} zMgXv_^1Zot({+qai~D(*iRkp+|4%>@&p(iwNiWF0KG)+D_^gk6*p% zAI&eXE%*q{qJ@y&L`*eVYU3U?D1o1J6|Zr|p+ zb75~)6$2x|Hkyc!K7^1cSiK&|S~o|}UChEjH|U5)y{VWalI$(#r%0swiI#8>5DOMQ zk3WyT9f6BESi9(t~e@$g2HxlNL5%y=M37*DqmXGfL2h!4^Vbe#!6JM5pB zc65l9IWTr$8%(JWj)hRuhk>hvf1W9x$m-p8bayu9Q9{NhQ4DXH>AwLglsX)*S&N^i zRQh)$UfL&3^-YX+9P^D~Z)84LXnC9-N<$U=QdE*NdEiu747D)o;vFswfQzu?9AP0L z-~69M)mjsZcrrdaPegUKq2122uJcZIpwqnAxZCUhpagi9t7R-F!Mh3NOCCALl9H0Jgk210Pr~7HyyFjY@w-fpQQzQ7_cc%X* z?(;U7+$?PPAy}m__Y(e=5H_gsH#L%xF$2=ky((&=-kwse)`eaE{wgt-rtW5aQ(t&iavn^ie+j2%s%XkBS&j2`(>?V7Kg zEGUmBUOleed~p-RBX~@)Kv&~@De`qkDgO-E%!xlL&6n{XevIYExI<#I0pH-(BJ1P- znz^NziOE{Q(SrKIEY!8}E|eZoSn2fLeF;M^$IxUFTuWM#7l%H;gZGn}?V1?ulLx$smR7ic@x zA8aYr?PT=qb|W^v{m@qN2q z(ZJ6<#1%*phLN`L>2q2olen#UL5^Ojn$lk+ZH@B^Mzj%I!awtF{f7Ehq9aFk$g@q3 z`o~xwT5*>z6?D)lcqvCGxp}BS?0dW#^%8~j89IgYOmLip41S>@K|qE5U&45;4&Hc8^Pkqjnn$U#-FclP9D|S56Vux<`uFI*>G~|@ zcN7@kGvKQZwg4}7D32qv{b2f%YT&i5Z!2##Df#qyff?sKT&3{prmq|bSlM!SaY*;E zHzo?GHShH&B~h=oAQRaQJsFDz4N*8_AbPS0Pku10lOHKxc{7Q9Ms^Fm`sWc{aCm2a?Am5HsM{?l6mN|@ZpCRQaVvht1n4! z^;}6vNCNV$#KA^rLM1miX7ArKD0AS4pk51kqrrQsA3)SnDYpxcUP$vF^wkrYJ7ryX zbbHl3^{WgL`U~!4(kyw$pPT#E>d3O}s?NsFzDg0a-HDB}YPtAxCfgP?pIB#|2>q?b zV1~{Q6%*_*Z>zUnrs3~fX+QExb&GNzz*Vwat9Y({Du3@XGeZGGC##`isI~RlJ{@!l zoYgmX#O7qNzQ73?l&~G{9NXiLm0gM^rzr?``_uk^`t9znS zhbj6~%Es4p@~%O!H&Ljje%7i`KI@D9yhVRP-MZ(O$}VPJQ{Zk2!d&{Z-q+i-TdEnN z1ar{7MV}-%{jO}QgCz=C>+AFcYm=8yEdBmYmy5^ zlA@*lYS!vCoO@#9^UD`o_dI1qSEEFo4ev%IXANm!Bnjq+1TE)>nKB1jUobx}DndUb z1A#CLHUErEN=F{y!;9|e2Txvoq)Z4k%CA?gQfyhHFS$RbWX((0|GVOmH?z`w34eWD z{uqIf`7h=}yDXRD=iFS=Rx2P##bQPdiv4E!4v%h&p6c|rmt5Lf?cNu6oGcCceA{7y zyEQD{h2o7)DX&L~tx#t?cLhFXQ0^c##eQpL?ja+Nrd#6oyiVo9Z?e!5ck5;Zo?bcT z)J_)*ackFPygOnH-^3VyNJ=zvOXly~?IgNl z_$GmjuLjR5z>`>gaXVVw)@vhWOML5bvBE0}>eEfbH9wp3`xbIdER3I8I3~Wi3C)z; z!uWXG@{S0h@f0}}ZLgo<<4SWiN_@hk%6TD%Jd>l^on2t`}<8eQ`o zle7FbMUGftuK`aWHqm71y+DslPxVK=6=UpyeZoTn9G})n@@U7;-jbPjBVrX8dq?9;WtJ$VKb##9Sfvy zioCig^QarGCei1pv`JhBo9%q@m*iU%XXl>^GDX+ge5J$(rv$yeuxgRoE$B|@$#6M} zzq|jNKF_5+)j?_{mTr)gC*(o~Q+BOP5X#F~+Ofv8v1zL_*M$2md6d`eSBFqBI(P$S z3UbA_a@j;v)SGU751>*TZBIv=wW1bFPVH1$&%B^f>MrT6%OY(3UE&2fiY-Xm{Q)|{nu%+$JM8bEq;owv9Pw4wEgz@eD7hQ>+@~7;GVmvW2TvznK_u!P?EY5 zEmpeB!B>d5o)_X76GTUX{`GK=kesbmxFUPU(v>Q)Hw%K3n@Mm<|SwU+*%K1?>yRo;;S=I|yHQ z$Pv?;@LQ0rn(OPH3+MMT73#nzwrsqMRH=`Yt}(`qW5~kB{ z(s!^gxAYtDttYQaO$kX12Ow|6A3R;bThGUV!bhYmS_;;Ut&Pn=?G1CZP zVj#`Nb&}R)E~av|_d%JPNAL5)=+pe%4nIm2#_eep-eY%CV;n{u4!f<#+$vWla8nvz zOJ}I~N6)Tw+xA*x*8Ikv8otIcou?BFEZ8mJlVM>qA<S!|5uCi$d!m=Amo$z_(!2L`dWA#yw}mMC(B2;M3Vw6z$(SwDO=Un{ zo1B^-PfOr6ct1$snbH|6npT83)sEoLV84jjEz+j7ZM(yXe!R;aeeez9n66l&^a@a8 ztC!1}?57LZMH!HSEUX>>vr2O^rY^qF9C7Vb$%%~%?mZTQUwXnTX&lUMH&e=+ye)j!#~J}U5bIj zlp=sB<{-xNOfQt=h$oV-h)cyLkrh6XpPdiB{C_)CnPeOX-=gNI%xI)$PjM*Q=B^MF80(wfK zAmqWBUmpqcgDqVd=@SM$@j(*EkJ)T*_(fS(QXgGN&d4wuCuLjfdi!~Dv3V2Pw26QA zCXol9S}gurNG^8cR2;0daDsh)Y*C=0U+evAZ))=RSDMI9M@(saRjaxv&qgSX?O3Ig z&9)1mt<5ELc`u&f*1(Z}$$Osl+_tdlt_iXZ=r)7P)8lENS1*k`(L^2Q&-;?TXpqVI zYyy$^yNw9Z$}!#NXkAtKdb^Gbp%|pETI8kLP^UE@5ELHiQCP1cFFaIu4{V3QWxXor z><rtQh}`$6vhA(PYfVh9TU8dp!wQEl1 zn}5nwhj1MZn+dS_i-_d>!OXfpQoNai4hy}22g$d2d3SMrC%gBsXx@c%IG{^v}cr-T~#_24Jn(6qUwT}Lq1OSd^99+9J(4mSa`&2_52 zYyW9ZA$b^wZdmuwve3&`|C2CRZ}adRGDY6|KNQ>lf1}p?&w_&B+87-#G$ej43haSu!qL7DA_E4Q2h z9V~Hi3Xd4UGfC2rE*oZmc5+*nTt$j(Bj`fbZa(}b&6^1aGo4up(;r0-I*}x&0KJ(q z_w}_72@h-uz{^;AMWzAkWJK-paJDO~`gIkY)|YdDH_QKd>e@(golMYK^Ji5OSVM=6F%qJ;5?qk9!$%?U7U9G6#Y`sOrecf_{>p4E#;6P7 zE&w~C$@$&=%ok&BqxRLl;B=r+Vs5M7dOzrw#lrRqTXn)WC|=Yd46g~5m2tchXU@$0 zD7Fmu%W3+cU<&g%`bm!nM<^>YXXDJNi|x!g^AA7-h~?5?uj6vaq}BAwjQ`1F!7gR}t5?;!>LT`gi|X8Tg2PTQof< zv2m3~v9e5^<<>2FQ(Y4nAhrr{B{ZCefi^tz3K(yEgZydLdi4q`JNsQJg0X1WQ1IO!yZTe(149)$C+ zlYss06(vZ>59&8%1foH{@Od;=`DtA!OX{DSNe~%V03fXt!G<2ZddEo?RoTplcX^5Q z+00=5fX(@}i8?X3sC4NoCcN@pR)%;1ZOq74z*oRa2Ky7xBW1QL4NRG2QU_}Av9duX zDh_|VMJ2RUoyck_pAy!9YZ+~N!l4qD5Ug0wC{~_fqD7MSW%|2Mc;?0ya8wd5d`Zr1 zr|Dz(=T6uZj)o-^*=JLeF7WXqNy2l$1K$Fu^=W;!88}q;dt4BBWh#BGC7e-M$^$T1 zl#~gP?hJKa+v?{?5zjZY3jwJ?Wyf{L#`q=4H?m%J<~xBavM%>t-Ta5S2w1h4r&aqu1YY7j* zT_nyp1Q!q=hu=Lm$^Fg+;hoCseS3Oxctxwg5_f!AX@WQ{E(nl;{+2~AZFf*Rx zA)n!y=q|}pmfHACP<>vo8nWH!GqpD{YE!RRoC0>DsRgn?2~@$}xfZRm(Om+vic)nH zJQZ!M=~y$XhoQN zC24WCeu2Df|zkhvw-_qIj`)OIgtvky*AhMn^IKB%1 zxBupokTwFs3dd=g2nkQd^WwXbj?~U{&wr3Bo}~}nqf?b~l$c3-_S9qHY#;MV6sgRN z#zmv+P%Fq#q+^vKY|s6>8t1>7Yw+Y;IuF%y=81@=2q9=C+_T_R&k7NTP<4RziVtD>?_DBZdDCb(X;t=o?v= ze1(n6F_ByNj@kbGJU!J;(~dJ8E}Wv;%CSm5K7nD7#o@dE-KnY1;**nuPsYJ$mVwiu z1mcOA<*8>(hSF7D+S`l6AJYprViIDwrgxpdA8hhh0hh>S(`Iqw_&MS6?Ipe1BO21Y zlawD)rTpt*Wr)5~bA{bc^=|K?9a8{bxH=gRaVvLslu9w*RgOKUeS%LMZ=>vpgbF)q zc5=c)`De{>$lsQtl;HAQ*9X{WL^8yi)pEx6OtG`r_WO4O-OS~Xc1?t)iDu`5=GNGg zUZNiK?f+ZTO6+FN+~jSEuAcE=-W-cv)yA$hbaXB)F?Wg7;h%o}u4m3n1?wt}a#Ay! z6x!V*cy ziqg$ogqb|}`$JuyKi2QR$0MHgV_8e7%)FZPSlHBUu$9=^i zK4wAV(IWn~!y}Ow=07XIk#I0KNfA4ep8I6c{^D$5LZ(ybaF}Zxv84Bc%msSUoP}v0 zX!%{{8|}ZwwKmQ`#W2j#c74XwOuxp&U~cLyp?x=&e9T|2y(fa&JWkln2_-YFj8g0+ zo~+oBQgJ(OmAHF1b`c8w2q`J5)BFSzW%01w2f zwer!@chi%tzJY(sV<{p}x`_AKr-*4^4YK8I+-#(1ddy;?xh(e;>rfG8dDu3N`T~9j8G87Q+BA$!%n%fdgH)OA{J78F)}uT( zsSJ_$DX(Tr1xr(#yVG5nh7xn;$QJl2Tsndd!oU^%5BuYNGcnp*-$-k>(+T-(i+4>04c3P|iW#ti!ANg3sHx3p(ecjM=807jWf>&Ogzi-uRZw4t9_zt8}j?9 zP4)$RqEB0sy2*uR%O3PQP>a}Pte*2Blfp7&tcOgqa4hP=JHP4syTHPIa&omwX*+F? z9?-kjmiC8;t0!%hj+ur>9k}_w8kA}Z<>IOboqI7zueJSDo6C{Vui_ATWBt+3S?|{u zLAQgOuJhDQ=Kvk5F|5Za5Z!ne<;uxPqdG>6c;>?x0U0jE&RDiom8zMn-v{w2{zrT3 zRh=J~Mp70aIh6>f_eUgNf-9ufktHY;H~?rGhsyi)D--Q{@=6vfkp%DO9K)~o^BPu$ z^b93`kkPhHaps(}I>7jDzMTu{P@IPS8Qp7F~D)}95>$oP8mw-FY6gT z4^H#ABbuog_PepQR#tv)HrpKrsj{UY?x)y#6?FAP`peN{zX~!wHmq@d7a&=-;?gaO zW+`AGkPA}!^>oZ*_MS~^OAYnf`$2h2c)$g2{ zPM&Dh{5V0-_wN1;y-JUGt1{E`Z(4-gi!Z-sHK{*vXiMF_eUm@<^rXLVXPU3Tdt_#+ zjAcPI-hT#RU#+6wA8n7jkUAhZPUFP-=p}P%@sW8KkE?ZLy0FoxtbTYxL5#TP77Dz^ zL9Zl0vblKfuwe=83P+vnm#R{o$vD(AOmu%%PQAMM==Nq z9S$@**Y=UUl0Q&wQ?H-Aqgfw9Pq0|r=xr1#D^ql)u?dreYAS%iuQdtZCbQ+kSJ!Ay6l~1%f@*984AE_ zoK+4#%S}iwD_Q>taVqv}c8EAfPSY&2f!+c%9tuoRS}r!kt#(;dL)7bxgkFG^#Ue>o zNaja#G5n$@lWuw@i0`VgR4q(YLoSx`(crSv&uU(o3$&yklMsh9dQ~-6_GP3?LZgdU z;u3)+Bo>MW1)g6dHCx@p*T zNg>Busoi6J$G6faI7vFpW`9Yjh|DFpPaY!iU2kB`AW@-w6>{p;OF6IS#~m1!Zl4;d z)TEWFNPFUFWe)wum#=RIlk1`!tUe^fvSgp? zQD4FRHl<5)be+7z_+)`M(RrTxFNl##VMNxC=EJO`|6wrn{3r>M&E3bfG)jKeZU&SV zMLYU#35kZFw@lnqN%vi|Xx%2yPm)s-m>=RQ^PD@`5*O#Dio~QoDmr!S}b|*s27fhC;p)JOzF0DFYzY4knKe)A7gD{o-q0k=S65s58Sf-Fs9` z1oUL7TIx+<4^D@hq%&aO-x|GHveXjr?xb2Ytx*XFUB0=U;PR%CTIoLXB-l%r`ebGcW|!)634&BLN`L6 zlfHo6s*B<{DR1GzLJ}fj3P>=qtRv)dugg^*9`D5Ut%oEDRR8X&NilQC54#dX`u+L~ z-4q?muQ`P%D6W$8eRu?MkOi^A_Un-^#TK}YGqUhTXB!$xNK%o6P&|j{h#^QPg?vAF zcw3fHE(Jr?$P);#v4A(61M*|(aYyeub zy+vMkUsAmdJ*~?H0>>NJEqd3;Iywa2J&h_*g>Q-VUYrnK0fRA>aq@U0&cz#Jt`!E* zhj;~g`%FF-!E7~Fi>EPu%GEp7=U-<($jo`wS7-eg{UxbPccg6PU5T5a8|U{gi6(p> z>vzgqgtM#6b+RFx|XO zC8kd(G3HVKLN}Ap$*14KDY*+VHoQjl#wGNMmqJ{BH3Ev_&mrANp?-T|$fF2(nZAkBAbcksEy(9_n{)hD@`Hykcv_M&+e_JuHert*7b*ymaoNvESqR8TO! zcNUS)ZjUpMSwP8DgWLKGCQd8wdbs5f)D%mV1vk6m^WWu-1xL{jYZ^`1GgGS7dMK8; zjFfw;A08Aa7uhe|`TCB9JTO@Tg-hn+w-G-vZvaNx(y)I>Pu8a{q+Ml+jVoK@!QQzJ zBlp4By>r@2N2NPkJfUP`?iE<6K`d7oC2yhc{!BN$gW;@JOstki49ik-SbF^W zy9@{Mu^e!^zIQgoB$>Zr)2nf#>rCcOObah)5vq3U7idMC6H?DOt{g22EU|Dpbe|OJ zyr~UqMm>#mAMQ%JCudahGg7D#F_2E<4 z0l?{`jKGmKI;qU?_>k2qqi}VR(Nqn<e`U;DVlTh@vxo7Y3! zMY{xZF>rl%Wpgc)M;4nY{X^mPx5E}9HQH4Twk63-R+bC&gIJeZm#w)qie94oMCs@5 zJYbtp%GlZ}&mAnoP@Q}1qgD`V-mKK!ou$2ob6KKAcG{-zN~)S2I}w~t563jph;^uR zj@gsJ!&?6mfHql)o~;N@q%@xmggbV$s3SYFa~ z+J`dr6V{14u&Matr!)}xak1SdByz1d30CTX0zHj1pDjfR{&n#JdSlbWk5?{RrV3MX z-^wzwFuR*n9`xD2R6|%ylk2V8!DwpzUoQ6tlG#t5w$BU2&X5Rb`>m-cAQU-c(8xk$ zK`v+@hOD2CajxUd{^S1cJaLJoq(e^4@23vwQPvF*>#06<%krY`rAr8reqFLp$_4a2 zcbb}R^op}g`XATf^NQtmKQo4vSLQE~T9bjGFf;UGRNsY6n;z z5C=mc=jQW%DylvP!L@M4x*x2%$ndrxu!J&|S_1I2CJ`^?ME)(?xHQO!{&|Kuz6H}x z!8yNjNKq?ssQCxSE9zeT>(1db{#I?|D~-!Q*lE8tbi?b?UgUxU;X4<^?FX zSSZJKhbF}yAHBRLmI`aF5OfH0)RBFE=IU5#5^bFRo9GmV&J>gfN&IRhWIdO~WNL?H zU(jSz7Zur&-CVNgeL=#t1Ov8BMO;X*E}3m5co(Sm+8?gL?%Nnp zb9HYlzB}LIEm4k+Wa5R5l>c-tLJO*3=Y_1f1o{hmbA&G0T-nO>%yR8 zO~p0-r>^Q}l6H%#iRd54@P8ArOMN*OaSo`GY(Jqbm6t`dQOtj?ZvAHoM-iKk0IaSx zN?U616G^_3j$gy`nM3yaf4*>IsGk{qWx7=GKtb^=N+XL%P375D<${JQ>!xq@6Pz;k z*QHt^Q;QeLJ8e)`$InR?LR3bZ=d(c-3$SW&iWXIaMX z{EP$*`6xgBrsVDv0p5NmNJo4xeWc+z6+nC{owV^k>wp^18 z+W2#v(Mwm@;rRX%9DNt!mKo`U9i@$stGT`pA8o-Nq(#X~zw3Q*rwrutJBy=c^;{1? zy5HipjU>W?K(#3Ha6ykI8gc72zJoYyDK-CHR={IpD$5*;nPm8JOK-=?-YxUY?{;TI`m%1*=u;;j+v z?AGt=a6`@0%1bZtF#9@a&dCkQrfULw`Y~FsMP6`#Pmh}Cfj^U;HEKPihYNEF4 z2>0!+?0Y1aUVuTA;6eer3T-<}4&GM-9Ay@y*qxzyrd02^%8p( zoVUuXH1MUjm!Fda%;#R&7Jm1h7Pb*{`f92cwe&WazR#vi_v*l7FEB1$8RSVs7Vtft zTd6_)l%d=1`iLY63T8g7dl5`5jbt(RLI)hUMVe0DVX4WYH$2D+q|-oaq84>|mr(tA ze-mYFH(77Q-Dh^|M1de${DyBVzx2DyFSKL??)08&LP4YG)e((SpuXxD0b$Fhi9%t%j^<$|@(8gh%^^aWZ@ zm@l-#yJZ2hQ}#=flQA3YMFsr+bL<#HzqjQWEOgBuHu_{1gjj~8;3Z+1IcN|LH-#Jf ze|p2XJ+-fe?~h=fd7lKH%Yd-K^`DlS7NVCfbA!cxq#M}M3Vg%vMa1Q=%D*dLJFz3@ z-e%U@_vOpchq+q#@ND#p;Dn7JvKlEs zZJ@gke${@b#-vqf+LxthlX{?4&Jb{*(W>k?`QVXf!j;9L53luQ={r3?*U1+Y;Jr9N zTQ8SG!S>pc-FUT@6alL7iTLN4jN`QKm>-uZUoU8zL+>Z{?$z6N?>6anWR>4O4WSn5 z`t1FgH{@2!Ue)7*zNuC5qloR_V8t$5Bi|cVId_gYeyw(0IV~Bg|E_e}hnns$^iMWv z)g}dSQ_7u{nds@3CcHH_vkv zw{X1{9X(yOB6E`KK^`H8=$p?@cf5w~H~1aK7LqkO`u3{h;Jx1VFpQ=T8Fm!!qPs%n zAhCWjHv9DDnW{EMj_(^TxA1adotk5>QH|T6 z{}Z}19F;9TfQ4~6kdSWE)rhvetB~W1iwc3zLWCH*g88g37P>y&lOca8g`tTOxC^*) z;1s$~l8bn7ZlgkEQDEGX_@E-y)Ma8$8=zRlJ+kBuf<3yS-%9i2HLWgli?mwK%J4^> zEhg_TB^iutW}N=JjGhkR~ z%%7ey+f)g`eRgK6Apa$4IFKA+Y2^G|lKS5jCes%+%yyyzEr!lldHl3^o28i{7aE5o zxk9zc__V35mGG0Pkt1Kn3GVlgC+ksX)A~4`fnUj|q+T425O@V!(+h6SNVXu=epK!k z)qe&M6?y;`K`IenY`?SQEx<4mXDEG|?kQUMNHa^WjX{7tW5kpBlJ8%%M|_hiRn)bwl8oB)B5BJ8xWCJi2%<9w1igqY zGwG);PF5HoxUY}|HZwC*K6_2t{UR$6^lkjw^1-VQb|MY9gp;D!Lc@G{Q&)|?!)Df_fPBC0lf~)c z^W5jI(2$UwK=?rdgbf-yuRPoLmZX-J-ZI{K&Ld)``ttG|@^)&XADN@A%*Gf+U=4-s zR|0IO$nHAw*A#u|JduHIG=gtfXu^Y~h;8=2GYHTKoxcr()7NO(q)l&X%Y*HiJDhb= z#|IiDZ6H?0Um_k}vvy(lI6Z{zs?2xK+r3fHIThmQA{o-s-McS*Mv8M?j9sc^^h zG%8hN%@yu29GAOpQ1v1H8M`0^p^FNR&wUm&Sfh7`Hp2_r!>;6NA&{MqYP{IfQ3^I8 zRMe;xP?tX8D{As993u0iz;}sET&u~zZzuZsiCa`_g)0a+gA9_P=!54Ya`+5Kd9DLF zcSK2`$HP>3O|;QVYMKS`7wzs6hCZ2rh>%j&QAFJH=d%c!L|8dQCy{s0E1^U7lMU00 zbDTPx&16!G?|%%)G|6NzrZNZ+b>kn2$v3REGcp+IT7SQbae2RW9+FdX|B48^^8cWTHEZyH7nBl@drKn0eh4KfbuG4C!wHaMMlA@jNpyZ(|<$%e@4^Yr%<` zzv$T2CkQ9TyS&*+N#?L_i2N_@VlB#PNPXn~w@ZP}ggJtFXNXpioO$f8r$_PVz;=$dr5VlQM5j z@-%O+a;shg-`cv*pA`)9vEkK8e|I~_V~X_Dm$E3oA7!?Q?CLI<2_vZYu)+Z&9y)}n zUs_Fy(c9bUZ1=?>v5*w$Ow2({E7AXbBHTS$=p$7D8-gU8f9N$sU#AE(| zPdDtgs=y^j8xnUvlcO`yWIMWE>U`{118lz8dCA-N5hTQYS4CId_nOL%T^AopwEMYV zxO5ryusLUZOSU(Ce6KzcRK6Pfj4)o_SlFjic_`@?wo_qp%v9{FlSN}|X5M+ZWcV0t z21PKKx)M$N`EOY9p_cube=;PPoIXGNiCWwOP2YU0DIQ&V930sR%ZEyj2~Hoei@7W8 z?Jzv(D*<@<(nMy|j{ndq+larJ)t_{85#mDz;Cp&~nK)Fqag!_PR6c0)68H>U2fp~D z{T)7bK0JbepDU;fIyzaDTJZFkhlWfne4=_*Jt=wGBTIp#jS#BCS71&VkUpZbPDL}m zko`{5S8hb?d)=VS%g{Q5Q*4Jp{1OH|ufnBYnzYUU5ZKhO7-zZPU@XC;Y^I*4ZV4>` zrEDk-S@tLRDxwDBe91ZEW&40-3E8}lnuUh)g|%C#NBuh_73n|!2qfQdPe$|V+zG2( zfx@ai9&O9UiFUQS%91Tt91*`@;-Td{-^1cwd1Te?RyJmG46(TLGb)mjFQwuF3=A8> zFLN_xKd#quu5sE2$d%250${+>dsW7uIq##o;y*Gb8ha(vbhlfkYjknqxw0LB0v`Lx z3uVVXlR)%{!!vO0N6FIu_qW5t1M(w*wVBRTNQ}rj)@>rh;C}bx+28hP7T9$ zO5<>2(C@Dmb(#XlU^%ylNCeJ*#$7!eUrqciv8yJ_1)8SyJ=)mCW|FNR=Ju&(T^#sb zX|wHY_kc1d+Vb@m-X^A=y2O2$y4$W?^(R(ozB#I1E&sFaxjaTFm@c5*2cHhQC||wh zz)p0|2!r&CqIvegCIV=f;}L64dvhg^=Me6NfP-7Yd(iT9l6(ZIS_;ShPZB=$hYPmp zy@b5%C!bBrsJMNyfN`zN1V~F79H0L_;6L>M523Xib&^itn|yN^oRS&EiiF%pOt+v3 zAFL(I?2VlM@>ISIlKQns)j&BTuV`pQOGCO-2!PRlmLOu*1Jq=RKF)sn z9870U!jN3;HPNjAjRYvwwsSTAQp{>0bpy7vP2+Xj-sBqF7k7_;#dS2FP*YS#5JK+W>r+q#_H9G7aD|61ZkW}D!a*=dcOo_N~fIZd6*NTsaj z8Fu~U&otlZDjMmwEQQ1j=40Q)_BP6rjQEe-tv&?Mblhs;M=9*Fmie_m{$tM{#YzCk z&}@#7?nVpEN~7%EE-f9)c#^my7mG{A;5b(f1E>t2si?B%6i`u2_v~4g`X;S7x*|2Y zz^lsz0NH7Fg-n-KVZXV>&~;qH-L{DIoY}^mO7qY|%t~5o!Ma{^wq4erNmHOtE_>04 zdlc1fG@Ww@RFgHCsDnz3Z|5)N=RDG~BdvOD*(~er$J_3814hNRs^~Gj?Lt=dz#?Wk zt_O{!fL<;bEs`y+O#Y~VTID!Bkc(l2oo*jtd51d+_P30E*?BYS-Xt+wReWvyzPza9 z_RDK25;$S3Q*IW6TDU2=5z9j~5Kur+IR(#i3n_wLFkeGo=V}UUd?h!`^tDh{AH#8b zGGQWRe=35uf

bMI!6-P^SEDUusR8qx?E^y=#*qH~+E|<5m)ne(~M*EY-;X)Ihh6 z9U9|(#ENml>EatY)#A8VKjO*__1Ead8*>?REBmtP80Z6Dt+D2EIz^E=s$Xuy9iOi` zxSIizr{6WaVM?&ti*tZ`N(r!BeI&N^~lu+`HUR%Ark z;QwOoFQcMt|F(ZvkyaW6q*EF}QMz;Jp^+325s;P!>F!b_q`N`skOt|JZt0XBhWYPv zUjOU7f7g9KFQ5Bak8ANpmLtp@$FcAGciXnlR<-`zgM$Zycmy2qD;W8$hY1T3or<+q z;t09E0!vZMuuVl&{k_o5d zEyGzwKx84I09qbTU3Z zy~D`t_X{|2d^VtzR}%yr;f6pqFV#yu=?y0a-iA}AY_$g9*I9Jc>Dq~SKi=SExikNx zA|vGQtYqzK6o_2LssME-uIaG2h!KTA0un{Zy2|{fKh^W7j2)!Klb6T_(4o6xCWZP! zOYXE(#8`UTvo%|4*0j94pNFGc;P@mP(nl;++zG9&ny1-tA!*=Ec6V zrHq3g^7oX%F1;rah?A$rMKIjFbp2dZzh7x}@({p0N5;m8xs4z`6r$7KKk%;fA$-=0 zCB3K#<9+HxiHQ!q?zt~4mw4+EeJMn_iV%?$uuyJ-nXBEeG?U>ka;X6@)LlPfI0I7N za-m;j&`@1|bP1BUd*Q@gO*Ycs!$t``p{=Hy!Ty3ElRW_g$xxFzXl4ys#*^<;Gw!;Tid znTOG7xjdc%wR}+M>5{~oKd?2$3hQy{X`9)}HxVMqWE!8(dO7+NF7@R;`ffK&K$QUE zdMP^(K$RqVF=P}o_ZD=F4b$S(!@43QW%Nc~S4tY@h@DfE&ht|bhTg?w@-q}s_1bgw z)PZ#~H%>@L)7hWdKQ}+GtK^|qMOo} zmpV`Qp{5JEx^+JfT>Ge!N_H;^9gYhp%Pv3Vi^&Oc3V*nD_7<~T|I_lpxU`kxV^&R~ zDE#(yI%V!hrLe8AFpP2tYPQLmWH9Yf&WSf3+%_`58t={}_w71?+|QN}v{p~M#0CBQ zw8{FWav z@5!9Bg6ANd5ebD`@I}BuHgaa~J#j%oa`foqZ2I!4azi0yyDjfR;MLbHWeakcUU2QXG}ta?%|E8Tn}Tq8p9M5c-&4nq>_A9%y(>!Z_an&bF9!j8AbH#y0>5RH!tnC z=(k7e3C!k*Y9Vg*v4oO{Yv6ldUheqCqb?8EE2(VX5x-RVRuja z2DHAqOyL^|m{kA#99P~@WuC)Z#^7qIIX0_Fw`i{a2C$WN5gMa1j;6O1VSK62Sxt*5^ z>fSnEO}WAKyhURTVI^COncB1h+%=cROH|YooJ!R;R-0){e3qm6oA3VGI8>Yk*eKqJ zxh|dhj`@NxKEu6|a1Zs^0b~s0unokIcGrxL> zem-7zY_Xwm4O)<`F8aBdr(23fNaHo1kuMIBOZyH&oYUq%C}Q~bKK7N)DkiNUhJNqc z`~M6^*2@iEEF#053bf3nt)K~vRRU3RXDt~O2bJx*gTq{~7_garK#B`V4k?7i&d7&u zB8L_DBmRYz#i33v2Xk6T6-y7O0p*vL=1HMSfNI1ff~mMiDf;t0x}5iAW>{D6)B3+m zSBHw$Kiw*)X&i{#z_BP!B|F=!?v!K79RaYSR;$$RTyCPb7nxzBh)$k-{zp&meL>31 zgS}#~{TgV23YFpRwlfi1ECPPy3;IvSa?kHtfrjP68m}2g5Xai_rG&X(=4vDiNe``m ziQkTZ&*fTT9kz9>U|=%?lA=yBw{f`wiLMl}G6ypLHISred~*qgBpo+EVvd>4r7v1T zW@NS4kbaCU)senh#J$1O&!~!NH7NG0*9U{!k~jRxgjO@TP*|P94?+nx4+CV+Pnu{U zxr{K@o2+DF1(MRs5TTf$Y~*F;hQPk0iI{kUJT5DSv58FO4oDwQGd6%)Opphx-glPV z!Q&n?4e3d|ozIt>Z4f$=e-%QyomsAK#)!M=OSDPh|Ni0-; zVZS2&x|=qsW35(KtCUTG9`&#dq@b+t%Zv|AAn`Q+W_Vf=cb)(jyFHra#~Jn+Seqxy zUcZt-SxJmDv8_L&Hc&00mEvwGWBy-LAV5sTLSNuZd>8|=fi@)MKyu{rs{wZB_GAQZ zmmmu%ftLuf*y!J}QDg2T@LdBaU^p>=v4EsmL%a6a`Ap^8@3!-gf5&4Q4VZKCYd__u z;&}aCY5wob1M6Q^&seQ{tGs(6$s3zhSwj7eKj28fOn~L^X_4@?F;&~UF?x}VAkDZ@ z&p*1!g!(||Gl`&U`FG9=_<}oOPcvd=qn_+Yek&dN4pKpj)DTDr9*uTMINvP3(eQ>L zxzX9#1M7BBO-oU;!g2~`AG@tS@EZj`6trAm1y>+91)|u*6X{RYe>ifa1j2wHSt4Rj zeJPC$lh&d^vj{p~WhRF+=>#^}n+b>Mntx`DeGO;6vg=jn9$E$+f^^u94-!HF0i;D2 zI!$O{1L@5>`ON<%6njI9joVt^TCPF^zTLAfmVg++GeI=7AIw{dnJ9n1bXb#SdJ=u< zd7Yw5VqGWk0e>F6k4cgD>VkCBKP6#TYF7qUTaJ_;_1!C_E&UFrlnTzywaF2mbepFd zVIYFpy9|yV9=B`V5lIWW@O#KYf&TDI*UE3AH`@%HT|Yh^=r6`t$B$&7^|+jFjc_Av zNj@+CBX^f4%34K?^XWz9C*93dix0F+1{Q!Ok!Iw5u4TJ*KimJ2WWZXfxLS*c3+Ltv z#z3e>p1|*c>{finbvb(>*TcyR;B6co>B_yLOk)|#SEfKVgxtY^n4LKPp-CBmL(3^2 z?sNYzg2_$S4)^C8ckb_R5)T&bX zSxga-5hSnIm$1EE(MYMLHQzm^%0-RC4>%1-@s``~dyu=fh;bfC+Xbpl3SA~^ELEAv zV~FYS)|5MD@@VQG+~<;g{LCWi)f3o86tFR%7pd zg5k3_T@Oj z-kMt6!Hp{>?pRbmA#VOfs?+l|%iuGN|5g+7CYkacbL#hjOP%^E5p%rNAw@#T=z?mq z!C^J7N*hS|bwIg`N4;$ipYFB-xIm_5P{-9*9gU1_XaR=F7S ziPPLVT4Go3>9v5Jz>R1^623y)zi&EVH$&_`>FU13(xGMy=L_NsAqiF-`5)1|Gvfe~ zC!v0;@4LF?^J&O~vPv|_cyW0T9K*Z81O6XGXoQ?(EcDE@A|u{+{)`1oU|);m5#Ph2 z04xS5dp{xBqyLo7UCMM_|=#j(ya=e$yNJ(q_BFT|FGrhfB25Pf5#REvflqC z%=Z766OR9iZa}zFhcIvrYjeKJ<^IpV1rcOLFrjAVZa(%uJDAr2Gy^X1OvKygBO7P_ zcl`tUmFV>bQ9p1F#~T1|H#A!s3u%852IyjBZ&4rccren_)7uAj;NMkxKt$K#;*pyU zZB^FhT~?8+l>oqtROPB)L1EP@PDBD4kyJ%;Uh~jWg9hl@dRb``op2oMsoH;wR}o@= z02XpE3k?6{`MIj1>+xi%&utToHo;LZ-l5*4E0h2TnxrnPBy5`U$S!l^H`qy(0*;IX zQvk}smGD$G89e7fb)FoGX5Qxm_I-QBtaXHa_|*!t{_R;;ArLE|Mk_86~R;xsSyi^2qz;EB)!p8 zd8(PB9_8RXhguF;?vFU~Hy9pkoTen0LB^1jg}~QJJDK-hEdstbSEkQRkucbDI!-9R z>IY2hkNVQ*$Z{Lt+hqf$gE(OQPz2;d3xGBzq@tqYZ|XQcGM#l5eKYHN2flWWHuW&U z=7Tf!-U;Ym`3D*Zkm@z&!)dcApCyC%r(I?Y!F2ZcQ!}tSo+4R_z{tfRYH`*3?^9ra zj9m~v6BzI_Zox~O0<^X~@F#2nW`S13Kn!@1t4Ywf!VD~flaXyaW<7=TN8mZ;$4>UB zK(;uRQ0x%sQA`8M`SiFwJ6oeKG3eKs21GhNFMHE|9}=&D9_O=qsj+>b)cwzD5`MC> zOz&WQh3hv0Zf#2eP3W+Oj2|ML3FBcW0vTTWUK^TlIl|tNFrN}|oIkmwlDA#qpI;b4>jWmfu3 z3)DE=v_%tsKTSYV?)XlHVKH}hUF~?DoREkiUH5)S`^&|a*KD&(n+7INF|iu0VoF&` z)p|kyui1!mVfo{#Fv7BVx^mFYXAMJps8jUQzwe`fMfmB`-kehUOPwC&&s^3sM`|+v zlqfcz=zV{abKyFj#v~ZsCBAKE|GEMZxd)JE=FNME8=R*2n@s+Xy%vYfn}RR@l9p?Z z`+u%i;g2UAi4~<8eDw~o_3L&1Wi$8BHiVM))g_I_ThOKDI}ohgR5!8|h((_&;#zd! z>*pDaD@*Nk5M!tj^herzKs1~am>p8UjuHZR2u!LO!j8aX2aDIJJigPsyS?VS zUITcSl%*C=_MNyihyCAG?OG~05SKM>sJ$?6L9 zmn3hSKVSg2MbV0GFfEpV2bA~joqs3^Hx{G*CY5xL!|QtO@|Krv3yy=fye>Dw2M93G*$Bf;uSEo58&`}B!)UzzL@V0Q zRMq{t!;T#QPl8QAiG^mf>69;6HNj(%*;RTp#i!?h>;Q7!PEarGS0>=5R295HHb?@Z zoY?3>pHWLPC8$0}h)6&x}(aEHk%rXAA*QeTSi`u=HfY_=$ z$2XJ1;RF5j;mK32)nSL}_C}of&BN47ehY2LOWUO!?vQ*Y=$q-0NHNfqD){j%#pk)% z!E8xpbjZwOsGk9uYoB*(4K0AHGHV@{GUwTGt#brPRd?y-q-XjVDZF3*Lv^^!E&u0N zicp@2aW)E?UDi7JmIn1_9 zPr|lv`1XK=%8zD@XXot9iMLyCjN;{in*RXkl^?z_VB@LkeIQ2FxkJm#3q^KMBE8Ds zP@n+F5gWl2A4V zQW+71HfV85-%yZy8-NEBh~rGE8LCHe+tTHdl)O|dUvS@OI&49c!-CTQRos$bBi3QP zVCRZJ@ubHCkQyP!405XR42Mma;BsxVU1ZDw0_vQYsFX0M(<~4*j)mGINVyH4&KM*p zdR$T!dP}3@K4BJcG+;<5_%(JB={Mus!>pKGGC9H4tsWJ ztmB~^uO%DOTGCozA^#N#G;Fx#bqj1<0WEM$Q^m`iQBPi}I*&AvbHL^SZVp&?;-;dV z%blMa$0Yt%rQ97Mf4ErcR$S|ro3!9=>7rNV5z(X4Y&{zN&4sBTR#13WkK`i5JB-I4 zwma<#DQ+M%{!ox8$Bz>JaZA>(>R`_L?|;D@yC|80?Hy@;Dyx03PqUX<@MOAS)? z_Av|lZ(;a&T%ZS`T#25E7{kx?ZRf93_p4BH`-Rp};J{)r;mE4qWRvfW9zn%CDx@~P zY=xbB)NFA%V6*7Zvo@@&>!bFaSo+Sx<)}W_NhXj}#RJZ5a*SgML5ST5 zlQ|D8U4n{q1q_!~AWmsA#>SMlb<>`9@2*7>7I~Z8wb9Gk$7vTPq2S~dC0SP!1;Gk7Jbv{v*Fa}&xF=M!fmv$69}6M3f1B>>v=Q_6u_1D!IMAr z=$JxLtn3>mK}%0wi^_6!q-g{#=tD7t27(lfR8 z^6h;uk&)w-Q+*Yt+vHOsd}Ys2q@I(!#0?Me+7U8aA;3$ZxQTg<%kBj<{F^Ukl}{X& zRnlH)ya~9;y!u5oQQ9N-`uo&YcWfgq`lj5=jAL99b`4@y$v@j#1qUdBh4$o2fQUQ} zgcc6zL0SwCfv8=El>e%{u(TJN7j z_VfRsE`fMh*pJ_aOT}zG{XsnidyC%veo4{sxy+OWk;}$sW=XHBlay3Rm1m8EHQYPb zDHXqSsi>ZR3^zD@3+t4Pbix)?`Or`o+1RWmNOo+{WWTzHBx1y`B) zA@OY#=$0~N4qL5~OKyJ+>*&ccC&3$QnQ_1GehHeN&63N=W9jEk7la35M^>g*;HhhT zAeOo8tj!k~Orn`9&ttW;R+YP6^-VFQwOda!?zG_Rx7+dx49XcxtM4_xz)_6XJMZ4l zm$_WXE{`MWYl4S+*Y2zvlabjUi4PmWNJ*92bDswpJKY2sh7*ws&7Xj$uWEl-ZrC&c zf*9st!Isrz4XpXoY9<>)Z~Fbvf^QKdGTo1}WN++HrdcphOBX9UMeq?%+i=OtGS%5E z1`;POtuS{JhLx}{f9XXmmR{6r#Hu?6eTC;32w-q;F6rl&ZuEPWedT-=?{!_S!OPg{ zZ{c^|-6U)=s68q!dQ=h{6+9(g_6;o4^;>TJWbDu9r*sqp&~eVGDCAxLe#aE})AL}4 zNbFhl-j!1Ei<5W&!&Vqdy?l?T61{pKj6+k<&$7wBP`-@!C0y5(^8+pb;hpe-d* zqiT)n^qY`eMzcHLtRL3H@;6eu0bQ8yC91;R!Rao^MjoxV`%>pqCDJy?p5a-dp;=*M z$jQj76wtq2fx76&)Kk^mKFGEU(8N=^NkC^m0;>+IrW)h&`F2_Oy+I~78oSks`AQ8y zp?wfVBd%L-{-9&u;6 zQFp{kk4r6FST4B+Ar|d|%c0XAX&M5wU~4WhTUSkGv3&7Lx2g6U8sJDO*X*FL%k89y zXCMk^;(WLlcVJ($ED<2rzsom2IY58XQE{*XiDbxQ;0c4gDtmbJ4y2~l(ecPRVQJ&C zRd*97v#WtJz#aiOq`+aBXxC&<7-}^Z?~l8u)^Ro zwuo{>Y*h#Tqf#n60j6E3y3Q`}Lr-gs>3y39DI(Nt`q!~PBY1eZNKpS;Dlj`eol@I@a zQIUi?*q5L%hG|VaQXj&@(;L{W2t+iURl}yf!hc%&_?=9&)W3%3VjKPT1}Et{GWsc> z5k?qZ$u3A9Oy^<~vW-vhLcSbVePtx&9_s-0CCTY3p{wp;xI!Q0{t1sbxxSe$>^L^= zd<~0vqF#TX+f)I9VDYc)mfGryi#3bZd=hrH&>H^_m1~&Gek@K?g1!r6WZ6N7b7m_I zNptoM2&59dOBV&I8*7v=-G>`zONHR-_fOmN{yWPAJU*6NZBY2o zUO;5>QWYxzm`u^X2fp$_z+E|;#LKemdx1d3Ib-OW{`dq|Kn9X#NShxah3DFAmH}Es z$rF{}|3;P}gP0aIN5D4UUQiq1u-;=OGYup$wC{o3t*}EO&ewN#yCf~=)2{(bv)_En z1m$E@3J*<`+&|7LMT3L69}OzFCf|>|Ca6@@hGPjWI)3~oc@Bi(b^tsf5g0-w5z3DO zzXLF33UUdB0M2I3sq)vCJ3e@^QlPtTY5;^Z<3LVWuu{(aWUU)yzlh4F0!$X&zKJic z$B31G;OF>(j`QS7TRblkRFH@kqU{4GBqJzJnK)SQjY$DsF66Z0T=(z@@J1E#Yl}+f z>K)8lUS9U{Py<6VD;V@80E2JQo2@Gl8|0fk0cfa+_>F~S&L0ce@UC%T$Bod#5PX5Q z8Q+0uSQZGK>z})T@e#D;)*x8rYz>uwxnV1#V& zp$-1Aj54CB4p`3r>9_wT5pYI!=m0329!emG)mNwsM*0pXSSr!iAS>tChm~Y$22idY zQgWa%=(PZG$>TTgS3!I*FJ>G~U0of7EOQKjMy?h3>w;agFjkrx5Lh%VW`S&rq^mV1 z@V^BE*kU!%ypq4!6s94eLYx}#=pL#AK$ozPi>uIh9s3cQKBGk|r6U#%oXD1WC_?j1 z6d#hhmy;G&0f-W4r=Ue_`z~F`l}*on*&x%i2_&PyI8~t0_t$40$1xdFg)GUSGq;|g z^__<+Zi%-*j^P&ZIEw{%?0zr@E<{{F#E^K?aUf=q^V@$*_U%hzPa%|MK_)C_-r67= z!2+c?a{xJ3@6xFifT39X*RrKpe)V3-$jPxcOoI#*HZjXLzBt-f;+Z1ZyP#GKSbwG3 zD!^N~a~Bz@WS#`#7eTP~A0vzoURQ0)tBi&xx@59%$?Z zoj7yUdkp*mF?vFo0EMUl^n{Q*G$0IUva?K5kwrEgwZ1MR6I*#HeIEmqqhoUj91cC0 z0c^yhO>oa8BW3tF+H&dWOJc!x$eJ57ZvA;VFsU$Rw^ug;aGC`Wyl==OcmYLe&Xt4q zu9}7r4~@|fbTXPNU^B=@s%5X;8H0#v3zzw>pXaCA#*YWZnGRWi?7*eB9LkDj9P?Mo zp#J`IL0*DpzW=C+-Cy#g{|^%d%>Fmbva~;`UekXj`{hg{YvC zJ8y#Ar0+HRB1l;MfOw+7Nm?p|r|XmfI|NxoFLdz?7B@m3B#<$TyyM$)+L808ydGT+ z<5uBHrZI0h1i4&jyeG~fk}8dyp7MfzLHHxqB+!A0IJmC}^emcxtt3UN5JrwzR@sHX zc42IMd{w$~6yO1Hsc#WR_Gyu@o=~>8B5}-N!K97?G!kBG94y`oue)B!L)`v+u|$@M zDI5v`aQ|jVK~N|OM7QsV8v>>>ZuleZQe8SQhzw~wy4U|GH`a+dk?y(s zu*?cT;xkGbpra|;V7__+3eUg4YXe3TxEGsvhOP~x!net=?t6syE3y5}pkUnepo#?e zCmz+eS8mh3Huzxl=0VtF${5(M2i|mW${;)|M`ex*ueWaVFFZ!cP>(%q*Av3R(+rMTV5Q;4O zL~0xM9GNvpMJ2eUj-zY-*FE%qOF91Ew`%_%_J{vN<5#4|Vv2{>GURo6{J-1|s`TP> zAfHEmQi=$0T-66Jpi=>HHv{eA7!W}zd8@>;6dcv-#e85& zguNjM*n#3@cFQZWN320gFubmR!q|$jzki#x0)#vzzuTl9q!-DlpLJacwF3!2-EiOm z*o^(Bo>726;}jGUSQHR(=Lb@-^ZX0CrQ*?3>Nk;B_@4yZ|6?Z%gqR%@P5-W*h%PFk zFo!m~1-jgM<^wTjj@dgPW+ogg*Ko_?_J&eM5oyIPeH0VG|Ki5g%X4!nZcab;&48bK zYgO;wd%)XNb_j7a!8M?9g#iS8GG#{|7b>B49BX6}E7K2)1dP+v;LOuS@i zMdDjQ=s`XJT{#a7mIuMuwvi_2o+&ahWb6$OXaehM2Z)X3x4d}w zTPee>x`xA`d73o^)fIFGE;Sm9!fs#xs3>}2GpQLILv~b7R58E?5_s5dgWoaT;Zd%& zs9@?&W`5AD1?g%`tT);N^Ys;XjtfSQD9kQb7+)cd16DiiqOUW zNNK%C`5UjrAdhJ~eot54XdT7n)dJvbsh#igZGTYHWzPD7O*G#9b;DpH2^92*XZq|) zaBK3yg zS5j1CKmY^yaH8j2x20vKTIR|k-TY5kIHMBjb2L83&ehtga+TLz`7|{)o)}yix4?GGt5aZ) zn|$=#{`t!NBu#0Q5v+s!o6a0(monuX*_id#Pra52eZ#{U{)tr8fQc_mnXtuGsDglmJIpFj`_8N6M+J=E?Bgh2bI;D-Nb9uiH!+WFRpBp&{$m z$-Ifh!r<9HA46ie(~tpXjOD^1ulEH^C=KwIFl399UsGL>mBuALGY0IEtnUX4daiCN zCj5^YTm`<)Yd@^5I$gxc8>&1bXlEc8e zuNOh;qHf##ElFZxwoBC-X zoURx>)t5wj>&1S)rnPp%Zri_#`ZEkm-kmJ7dod6k)m6P&(x2u30Br$xHOP!L7qz9b ze5IRC3^l%krx}-AFipSKX2@E4g65LcT=RPx6_v=xWJC}1=C6hlO%UP(0Cq_a;oo5gdK`Ki>;=$v_DysVbiTNc`V7B1i-)Kp4g=%vk(YvI8{^gyQ|Qc zBD=Qx?|l(XRaRyLy9?|CY8!MYZ{qF}8!0mDau|)#6lR1q$ z-IKJ-=6D1;I{ojz+)pLCGB~rIX=T`Apr^-KN(1*&q^+}!pv%Dp?)mOH*U=4MPGqy% z1h_Zp*;pr70uoIUXCs8SQxqVWu-W+(OK7U78COV&Bu(#I0B)py7V_f(&FRl707m8e zXn)jY4Pju~=5y-{nJjjh7mFRwXj$4Pxw%R2XJiUYk{F<6vhfFDUFn#qCu8zfcm7BH z{YBxY#hI0N$)CWmW1>{A<}`5;)yPVzZ~=X<*^A9$$JUGJGXUtRzyn^-Uis@v7qATvQ)r}c^|5EU0gHkNv z9Xe~e;JPXa8-MY+WAa~XO!g2t=F`-lpPjaR75NO`7hOhL!a48f$i+KG2mV5b4Sf{W2@6M}t>t>cQ3na~GvD2fb3|R~z7!F43%tQRnnEnq=hSK;lDJKsR zXJ6PCR7;>W-*<(!{ne=CKP!Hp+UR&-vydx5MD&RJ#%%&6gUSMFIl{SzFDS8&OX zoBKOAQJ%FQ;g8FEn!Gk&#sqEEqu*Jx=wxN3EsbMSeM78dG4xG!N4;XLe_NX5aZWM* zxr)d=%EVCIcVYcu3QFI1dG(tPr*w7CY(B9M(2T}_x$Qv5G5M1>O!ZJAGgJ6C2w)hM zzqieMGScUcv~bVJhi!27XNrj}He0dS58#0138e@`&JsoM+)&(Mlm!U|T+gk(4Pc#k zc^#{>YE_!h&3${caUF5jJm}(7V(q2PnuLNPwX=V1O=(o5-GUyXuV#z(09Eq+Xd#vk zK#bD%$Hf1k61tpdcsRqKsFN+tdeL4}Lrx4-CspXhZPfc62d8wZU!*jPLp z9!?LcqY{tP;wqK}99@r;K7QORis!|5`}l7DqGexXHA@e2Jd-9{HBfV$)>-zS(>#i3Gkbke(u&%a`WTfNKiN$VZGq!v zaWih!$3NV>?-!ctKI0k~BFN}~nJ6`9bNAthnOG_VT&C%#&xb4`S&E}@`;rBhKo<*0D{#io!*QPp}>jGfX3l zj)|seJXYt$1=&$9u55Tc_f2Kt4%E}}ZG@ev{l#KE?Yg=eqhhyMtp}0~;r^6TjgBz& zn=(0hi^oo+q&IJTYGZRW}0*9URkYw z9M%z`*}L}a*lx$PwskuyUH=wy?lXjsI)h8~!rS4IZ%%b7&@-H2DuwR{^~th#q8rAe zt+UB@S@?R%=EvJ$DyqJvF=kJPod~*GUS9l5Y^Z$0+n39lJh+VAoGbQL}QwUEaOn4-#v(XU9 z=I4OUx@y@$6WqObF<3_UBsn&xt>A^}PgF-2mpo`5WDHElqvXOq9xf<=O@Cf&EdDyd z191b;seZOUo7wbda#Hg!Mh6Gb-JXI!5GAFJb+;)g2n4&ktLwOg)js;;zF2x@TH3Fz z9I6?7Qc_DBo_l7riJ?CJ3pigt>(-G;SA)x_@dh7UMw=F4+JqFBk>eB3e}C;-_5fFb z__CW!k3bNh{iy>0#dRH+liGCM7lF=ITRa3-_5esSheDoWO8)iVErgsSP;VF#RKp0F zuFiq0bZedBrOh{>_&mb`d8;IlVp0VI=03)#++0QgQ|6p1d!3S&o?Zl+mCwMO*omUj zcK+q=SPn)4#oUs|9_JHat?%ybrSQZ*_+1rXU|>)P)ChBHYej%m%?1f04Ov;4N^6ze78w3YUsB7vx(?C0kPHY0Sy-1nP49t=oAFt?CllNSJ{ z`SJ?PB=dl?I0^)Bx(>MC04qB%Ly4XqAAbV_%_NXh>K0(Tm+N1(k_88fU#-n7FOs5V zb-2*50MckKy9*7^0oOH5C5^v>PWJ5b@^b5A?2{h!td(2vrZ@`86Y_graCrLESdK7@ ziHYqlw}}z$oUHdYz(H6{shyU-nY8CY|5_tz1JO(MF$KnWt&F_f5<`pB53h}q<(bBK z`uACxmGX$D*LXaIMV`d_hSjO zuRTHjgA7cj1S1crV$H_(QeJPW|DK>6V)aX0NxDbNAS5Jo1Dp|k zy}cpfq}(cCpr7XIU~j*2oX#pvNLzkqZaKrZ1fQn>sHZI2|9;@ddMrm z{euJ67cUa$7Z(?cbgSNYMbSQO&OS!*cQB7a9NfdDJfuyb77#v_A1)) z!PUsaN;iTEMfvg>g&I$o?2HGf64$hx#8>psa2$~`#So~vU=&`^`fW6t2=Va}8X{So&#-<#Q@d@S4!2%pvOjM8Xb zCFK?50u#?<7ct(DuG!!8{~AKJJ4z7 zV{mhGmxoIg?gKE=H*m$Duvda+`SQN!=anlsRx^Gm7?C1?{j1;VB~WKOpIm{lDtr$O zyN|$%5knl0GsNX|L!nr&h8bCG=~YIC(M|p&R!Z`B70}0pMIF`p6tdRTVuk2(a~UKd zH}tuQHMyt(w*b`n1mS^88L;(ccW8gHDMi2bUB@bSZI=9sSjWsv3Kp8t<8Ve`yYB8) zm-Y+ipRkM2tu|Nq&tavB{fT#n>6z z|Nc=KbI*$Xip4h~)iy?faqmv7nNPTevG41DEPuQh{{H^;&rnGGfxqKUD(D-n9asbY z>jPJi2dnX`z(i+hc?ILZ#K1&U6ep?wJKya5Q^m_cuZNbKSSYUmZqW!?N!q-?f}*o$ z97aEkKO})oiNK8~1VzH=ld_EgZ!aTt z)_@c-ChDI69G@C##*$}~5k_A_O?{5J?@DGeN`mT0!T0=?HI)dFFO%r(kuQ87Y%aLQ zs{ZRirfy#AlWD*XS*{NxUYC=j#sB;uUSpi#zn&ctbOq)t&f;Y3n#j$?3W-$lk+XF1 z(V0x~5x7(TkGG3qUV)X3IVdBKFfX5oiJ3@7n%Uwzoirg)%CK$hRYBsW0cNz-frH>d zstHG+e(fbhh3<}`cMNy^z2M^|9ibV01uUm9fgsV*c}-)HuxRDH#1~SCt1e%$nQbDf zufPRJ$dQ_8q>cDo{{o`!t%o3;COlJ8b2>Hf&9l?>kBt{Md27zjx*FgOfBTH{<|DZ` zeCW|!v&+*UImYpXLURk@jA{aY&$}ne=`Ta(TYSVI4p?32D1<4o5&*?-Kc84svpu?+ z;PuGX*Q?@1Bk676@?J@Wr2GIjn5?<8@rJvBgjS>P4+ipmnv1j`u@n%KYY{tDbEf+&n!3N{?)B{%T0@5 z_xo~?EDsr_+1mz3m8;Ygj`Lg?9{m@$vl}TyM9PPgmXJG)W;pK*;aN=7$Tty~ms_cT z6X{spo`lzvQ|&=1}1hVL7l0rO>^oFudmE3U8+XI zo338X@-!-!ojK(pL%sKl`66gb-oO5u&e8OcIvLjK;}pOCA5TuRhQ@ zwd_$!_j9#qNi6E|+GVrfgnJ%^hp85Tiu=Mk?Tm#*A+TFh(VXbkvi)4n zuBsIN6Ai_QeqJ6ccr};zy_ntnP}2}&-6|!oGb-@fL)=v_zkJ@Ev6J?O;h3XH_H87D z8LP=y;QLF_vz|E!PnB!LF#GaFB`Py^lTWUvFHPp#dQwva>v?kT`=@Zc?%wiG`;_Ce zRcMm+v(~JDlxXDfW?s60Yf|TP(#hzC$}&!G;XgzksnQ0xAHYeC;bBFMd|bATjo*Z2 z1r#_$-u3*t7N*fRCbP#U!)($hD1W~+Au!2z))~{++Wf#%hm>nM8=5yb>bhJ;%O|pL z`t#GJr!Vbt!6QCIvNUAWZc$ZCV=TM7Z|fLqdim(eolR}UHuaS+kLQZMaa4OMpPh_| z=Uu{x%sbci_6|tz02u8`6$~4wGaAMxR~QVAFfF!_%5F|AJc8yv%{3>NS5{^+Ha6D( z@qx;AxiuXuKbAHGxy0-_z_dR8VtuFF1nFMIVH?s@HI)2M?ooJ}rfm zpck(1{r-cfZQBl+_Z50}>)w;P_vn=+#Eau+&RwJ8#Y@tzJqLIl;huXPILhAD$HJ{}&E$i>A?jicT`kfXSK`7(9r(1G51>n*aev0*7wrVP!UJC{;Y z2HV@A2jk-sUYkDNQle z_Fwl=O_y5quR%lE;CAoPn{FsCD>^o7cm|%>!$+|+@LxlzL4!s#Zu~@Q)VL`vTfRp1 zHRP1EzA(tA&iE^@qA(L8@0_iOl%NYdrQUtsqu#yWXA_T+G_IEMQ=Waw~e(XzGClQ!s&9HqC~?3686j*cEX%YTD-kjpHq<^-PR zwCQuGLBqy8xA3em=E6lwsA5GYy8j@8^%vv}f`fy}(a|xJj9!#!)211F3ak}5LP{W{ zBS+6L5&Yn}o_C_y!FsOxiFd2DYuBTet=f=N8$ z?@%vA^6&~YqdfAXG1R09NXd}AM}Lr#*8yLi=K}}*GD+#erJJ0u1MyFvF_&t))m0v3 zY$hq8Z~&gBC6W@Zv4eXj>f3Js>y2a3Yw(Z{)jIkkDeY0~sdVWw{pLMRvJZw=q;~l*7}%A( zs!u%Ukl-N&1U{g{zNgjBwGzFrcE<>*Xt@%+52~a#ZP~%+uK($0dKmhICVcWa=Lz=h zKgMerac6g!|$1h6Dhf~VY}V`qA=Z-3s5;ND^$;3;)9 z=FK$yK|=d}^Wj{ksi$=M+*P%4apa25Nt35iy?PBOJksDPVa)jp7n8HI3q1;pW&JGy zW50V@}Bs&kt1}>LyKFP&c)+#|~CAq981g5(*DAe7|@lhwJdY zV<^upT-cVb-@0#XCEBoQJ16(gU%bg40>(lP1cs)0i&mT?0#Gyo0)nAI=nwx_yh9t+ z`KUVEvUL~du~1TtYqhrOJLrS3CqizRLl6??po4oC`k? zO3g6j?{@9+R-S@Ax2^PC$GJWfiNGLZuEva=NR1meZ2Yd7xEx8E)2P~P33Fdkbi1^RIKC~DE7 zjT+Z-au(yqkJmL)B6&+}ZEb~={y%~p=e-9{sB5>L)SzJ#uDE;nD28s|dBpi27#9>g z;Mo~GU$S%e@9f#knzM*66d@;+kS|@fnv?CQ5*wxrMK$Gd-M#miiLKAO{b!)j$e;9K#-1*>ZM-=TcIY5!(LCJ}OQO0;(Dh3-+}5V61y4j zfWww3A4jQvLQ*94!KK=FCyvU4=X)`SRt{HO!_`RIOFLb91XSXwZOy zf`W{z!upYIq=a4S${*J8qCspPUJJaS8qO|U&Wqjt=gJ76u)(>eE64Xg`|K+w8$3l1 zQkyb$HhV^RzR0m+C31Cja}5h-Dg5N7lE{3|L@pa8k3dByxq zoi>~24Tf~f&pYWaufMJc<{W!Qc;?7O%^z}0NZ?~W@EjRRzTsJ+9J+*>&uZ0c@L2FT z_~B#a-CEjnO3)vAj-T)u<%j;R(BGbB&0fg!g7pBB%J;W?T<-l$IXk|7=XmYmc`irC zN=#CCL;(6D{0lF=Sg~SMqlPm-!!~l{7%mq_QH7--T`g3UM&~7&G-=WwNXS&mmMu#G z0Rg(_=4Qdqs^k`AqocxEcrf z6BI)juEmSI)U}}u7(eo7O{4^Q67`I8N4`hTvOdty5Vm{9hIZ(OBdOo}11L)U4I_>= zcnK(rhF5xDd9gT#xj{|_xu-Mg9$;SJWg*lWsU%#zm!*EA0|dE7=zr?8zcFlQxaa)` z4yHkahN-oI>Pv(ESUwq_ zR;^m;64D!Qyg^&GY%%r}SSzwIr)2mpI(SSk3Jl(h?WWI`Xu^qVWoWcMFcdH#2uFR; z|6jCV;S$aPX#Fv+))xi}eephM!}wa8X&=0YwT15tVlbxA0lL8GLKhI#xeM2+WvjNF zdjmmf=Vf5W2(5D>2E zcn1BSuM5N4kuPMm1cZf!(Zq=p$==?cUVH5|4%@bA(}ujfyo@~r)(orvJtY{BM`7`F z$v=?4Ff&XU6TN;fBN{2`wON~>JpS&zaJqUuNRfUD6Nz5GKO-6mfs_)STF37xLH|2J zVO+of;>8-#>-T3weox7=@aWMa4%OYcbBB_W)b2r$D`4|9Fj&g5WF0; z&ySFjK=406NJ$`gHPAjkLP`R`{{SH+f#B7^@cHqe{{w<$ORR+Y3zz@^002ovPDHLk FV1l*OkS+iK diff --git a/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.XML b/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.XML new file mode 100644 index 0000000..f63a694 --- /dev/null +++ b/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.XML @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 6876935.549267 24525276.867419 0.000000 + 6876935.944905 24525506.272759 0.000000 + + + 6876935.944905 24525506.272759 + 6876934.868200 24525521.816666 +

6876825.945068 24525506.462467
+ + + 6876934.868200 24525521.816666 0.000000 + 6876922.064789 24525612.644434 0.000000 + + + 6876922.064789 24525612.644434 + 6876849.049537 24525701.264387 +
6876813.141658 24525597.290235
+
+ + 6876849.049537 24525701.264387 0.000000 + 6876824.909996 24525709.601071 0.000000 + + + 6876824.909996 24525709.601071 + 6876783.164849 24525735.664970 +
6876860.817875 24525813.575223
+
+ + 6876783.164849 24525735.664970 0.000000 + 6876723.854000 24525794.780000 0.000000 + + + + + 135.557000 125.687614 + 155.453895 126.367318 + 224.860128 127.770226 + 294.554565 127.086000 + 306.077551 127.086000 + 506.227944 126.379507 + 597.429913 125.778943 + 616.442493 125.806000 + + + + + diff --git a/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.ifc b/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.ifc new file mode 100644 index 0000000..ce4b25c --- /dev/null +++ b/E1a-ARSE/ALSE01/Dataset/TOI-M14334-0000A.ifc @@ -0,0 +1,220 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [Ifc4NotAssigned]'),'2;1'); +FILE_NAME( +/* name */ 'C:\\Users\\lars\\Documents\\Projekt\\IFCInfra\\MVD-Infra-Test-Instructions\\E1a-ARSE\\ALIN06\\Dataset\\TOI-M14334-0000A.ifc', +/* time_stamp */ '2022-02-18T13:46:24', +/* author */ ('lars'), +/* organization */ ('Unknown'), +/* preprocessor_version */ 'ggIfcConverter v0.0.5.0 by Geometry Gym Pty Ltd built 2022-02-10T07:15:39', +/* originating_system */ 'ggIFCConverter v0.0.5.0 - Converter by Geometry Gym Pty Ltd', +/* authorization */ 'None'); + +FILE_SCHEMA (('IFC4X3_RC4')); +ENDSEC; + +DATA; +#1= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#2= IFCDIRECTION((1.0,0.0,0.0)); +#3= IFCDIRECTION((0.0,1.0,0.0)); +#4= IFCDIRECTION((0.0,0.0,1.0)); +#5= IFCAXIS2PLACEMENT3D(#1,$,$); +#6= IFCCARTESIANPOINT((0.0,0.0)); +#7= IFCAXIS2PLACEMENT2D(#6,$); +#8= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#9= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#10= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#11= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#12= IFCUNITASSIGNMENT((#8,#11)); +#13= IFCPROJECT('1OEWBMD50yGJCMfbHiMaxa',$,'Toivolan_tasoristeyssuunnitelma','Toivolan_tasoristeyssuunnitelma',$,$,$,(#56),#12); +#14= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#15= IFCAXIS2PLACEMENT3D(#14,$,$); +#16= IFCLOCALPLACEMENT($,#15); +#17= IFCSITE('0fC4Q0ghjshYWRNlyJlyL6',$,'Toivolan_tasoristeyssuunnitelma',$,$,#16,$,$,$,$,$,$,$,$); +#18= IFCRELAGGREGATES('3nli4xTQXW59Tz5QkTJN3h',$,$,$,#13,(#17)); +#19= IFCLOCALPLACEMENT(#16,#5); +#20= IFCALIGNMENT('1MZ$_ugNawDiLW6OHixSD9',$,'Sammalniementie_u',$,$,#19,#197,$); +#21= IFCRELCONTAINEDINSPATIALSTRUCTURE('2d7LGjg5j8deye8rBGu_pT',$,'Site','Site Container for Elements',(#20),#17); +#22= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#23= IFCAXIS2PLACEMENT3D(#22,#4,#2); +#25= IFCALIGNMENTHORIZONTAL('1ck1ztc5NTxKcmM$6H$rwZ',$,$,$,$,#19,#98); +#26= IFCRELNESTS('2Qr6YhEtzBeeELe82FHdbs',$,$,$,#20,(#25,#110)); +#27= IFCCARTESIANPOINT((24525276.867419,6876935.549267)); +#28= IFCALIGNMENTHORIZONTALSEGMENT($,$,#27,0.00172462248684613,0.0,0.0,229.405681,$,.LINE.); +#29= IFCALIGNMENTSEGMENT('3hZ8l87U1Q8BI_$y_2nj$z',$,$,$,$,#19,#62,#28); +#30= IFCRELNESTS('3i$XYZYN91owg1IkJG3pGm',$,$,$,#25,(#29,#33,#36,#39,#42,#45,#48)); +#31= IFCCARTESIANPOINT((24525506.272759,6876935.944905)); +#32= IFCALIGNMENTHORIZONTALSEGMENT($,$,#31,0.00172462964706543,-110.0,-110.0,15.594208,$,.CIRCULARARC.); +#33= IFCALIGNMENTSEGMENT('3tOKSRAS5$p_$XokyCfvbo',$,$,$,$,#19,#68,#32); +#34= IFCCARTESIANPOINT((24525521.816666,6876934.8682)); +#35= IFCALIGNMENTHORIZONTALSEGMENT($,$,#34,6.14314439461041,0.0,0.0,91.725737,$,.LINE.); +#36= IFCALIGNMENTSEGMENT('3MWD2DeWHQ8QevjrZg99YR',$,$,$,$,#19,#73,#35); +#37= IFCCARTESIANPOINT((24525612.644434,6876922.064789)); +#38= IFCALIGNMENTHORIZONTALSEGMENT($,$,#37,6.14314439896281,-110.0,-110.0,120.80482,$,.CIRCULARARC.); +#39= IFCALIGNMENTSEGMENT('260dLIlSB8SrmmNwWvQa3d',$,$,$,$,#19,#79,#38); +#40= IFCCARTESIANPOINT((24525701.264387,6876849.049537)); +#41= IFCALIGNMENTHORIZONTALSEGMENT($,$,#40,5.04491873079937,0.0,0.0,25.538554,$,.LINE.); +#42= IFCALIGNMENTSEGMENT('09$rVBiaRE6xbncNrNsbYP',$,$,$,$,#19,#84,#41); +#43= IFCCARTESIANPOINT((24525709.601071,6876824.909996)); +#44= IFCALIGNMENTHORIZONTALSEGMENT($,$,#43,5.04491876114541,110.0,110.0,49.633636,$,.CIRCULARARC.); +#45= IFCALIGNMENTSEGMENT('0gRR1YO7HbZ_XxQmRDcf3R',$,$,$,$,#19,#90,#44); +#46= IFCCARTESIANPOINT((24525735.66497,6876783.164849)); +#47= IFCALIGNMENTHORIZONTALSEGMENT($,$,#46,5.49613363003069,0.0,0.0,83.739856,$,.LINE.); +#48= IFCALIGNMENTSEGMENT('3VXcUYLknohuCoYzWkCCrX',$,$,$,$,#19,#95,#47); +#49= IFCAXIS2PLACEMENT2D(#27,#50); +#50= IFCDIRECTION((0.99999851,0.00172462)); +#51= IFCCARTESIANPOINT((0.0,0.0)); +#52= IFCDIRECTION((1.0,0.0)); +#53= IFCVECTOR(#52,1.0); +#54= IFCLINE(#51,#53); +#55= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#49,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(229.405681),#54); +#56= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.00001,#58,#59); +#57= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#58= IFCAXIS2PLACEMENT3D(#57,$,$); +#59= IFCDIRECTION((0.0,1.0)); +#60= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#56,$,.GRAPH_VIEW.,$); +#61= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#55)); +#62= IFCPRODUCTDEFINITIONSHAPE($,$,(#61)); +#63= IFCAXIS2PLACEMENT2D(#31,#64); +#64= IFCDIRECTION((0.99999851,0.00172463)); +#65= IFCCIRCLE(#7,110.0); +#66= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#63,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.141765527272727),#65); +#67= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#66)); +#68= IFCPRODUCTDEFINITIONSHAPE($,$,(#67)); +#69= IFCAXIS2PLACEMENT2D(#34,#70); +#70= IFCDIRECTION((0.99021029,-0.13958363)); +#71= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#69,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(91.725737),#54); +#72= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#71)); +#73= IFCPRODUCTDEFINITIONSHAPE($,$,(#72)); +#74= IFCAXIS2PLACEMENT2D(#37,#75); +#75= IFCDIRECTION((0.99021029,-0.13958362)); +#76= IFCCIRCLE(#7,110.0); +#77= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#74,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-1.09822563636364),#76); +#78= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#77)); +#79= IFCPRODUCTDEFINITIONSHAPE($,$,(#78)); +#80= IFCAXIS2PLACEMENT2D(#40,#81); +#81= IFCDIRECTION((0.32643524,-0.94521957)); +#82= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#80,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(25.538554),#54); +#83= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#82)); +#84= IFCPRODUCTDEFINITIONSHAPE($,$,(#83)); +#85= IFCAXIS2PLACEMENT2D(#43,#86); +#86= IFCDIRECTION((0.32643527,-0.94521956)); +#87= IFCCIRCLE(#7,110.0); +#88= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#85,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(49.633636),#87); +#89= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#88)); +#90= IFCPRODUCTDEFINITIONSHAPE($,$,(#89)); +#91= IFCAXIS2PLACEMENT2D(#46,#92); +#92= IFCDIRECTION((0.7059366,-0.70827502)); +#93= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#91,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(83.739856),#54); +#94= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#93)); +#95= IFCPRODUCTDEFINITIONSHAPE($,$,(#94)); +#96= IFCCOMPOSITECURVE((#55,#66,#71,#77,#82,#88,#93),.U.); +#97= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#96)); +#98= IFCPRODUCTDEFINITIONSHAPE($,$,(#97)); +#99= IFCALIGNMENTVERTICALSEGMENT($,$,135.557,10.8424694551669,125.687614,0.0341613100938614,0.0341613100938614,$,.CONSTANTGRADIENT.); +#100= IFCALIGNMENTVERTICALSEGMENT($,$,146.399469455167,18.112282610652,126.05800696124,0.0341613100938614,0.0202129972966548,-1300.0,.CIRCULARARC.); +#101= IFCALIGNMENTVERTICALSEGMENT($,$,164.511752065819,40.8330580844944,126.550404440385,0.0202129972966548,0.0202129972966548,$,.CONSTANTGRADIENT.); +#102= IFCALIGNMENTVERTICALSEGMENT($,$,205.344810150313,39.033681330639,127.37576293306,0.0202129972966548,-0.00981751240776929,-1300.0,.CIRCULARARC.); +#103= IFCALIGNMENTVERTICALSEGMENT($,$,244.378491480952,50.1760735190479,127.578604224343,-0.00981751240776929,-0.00981751240776929,$,.CONSTANTGRADIENT.); +#104= IFCALIGNMENTVERTICALSEGMENT($,$,294.554565,11.522986,127.086,0.0,0.0,$,.CONSTANTGRADIENT.); +#105= IFCALIGNMENTVERTICALSEGMENT($,$,306.077551,192.512689171019,127.086,-0.00352981070589252,-0.00352981070589252,$,.CONSTANTGRADIENT.); +#106= IFCALIGNMENTVERTICALSEGMENT($,$,498.590240171019,15.2752896431409,126.406466648677,-0.00352981070589252,-0.0065849894096037,-5000.0,.CIRCULARARC.); +#107= IFCALIGNMENTVERTICALSEGMENT($,$,513.865529814159,78.3592658459091,126.329213578221,-0.0065849894096037,-0.0065849894096037,$,.CONSTANTGRADIENT.); +#108= IFCALIGNMENTVERTICALSEGMENT($,$,592.224795660069,10.4103422623946,125.813218642574,-0.0065849894096037,0.00142311038270447,1300.0,.CIRCULARARC.); +#109= IFCALIGNMENTVERTICALSEGMENT($,$,602.635137922463,13.8073550775368,125.786350609637,0.00142311038228749,0.00142311038228749,$,.CONSTANTGRADIENT.); +#110= IFCALIGNMENTVERTICAL('0ddJLdQIDCxQPle3A8jrLs',$,'Sammalniementie_u',$,$,#19,#195); +#111= IFCALIGNMENTSEGMENT('2gA7djODHC_xXIgPPzoY82',$,$,$,$,#19,#128,#99); +#112= IFCRELNESTS('1DZ_kkZob34vJO5FhOR8v0',$,$,$,#110,(#111,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122)); +#113= IFCALIGNMENTSEGMENT('3VN7AVMVzA_hvweeeU0O3k',$,$,$,$,#19,#135,#100); +#114= IFCALIGNMENTSEGMENT('0Kp4hED2zAPfMpvgzW7ch1',$,$,$,$,#19,#141,#101); +#115= IFCALIGNMENTSEGMENT('2FkuepSxf5hwJ23i51BHsZ',$,$,$,$,#19,#148,#102); +#116= IFCALIGNMENTSEGMENT('1XPAkBHBLF$9aeTcrcNcTy',$,$,$,$,#19,#154,#103); +#117= IFCALIGNMENTSEGMENT('0R2$FQBtr3AOpdTIkDMGs6',$,$,$,$,#19,#160,#104); +#118= IFCALIGNMENTSEGMENT('2C21qLVkvBj8P$f2FUURr0',$,$,$,$,#19,#166,#105); +#119= IFCALIGNMENTSEGMENT('0kI5Vw8vH0I9llwt5OikKa',$,$,$,$,#19,#173,#106); +#120= IFCALIGNMENTSEGMENT('04SGZEGwnFsPtmf3BfW1fT',$,$,$,$,#19,#179,#107); +#121= IFCALIGNMENTSEGMENT('0$CKSTZez7cgM3mmkSQwii',$,$,$,$,#19,#186,#108); +#122= IFCALIGNMENTSEGMENT('3tHQKCgSX4DQDDVRkZ3PN3',$,$,$,$,#19,#192,#109); +#123= IFCCARTESIANPOINT((135.557,125.687614)); +#124= IFCDIRECTION((0.99941701,0.03414139)); +#125= IFCAXIS2PLACEMENT2D(#123,#124); +#126= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#125,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(10.8487941648814),#54); +#127= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#126)); +#128= IFCPRODUCTDEFINITIONSHAPE($,$,(#127)); +#129= IFCCARTESIANPOINT((146.399469,126.058007)); +#130= IFCDIRECTION((0.99941701,0.03414139)); +#131= IFCAXIS2PLACEMENT2D(#129,#130); +#132= IFCCIRCLE(#7,1300.0); +#133= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#131,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.0139377855017958),#132); +#134= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#133)); +#135= IFCPRODUCTDEFINITIONSHAPE($,$,(#134)); +#136= IFCCARTESIANPOINT((164.511752,126.550404)); +#137= IFCDIRECTION((0.99979578,0.02020887)); +#138= IFCAXIS2PLACEMENT2D(#136,#137); +#139= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#138,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(40.8413987171488),#54); +#140= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#139)); +#141= IFCPRODUCTDEFINITIONSHAPE($,$,(#140)); +#142= IFCCARTESIANPOINT((205.34481,127.375763)); +#143= IFCDIRECTION((0.99979578,0.02020887)); +#144= IFCAXIS2PLACEMENT2D(#142,#143); +#145= IFCCIRCLE(#7,1300.0); +#146= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#144,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.0300274422055508),#145); +#147= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#146)); +#148= IFCPRODUCTDEFINITIONSHAPE($,$,(#147)); +#149= IFCCARTESIANPOINT((244.378491,127.578604)); +#150= IFCDIRECTION((0.99995181,-0.00981704)); +#151= IFCAXIS2PLACEMENT2D(#149,#150); +#152= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#151,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(50.1784915348274),#54); +#153= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#152)); +#154= IFCPRODUCTDEFINITIONSHAPE($,$,(#153)); +#155= IFCCARTESIANPOINT((294.554565,127.086)); +#156= IFCDIRECTION((1.0,0.0)); +#157= IFCAXIS2PLACEMENT2D(#155,#156); +#158= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#157,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(11.522986),#54); +#159= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#158)); +#160= IFCPRODUCTDEFINITIONSHAPE($,$,(#159)); +#161= IFCCARTESIANPOINT((306.077551,127.086)); +#162= IFCDIRECTION((0.99999377,-0.00352979)); +#163= IFCAXIS2PLACEMENT2D(#161,#162); +#164= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#163,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(192.513888479332),#54); +#165= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#164)); +#166= IFCPRODUCTDEFINITIONSHAPE($,$,(#165)); +#167= IFCCARTESIANPOINT((498.59024,126.406467)); +#168= IFCDIRECTION((0.99999377,-0.00352979)); +#169= IFCAXIS2PLACEMENT2D(#167,#168); +#170= IFCCIRCLE(#7,5000.0); +#171= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#169,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.00305509818642019),#170); +#172= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#171)); +#173= IFCPRODUCTDEFINITIONSHAPE($,$,(#172)); +#174= IFCCARTESIANPOINT((513.86553,126.329214)); +#175= IFCDIRECTION((0.99997832,-0.00658485)); +#176= IFCAXIS2PLACEMENT2D(#174,#175); +#177= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#176,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(78.3609647380861),#54); +#178= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#177)); +#179= IFCPRODUCTDEFINITIONSHAPE($,$,(#178)); +#180= IFCCARTESIANPOINT((592.224796,125.813219)); +#181= IFCDIRECTION((0.99997832,-0.00658485)); +#182= IFCAXIS2PLACEMENT2D(#180,#181); +#183= IFCCIRCLE(#7,1300.0); +#184= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#182,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(0.00800800365444606),#183); +#185= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#184)); +#186= IFCPRODUCTDEFINITIONSHAPE($,$,(#185)); +#187= IFCCARTESIANPOINT((602.635138,125.786351)); +#188= IFCDIRECTION((0.99999899,0.00142311)); +#189= IFCAXIS2PLACEMENT2D(#187,#188); +#190= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#189,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(13.8073690591555),#54); +#191= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#190)); +#192= IFCPRODUCTDEFINITIONSHAPE($,$,(#191)); +#193= IFCGRADIENTCURVE((#126,#133,#139,#146,#152,#158,#164,#171,#177,#184,#190),.U.,#96,$); +#194= IFCSHAPEREPRESENTATION(#60,'Axis','Curve3D',(#193)); +#195= IFCPRODUCTDEFINITIONSHAPE($,$,(#194)); +#196= IFCSHAPEREPRESENTATION(#60,'Axis','Curve3D',(#193)); +#197= IFCPRODUCTDEFINITIONSHAPE($,$,(#196)); +#198= IFCPROPERTYSINGLEVALUE('state',$,IFCIDENTIFIER('proposed'),$); +#199= IFCPROPERTYSET('1lf3$ojeXENeMMmuDejpya',$,'landXML_Alignment',$,(#198)); +#200= IFCRELDEFINESBYPROPERTIES('3$NwrSvbH6df0$Z67Fhrb9',$,$,$,(#20),#199); +#201= IFCPROJECTEDCRS('EPSG:3878',$,$,$,$,$,$); +#202= IFCMAPCONVERSION(#56,#201,0.0,0.0,0.0,$,$,$,$,$); +ENDSEC; + +END-ISO-10303-21; diff --git a/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv b/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv new file mode 100644 index 0000000..752814a --- /dev/null +++ b/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv @@ -0,0 +1,12 @@ +Name;Type;StartDistAlong;HorizontalLength;StartHeight;StartGradient;EndGradient;Radius;Type +V1;IfcAlignmentVerticalSegment;135,557;10,8424694551669;125,687614;0,0341613100938614;0,0341613100938614;0;CONSTANTGRADIENT +V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0341613100938614;-1300;CIRCULARARC +V3;IfcAlignmentVerticalSegment;164,511752065819;40,8330580844944;126,550404440385;0,0202129972966548;0,0202129972966548;0;CONSTANTGRADIENT +V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;0,0202129972966548;-1300;CIRCULARARC +V5;IfcAlignmentVerticalSegment;244,378491480952;50,1760735190479;127,578604224343;-0,00981751240776929;-0,00981751240776929;0;CONSTANTGRADIENT +V6;IfcAlignmentVerticalSegment;294,554565;11,522986;127,086;0;0;0;CONSTANTGRADIENT +V7;IfcAlignmentVerticalSegment;306,077551;192,512689171019;127,086;-0,00352981070589252;-0,00352981070589252;0;CONSTANTGRADIENT +V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,00352981070589252;-5000;CIRCULARARC +V9;IfcAlignmentVerticalSegment;513,865529814159;78,3592658459091;126,329213578221;-0,0065849894096037;-0,0065849894096037;0;CONSTANTGRADIENT +V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;-0,0065849894096037;1300;CIRCULARARC +V11;IfcAlignmentVerticalSegment;602,635137922463;13,8073550775368;125,786350609637;0,00142311038228749;0,00142311038228749;0;CONSTANTGRADIENT diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index 8df667a..715d949 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -176,7 +176,7 @@ Considering the aim of this test, other **optional** results, not subject to the | ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -Question: Shall the events be nested to the alignment? +**Question: Shall the events be nested to the alignment?** diff --git a/E1a-ARSE/ALSE02/Dataset/HorizontalAlignmentParameters.csv b/E1a-ARSE/ALSE02/Dataset/HorizontalAlignmentParameters.csv new file mode 100644 index 0000000..edcdc81 --- /dev/null +++ b/E1a-ARSE/ALSE02/Dataset/HorizontalAlignmentParameters.csv @@ -0,0 +1,8 @@ +Name;Type;StartPointX;StartPointY;StartDirection;StartRadius;EndRadius;Length;Type +H1;IfcAlignmentHorizontalSegment;276,867419000715;935,549266999587;0,00172462248684613;0;0;229,405681;LINE +H2;IfcAlignmentHorizontalSegment;506,272759001702;935,944904999807;0,00172462964706543;-110;-110;15,594208;CIRCULARARC +H3;IfcAlignmentHorizontalSegment;521,816665999591;934,868200000376;6,14314439461041;0;0;91,725737;LINE +H4;IfcAlignmentHorizontalSegment;612,644434001297;922,064788999967;6,14314439896281;-110;-110;120,80482;CIRCULARARC +H5;IfcAlignmentHorizontalSegment;701,264387000352;849,049537000246;5,04491873079937;0;0;25,538554;LINE +H6;IfcAlignmentHorizontalSegment;709,601071000099;824,909996000119;5,04491876114541;110;110;49,633636;CIRCULARARC +H7;IfcAlignmentHorizontalSegment;735,664969999343;783,164849000052;5,49613363003069;0;0;83,739856;LINE diff --git a/E1a-ARSE/ALSE02/Dataset/README.md b/E1a-ARSE/ALSE02/Dataset/README.md index 721ee6f..f04c440 100644 --- a/E1a-ARSE/ALSE02/Dataset/README.md +++ b/E1a-ARSE/ALSE02/Dataset/README.md @@ -49,13 +49,15 @@ The following tables lists the entities that shall be present in the dataset in The following Drawings and visualisations describe the test case dataset to be modelled and certified. -| Filename | Description | -| ------------------------ | ------------------------------------------------------------ | -| Superelevation and Width | ![image-20220221114609144](C:\Users\lars\Documents\Projekt\IFCInfra\MVD-Infra-Test-Instructions\E1a-ARSE\ALSE02\Dataset\Superelevation and Width.png) | +| Filename | Description | +| ------------------------ | ---------------------------------------------------------- | +| Superelevation and Width | ![image-20220221114609144](./Superelevation and Width.png) | ## Supporting files -| Filename | Description | -| -------- | ----------- | -| | | \ No newline at end of file +| Filename | Description | +| ------------------------------------------------------------ | --------------------------------------------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | +| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | \ No newline at end of file diff --git a/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.XML b/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.XML new file mode 100644 index 0000000..f63a694 --- /dev/null +++ b/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.XML @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 6876935.549267 24525276.867419 0.000000 + 6876935.944905 24525506.272759 0.000000 + + + 6876935.944905 24525506.272759 + 6876934.868200 24525521.816666 +
6876825.945068 24525506.462467
+
+ + 6876934.868200 24525521.816666 0.000000 + 6876922.064789 24525612.644434 0.000000 + + + 6876922.064789 24525612.644434 + 6876849.049537 24525701.264387 +
6876813.141658 24525597.290235
+
+ + 6876849.049537 24525701.264387 0.000000 + 6876824.909996 24525709.601071 0.000000 + + + 6876824.909996 24525709.601071 + 6876783.164849 24525735.664970 +
6876860.817875 24525813.575223
+
+ + 6876783.164849 24525735.664970 0.000000 + 6876723.854000 24525794.780000 0.000000 + +
+ + + 135.557000 125.687614 + 155.453895 126.367318 + 224.860128 127.770226 + 294.554565 127.086000 + 306.077551 127.086000 + 506.227944 126.379507 + 597.429913 125.778943 + 616.442493 125.806000 + + +
+
+
diff --git a/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.ifc b/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.ifc new file mode 100644 index 0000000..ce4b25c --- /dev/null +++ b/E1a-ARSE/ALSE02/Dataset/TOI-M14334-0000A.ifc @@ -0,0 +1,220 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [Ifc4NotAssigned]'),'2;1'); +FILE_NAME( +/* name */ 'C:\\Users\\lars\\Documents\\Projekt\\IFCInfra\\MVD-Infra-Test-Instructions\\E1a-ARSE\\ALIN06\\Dataset\\TOI-M14334-0000A.ifc', +/* time_stamp */ '2022-02-18T13:46:24', +/* author */ ('lars'), +/* organization */ ('Unknown'), +/* preprocessor_version */ 'ggIfcConverter v0.0.5.0 by Geometry Gym Pty Ltd built 2022-02-10T07:15:39', +/* originating_system */ 'ggIFCConverter v0.0.5.0 - Converter by Geometry Gym Pty Ltd', +/* authorization */ 'None'); + +FILE_SCHEMA (('IFC4X3_RC4')); +ENDSEC; + +DATA; +#1= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#2= IFCDIRECTION((1.0,0.0,0.0)); +#3= IFCDIRECTION((0.0,1.0,0.0)); +#4= IFCDIRECTION((0.0,0.0,1.0)); +#5= IFCAXIS2PLACEMENT3D(#1,$,$); +#6= IFCCARTESIANPOINT((0.0,0.0)); +#7= IFCAXIS2PLACEMENT2D(#6,$); +#8= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#9= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#10= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#11= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#12= IFCUNITASSIGNMENT((#8,#11)); +#13= IFCPROJECT('1OEWBMD50yGJCMfbHiMaxa',$,'Toivolan_tasoristeyssuunnitelma','Toivolan_tasoristeyssuunnitelma',$,$,$,(#56),#12); +#14= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#15= IFCAXIS2PLACEMENT3D(#14,$,$); +#16= IFCLOCALPLACEMENT($,#15); +#17= IFCSITE('0fC4Q0ghjshYWRNlyJlyL6',$,'Toivolan_tasoristeyssuunnitelma',$,$,#16,$,$,$,$,$,$,$,$); +#18= IFCRELAGGREGATES('3nli4xTQXW59Tz5QkTJN3h',$,$,$,#13,(#17)); +#19= IFCLOCALPLACEMENT(#16,#5); +#20= IFCALIGNMENT('1MZ$_ugNawDiLW6OHixSD9',$,'Sammalniementie_u',$,$,#19,#197,$); +#21= IFCRELCONTAINEDINSPATIALSTRUCTURE('2d7LGjg5j8deye8rBGu_pT',$,'Site','Site Container for Elements',(#20),#17); +#22= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#23= IFCAXIS2PLACEMENT3D(#22,#4,#2); +#25= IFCALIGNMENTHORIZONTAL('1ck1ztc5NTxKcmM$6H$rwZ',$,$,$,$,#19,#98); +#26= IFCRELNESTS('2Qr6YhEtzBeeELe82FHdbs',$,$,$,#20,(#25,#110)); +#27= IFCCARTESIANPOINT((24525276.867419,6876935.549267)); +#28= IFCALIGNMENTHORIZONTALSEGMENT($,$,#27,0.00172462248684613,0.0,0.0,229.405681,$,.LINE.); +#29= IFCALIGNMENTSEGMENT('3hZ8l87U1Q8BI_$y_2nj$z',$,$,$,$,#19,#62,#28); +#30= IFCRELNESTS('3i$XYZYN91owg1IkJG3pGm',$,$,$,#25,(#29,#33,#36,#39,#42,#45,#48)); +#31= IFCCARTESIANPOINT((24525506.272759,6876935.944905)); +#32= IFCALIGNMENTHORIZONTALSEGMENT($,$,#31,0.00172462964706543,-110.0,-110.0,15.594208,$,.CIRCULARARC.); +#33= IFCALIGNMENTSEGMENT('3tOKSRAS5$p_$XokyCfvbo',$,$,$,$,#19,#68,#32); +#34= IFCCARTESIANPOINT((24525521.816666,6876934.8682)); +#35= IFCALIGNMENTHORIZONTALSEGMENT($,$,#34,6.14314439461041,0.0,0.0,91.725737,$,.LINE.); +#36= IFCALIGNMENTSEGMENT('3MWD2DeWHQ8QevjrZg99YR',$,$,$,$,#19,#73,#35); +#37= IFCCARTESIANPOINT((24525612.644434,6876922.064789)); +#38= IFCALIGNMENTHORIZONTALSEGMENT($,$,#37,6.14314439896281,-110.0,-110.0,120.80482,$,.CIRCULARARC.); +#39= IFCALIGNMENTSEGMENT('260dLIlSB8SrmmNwWvQa3d',$,$,$,$,#19,#79,#38); +#40= IFCCARTESIANPOINT((24525701.264387,6876849.049537)); +#41= IFCALIGNMENTHORIZONTALSEGMENT($,$,#40,5.04491873079937,0.0,0.0,25.538554,$,.LINE.); +#42= IFCALIGNMENTSEGMENT('09$rVBiaRE6xbncNrNsbYP',$,$,$,$,#19,#84,#41); +#43= IFCCARTESIANPOINT((24525709.601071,6876824.909996)); +#44= IFCALIGNMENTHORIZONTALSEGMENT($,$,#43,5.04491876114541,110.0,110.0,49.633636,$,.CIRCULARARC.); +#45= IFCALIGNMENTSEGMENT('0gRR1YO7HbZ_XxQmRDcf3R',$,$,$,$,#19,#90,#44); +#46= IFCCARTESIANPOINT((24525735.66497,6876783.164849)); +#47= IFCALIGNMENTHORIZONTALSEGMENT($,$,#46,5.49613363003069,0.0,0.0,83.739856,$,.LINE.); +#48= IFCALIGNMENTSEGMENT('3VXcUYLknohuCoYzWkCCrX',$,$,$,$,#19,#95,#47); +#49= IFCAXIS2PLACEMENT2D(#27,#50); +#50= IFCDIRECTION((0.99999851,0.00172462)); +#51= IFCCARTESIANPOINT((0.0,0.0)); +#52= IFCDIRECTION((1.0,0.0)); +#53= IFCVECTOR(#52,1.0); +#54= IFCLINE(#51,#53); +#55= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#49,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(229.405681),#54); +#56= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.00001,#58,#59); +#57= IFCCARTESIANPOINT((0.0,0.0,0.0)); +#58= IFCAXIS2PLACEMENT3D(#57,$,$); +#59= IFCDIRECTION((0.0,1.0)); +#60= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#56,$,.GRAPH_VIEW.,$); +#61= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#55)); +#62= IFCPRODUCTDEFINITIONSHAPE($,$,(#61)); +#63= IFCAXIS2PLACEMENT2D(#31,#64); +#64= IFCDIRECTION((0.99999851,0.00172463)); +#65= IFCCIRCLE(#7,110.0); +#66= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#63,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.141765527272727),#65); +#67= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#66)); +#68= IFCPRODUCTDEFINITIONSHAPE($,$,(#67)); +#69= IFCAXIS2PLACEMENT2D(#34,#70); +#70= IFCDIRECTION((0.99021029,-0.13958363)); +#71= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#69,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(91.725737),#54); +#72= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#71)); +#73= IFCPRODUCTDEFINITIONSHAPE($,$,(#72)); +#74= IFCAXIS2PLACEMENT2D(#37,#75); +#75= IFCDIRECTION((0.99021029,-0.13958362)); +#76= IFCCIRCLE(#7,110.0); +#77= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#74,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-1.09822563636364),#76); +#78= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#77)); +#79= IFCPRODUCTDEFINITIONSHAPE($,$,(#78)); +#80= IFCAXIS2PLACEMENT2D(#40,#81); +#81= IFCDIRECTION((0.32643524,-0.94521957)); +#82= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#80,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(25.538554),#54); +#83= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#82)); +#84= IFCPRODUCTDEFINITIONSHAPE($,$,(#83)); +#85= IFCAXIS2PLACEMENT2D(#43,#86); +#86= IFCDIRECTION((0.32643527,-0.94521956)); +#87= IFCCIRCLE(#7,110.0); +#88= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#85,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(49.633636),#87); +#89= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#88)); +#90= IFCPRODUCTDEFINITIONSHAPE($,$,(#89)); +#91= IFCAXIS2PLACEMENT2D(#46,#92); +#92= IFCDIRECTION((0.7059366,-0.70827502)); +#93= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#91,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(83.739856),#54); +#94= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#93)); +#95= IFCPRODUCTDEFINITIONSHAPE($,$,(#94)); +#96= IFCCOMPOSITECURVE((#55,#66,#71,#77,#82,#88,#93),.U.); +#97= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#96)); +#98= IFCPRODUCTDEFINITIONSHAPE($,$,(#97)); +#99= IFCALIGNMENTVERTICALSEGMENT($,$,135.557,10.8424694551669,125.687614,0.0341613100938614,0.0341613100938614,$,.CONSTANTGRADIENT.); +#100= IFCALIGNMENTVERTICALSEGMENT($,$,146.399469455167,18.112282610652,126.05800696124,0.0341613100938614,0.0202129972966548,-1300.0,.CIRCULARARC.); +#101= IFCALIGNMENTVERTICALSEGMENT($,$,164.511752065819,40.8330580844944,126.550404440385,0.0202129972966548,0.0202129972966548,$,.CONSTANTGRADIENT.); +#102= IFCALIGNMENTVERTICALSEGMENT($,$,205.344810150313,39.033681330639,127.37576293306,0.0202129972966548,-0.00981751240776929,-1300.0,.CIRCULARARC.); +#103= IFCALIGNMENTVERTICALSEGMENT($,$,244.378491480952,50.1760735190479,127.578604224343,-0.00981751240776929,-0.00981751240776929,$,.CONSTANTGRADIENT.); +#104= IFCALIGNMENTVERTICALSEGMENT($,$,294.554565,11.522986,127.086,0.0,0.0,$,.CONSTANTGRADIENT.); +#105= IFCALIGNMENTVERTICALSEGMENT($,$,306.077551,192.512689171019,127.086,-0.00352981070589252,-0.00352981070589252,$,.CONSTANTGRADIENT.); +#106= IFCALIGNMENTVERTICALSEGMENT($,$,498.590240171019,15.2752896431409,126.406466648677,-0.00352981070589252,-0.0065849894096037,-5000.0,.CIRCULARARC.); +#107= IFCALIGNMENTVERTICALSEGMENT($,$,513.865529814159,78.3592658459091,126.329213578221,-0.0065849894096037,-0.0065849894096037,$,.CONSTANTGRADIENT.); +#108= IFCALIGNMENTVERTICALSEGMENT($,$,592.224795660069,10.4103422623946,125.813218642574,-0.0065849894096037,0.00142311038270447,1300.0,.CIRCULARARC.); +#109= IFCALIGNMENTVERTICALSEGMENT($,$,602.635137922463,13.8073550775368,125.786350609637,0.00142311038228749,0.00142311038228749,$,.CONSTANTGRADIENT.); +#110= IFCALIGNMENTVERTICAL('0ddJLdQIDCxQPle3A8jrLs',$,'Sammalniementie_u',$,$,#19,#195); +#111= IFCALIGNMENTSEGMENT('2gA7djODHC_xXIgPPzoY82',$,$,$,$,#19,#128,#99); +#112= IFCRELNESTS('1DZ_kkZob34vJO5FhOR8v0',$,$,$,#110,(#111,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122)); +#113= IFCALIGNMENTSEGMENT('3VN7AVMVzA_hvweeeU0O3k',$,$,$,$,#19,#135,#100); +#114= IFCALIGNMENTSEGMENT('0Kp4hED2zAPfMpvgzW7ch1',$,$,$,$,#19,#141,#101); +#115= IFCALIGNMENTSEGMENT('2FkuepSxf5hwJ23i51BHsZ',$,$,$,$,#19,#148,#102); +#116= IFCALIGNMENTSEGMENT('1XPAkBHBLF$9aeTcrcNcTy',$,$,$,$,#19,#154,#103); +#117= IFCALIGNMENTSEGMENT('0R2$FQBtr3AOpdTIkDMGs6',$,$,$,$,#19,#160,#104); +#118= IFCALIGNMENTSEGMENT('2C21qLVkvBj8P$f2FUURr0',$,$,$,$,#19,#166,#105); +#119= IFCALIGNMENTSEGMENT('0kI5Vw8vH0I9llwt5OikKa',$,$,$,$,#19,#173,#106); +#120= IFCALIGNMENTSEGMENT('04SGZEGwnFsPtmf3BfW1fT',$,$,$,$,#19,#179,#107); +#121= IFCALIGNMENTSEGMENT('0$CKSTZez7cgM3mmkSQwii',$,$,$,$,#19,#186,#108); +#122= IFCALIGNMENTSEGMENT('3tHQKCgSX4DQDDVRkZ3PN3',$,$,$,$,#19,#192,#109); +#123= IFCCARTESIANPOINT((135.557,125.687614)); +#124= IFCDIRECTION((0.99941701,0.03414139)); +#125= IFCAXIS2PLACEMENT2D(#123,#124); +#126= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#125,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(10.8487941648814),#54); +#127= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#126)); +#128= IFCPRODUCTDEFINITIONSHAPE($,$,(#127)); +#129= IFCCARTESIANPOINT((146.399469,126.058007)); +#130= IFCDIRECTION((0.99941701,0.03414139)); +#131= IFCAXIS2PLACEMENT2D(#129,#130); +#132= IFCCIRCLE(#7,1300.0); +#133= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#131,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.0139377855017958),#132); +#134= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#133)); +#135= IFCPRODUCTDEFINITIONSHAPE($,$,(#134)); +#136= IFCCARTESIANPOINT((164.511752,126.550404)); +#137= IFCDIRECTION((0.99979578,0.02020887)); +#138= IFCAXIS2PLACEMENT2D(#136,#137); +#139= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#138,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(40.8413987171488),#54); +#140= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#139)); +#141= IFCPRODUCTDEFINITIONSHAPE($,$,(#140)); +#142= IFCCARTESIANPOINT((205.34481,127.375763)); +#143= IFCDIRECTION((0.99979578,0.02020887)); +#144= IFCAXIS2PLACEMENT2D(#142,#143); +#145= IFCCIRCLE(#7,1300.0); +#146= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#144,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.0300274422055508),#145); +#147= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#146)); +#148= IFCPRODUCTDEFINITIONSHAPE($,$,(#147)); +#149= IFCCARTESIANPOINT((244.378491,127.578604)); +#150= IFCDIRECTION((0.99995181,-0.00981704)); +#151= IFCAXIS2PLACEMENT2D(#149,#150); +#152= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#151,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(50.1784915348274),#54); +#153= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#152)); +#154= IFCPRODUCTDEFINITIONSHAPE($,$,(#153)); +#155= IFCCARTESIANPOINT((294.554565,127.086)); +#156= IFCDIRECTION((1.0,0.0)); +#157= IFCAXIS2PLACEMENT2D(#155,#156); +#158= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#157,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(11.522986),#54); +#159= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#158)); +#160= IFCPRODUCTDEFINITIONSHAPE($,$,(#159)); +#161= IFCCARTESIANPOINT((306.077551,127.086)); +#162= IFCDIRECTION((0.99999377,-0.00352979)); +#163= IFCAXIS2PLACEMENT2D(#161,#162); +#164= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#163,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(192.513888479332),#54); +#165= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#164)); +#166= IFCPRODUCTDEFINITIONSHAPE($,$,(#165)); +#167= IFCCARTESIANPOINT((498.59024,126.406467)); +#168= IFCDIRECTION((0.99999377,-0.00352979)); +#169= IFCAXIS2PLACEMENT2D(#167,#168); +#170= IFCCIRCLE(#7,5000.0); +#171= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#169,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(-0.00305509818642019),#170); +#172= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#171)); +#173= IFCPRODUCTDEFINITIONSHAPE($,$,(#172)); +#174= IFCCARTESIANPOINT((513.86553,126.329214)); +#175= IFCDIRECTION((0.99997832,-0.00658485)); +#176= IFCAXIS2PLACEMENT2D(#174,#175); +#177= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#176,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(78.3609647380861),#54); +#178= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#177)); +#179= IFCPRODUCTDEFINITIONSHAPE($,$,(#178)); +#180= IFCCARTESIANPOINT((592.224796,125.813219)); +#181= IFCDIRECTION((0.99997832,-0.00658485)); +#182= IFCAXIS2PLACEMENT2D(#180,#181); +#183= IFCCIRCLE(#7,1300.0); +#184= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#182,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCPARAMETERVALUE(0.00800800365444606),#183); +#185= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#184)); +#186= IFCPRODUCTDEFINITIONSHAPE($,$,(#185)); +#187= IFCCARTESIANPOINT((602.635138,125.786351)); +#188= IFCDIRECTION((0.99999899,0.00142311)); +#189= IFCAXIS2PLACEMENT2D(#187,#188); +#190= IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE.,#189,IFCNONNEGATIVELENGTHMEASURE(0.0),IFCNONNEGATIVELENGTHMEASURE(13.8073690591555),#54); +#191= IFCSHAPEREPRESENTATION(#60,'Axis','Curve2D',(#190)); +#192= IFCPRODUCTDEFINITIONSHAPE($,$,(#191)); +#193= IFCGRADIENTCURVE((#126,#133,#139,#146,#152,#158,#164,#171,#177,#184,#190),.U.,#96,$); +#194= IFCSHAPEREPRESENTATION(#60,'Axis','Curve3D',(#193)); +#195= IFCPRODUCTDEFINITIONSHAPE($,$,(#194)); +#196= IFCSHAPEREPRESENTATION(#60,'Axis','Curve3D',(#193)); +#197= IFCPRODUCTDEFINITIONSHAPE($,$,(#196)); +#198= IFCPROPERTYSINGLEVALUE('state',$,IFCIDENTIFIER('proposed'),$); +#199= IFCPROPERTYSET('1lf3$ojeXENeMMmuDejpya',$,'landXML_Alignment',$,(#198)); +#200= IFCRELDEFINESBYPROPERTIES('3$NwrSvbH6df0$Z67Fhrb9',$,$,$,(#20),#199); +#201= IFCPROJECTEDCRS('EPSG:3878',$,$,$,$,$,$); +#202= IFCMAPCONVERSION(#56,#201,0.0,0.0,0.0,$,$,$,$,$); +ENDSEC; + +END-ISO-10303-21; diff --git a/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv b/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv new file mode 100644 index 0000000..752814a --- /dev/null +++ b/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv @@ -0,0 +1,12 @@ +Name;Type;StartDistAlong;HorizontalLength;StartHeight;StartGradient;EndGradient;Radius;Type +V1;IfcAlignmentVerticalSegment;135,557;10,8424694551669;125,687614;0,0341613100938614;0,0341613100938614;0;CONSTANTGRADIENT +V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0341613100938614;-1300;CIRCULARARC +V3;IfcAlignmentVerticalSegment;164,511752065819;40,8330580844944;126,550404440385;0,0202129972966548;0,0202129972966548;0;CONSTANTGRADIENT +V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;0,0202129972966548;-1300;CIRCULARARC +V5;IfcAlignmentVerticalSegment;244,378491480952;50,1760735190479;127,578604224343;-0,00981751240776929;-0,00981751240776929;0;CONSTANTGRADIENT +V6;IfcAlignmentVerticalSegment;294,554565;11,522986;127,086;0;0;0;CONSTANTGRADIENT +V7;IfcAlignmentVerticalSegment;306,077551;192,512689171019;127,086;-0,00352981070589252;-0,00352981070589252;0;CONSTANTGRADIENT +V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,00352981070589252;-5000;CIRCULARARC +V9;IfcAlignmentVerticalSegment;513,865529814159;78,3592658459091;126,329213578221;-0,0065849894096037;-0,0065849894096037;0;CONSTANTGRADIENT +V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;-0,0065849894096037;1300;CIRCULARARC +V11;IfcAlignmentVerticalSegment;602,635137922463;13,8073550775368;125,786350609637;0,00142311038228749;0,00142311038228749;0;CONSTANTGRADIENT diff --git a/E1a-ARSE/ALSE02/README.md b/E1a-ARSE/ALSE02/README.md index 128d937..e98f63b 100644 --- a/E1a-ARSE/ALSE02/README.md +++ b/E1a-ARSE/ALSE02/README.md @@ -186,6 +186,6 @@ Considering the aim of this test, other **optional** results, not subject to the | ALSE_05 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_06 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -Question: Shall the events be nested to the alignment? +**Question: Shall the events be nested to the alignment?** From 9282dfa39168f29196a1e338ed4834c852f8eb99 Mon Sep 17 00:00:00 2001 From: larswik Date: Thu, 24 Feb 2022 13:46:49 +0100 Subject: [PATCH 06/13] Added CT Product Relative Positioning between events and alignment --- E1a-ARSE/ALSE01/README.md | 6 +++--- E1a-ARSE/ALSE02/README.md | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index 715d949..d72242e 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -84,7 +84,7 @@ These concept templates represent a test-specific subset of the wider AbRV_Ex ex - For this test instruction: - *Product Linear Placement* - *Property Sets for Objects* - + - Product Relative Positioning @@ -116,6 +116,7 @@ SE_00: Superelevation structure is verified >1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` >2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>2. Each superelevation event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning >3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects >4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. @@ -175,8 +176,7 @@ Considering the aim of this test, other **optional** results, not subject to the | ALSE_01 | Superelevation events contained in file | 12 | | | ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | - -**Question: Shall the events be nested to the alignment?** +| ALSE_04 | Each superelevation event is associated to the IfcAlignment using IfcRelPositions relationship | | | diff --git a/E1a-ARSE/ALSE02/README.md b/E1a-ARSE/ALSE02/README.md index e98f63b..e184e44 100644 --- a/E1a-ARSE/ALSE02/README.md +++ b/E1a-ARSE/ALSE02/README.md @@ -84,6 +84,7 @@ These concept templates represent a test-specific subset of the wider AbRV_Ex ex - For this test instruction: - *Product Linear Placement* - *Property Sets for Objects* + - Product Relative Positioning @@ -117,6 +118,7 @@ SE_00: Superelevation structure is verified >1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` >2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>2. Each superelevation event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning >3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects >4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. @@ -124,6 +126,7 @@ SE_01: Width structure is verified >1. The dataset shall contain 8 width event instances, each represented by an `IfcAnnotation` with `PredefinedType=.WIDTHEVENT.` >2. Each width event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations +>2. Each width event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning >3. Each width event shall have an associated Property set with the name `Pset_Width` according to CT Property sets For Objects >4. Each `Pset_Width` shall have properties `Side`, `NominalWidth` and `TransitionWidth` set to the specified values. @@ -182,10 +185,10 @@ Considering the aim of this test, other **optional** results, not subject to the | ALSE_01 | Superelevation events contained in file | 12 | | | ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | | ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -| ALSE_04 | Width events contained in file | 8 | | -| ALSE_05 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | -| ALSE_06 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | - -**Question: Shall the events be nested to the alignment?** +| ALSE_04 | Each superelevation event is associated to the IfcAlignment using IfcRelPositions relationship | | | +| ALSE_05 | Width events contained in file | 8 | | +| ALSE_06 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | +| ALSE_07 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | +| ALSE_08 | Each width event is associated to the IfcAlignment using IfcRelPositions relationship | | | From ab8b9d3f86eca1a2dfb04706202ebcfde3506228 Mon Sep 17 00:00:00 2001 From: larswik Date: Tue, 1 Mar 2022 16:04:21 +0100 Subject: [PATCH 07/13] Corrected vertical alignment parameters --- E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv | 8 ++++---- E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv b/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv index 752814a..fc0b572 100644 --- a/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv +++ b/E1a-ARSE/ALSE01/Dataset/VerticalAlignmentParameters.csv @@ -1,12 +1,12 @@ Name;Type;StartDistAlong;HorizontalLength;StartHeight;StartGradient;EndGradient;Radius;Type V1;IfcAlignmentVerticalSegment;135,557;10,8424694551669;125,687614;0,0341613100938614;0,0341613100938614;0;CONSTANTGRADIENT -V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0341613100938614;-1300;CIRCULARARC +V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0202129972966548;-1300;CIRCULARARC V3;IfcAlignmentVerticalSegment;164,511752065819;40,8330580844944;126,550404440385;0,0202129972966548;0,0202129972966548;0;CONSTANTGRADIENT -V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;0,0202129972966548;-1300;CIRCULARARC +V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;-0,00981751240776929;-1300;CIRCULARARC V5;IfcAlignmentVerticalSegment;244,378491480952;50,1760735190479;127,578604224343;-0,00981751240776929;-0,00981751240776929;0;CONSTANTGRADIENT V6;IfcAlignmentVerticalSegment;294,554565;11,522986;127,086;0;0;0;CONSTANTGRADIENT V7;IfcAlignmentVerticalSegment;306,077551;192,512689171019;127,086;-0,00352981070589252;-0,00352981070589252;0;CONSTANTGRADIENT -V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,00352981070589252;-5000;CIRCULARARC +V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,0065849894096037;-5000;CIRCULARARC V9;IfcAlignmentVerticalSegment;513,865529814159;78,3592658459091;126,329213578221;-0,0065849894096037;-0,0065849894096037;0;CONSTANTGRADIENT -V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;-0,0065849894096037;1300;CIRCULARARC +V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;0,00142311038270447;1300;CIRCULARARC V11;IfcAlignmentVerticalSegment;602,635137922463;13,8073550775368;125,786350609637;0,00142311038228749;0,00142311038228749;0;CONSTANTGRADIENT diff --git a/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv b/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv index 752814a..fc0b572 100644 --- a/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv +++ b/E1a-ARSE/ALSE02/Dataset/VerticalAlignmentParameters.csv @@ -1,12 +1,12 @@ Name;Type;StartDistAlong;HorizontalLength;StartHeight;StartGradient;EndGradient;Radius;Type V1;IfcAlignmentVerticalSegment;135,557;10,8424694551669;125,687614;0,0341613100938614;0,0341613100938614;0;CONSTANTGRADIENT -V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0341613100938614;-1300;CIRCULARARC +V2;IfcAlignmentVerticalSegment;146,399469455167;18,112282610652;126,05800696124;0,0341613100938614;0,0202129972966548;-1300;CIRCULARARC V3;IfcAlignmentVerticalSegment;164,511752065819;40,8330580844944;126,550404440385;0,0202129972966548;0,0202129972966548;0;CONSTANTGRADIENT -V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;0,0202129972966548;-1300;CIRCULARARC +V4;IfcAlignmentVerticalSegment;205,344810150313;39,033681330639;127,37576293306;0,0202129972966548;-0,00981751240776929;-1300;CIRCULARARC V5;IfcAlignmentVerticalSegment;244,378491480952;50,1760735190479;127,578604224343;-0,00981751240776929;-0,00981751240776929;0;CONSTANTGRADIENT V6;IfcAlignmentVerticalSegment;294,554565;11,522986;127,086;0;0;0;CONSTANTGRADIENT V7;IfcAlignmentVerticalSegment;306,077551;192,512689171019;127,086;-0,00352981070589252;-0,00352981070589252;0;CONSTANTGRADIENT -V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,00352981070589252;-5000;CIRCULARARC +V8;IfcAlignmentVerticalSegment;498,590240171019;15,2752896431409;126,406466648677;-0,00352981070589252;-0,0065849894096037;-5000;CIRCULARARC V9;IfcAlignmentVerticalSegment;513,865529814159;78,3592658459091;126,329213578221;-0,0065849894096037;-0,0065849894096037;0;CONSTANTGRADIENT -V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;-0,0065849894096037;1300;CIRCULARARC +V10;IfcAlignmentVerticalSegment;592,224795660069;10,4103422623946;125,813218642574;-0,0065849894096037;0,00142311038270447;1300;CIRCULARARC V11;IfcAlignmentVerticalSegment;602,635137922463;13,8073550775368;125,786350609637;0,00142311038228749;0,00142311038228749;0;CONSTANTGRADIENT From 4e33416e815fc33de68c8c6177972076b7b8f1ee Mon Sep 17 00:00:00 2001 From: larswik Date: Tue, 29 Mar 2022 17:04:13 +0200 Subject: [PATCH 08/13] Updated according to ValidationCriteriaMaster --- E1a-ARSE/ALSE01/Dataset/README.md | 125 ++++++++++++---- E1a-ARSE/ALSE01/README.md | 228 +++++++++++++++++++++--------- 2 files changed, 264 insertions(+), 89 deletions(-) diff --git a/E1a-ARSE/ALSE01/Dataset/README.md b/E1a-ARSE/ALSE01/Dataset/README.md index cd30f22..5b580af 100644 --- a/E1a-ARSE/ALSE01/Dataset/README.md +++ b/E1a-ARSE/ALSE01/Dataset/README.md @@ -1,33 +1,112 @@ -## Variations +## Model Dataset + The Following occurrence variations need to be checked and certified in relation to the targeted entities and concept templates: - Pset_Superelevation.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* - Pset_Superelevation.Superelevation - *The test shall include both positive and negative values* - Pset_Superelevation.TransitionSuperelevation - *The test shall include only LINEAR transitions* -## Model Dataset +| Filename | Description | +| ------------------------------------------------------------ | --------------------------------------------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | +| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | + +## Dataset specification + +### Entities table + +The entities listed below are in addition to the entities listed for ALIN06. -- This test case utilises the following dataset: - - Superelevation events according to the table below +| **Element** | **Attribute** | **Value** | **Notes** | +| ------------- | -------------- | ------------------- | --------- | +| IfcAnnotation | Name | SE0 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE1 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE2 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE3 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE4 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE5 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE6 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE7 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE8 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE9 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE10 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE11 | | +| | PredefinedType | SUPERELEVATIONEVENT | | -The following tables lists the entities that shall be present in the dataset in addition to the imported entities for model setup : +### Properties table -´Superelevation events: +| **Entity** | **Entity Type** | Entity Name | **PropertySet Name** | **Property Name** | **Property Value Type** | **Enumerated Values** | **Value type** | **Property Value** | +| ------------- | ------------------- | ----------- | -------------------- | ------------------------ | ----------------------- | --------------------- | -------------------------- | ------------------ | +| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | -| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | -| ---- | --------------------------------- | ------------- | -------------- | ----- | ------------------------ | -| SE0 | IfcAnnotation/SUPERELEVATIONEVENT | 298,82 | 0,00 | BOTH | | -| SE1 | IfcAnnotation/SUPERELEVATIONEVENT | 301,82 | 0,00 | BOTH | | -| SE2 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | 0,03 | LEFT | LINEAR | -| SE3 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | -0,03 | RIGHT | LINEAR | -| SE4 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | 0,03 | LEFT | | -| SE5 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | -0,03 | RIGHT | | -| SE6 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | -0,03 | LEFT | LINEAR | -| SE7 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | 0,03 | RIGHT | LINEAR | -| SE8 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | -0,03 | LEFT | | -| SE9 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | 0,03 | RIGHT | | -| SE10 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | LEFT | | -| SE11 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | RIGHT | LINEAR | +### Spatial Containment table + +| **Spatial Element** | **Spatial Element Type** | **MinSize** | **MaxSize** | **Element** | **Element Type** | +| ------------------- | ------------------------ | ----------- | ----------- | ------------- | ---------------- | +| IfcRoad | | 12 | 12 | IfcAnnotation | SUPERELEVATION | + +### Product Relative Positioning table + +| **Product** | **Product Type** | **Size** | **Positioning Element** | **Positioning Element Type** | +| ------------- | ---------------- | -------- | ----------------------- | ---------------------------- | +| IfcAnnotation | SUPERELEVATION | 12 | IfcAlignment | | + +### Product Placement table + +| **Product** | **Product Type** | **Product Name** | **Object Placement** | Relative Placement Product | Relative Placement Product Type | Relative Placement Product Name | +| ------------- | ---------------- | ---------------- | --------------------------------- | -------------------------- | ------------------------------- | ------------------------------- | +| IfcAnnotation | SUPERELEVATION | SE0 | IfcLinearPlacement
at 298,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE1 | IfcLinearPlacement
at 301,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE2 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE3 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE4 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE5 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE6 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE7 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE8 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE9 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE10 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATION | SE11 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | ## Drawings (Visualisations) @@ -38,10 +117,4 @@ The following Drawings and visualisations describe the test case dataset to be m | Superelevation | ![](./Superelevation.png) | -## Supporting files -| Filename | Description | -| ------------------------------------------------------------ | --------------------------------------------- | -| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | -| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | -| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | \ No newline at end of file diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index d72242e..ad7e13b 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -9,6 +9,8 @@ With these instructions the infrastructure (e.g. Road) alignment exchange is established. This test instruction use the same alignment definition as [ALIN06](../ALIN06). +The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). + | Info | | | ---------------------------- | ------------------------------------- | | Number of alignment(s) | 1 | @@ -20,25 +22,19 @@ With these instructions the infrastructure (e.g. Road) alignment exchange is est | Width | 0 | | IFC reference file available | Yes | -The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. +- Refer to [Test Case Imports](#Test-Case-Imports) to know the prerequisites for the present test. -The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). +- The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. -:zap: **This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test** :zap: +- :zap: This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test :zap: ## Itemised Roots -*This section lists the primary entities and concept templates being validated by this test instruction, these are listed to understand the scope of the data entities being addressed. this is the documentation of the data placed within BIMQ* - The Test instruction addresses the import and export of the following IFC Entities & Concept Templates: -:construction: under construction :construction: -
IFC Entities - -These entities represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** - - Inherited from imported tests: - Model setup + - IfcProject - *IfcSite* - *IfcRoad* - *IfcRepresentationContext* @@ -88,95 +84,201 @@ These concept templates represent a test-specific subset of the wider AbRV_Ex ex
+## Model Dataset + +This test case utilises the dataset collected in the Dataset folder and summarised in the table below. **For more details on each item see [Dataset description](Dataset/README.md).** + +| Filename | Type (format) | Description | +| ------------------------------------------------------------ | ------------- | -------------------------------------------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | csv | Alignment parameters for horizontal segments | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | csv | Alignment parameters for vertical segments | +| [LandXML](./TOI-M14334-0000A.xml) | xml | LandXML representation of the alignment | + ## Test Case Imports + Test instructions are defined with a modular approach to reduce repetition of validation criteria and test content, and improve vendors ability to solve issues and bugs. therefore this test instruction *imports/reuses* the following Test instructions and entities with the relevant associated validation criteria. -:construction: under construction :construction: -
Imports & Reuses +| TI Code | Test Instruction Title | Comments | +| ------------------------------------------------------------ | ------------------------------- | -------- | +| [**IFC4x3_AbRV-E1a-ALIN06**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN06) | Alignment Infrastructure Curves | na | -| TI Code | Test Instruction Title | Comments | -| ------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------ | -| [**IFC4x3_AbRV-E1a-ALIN06**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN06) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | +## Expected Results -
+For certification of capabilities the only source will be: -## Usages, Constraints & Logic -The following itemised restrictions and constraints shall be placed on IFC Entities & Concept Templates: +- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) -:construction: under construction :construction: +Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: +- Screen-shot of a planar view and a "long section" showing the superelevation changes -
Semantic Usages, Constraints & Logic +--- -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -| ------ | ------------------------------------ | ----------------------------------- | ----------- | -| SE_00 | Superelevation structure is verified | See below for further specification | | +## Validation criteria +:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: -SE_00: Superelevation structure is verified +### General + + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ---------------------- | +| GENE_00 | All validation criteria of precondition's tests shall be verified | | na | na | +| GENE_01 | All requested entities (and attributes) exist in file | As per Entities Table. See [Dataset specification](Dataset/Readme.md). | na | na | + +### Superelevation & Width + +| **ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ------- | ---------------------------------------- | ------------------------------------------------------------ | --------------------------------- | ---------------------------- | +| SEWI_00 | Superelevation representation verified | | IfcAnnotation/SUPERELEVATIONEVENT | | +| SEWI_01 | Width representation verified | | IfcAnnotation/WIDTHEVENT | | +| SEWI_02 | Superelevation linear placement verified | As per Product placement table. See [Dataset specification](Dataset/Readme.md). | | Product Linear Placement | +| SEWI_03 | Width linear placement verified | As per Product placement table. See [Dataset specification](Dataset/Readme.md). | | | +| SEWI_04 | Superelevation properties verified | As per Properties table. See [Dataset specification](Dataset/Readme.md). | | Property sets for objects | +| SEWI_05 | Width properties verified | As per Properties table. See [Dataset specification](Dataset/Readme.md). | | Property sets for objects | +| SEWI_06 | Relative Positioning verified | As per Product Relative Positioning table. See [Dataset specification](Dataset/Readme.md). | | Product Relative Positioning | + +> **Acceptance criteria**: For the **Superelevation & Width** capability, the validation procedure must verify that **all** the above validation criteria are satisfied. + +
SEWI_02 details: Superelevation event linear placement verified verified ->1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` ->2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations ->2. Each superelevation event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning ->3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects ->4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. -
-
Model Geometry -The Test case requires the following additional checks related to Model Geometry: -The superelevation events does not need explicit geometric representation. +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` +> - Then the `IfcAnnotation/SUPERELEVATIONEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Product-Placement-Table)
-## Expected Results +
SEWI_03 details: Width event linear placement verified verified -For certification of capabilities the only source will be: -:construction: under construction :construction: -- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) +> - Given an `IfcAnnotation/WIDTHEVENT` +> - Then the `IfcAnnotation/WIDTHEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Product-Placement-Table) -Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: -- Screen-shot of a planar view and a "long section" showing the superelevation changes +
+ +
SEWI_04 details: Superelevation properties verified ---- -## Validation criteria -:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: -:construction: under construction :construction: +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` +> - Then `IfcAnnotation/SUPERELEVATIONEVENT` has a property set named `Pset_Superelevation` +> - And the property assignment for `Pset_Superelevation` complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](#Properties-table) -### General & Imports +
-
Click to expand +
SEWI_05 details: Width properties verified -- All the concept templates must be correctly implemented as presented in the validation criteria -- At least 1 instance of each entity listed in [Itemised Roots](#Itemised-Roots) is present in the file. -#### Imports -| **TI Code** | **Criteria Codes** | *COMMENT** | -| --------------------- | ------------------ | ------------------------------------------------------------ | -| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction including its dependencies | +> - Given an `IfcAnnotation/WIDTHEVENT` +> - Then `IfcAnnotation/WIDTHEVENT` has a property set named `Pset_Width` +> - And the property assignment complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](#Properties-table) + +
+
SEWI_06 details: Relative positioning verified -#### General -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -|---------|-----------------------------------------------------|-----------------------------------------------|-------------| -| GENE_01 | All requested entities are present in the IFC model | per [Entities Table](Dataset/README.md#Entities-Table) | | + + +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` or an `IfcAnnotation/WIDTHEVENT` having a linear placement relative to an alignment curve +> - This instance shall be verified according to the criteria in the [Product Relative Positioning](#Product-relative-positioning) section and the specification in the [Product Relative Positioning table](#Product-Relative-Positioning-table)
-### Superelevation event +### Product relative positioning + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ---------------------------------------- | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------ | +| PPOS_01 | Product relative positioning is verified | As per Product Relative Positioning Table. See [Dataset specification](Dataset/Readme.md). | na | Product Relative Positioning, Product Span Positioning | + +> **Acceptance criteria**: For the **Spatial relative positioning** capability, the validation procedure must verify that a Product of the requested type is positioned (via `IfcRelPositions`) exactly a given number of Positioning Elements of the requested type, no more and no less. -
Click to expand +
PPOS_01 details: Product relative positioning is verified -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -| ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | -| ALSE_01 | Superelevation events contained in file | 12 | | -| ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | -| ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -| ALSE_04 | Each superelevation event is associated to the IfcAlignment using IfcRelPositions relationship | | | + +> - Given a set of products taken from the [Product Relative Positioning Table](#Product-Relative-Positioning-Table) +> - Then the Product, and optionally the Product Type, exists +> - And the Product must be positioned on exactly [Size] of the requested Positioning Element
+### Properties + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | -------------------------------------------------------- | ------------------------------------------------------------ | -------------------------- | --------------------------------------------------- | +| PSET_01 | The model does not contain unrequested property sets | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | +| PNAM_01 | The property set does not contain unrequested properties | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | +| PTEX_01 | Property values belong to a list of values | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_01 | Property values are not null and not empty | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_02 | Requested property value types are found | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | + +> **Acceptance criteria**: For the **Properties for objects and object types** capability, the validation procedure must verify that both standard and custom property sets requested by the test case (including relative properties and values) are present in the IFC file. +> See below for further specification of each rule. + +
PSET_01: The model does not contain unrequested property sets + + +> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - Then the IfcEntity is associated at most to the property set with the PropertySet Name +>
+ +
PNAM_01: The property set does not contain unrequested properties + + +> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - Then the property set has at most the properties with the Property Name +>
+ +
PTEX_01: Property values belong to a list of values + + +> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - Then the property value is part of the List Of Values +>
+ +
PVAL_01: Property values are not null and not empty + + +> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - Then the property value is not null +> - And the property value is not empty +>
+ +
PVAL_02: Requested property value types are found + + +> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - And the property value is not null +> - Then the property type is equal to the Property Value Type +>
+ +### Product placement + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ------------------------------ | +| PPLA_01 | Placement of products is verified | As per Product Placement Table. See [Dataset specification](Dataset/Readme.md). | | Product Placement subtemplates | +| PPLA_02 | For a product that has ObjectPlacement as IfcLinearPlacement, the CartesianPosition of IfcLinearPlacement shall be available | depends on cases | | Product Linear Placement | + +> **Acceptance criteria**: For the **Product Placement** capability, the validation procedure must verify that a Product of the requested type (and optionally a requested name) has the requested Object Placement, and optionally the Object Placement has PlacementRelTo reference to the Object Placement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name. + +
PPLA_01 details: Placement of products is verified + + +> - Given a set of products taken from the [Product Geometric Representation Table](#Product-Geometric-Representation-Table) +> - Then the Product with Product Type and Product Name, exists +> - And the Product must have Object Placement, and the Object Placement has PlacementRelTo reference to the ObjectPlacement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name. + +
From 68ab02bd3850e3166951a68f2b1157822a6801aa Mon Sep 17 00:00:00 2001 From: larswik Date: Tue, 29 Mar 2022 17:08:13 +0200 Subject: [PATCH 09/13] Update README.md --- E1a-ARSE/ALSE01/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index ad7e13b..35867e5 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -32,6 +32,7 @@ The data comes from, and is a simplified version of, the IFC Infra Unit Test [MC The Test instruction addresses the import and export of the following IFC Entities & Concept Templates:
IFC Entities + - Inherited from imported tests: - Model setup - IfcProject From af76f659d2cbdd7190ce445c47fa680b45388d1d Mon Sep 17 00:00:00 2001 From: larswik Date: Tue, 29 Mar 2022 17:10:59 +0200 Subject: [PATCH 10/13] Update README.md Updated links --- E1a-ARSE/ALSE01/README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index 35867e5..b4d3c85 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -124,7 +124,7 @@ Considering the aim of this test, other **optional** results, not subject to the | **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | | ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ---------------------- | | GENE_00 | All validation criteria of precondition's tests shall be verified | | na | na | -| GENE_01 | All requested entities (and attributes) exist in file | As per Entities Table. See [Dataset specification](Dataset/Readme.md). | na | na | +| GENE_01 | All requested entities (and attributes) exist in file | As per Entities Table. See [Dataset specification](Dataset/README.md). | na | na | ### Superelevation & Width @@ -132,11 +132,11 @@ Considering the aim of this test, other **optional** results, not subject to the | ------- | ---------------------------------------- | ------------------------------------------------------------ | --------------------------------- | ---------------------------- | | SEWI_00 | Superelevation representation verified | | IfcAnnotation/SUPERELEVATIONEVENT | | | SEWI_01 | Width representation verified | | IfcAnnotation/WIDTHEVENT | | -| SEWI_02 | Superelevation linear placement verified | As per Product placement table. See [Dataset specification](Dataset/Readme.md). | | Product Linear Placement | -| SEWI_03 | Width linear placement verified | As per Product placement table. See [Dataset specification](Dataset/Readme.md). | | | -| SEWI_04 | Superelevation properties verified | As per Properties table. See [Dataset specification](Dataset/Readme.md). | | Property sets for objects | -| SEWI_05 | Width properties verified | As per Properties table. See [Dataset specification](Dataset/Readme.md). | | Property sets for objects | -| SEWI_06 | Relative Positioning verified | As per Product Relative Positioning table. See [Dataset specification](Dataset/Readme.md). | | Product Relative Positioning | +| SEWI_02 | Superelevation linear placement verified | As per Product placement table. See [Dataset specification](Dataset/README.md). | | Product Linear Placement | +| SEWI_03 | Width linear placement verified | As per Product placement table. See [Dataset specification](Dataset/README.md). | | | +| SEWI_04 | Superelevation properties verified | As per Properties table. See [Dataset specification](Dataset/README.md). | | Property sets for objects | +| SEWI_05 | Width properties verified | As per Properties table. See [Dataset specification](Dataset/README.md). | | Property sets for objects | +| SEWI_06 | Relative Positioning verified | As per Product Relative Positioning table. See [Dataset specification](Dataset/README.md). | | Product Relative Positioning | > **Acceptance criteria**: For the **Superelevation & Width** capability, the validation procedure must verify that **all** the above validation criteria are satisfied. @@ -191,7 +191,7 @@ Considering the aim of this test, other **optional** results, not subject to the | **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | | ----------- | ---------------------------------------- | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------ | -| PPOS_01 | Product relative positioning is verified | As per Product Relative Positioning Table. See [Dataset specification](Dataset/Readme.md). | na | Product Relative Positioning, Product Span Positioning | +| PPOS_01 | Product relative positioning is verified | As per Product Relative Positioning Table. See [Dataset specification](Dataset/README.md). | na | Product Relative Positioning, Product Span Positioning | > **Acceptance criteria**: For the **Spatial relative positioning** capability, the validation procedure must verify that a Product of the requested type is positioned (via `IfcRelPositions`) exactly a given number of Positioning Elements of the requested type, no more and no less. @@ -208,11 +208,11 @@ Considering the aim of this test, other **optional** results, not subject to the | **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | | ----------- | -------------------------------------------------------- | ------------------------------------------------------------ | -------------------------- | --------------------------------------------------- | -| PSET_01 | The model does not contain unrequested property sets | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | -| PNAM_01 | The property set does not contain unrequested properties | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | -| PTEX_01 | Property values belong to a list of values | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | -| PVAL_01 | Property values are not null and not empty | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | -| PVAL_02 | Requested property value types are found | As per Properties Table. See [Dataset specification](Dataset/Readme.md). | na | Property Sets for Objects & Property Sets for Types | +| PSET_01 | The model does not contain unrequested property sets | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PNAM_01 | The property set does not contain unrequested properties | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PTEX_01 | Property values belong to a list of values | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_01 | Property values are not null and not empty | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_02 | Requested property value types are found | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | > **Acceptance criteria**: For the **Properties for objects and object types** capability, the validation procedure must verify that both standard and custom property sets requested by the test case (including relative properties and values) are present in the IFC file. > See below for further specification of each rule. @@ -270,7 +270,7 @@ Considering the aim of this test, other **optional** results, not subject to the | **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | | ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ------------------------------ | -| PPLA_01 | Placement of products is verified | As per Product Placement Table. See [Dataset specification](Dataset/Readme.md). | | Product Placement subtemplates | +| PPLA_01 | Placement of products is verified | As per Product Placement Table. See [Dataset specification](Dataset/README.md). | | Product Placement subtemplates | | PPLA_02 | For a product that has ObjectPlacement as IfcLinearPlacement, the CartesianPosition of IfcLinearPlacement shall be available | depends on cases | | Product Linear Placement | > **Acceptance criteria**: For the **Product Placement** capability, the validation procedure must verify that a Product of the requested type (and optionally a requested name) has the requested Object Placement, and optionally the Object Placement has PlacementRelTo reference to the Object Placement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name. From 87528f085f356b87246eabb1870351690c9becaf Mon Sep 17 00:00:00 2001 From: larswik Date: Wed, 30 Mar 2022 13:32:41 +0200 Subject: [PATCH 11/13] Updating links --- E1a-ARSE/ALSE01/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index b4d3c85..d65a551 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -145,7 +145,7 @@ Considering the aim of this test, other **optional** results, not subject to the > - Given an `IfcAnnotation/SUPERELEVATIONEVENT` -> - Then the `IfcAnnotation/SUPERELEVATIONEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Product-Placement-Table) +> - Then the `IfcAnnotation/SUPERELEVATIONEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Dataset/README.md#Product-Placement-Table)
@@ -154,7 +154,7 @@ Considering the aim of this test, other **optional** results, not subject to the > - Given an `IfcAnnotation/WIDTHEVENT` -> - Then the `IfcAnnotation/WIDTHEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Product-Placement-Table) +> - Then the `IfcAnnotation/WIDTHEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Dataset/README.md#Product-Placement-Table)
@@ -164,7 +164,7 @@ Considering the aim of this test, other **optional** results, not subject to the > - Given an `IfcAnnotation/SUPERELEVATIONEVENT` > - Then `IfcAnnotation/SUPERELEVATIONEVENT` has a property set named `Pset_Superelevation` -> - And the property assignment for `Pset_Superelevation` complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](#Properties-table) +> - And the property assignment for `Pset_Superelevation` complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](Dataset/README.md#Properties-table)
@@ -174,7 +174,7 @@ Considering the aim of this test, other **optional** results, not subject to the > - Given an `IfcAnnotation/WIDTHEVENT` > - Then `IfcAnnotation/WIDTHEVENT` has a property set named `Pset_Width` -> - And the property assignment complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](#Properties-table) +> - And the property assignment complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](Dataset/README.md#Properties-table)
@@ -183,7 +183,7 @@ Considering the aim of this test, other **optional** results, not subject to the > - Given an `IfcAnnotation/SUPERELEVATIONEVENT` or an `IfcAnnotation/WIDTHEVENT` having a linear placement relative to an alignment curve -> - This instance shall be verified according to the criteria in the [Product Relative Positioning](#Product-relative-positioning) section and the specification in the [Product Relative Positioning table](#Product-Relative-Positioning-table) +> - This instance shall be verified according to the criteria in the [Product Relative Positioning](#Product-relative-positioning) section and the specification in the [Product Relative Positioning table](Dataset/README.md#Product-Relative-Positioning-table) @@ -198,7 +198,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PPOS_01 details: Product relative positioning is verified -> - Given a set of products taken from the [Product Relative Positioning Table](#Product-Relative-Positioning-Table) +> - Given a set of products taken from the [Product Relative Positioning Table](Dataset/README.md#Product-Relative-Positioning-Table) > - Then the Product, and optionally the Product Type, exists > - And the Product must be positioned on exactly [Size] of the requested Positioning Element @@ -220,7 +220,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PSET_01: The model does not contain unrequested property sets -> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) > - When the IfcEntity, and optionally the Type, exists > - Then the IfcEntity is associated at most to the property set with the PropertySet Name >
@@ -228,7 +228,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PNAM_01: The property set does not contain unrequested properties -> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) > - When the IfcEntity, and optionally the Type, exists > - And the IfcEntity is associated to a property set with the PropertySet Name > - Then the property set has at most the properties with the Property Name @@ -237,7 +237,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PTEX_01: Property values belong to a list of values -> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) > - When the IfcEntity, and optionally the Type, exists > - And the IfcEntity is associated to a property set with the PropertySet Name > - And the property set has a property with the Property Name @@ -247,7 +247,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PVAL_01: Property values are not null and not empty -> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) > - When the IfcEntity, and optionally the Type, exists > - And the IfcEntity is associated to a property set with the PropertySet Name > - And the property set has a property with the Property Name @@ -258,7 +258,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PVAL_02: Requested property value types are found -> - Given a set of properties taken from the [Properties Table](#Properties-Table) +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) > - When the IfcEntity, and optionally the Type, exists > - And the IfcEntity is associated to a property set with the PropertySet Name > - And the property set has a property with the Property Name @@ -278,7 +278,7 @@ Considering the aim of this test, other **optional** results, not subject to the
PPLA_01 details: Placement of products is verified -> - Given a set of products taken from the [Product Geometric Representation Table](#Product-Geometric-Representation-Table) +> - Given a set of products taken from the [Product Geometric Representation Table](Dataset/README.md#Product-Geometric-Representation-Table) > - Then the Product with Product Type and Product Name, exists > - And the Product must have Object Placement, and the Object Placement has PlacementRelTo reference to the ObjectPlacement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name. From d2541368fc57ea85cbf0a83cf9ccdfebc3659f25 Mon Sep 17 00:00:00 2001 From: larswik Date: Fri, 1 Apr 2022 14:08:54 +0200 Subject: [PATCH 12/13] Updated according to ValidationCriteriaMaster --- E1a-ARSE/ALSE01/Dataset/README.md | 74 ++++----- E1a-ARSE/ALSE02/Dataset/README.md | 187 +++++++++++++++++----- E1a-ARSE/ALSE02/README.md | 251 +++++++++++++++++++++--------- 3 files changed, 368 insertions(+), 144 deletions(-) diff --git a/E1a-ARSE/ALSE01/Dataset/README.md b/E1a-ARSE/ALSE01/Dataset/README.md index 5b580af..137e3be 100644 --- a/E1a-ARSE/ALSE01/Dataset/README.md +++ b/E1a-ARSE/ALSE01/Dataset/README.md @@ -50,63 +50,63 @@ The entities listed below are in addition to the entities listed for ALIN06. | **Entity** | **Entity Type** | Entity Name | **PropertySet Name** | **Property Name** | **Property Value Type** | **Enumerated Values** | **Value type** | **Property Value** | | ------------- | ------------------- | ----------- | -------------------- | ------------------------ | ----------------------- | --------------------- | -------------------------- | ------------------ | | IfcAnnotation | SUPERELEVATIONEVENT | SE0 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | | IfcAnnotation | SUPERELEVATIONEVENT | SE1 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | | IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | -| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | | IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | -| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | | IfcAnnotation | SUPERELEVATIONEVENT | SE4 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | | IfcAnnotation | SUPERELEVATIONEVENT | SE5 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | | IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | -| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | | IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | -| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | | IfcAnnotation | SUPERELEVATIONEVENT | SE8 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | | IfcAnnotation | SUPERELEVATIONEVENT | SE9 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | | IfcAnnotation | SUPERELEVATIONEVENT | SE10 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | | IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | -| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | -| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | ### Spatial Containment table -| **Spatial Element** | **Spatial Element Type** | **MinSize** | **MaxSize** | **Element** | **Element Type** | -| ------------------- | ------------------------ | ----------- | ----------- | ------------- | ---------------- | -| IfcRoad | | 12 | 12 | IfcAnnotation | SUPERELEVATION | +| **Spatial Element** | **Spatial Element Type** | **MinSize** | **MaxSize** | **Element** | **Element Type** | +| ------------------- | ------------------------ | ----------- | ----------- | ------------- | ------------------- | +| IfcRoad | | 12 | 12 | IfcAnnotation | SUPERELEVATIONEVENT | ### Product Relative Positioning table -| **Product** | **Product Type** | **Size** | **Positioning Element** | **Positioning Element Type** | -| ------------- | ---------------- | -------- | ----------------------- | ---------------------------- | -| IfcAnnotation | SUPERELEVATION | 12 | IfcAlignment | | +| **Product** | **Product Type** | **Size** | **Positioning Element** | **Positioning Element Type** | +| ------------- | ------------------- | -------- | ----------------------- | ---------------------------- | +| IfcAnnotation | SUPERELEVATIONEVENT | 12 | IfcAlignment | | ### Product Placement table -| **Product** | **Product Type** | **Product Name** | **Object Placement** | Relative Placement Product | Relative Placement Product Type | Relative Placement Product Name | -| ------------- | ---------------- | ---------------- | --------------------------------- | -------------------------- | ------------------------------- | ------------------------------- | -| IfcAnnotation | SUPERELEVATION | SE0 | IfcLinearPlacement
at 298,82 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE1 | IfcLinearPlacement
at 301,82 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE2 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE3 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE4 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE5 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE6 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE7 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE8 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE9 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE10 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | -| IfcAnnotation | SUPERELEVATION | SE11 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | +| **Product** | **Product Type** | **Product Name** | **Object Placement** | Relative Placement Product | Relative Placement Product Type | Relative Placement Product Name | +| ------------- | ------------------- | ---------------- | --------------------------------- | -------------------------- | ------------------------------- | ------------------------------- | +| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | IfcLinearPlacement
at 298,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | IfcLinearPlacement
at 301,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | ## Drawings (Visualisations) diff --git a/E1a-ARSE/ALSE02/Dataset/README.md b/E1a-ARSE/ALSE02/Dataset/README.md index f04c440..98224e8 100644 --- a/E1a-ARSE/ALSE02/Dataset/README.md +++ b/E1a-ARSE/ALSE02/Dataset/README.md @@ -1,4 +1,8 @@ ## Variations +- + +## Model Dataset + The Following occurrence variations need to be checked and certified in relation to the targeted entities and concept templates: - Pset_Superelevation.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* @@ -7,43 +11,154 @@ The Following occurrence variations need to be checked and certified in relation - Pset_Width.Side - *The test shall include all possible values (LEFT, RIGHT and BOTH)* - Pset_Superelevation.TransitionWidth - *The test shall include LINEAR and CONST transitions* -## Model Dataset +| Filename | Description | +| ------------------------------------------------------------ | --------------------------------------------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | +| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | + +## Dataset specification + +### Entities table + +The entities listed below are in addition to the entities listed for ALIN06. + +| **Element** | **Attribute** | **Value** | **Notes** | +| ------------- | -------------- | ------------------- | --------- | +| IfcAnnotation | Name | SE0 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE1 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE2 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE3 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE4 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE5 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE6 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE7 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE8 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE9 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE10 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | SE11 | | +| | PredefinedType | SUPERELEVATIONEVENT | | +| IfcAnnotation | Name | WE1 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE2 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE3 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE4 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE5 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE6 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE7 | | +| | PredefinedType | WIDTHEVENT | | +| IfcAnnotation | Name | WE8 | | +| | PredefinedType | WIDTHEVENT | | + +### Properties table + +| **Entity** | **Entity Type** | Entity Name | **PropertySet Name** | **Property Name** | **Property Value Type** | **Enumerated Values** | **Value type** | **Property Value** | +| ------------- | ------------------- | ----------- | -------------------- | ------------------------ | --------------------------- | --------------------- | -------------------------- | ------------------ | +| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,00 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | 0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | Pset_Superelevation | Superelevation | IfcRatioMeasure | | IfcPropertySingleValue | -0,03 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionSuperelevation | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | WIDTHEVENT | WE0 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,0 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| IfcAnnotation | WIDTHEVENT | WE1 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,4 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| | | | | TransitionWidth | IfcLabel | | IfcPropertyEnumeratedValue | CONST | +| IfcAnnotation | WIDTHEVENT | WE2 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,7 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| | | | | TransitionWidth | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | WIDTHEVENT | WE3 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,6 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| | | | | TransitionWidth | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | +| IfcAnnotation | WIDTHEVENT | WE4 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,7 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | LEFT | +| IfcAnnotation | WIDTHEVENT | WE5 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,6 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | RIGHT | +| IfcAnnotation | WIDTHEVENT | WE6 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 3,05 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| | | | | TransitionWidth | IfcLabel | | IfcPropertyEnumeratedValue | CONST | +| IfcAnnotation | WIDTHEVENT | WE7 | Pset_Width | NominalWidth | IfcNonNegativeLengthMeasure | | IfcPropertySingleValue | 2,75 | +| | | | | Side | IfcLabel | | IfcPropertyEnumeratedValue | BOTH | +| | | | | TransitionWidth | IfcLabel | | IfcPropertyEnumeratedValue | LINEAR | + +### Spatial Containment table + +| **Spatial Element** | **Spatial Element Type** | **MinSize** | **MaxSize** | **Element** | **Element Type** | +| ------------------- | ------------------------ | ----------- | ----------- | ------------- | ------------------- | +| IfcRoad | | 12 | 12 | IfcAnnotation | SUPERELEVATIONEVENT | +| IIfcRoad | | 8 | 8 | IfcAnnotation | WIDTHEVENT | + +### Product Relative Positioning table + +| **Product** | **Product Type** | **Size** | **Positioning Element** | **Positioning Element Type** | +| ------------- | ------------------- | -------- | ----------------------- | ---------------------------- | +| IfcAnnotation | SUPERELEVATIONEVENT | 12 | IfcAlignment | | +| IfcAnnotation | WIDTHEVENT | 8 | IfcAlignment | | + +### Product Placement table -- This test case utilises the following dataset: - - Superelevation events according to the table below - - Width events according to the table below - -The following tables lists the entities that shall be present in the dataset in addition to the imported entities for model setup : - -´Superelevation events: - -| Name | Type | DistanceAlong | Superelevation | Side | TransitionSuperelevation | -| ---- | --------------------------------- | ------------- | -------------- | ----- | ------------------------ | -| SE0 | IfcAnnotation/SUPERELEVATIONEVENT | 298,82 | 0,00 | BOTH | | -| SE1 | IfcAnnotation/SUPERELEVATIONEVENT | 301,82 | 0,00 | BOTH | | -| SE2 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | 0,03 | LEFT | LINEAR | -| SE3 | IfcAnnotation/SUPERELEVATIONEVENT | 331,82 | -0,03 | RIGHT | LINEAR | -| SE4 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | 0,03 | LEFT | | -| SE5 | IfcAnnotation/SUPERELEVATIONEVENT | 443,00 | -0,03 | RIGHT | | -| SE6 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | -0,03 | LEFT | LINEAR | -| SE7 | IfcAnnotation/SUPERELEVATIONEVENT | 503,00 | 0,03 | RIGHT | LINEAR | -| SE8 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | -0,03 | LEFT | | -| SE9 | IfcAnnotation/SUPERELEVATIONEVENT | 513,00 | 0,03 | RIGHT | | -| SE10 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | LEFT | | -| SE11 | IfcAnnotation/SUPERELEVATIONEVENT | 573,00 | -0,03 | RIGHT | LINEAR | - -´Width events: - -| Name | Type | DistanceAlong | NominalWidth | Side | TransitionWidth | -| ---- | ------------------------ | ------------- | ------------ | ----- | --------------- | -| WE0 | IfcAnnotation/WIDTHEVENT | 298,82 | 3,0 | BOTH | | -| WE1 | IfcAnnotation/WIDTHEVENT | 301,82 | 3,4 | BOTH | CONST | -| WE2 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,7 | LEFT | LINEAR | -| WE3 | IfcAnnotation/WIDTHEVENT | 336,73 | 3,6 | RIGHT | LINEAR | -| WE4 | IfcAnnotation/WIDTHEVENT | 503,00 | 3,7 | LEFT | | -| WE5 | IfcAnnotation/WIDTHEVENT | 503,00 | 3,6 | RIGHT | | -| WE6 | IfcAnnotation/WIDTHEVENT | 532,70 | 3,05 | BOTH | CONST | -| WE7 | IfcAnnotation/WIDTHEVENT | 583,00 | 2,75 | BOTH | LINEAR | +| **Product** | **Product Type** | **Product Name** | **Object Placement** | Relative Placement Product | Relative Placement Product Type | Relative Placement Product Name | +| ------------- | ------------------- | ---------------- | --------------------------------- | -------------------------- | ------------------------------- | ------------------------------- | +| IfcAnnotation | SUPERELEVATIONEVENT | SE0 | IfcLinearPlacement
at 298,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE1 | IfcLinearPlacement
at 301,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE2 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE3 | IfcLinearPlacement
at 331,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE4 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE5 | IfcLinearPlacement
at 443,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE6 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE7 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE8 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE9 | IfcLinearPlacement
at 513,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE10 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | SUPERELEVATIONEVENT | SE11 | IfcLinearPlacement
at 573,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE0 | IfcLinearPlacement
at 298,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE1 | IfcLinearPlacement
at 301,82 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE2 | IfcLinearPlacement
at 336,73 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE3 | IfcLinearPlacement
at 336,73 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE4 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE5 | IfcLinearPlacement
at 503,00 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE6 | IfcLinearPlacement
at 532,70 | IfcAlignment | na | A1 (from ALIN06) | +| IfcAnnotation | WIDTHEVENT | WE7 | IfcLinearPlacement
at 583,00 | IfcAlignment | na | A1 (from ALIN06) | ## Drawings (Visualisations) diff --git a/E1a-ARSE/ALSE02/README.md b/E1a-ARSE/ALSE02/README.md index e184e44..632d09e 100644 --- a/E1a-ARSE/ALSE02/README.md +++ b/E1a-ARSE/ALSE02/README.md @@ -9,6 +9,8 @@ With these instructions the infrastructure (e.g. Road) alignment exchange is established. This test instruction use the same alignment definition as [ALIN06](../ALIN06). +The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). + | Info | | | ---------------------------- | ------------------------------------ | | Number of alignment(s) | 1 | @@ -20,25 +22,21 @@ With these instructions the infrastructure (e.g. Road) alignment exchange is est | Width | 8 IfcAnnotation/WIDTHEVENT | | IFC reference file available | Yes | -The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. +- Refer to [Test Case Imports](#Test-Case-Imports) to know the prerequisites for the present test. -The data comes from, and is a simplified version of, the IFC Infra Unit Test [MCON-2](https://github.com/bSI-InfraRoom/IFC-infra-unit-test/tree/main/MCON-2) which in turn is extracted from the IFC Rail [Level Crossing storyline](https://github.com/IFCRail/IFC-Rail-Unit-Test/tree/master/8_Storylines%20Test%20(SL)/SL08_Level%20Crossing). +- The [Expected Results](#Expected-Results) section lists the material that will be used to assess the fulfilment of capabilities. -:zap: **This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test** :zap: +- :zap: This is a test-driven process: refer to the [Validation Criteria](#Validation-Criteria) to understand what is required by the test :zap: ## Itemised Roots -*This section lists the primary entities and concept templates being validated by this test instruction, these are listed to understand the scope of the data entities being addressed. this is the documentation of the data placed within BIMQ* - The Test instruction addresses the import and export of the following IFC Entities & Concept Templates: -:construction: under construction :construction: -
IFC Entities -These entities represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** - Inherited from imported tests: - Model setup + - IfcProject - *IfcSite* - *IfcRoad* - *IfcRepresentationContext* @@ -68,6 +66,7 @@ These entities represent a test-specific subset of the wider AbRV_Ex exchange an
Concept Templates + These concept templates represent a test-specific subset of the wider AbRV_Ex exchange and the overall AbRV MVD, that must be correctly exported to meet the validation criteria. **The scope of the test shall not be used as a definitive scope of the exchange, or of the entire MVD.** - Inherited from imported tests: @@ -86,109 +85,219 @@ These concept templates represent a test-specific subset of the wider AbRV_Ex ex - *Property Sets for Objects* - Product Relative Positioning -
+## Model Dataset + +This test case utilises the dataset collected in the Dataset folder and summarised in the table below. **For more details on each item see [Dataset description](Dataset/README.md).** + +| Filename | Type (format) | Description | +| ------------------------------------------------------------ | --------------------------------------------- | ----------- | +| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | | +| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | | +| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | | + ## Test Case Imports + Test instructions are defined with a modular approach to reduce repetition of validation criteria and test content, and improve vendors ability to solve issues and bugs. therefore this test instruction *imports/reuses* the following Test instructions and entities with the relevant associated validation criteria. -:construction: under construction :construction: -
Imports & Reuses +| TI Code | Test Instruction Title | Comments | +| ------------------------------------------------------------ | ------------------------------- | -------- | +| [**IFC4x3_AbRV-E1a-ALIN06**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN06) | Alignment Infrastructure Curves | na | -| TI Code | Test Instruction Title | Comments | -| ------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------ | -| [**IFC4x3_AbRV-E1a-ALIN06**](https://github.com/bSI-InfraRoom/MVD-Infra-Test-Instructions/blob/develop/E1a-ARSE/ALIN06) | Alignment Infrastructure Curves | Including all dependencies, i.e. E0_SSRD, E0_SSSI and E0_MSTP | -
+## Expected Results -## Usages, Constraints & Logic -The following itemised restrictions and constraints shall be placed on IFC Entities & Concept Templates: +For certification of capabilities the only source will be: :construction: under construction :construction: -
Semantic Usages, Constraints & Logic +- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) + +Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: +- Screen-shot of a planar view and a "long section" showing the superelevation and width changes or a table showing the same information + +--- + +## Validation criteria + +:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: + +### General + -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -| ------ | ------------------------------------ | ----------------------------------- | ----------- | -| SE_00 | Superelevation structure is verified | See below for further specification | | -| SE_01 | Width structure is verified | See below for further specification | | +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ---------------------- | +| GENE_00 | All validation criteria of precondition's tests shall be verified | | na | na | +| GENE_01 | All requested entities (and attributes) exist in file | As per Entities Table. See [Dataset specification](Dataset/README.md). | na | na | -SE_00: Superelevation structure is verified +### Superelevation & Width ->1. The dataset shall contain 12 superelevation event instances, each represented by an `IfcAnnotation` with `PredefinedType=.SUPERELEVATIONEVENT.` ->2. Each superelevation event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations ->2. Each superelevation event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning ->3. Each superelevation event shall have an associated Property set with the name `Pset_Superelevation` according to CT Property sets For Objects ->4. Each `Pset_Superelevation` shall have properties `Side`, `Superelevation` and `TransitionSuperelevation` set to the specified values. +| **ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ------- | ---------------------------------------- | ------------------------------------------------------------ | --------------------------------- | ---------------------------- | +| SEWI_00 | Superelevation representation verified | | IfcAnnotation/SUPERELEVATIONEVENT | | +| SEWI_01 | Width representation verified | | IfcAnnotation/WIDTHEVENT | | +| SEWI_02 | Superelevation linear placement verified | As per Product placement table. See [Dataset specification](Dataset/README.md). | | Product Linear Placement | +| SEWI_03 | Width linear placement verified | As per Product placement table. See [Dataset specification](Dataset/README.md). | | | +| SEWI_04 | Superelevation properties verified | As per Properties table. See [Dataset specification](Dataset/README.md). | | Property sets for objects | +| SEWI_05 | Width properties verified | As per Properties table. See [Dataset specification](Dataset/README.md). | | Property sets for objects | +| SEWI_06 | Relative Positioning verified | As per Product Relative Positioning table. See [Dataset specification](Dataset/README.md). | | Product Relative Positioning | -SE_01: Width structure is verified +> **Acceptance criteria**: For the **Superelevation & Width** capability, the validation procedure must verify that **all** the above validation criteria are satisfied. ->1. The dataset shall contain 8 width event instances, each represented by an `IfcAnnotation` with `PredefinedType=.WIDTHEVENT.` ->2. Each width event shall have an associated `IfcLinearPlacement` relative to the alignment curve according to CT Product Linear Placement at the specified locations ->2. Each width event shall be positioned relative to the `IfcAlignment` using `IfcRelPositions` according to CT Product Relative Positioning ->3. Each width event shall have an associated Property set with the name `Pset_Width` according to CT Property sets For Objects ->4. Each `Pset_Width` shall have properties `Side`, `NominalWidth` and `TransitionWidth` set to the specified values. +
SEWI_02 details: Superelevation event linear placement verified verified + + + + +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` +> - Then the `IfcAnnotation/SUPERELEVATIONEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Dataset/README.md#Product-Placement-Table)
-
Model Geometry -The Test case requires the following additional checks related to Model Geometry: -Neither the superelevation events nor the Width events needs explicit geometric representation. +
SEWI_03 details: Width event linear placement verified verified + + + + +> - Given an `IfcAnnotation/WIDTHEVENT` +> - Then the `IfcAnnotation/WIDTHEVENT` has a linear placement that complies with the criteria in the [Product placement](#Product-placement) section and the specification in [Product Placement Table](Dataset/README.md#Product-Placement-Table) +
-## Expected Results +
SEWI_04 details: Superelevation properties verified -For certification of capabilities the only source will be: -:construction: under construction :construction: -- n. 1 IFC file containing the information as requested. The file shall be named using the following syntax: `MVDCode`-`ExchangeCode`-`TestCode`-`SoftwareVendor`.`ifc` (Example: `IFC4.3_AbRV-E2b-ASTPC-AmazingSoft.ifc`) -Considering the aim of this test, other **optional** results, not subject to the bSI certification process, yet usefull to illustrate test results are: -- Screen-shot of a planar view and a "long section" showing the superelevation and width changes or a table showing the same information +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` +> - Then `IfcAnnotation/SUPERELEVATIONEVENT` has a property set named `Pset_Superelevation` +> - And the property assignment for `Pset_Superelevation` complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](Dataset/README.md#Properties-table) ---- +
-## Validation criteria -:zap: For this test case to be considered passed **all capabilities** listed in this section shall be verified, with no exception. :zap: +
SEWI_05 details: Width properties verified + + + + +> - Given an `IfcAnnotation/WIDTHEVENT` +> - Then `IfcAnnotation/WIDTHEVENT` has a property set named `Pset_Width` +> - And the property assignment complies with the criteria specified in the [Properties](#Properties) section and the specification in the [Properties table](Dataset/README.md#Properties-table) + +
+ +
SEWI_06 details: Relative positioning verified -:construction: under construction :construction: -### General & Imports -
Click to expand -- All the concept templates must be correctly implemented as presented in the validation criteria -- At least 1 instance of each entity listed in [Itemised Roots](#Itemised-Roots) is present in the file. +> - Given an `IfcAnnotation/SUPERELEVATIONEVENT` or an `IfcAnnotation/WIDTHEVENT` having a linear placement relative to an alignment curve +> - This instance shall be verified according to the criteria in the [Product Relative Positioning](#Product-relative-positioning) section and the specification in the [Product Relative Positioning table](Dataset/README.md#Product-Relative-Positioning-table) +
+ +### Product relative positioning + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ---------------------------------------- | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------ | +| PPOS_01 | Product relative positioning is verified | As per Product Relative Positioning Table. See [Dataset specification](Dataset/README.md). | na | Product Relative Positioning, Product Span Positioning | -#### Imports -| **TI Code** | **Criteria Codes** | *COMMENT** | -| --------------------- | ------------------ | ------------------------------------------ | -| IFC4.3AbRV_E1a_ALIN06 | ALL CRITERIA | As outlined in the ALIN06 test instruction | +> **Acceptance criteria**: For the **Spatial relative positioning** capability, the validation procedure must verify that a Product of the requested type is positioned (via `IfcRelPositions`) exactly a given number of Positioning Elements of the requested type, no more and no less. +
PPOS_01 details: Product relative positioning is verified -#### General -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -|---------|-----------------------------------------------------|-----------------------------------------------|-------------| -| GENE_01 | All requested entities are present in the IFC model | per [Entities Table](Dataset/README.md#Entities-Table) | | + + +> - Given a set of products taken from the [Product Relative Positioning Table](Dataset/README.md#Product-Relative-Positioning-Table) +> - Then the Product, and optionally the Product Type, exists +> - And the Product must be positioned on exactly [Size] of the requested Positioning Element
-### Superelevation event +### Properties + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | -------------------------------------------------------- | ------------------------------------------------------------ | -------------------------- | --------------------------------------------------- | +| PSET_01 | The model does not contain unrequested property sets | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PNAM_01 | The property set does not contain unrequested properties | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PTEX_01 | Property values belong to a list of values | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_01 | Property values are not null and not empty | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | +| PVAL_02 | Requested property value types are found | As per Properties Table. See [Dataset specification](Dataset/README.md). | na | Property Sets for Objects & Property Sets for Types | + +> **Acceptance criteria**: For the **Properties for objects and object types** capability, the validation procedure must verify that both standard and custom property sets requested by the test case (including relative properties and values) are present in the IFC file. +> See below for further specification of each rule. + +
PSET_01: The model does not contain unrequested property sets + + + +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - Then the IfcEntity is associated at most to the property set with the PropertySet Name +>
+ +
PNAM_01: The property set does not contain unrequested properties + + + +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - Then the property set has at most the properties with the Property Name +>
+ +
PTEX_01: Property values belong to a list of values + + + +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - Then the property value is part of the List Of Values +>
+ +
PVAL_01: Property values are not null and not empty + + + +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - Then the property value is not null +> - And the property value is not empty +>
+ +
PVAL_02: Requested property value types are found + + + +> - Given a set of properties taken from the [Properties Table](Dataset/README.md#Properties-Table) +> - When the IfcEntity, and optionally the Type, exists +> - And the IfcEntity is associated to a property set with the PropertySet Name +> - And the property set has a property with the Property Name +> - And the property value is not null +> - Then the property type is equal to the Property Value Type +>
+ +### Product placement + +| **RULE ID** | **CRITERIA** | **VALUE [examples]** | **ENTITY (if applicable)** | **CT (if applicable)** | +| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------- | ------------------------------ | +| PPLA_01 | Placement of products is verified | As per Product Placement Table. See [Dataset specification](Dataset/README.md). | | Product Placement subtemplates | +| PPLA_02 | For a product that has ObjectPlacement as IfcLinearPlacement, the CartesianPosition of IfcLinearPlacement shall be available | depends on cases | | Product Linear Placement | + +> **Acceptance criteria**: For the **Product Placement** capability, the validation procedure must verify that a Product of the requested type (and optionally a requested name) has the requested Object Placement, and optionally the Object Placement has PlacementRelTo reference to the Object Placement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name. + +
PPLA_01 details: Placement of products is verified + -
Click to expand -| **ID** | **CRITERIA** | **VALUE** | **COMMENT** | -| ------- | ------------------------------------------------------------ | ---------------------------------------------- | ----------- | -| ALSE_01 | Superelevation events contained in file | 12 | | -| ALSE_02 | Each superelevation event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | -| ALSE_03 | Each superelevation event has a Pset_Superelevation attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -| ALSE_04 | Each superelevation event is associated to the IfcAlignment using IfcRelPositions relationship | | | -| ALSE_05 | Width events contained in file | 8 | | -| ALSE_06 | Each width event has a linear placement at the specified location | See [Dataset description](./Dataset/README.md) | | -| ALSE_07 | Each width event has a Pset_Width attached with the correct property values assigned | See [Dataset description](./Dataset/README.md) | | -| ALSE_08 | Each width event is associated to the IfcAlignment using IfcRelPositions relationship | | | +> - Given a set of products taken from the [Product Geometric Representation Table](Dataset/README.md#Product-Geometric-Representation-Table) +> - Then the Product with Product Type and Product Name, exists +> - And the Product must have Object Placement, and the Object Placement has PlacementRelTo reference to the ObjectPlacement of Relative Placement Product with requested Relative Placement Product Type and Relative Placement Product Name.
From c92273dc0013e28fce65ada7c35f8ce2ea564d77 Mon Sep 17 00:00:00 2001 From: larswik Date: Mon, 4 Apr 2022 08:28:45 +0200 Subject: [PATCH 13/13] Fixed some links --- E1a-ARSE/ALSE01/README.md | 6 +++--- E1a-ARSE/ALSE02/README.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/E1a-ARSE/ALSE01/README.md b/E1a-ARSE/ALSE01/README.md index d65a551..4e0831f 100644 --- a/E1a-ARSE/ALSE01/README.md +++ b/E1a-ARSE/ALSE01/README.md @@ -91,9 +91,9 @@ This test case utilises the dataset collected in the Dataset folder and summaris | Filename | Type (format) | Description | | ------------------------------------------------------------ | ------------- | -------------------------------------------- | -| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | csv | Alignment parameters for horizontal segments | -| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | csv | Alignment parameters for vertical segments | -| [LandXML](./TOI-M14334-0000A.xml) | xml | LandXML representation of the alignment | +| [HorizontalAlignmentParameters](Dataset/HorizontalAlignmentParameters.csv) | csv | Alignment parameters for horizontal segments | +| [VerticalAlignmentParameters](Dataset/VerticalAlignmentParameters.csv) | csv | Alignment parameters for vertical segments | +| [LandXML](Dataset/TOI-M14334-0000A.xml) | xml | LandXML representation of the alignment | ## Test Case Imports diff --git a/E1a-ARSE/ALSE02/README.md b/E1a-ARSE/ALSE02/README.md index 632d09e..9056ead 100644 --- a/E1a-ARSE/ALSE02/README.md +++ b/E1a-ARSE/ALSE02/README.md @@ -93,9 +93,9 @@ This test case utilises the dataset collected in the Dataset folder and summaris | Filename | Type (format) | Description | | ------------------------------------------------------------ | --------------------------------------------- | ----------- | -| [HorizontalAlignmentParameters](./HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | | -| [VerticalAlignmentParameters](./VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | | -| [LandXML](./TOI-M14334-0000A.xml) | LandXML-file representing the alignment | | +| [HorizontalAlignmentParameters](Dataset/HorizontalAlignmentParameters.csv) | Parameters for the horizontal segments as csv | | +| [VerticalAlignmentParameters](Dataset/VerticalAlignmentParameters.csv) | Parameters for the vertical segments as csv | | +| [LandXML](Dataset/TOI-M14334-0000A.xml) | LandXML-file representing the alignment | | ## Test Case Imports