diff --git a/CHANGELOG.md b/CHANGELOG.md
index 193fa3f..3ed063b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,28 @@ TODO:
- Create top classes `Subject` and `Relation` to be generalized by all DFC subjects and relations.
- Rename IQuantity to IQuantitativeValue (**Breaking change**).
+## [4.0.0] - 2026-06-10
+
+This major version implements the ontology version 2 changes. It introduces several breaking changes in the generated code.
+
+### Added
+
+- `SuppliedProduct:constructor` variants parameter
+- `TechnicalProduct:constructor` variants parameter
+
+### Changed
+
+- Domain : isVariantOf, DefinedProduct -> Variant (**BREAKING CHANGE**)
+- Constraint 1:1 for Stock:availabilityDate (**BREAKING CHANGE**)
+- Constraint 1:1 for PaymentMethod:paymentMethodProvider (**BREAKING CHANGE**)
+- Constraint 1:1 for PaymentMethod:paymentMethodType (**BREAKING CHANGE**)
+- Domain : beginDate, (AsPlannedLocalTransformation | AsRealizedTransformation | SaleSession | Shipment | Shipping option) -> (AsPlannedTransformation | AsRealizedTransformation | Catalog | SaleSession | Shipment | Shipping option)
+- Domain : endDate, (AsPlannedLocalTransformation | AsRealizedTransformation | SaleSession | Shipment | Shipping option) -> (AsPlannedTransformation | AsRealizedTransformation | Catalog | SaleSession | Shipment | Shipping option)
+
+### Removed
+
+- The `Enterprise` class has been replaced by `Organization` (**BREAKING CHANGE**).
+
## [3.5.0] - 2026-06-15
### Added
@@ -464,7 +486,8 @@ Classes:
- sale.uml
- skos.uml
-[unreleased]: https://github.com/datafoodconsortium/data-model-uml/compare/v3.5.0...HEAD
+[unreleased]: https://github.com/datafoodconsortium/data-model-uml/compare/v4.0.0...HEAD
+[4.0.0]: https://github.com/datafoodconsortium/data-model-uml/compare/v3.5.0...v4.0.0
[3.5.0]: https://github.com/datafoodconsortium/data-model-uml/compare/v3.4.0...v3.5.0
[3.4.0]: https://github.com/datafoodconsortium/data-model-uml/compare/v3.3.0...v3.4.0
[3.3.0]: https://github.com/datafoodconsortium/data-model-uml/compare/v3.2.1...v3.3.0
diff --git a/README.md b/README.md
index f970d34..4eb8425 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ To edit these `.uml` files you can use Eclipse with the `Eclipse Modeling Tools`
## Overview
The model is divided into several files containing concepts:
- - agent.uml: `Agent`, `Enterprise`, `Person` and `CustomerCategory`.
+ - agent.uml: `Agent`, `Organization`, `Person` and `CustomerCategory`.
- common.uml: `Address`, `QuantitativeValue`, measures and facets objects.
- connector.uml: the main package that contains all the others.
- product.uml: `DefinedProduct` and `SuppliedProduct`.
diff --git a/SUPPORTED.md b/SUPPORTED.md
index 5fc9d7c..6cd4176 100644
--- a/SUPPORTED.md
+++ b/SUPPORTED.md
@@ -91,6 +91,11 @@ Here is a list of the DFC features that the model currently supports.
- [x] offeredThrough
- [x] listedIn
- [ ] managedBy
+- `Certification`
+ - [x] certiferReference
+ - [x] certificationScore
+ - [x] certifies
+ - [x] operatorId
- `Coordination`
- [ ] date
- [ ] coordinates
@@ -101,6 +106,7 @@ Here is a list of the DFC features that the model currently supports.
- [x] description
- [ ] date
- [ ] definedBy
+ - [x] hasMember
- `DeliveryOption`
- [x] name
- [x] description
@@ -115,52 +121,29 @@ Here is a list of the DFC features that the model currently supports.
- [x] endDate
- [x] fee
- [x] selectedBy
-- `Enterprise`
- - [ ] name
- - [x] description
- - [ ] date
- - [x] hasAddress
- - [x] hasPhoneNumber
- - [x] hasSocialMedia
- - [x] logo
- - [ ] orders
- - [ ] requests
- - [ ] owns
- - [x] email
- - [x] websitePage
- - [x] VATnumber
- - [x] defines
- - [x] hasMainContact
- - [x] supplies
- - [x] manages
- - [x] proposes
- - [ ] transforms
- - [x] maintains
- - [ ] affiliates
- - [ ] coordinatedBy
- `FunctionalProduct`
- - [x] name
- - [x] description
+ - [ ] name
+ - [ ] description
- [ ] date
- - [x] hasType
- - [x] hasQuantity
- - [x] alcoholPercentage
- - [x] lifetime
- - [x] hasClaim
- - [x] usageOrStorageConditions
- - [x] hasAllergenCharacteristic
- - [x] hasNutrientCharacteristic
- - [x] hasPhysicalCharacteristic
- - [x] hasGeographicalOrigin
- - [x] hasCertifications
- - [x] hasNatureOrigin
- - [x] hasPartOrigin
+ - [ ] hasType
+ - [ ] hasQuantity
+ - [ ] alcoholPercentage
+ - [ ] lifetime
+ - [ ] hasClaim
+ - [ ] usageOrStorageConditions
+ - [ ] hasAllergenCharacteristic
+ - [ ] hasNutrientCharacteristic
+ - [ ] hasPhysicalCharacteristic
+ - [ ] hasGeographicalOrigin
+ - [ ] hasCertifications
+ - [ ] hasNatureOrigin
+ - [ ] hasPartOrigin
- [ ] hasBrand
- [ ] hasProcess
- - [x] hasVariant
- - [x] isVariantOf
- - [x] image
- - [x] referencedBy
+ - [ ] hasVariant
+ - [ ] isVariantOf
+ - [ ] image
+ - [ ] referencedBy
- [ ] consumedBy
- [ ] referenceOf
- [ ] requestedBy
@@ -214,6 +197,32 @@ Here is a list of the DFC features that the model currently supports.
- [x] hasPrice
- [x] concerns
- [x] partOf
+- `Organization`
+ - [ ] name
+ - [x] description
+ - [ ] date
+ - [x] hasAddress
+ - [x] hasPhoneNumber
+ - [x] hasSocialMedia
+ - [x] hasTemplateSaleSession
+ - [x] isCertifiedBy
+ - [x] isMemberOf
+ - [x] logo
+ - [ ] orders
+ - [ ] requests
+ - [ ] owns
+ - [x] email
+ - [x] websitePage
+ - [x] VATnumber
+ - [x] defines
+ - [x] hasMainContact
+ - [x] supplies
+ - [x] manages
+ - [x] proposes
+ - [ ] transforms
+ - [x] maintains
+ - [ ] affiliates
+ - [ ] coordinatedBy
- `PaymentMethod`
- [x] name
- [x] description
@@ -229,6 +238,7 @@ Here is a list of the DFC features that the model currently supports.
- [x] hasAddress
- [x] hasPhoneNumber
- [x] hasSocialMedia
+ - [x] isMemberOf
- [x] logo
- [ ] orders
- [ ] requests
@@ -254,6 +264,7 @@ Here is a list of the DFC features that the model currently supports.
- [ ] date
- [x] hosts
- [x] hasAddress
+ - [x] hasGeoJsonFeature
- [x] hasPhoneNumber
- [x] hasMainContact
- `PhysicalProduct`
@@ -297,6 +308,11 @@ Here is a list of the DFC features that the model currently supports.
- [x] bestBeforeDate
- [x] expirationDate
- [x] productionDate
+- `ProductOption`
+ - [x] name
+ - [x] description
+ - [x] date
+ - [x] hasReferenceProductOptionValue
- `QuantitativeValue`
- [x] hasUnit
- [x] value
@@ -307,10 +323,16 @@ Here is a list of the DFC features that the model currently supports.
- [x] isStoredIn
- [x] identifies
- [x] constitutes
+- `Route`
+ - [x] description
+ - [x] hasGeoJsonFeature
+ - [x] hasStep
+ - [x] name
- `SaleSession`
- [ ] date
- [x] beginDate
- [x] endDate
+ - [x] hostedAt
- [x] quantity
- [x] lists
- `Shipment`
@@ -326,6 +348,17 @@ Here is a list of the DFC features that the model currently supports.
- [ ] description
- [ ] date
- [x] URL
+- `Step`
+ - [x] arrivalDate
+ - [ ] date
+ - [x] delivery
+ - [x] description
+ - [x] duration
+ - [x] isStepOf
+ - [x] name
+ - [x] pickUp
+ - [ ] usedInRoute
+ - [ ] useVehicle
- `SuppliedProduct`
- [x] name
- [x] description
@@ -343,6 +376,7 @@ Here is a list of the DFC features that the model currently supports.
- [x] hasCertifications
- [x] hasNatureOrigin
- [x] hasPartOrigin
+ - [x] hasReferenceProductOption
- [ ] hasBrand
- [ ] hasProcess
- [x] hasVariant
@@ -369,6 +403,7 @@ Here is a list of the DFC features that the model currently supports.
- [x] hasCertifications
- [x] hasNatureOrigin
- [x] hasPartOrigin
+ - [x] hasReferenceProductOption
- [ ] hasBrand
- [ ] hasProcess
- [x] hasVariant
@@ -376,9 +411,12 @@ Here is a list of the DFC features that the model currently supports.
- [x] image
- [x] referencedBy
- [ ] consumedBy
- - [ ] referenceOf
+ - [x] referenceOf
- [ ] satisfies
- [ ] industrializedBy
+- `TemplateSaleSession`
+ - [x] isTemplateSaleSessionOf
+ - [x] hostedAt
- `TheoreticalStock`
- [ ] date
- [x] availabilityDate
@@ -394,6 +432,35 @@ Here is a list of the DFC features that the model currently supports.
- [ ] from
- [ ] to
- [ ] concerns
+- `Variant`
+ - [x] name
+ - [x] description
+ - [ ] date
+ - [x] hasType
+ - [x] hasQuantity
+ - [x] alcoholPercentage
+ - [x] lifetime
+ - [x] hasClaim
+ - [x] usageOrStorageConditions
+ - [x] hasAllergenCharacteristic
+ - [x] hasNutrientCharacteristic
+ - [x] hasPhysicalCharacteristic
+ - [x] hasGeographicalOrigin
+ - [x] hasCertifications
+ - [x] hasNatureOrigin
+ - [x] hasPartOrigin
+ - [x] hasReferenceProductOption
+ - [x] hasVariant
+ - [x] hasVariantCaracteristic (with typo)
+ - [x] isVariantOf
+ - [x] image
+ - [x] referencedBy
+- `VariantCharacteristic`
+ - [x] name
+ - [x] description
+ - [ ] date
+ - [x] hasProductOption
+ - [x] hasProductOptionValue
- `Vehicle`
- [ ] name
- [ ] description
@@ -410,4 +477,4 @@ Here is a list of the DFC features that the model currently supports.
- [ ] date
- [x] hosts
- [x] URL
- - [ ] websitePage
\ No newline at end of file
+ - [ ] websitePage
diff --git a/agent.uml b/agent.uml
index 3edf38e..df1044d 100644
--- a/agent.uml
+++ b/agent.uml
@@ -248,21 +248,21 @@
-
+
-
+
-
+
-
+
-
+
@@ -329,6 +329,7 @@
+
@@ -345,48 +346,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -399,6 +380,7 @@
+
@@ -406,6 +388,28 @@
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -435,6 +439,7 @@
+
@@ -462,6 +467,10 @@
+
+
+
+
@@ -494,143 +503,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
+
@@ -638,7 +524,7 @@
-
+
@@ -659,7 +545,7 @@
-
+
@@ -667,16 +553,25 @@
+
+
+
+
+
+
+
+
+
@@ -685,6 +580,10 @@
+
+
+
+
@@ -723,6 +622,433 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The localization to add like an `Address`.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -765,21 +1091,20 @@
-
-
+
-
-
+
+
-
-
+
+
@@ -799,51 +1124,51 @@
-
+
-
-
+
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
@@ -869,9 +1194,9 @@
-
-
-
+
+
+
@@ -892,24 +1217,145 @@
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -923,11 +1369,11 @@
-
-
-
+
+
+
diff --git a/common.uml b/common.uml
index c1b75c8..6c6a73f 100644
--- a/common.uml
+++ b/common.uml
@@ -109,25 +109,22 @@
+
-
-
+
+
-
-
+
+
-
-
-
+
-
-
-
+
@@ -513,6 +510,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -682,9 +824,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/product.uml b/product.uml
index 91bb6d8..2778a0d 100644
--- a/product.uml
+++ b/product.uml
@@ -193,6 +193,7 @@
+
@@ -266,23 +267,23 @@
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
@@ -367,6 +368,7 @@
+
@@ -444,9 +446,9 @@
-
-
-
+
+
+
@@ -531,9 +533,9 @@
-
-
-
+
+
+
@@ -558,6 +560,8 @@
+
+
@@ -660,6 +664,14 @@
+
+
+
+
+
+
+
+
@@ -706,6 +718,9 @@
+
+
+
@@ -781,6 +796,14 @@
+
+
+
+
+
+
+
+
@@ -1941,6 +1964,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2175,13 +2591,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -2439,6 +2855,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2450,6 +3023,9 @@
+
+
+
diff --git a/sale.uml b/sale.uml
index fd46de5..5be0967 100644
--- a/sale.uml
+++ b/sale.uml
@@ -103,11 +103,11 @@
-
+
-
+
@@ -132,7 +132,7 @@
-
+
@@ -145,14 +145,14 @@
-
+
-
+
@@ -237,9 +237,14 @@
+
+
+
+
+
@@ -361,7 +366,13 @@
+
+
+
+
+
+
@@ -627,11 +638,17 @@
+
+
+
+
-
+
+
-
+
+
@@ -640,13 +657,19 @@
+
+
+
+
-
+
+
-
+
+
@@ -655,6 +678,10 @@
+
+
+
+
@@ -765,23 +792,34 @@
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
+
@@ -789,6 +827,14 @@
+
+
+
+
+
+
+
+
@@ -878,6 +924,7 @@
+
@@ -978,6 +1025,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1001,7 +1072,7 @@
-
+
@@ -1389,7 +1460,7 @@
-
+
@@ -1435,7 +1506,7 @@
-
+
@@ -1551,6 +1622,7 @@
+
@@ -1589,6 +1661,10 @@
+
+
+
+
@@ -1631,6 +1707,10 @@
+
+
+
+
@@ -1648,12 +1728,12 @@
-
+
-
+
@@ -1672,12 +1752,12 @@
-
+
-
+
@@ -1888,6 +1968,539 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2487,6 +3100,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2494,6 +3274,15 @@
+
+
+
+
+
+
+
+
+