diff --git a/.acimov/publish.py b/.acimov/publish.py index 57135c6..1dbebb3 100644 --- a/.acimov/publish.py +++ b/.acimov/publish.py @@ -6,7 +6,7 @@ import subprocess import rdflib from rdflib import Graph, URIRef, Literal, BNode -from rdflib.namespace import RDF, OWL, DCTERMS, XSD, RDFS +from rdflib.namespace import RDF, OWL, DCTERMS, XSD, RDFS, SKOS import pylode import mistune import yaml, json @@ -163,7 +163,15 @@ def process_turtle_file(input_file_path:str, dest_path:str): definedTerms = [] for definedTerm in g.subjects(RDFS.isDefinedBy, ontology): localName = str(definedTerm)[len(base):] - f.write(f""" {localName}: aec3po:{localName}\n""") + if (definedTerm, RDF.type, OWL.ObjectProperty) in g: + f.write(f""" {localName}: {{'@id': aec3po:{localName}, '@type': '@id'}}\n""") + for alias in g.objects(definedTerm, SKOS.hiddenLabel): + f.write(f""" {alias}: {{'@id': aec3po:{localName}, '@type': '@id'}}\n""") + else: + f.write(f""" {localName}: aec3po:{localName}\n""") + for alias in g.objects(definedTerm, SKOS.hiddenLabel): + f.write(f""" {alias}: aec3po:{localName}\n""") + def process(input_file_path): diff --git a/README.md b/README.md index a6e47c2..e90e028 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ AEC3PO has been developed in order to capture all aspects of building compliance - building codes, regulations, and standards - compliance and permitting processes and documentation -- compliance and permitting actors +- compliance and permitting actorsACC The ontology requirements are essentially derived from the rule formalisation methodology that aims to semantise regulations and provide an open format for machine-readable rules. @@ -85,31 +85,39 @@ Below is an overview of each module and its sub-components: - Properties: _hasFormat_, _forDocument_, _etc_. 5. **Module 5: CheckMethod**: This module describes pieces of information that operationalize check statements in documents. - - Classes: _CheckMethod_, _BooleanCheckMethod_, _ComponentCheckMethod_, _SHACLCheckMethod_, _ACCORDCheckMethod_, _FuncionCheckMethod_, etc. + - Classes: _CheckMethod_, _BooleanCheckMethod_, _ComponentCheckMethod_, _SHACLCheckMethod_, _CompositeCheckMethod_, _FuncionCheckMethod_, etc. - Properties: _hasUnit_, _hasTarget_, _operationalizes_, _operationalizedBy_, _etc_. 6. **Module 6: FeatureOfInterest**: This module describes objects whose conformance against checks is verified, and those aspects of a feature of interest that are intrinsic to and cannot exist without the feature of interest, that must be checked for conformance. - Classes: _FeatureOfInterest_, _Property_, _PropertyKind_, _QuantityKind_ - Properties: _hasProperty_, _hasQuantityKind_, _hasPropertyKind_, _hasDesign_, _hasContext_, _etc_. -7. **CheckingAct**: This AEC3PO module describes the act of checking some entities for something and generating a conformance report. +7. **CheckingAct**: This AEC3PO module describes the act of checking some entities for something and generating a compliance verification report. - Classes: _CheckingAct_, _ProcessVerifier_, _etc_. - Properties: _usedMethod_, _madeBy_, _hasReport_, _checks_, _etc_. -8. **ConformanceReport**: This AEC3PO module describes results of some `aec3po:ProcesVerifier` checking some entity via a `aec3po:CheckingAct`. Entities may be validated or repudiated. - - Classes: _ConformanceReport_, _result_, _ValidationResult_,_Severity_, _etc_. - - Properties: _conforms_, _focus_, _resultMessage_, _resultSeverity_, _Info_, _Violation_, _Severity_,_etc._ +8. **Compliance Verification Report**: This AEC3PO module describes results of some `aec3po:ProcesVerifier` checking some entity via a `aec3po:CheckingAct`. Entities may be validated or repudiated. + - Classes: _ComplianceVerificationReport_, _result_, _ValidationResult_,_Severity_, _etc_. + - Properties: _conforms_, _focus_, _resultMessage_, _resultSeverity_,_etc._ + +9. **Design**: This AEC3PO module describes descriptions of some design of features of interest, in terms of structure, geometry, and function. + - Classes: _Design_, _PropertyDesign_. + - Properties: _hasDesign_. + +10. **Legal Verifier**: This AEC3PO module defines state and private verifiers. + - Classes: _LegalVerifier_, _PrivateVerifier_, _StateVerifier_. + - Properties: _hasDesign_. -9. **Model**: This AEC3PO module describes BIM models. +11. **Model**: This AEC3PO module describes BIM models. - Classes: _Model_, _Phase_, _Element_, _Classification_, _etc_. - Properties: _name_, _description_, _location_, _locationCoverage_, _material_, _hasBuildingPhase_, _hasDimensions_, _hasElementPhase_, _hasClassification_, _etc._ -10. **Table**: This AEC3PO module describes tables as representations of data in rows and columns. Tables are described by captions. +12. **Table**: This AEC3PO module describes tables as representations of data in rows and columns. Tables are described by captions. - Classes: _Container_, _Table_, _Column_, _Row_, _Cell_. - Properties: _contains_, _isContainedIn_, _caption_. -Each module encompasses classes that represent specific entities or concepts in the construction domain. For example, the **_Document_** module deals with different types of statements, evidence, and related properties. The **_CheckMethod_** module focuses on different types of check methods, such as procedural, declarative, boolean, component, SHACL and ACCORD checks. -Similarly, the **_Design_** module includes classes representing design-related concepts, while the **_FeatureOfInterest_** module deals with features like building components and spaces. The **_CheckingAct_** module represents different verifier roles, their associated methods, and the **_ConformanceReport_** stores the outcomes of the check, their validation results and the corresponding messages. +Each module encompasses classes that represent specific entities or concepts in the construction domain. For example, the **_Document_** module deals with different types of statements, evidence, and related properties. The **_CheckMethod_** module focuses on different types of check methods, such as procedural, declarative, boolean, component, SHACL and composite checks. +Similarly, the **_Design_** module includes classes representing design-related concepts, while the **_FeatureOfInterest_** module deals with features like building components and spaces. The **_CheckingAct_** module represents different verifier roles, their associated methods, and the **_ComplianceVerificationReport_** stores the outcomes of the check, their validation results and the corresponding messages. ### AEC3PO Alignments AEC3PO contains five modules, each of them imports an external ontology, and specifies a set of alignment axioms to connect the terms of the imported ontologies with each other. The figure below illustrates the alignment of the AEC3PO ontology with various other ontologies, showcasing how different domains and concepts interconnect for a comprehensive representation of compliance and permitting in the AEC industry. diff --git a/examples/Finland/FI-accessibility-AEC3PO.ttl b/examples/Finland/FI-accessibility-AEC3PO.ttl index 29e5d49..f400c55 100644 --- a/examples/Finland/FI-accessibility-AEC3PO.ttl +++ b/examples/Finland/FI-accessibility-AEC3PO.ttl @@ -385,7 +385,7 @@ ex:ramp_numericalCheckMethod_Width aec3po:forDesign ex:design_rampWidth . ex:ramp_numericalCheckMethod_LandingLength aec3po:forDesign ex:design_rampPropertyLandingLength . ex:ramp_CheckMethod_Gradient aec3po:forDesign ex:design_rampPropertyGradient . -# Conduct the checking act and generate a conformance report. +# Conduct the checking act and generate a compliance verification report. ex:ramp_checkingAct a aec3po:CheckingAct , owl:NamedIndividual . # Link the checkingAct to all the CheckMethods using usedMethod property @@ -396,9 +396,9 @@ ex:ramp_checkingAct aec3po:usedMethod ex:ramp_numericalCheckMethod_LandingLength , ex:ramp_CheckMethod_Gradient . -# Instantiate the conformance report -ex:ramp_ConformanceReport a aec3po:ConformanceReport , owl:NamedIndividual ; +# Instantiate the compliance verification report +ex:ramp_ComplianceVerificationReport a aec3po:ComplianceVerification , owl:NamedIndividual ; aec3po:conforms true . -# Link the checkingAct to the conformance report using hasReport property -ex:ramp_checkingAct aec3po:hasReport ex:ramp_ConformanceReport . +# Link the checkingAct to the compliance verification report using hasReport property +ex:ramp_checkingAct aec3po:hasReport ex:ramp_ComplianceVerificationReport . diff --git a/examples/Finland/FI3-CO2_Emission-AEC3PO.ttl b/examples/Finland/FI3-CO2_Emission-AEC3PO.ttl index f4be225..d7dd54a 100644 --- a/examples/Finland/FI3-CO2_Emission-AEC3PO.ttl +++ b/examples/Finland/FI3-CO2_Emission-AEC3PO.ttl @@ -3,7 +3,7 @@ @prefix dct: . @prefix dul: . @prefix eli: . -@prefix owl: . +@prefix owl: . @prefix quantitykind: . @prefix rdf: . @prefix rdfs: . @@ -1019,7 +1019,7 @@ ex:FI3_categoryCheckMethod_CarbonAssessmentResult aec3po:forDesign ex:FI3_buildi ex:FI3_categoryCheckMethod_CarbonFootprintResult aec3po:forDesign ex:FI3_building_CarbonFootprintResultPropertyDesign . -# Conduct the checking act and generate a conformance report. +# Conduct the checking act and generate a compliance verification report. ex:FI3_CO2Emission_checkingAct a aec3po:CheckingAct . # Link the checkingAct to all the CheckMethods using usedMethod property @@ -1029,9 +1029,9 @@ ex:FI3_CO2Emission_checkingAct aec3po:usedMethod ex:FI3_categoryCheckMethod_CarbonAssessmentResult , ex:FI3_categoryCheckMethod_CarbonFootprintResult . -# Instantiate the conformance report -ex:FI3_CO2Emission_ConformanceReport a aec3po:ConformanceReport ; +# Instantiate the compliance verification report +ex:FI3_CO2Emission_ComplianceVerificationReport a aec3po:ComplianceVerificationReport ; aec3po:conforms false . ## Building Site results are not provided. -# Link the checkingAct to the conformance report using hasReport property -ex:FI3_CO2Emission_checkingAct aec3po:hasReport ex:FI3_CO2Emission_ConformanceReport . +# Link the checkingAct to the compliance verification report using hasReport property +ex:FI3_CO2Emission_checkingAct aec3po:hasReport ex:FI3_CO2Emission_ComplianceVerificationReport . diff --git a/examples/Spain/Spanish_Example.ttl b/examples/Spain/Spanish_Example.ttl index a535ce9..96c93e4 100644 --- a/examples/Spain/Spanish_Example.ttl +++ b/examples/Spain/Spanish_Example.ttl @@ -165,18 +165,18 @@ ex:cantiliver_numericalCheckMethod_partywall_distance aec3po:forDesign ex:design ex:cultural-center a aec3po:aec3po:BuildingUsage-curltural ; aec3po:forBuildingUsage ex:design_streeBaseOffset , ex:design_othersBaseOffset , ex:design_partywall_distance . -# Conduct the checking act and generate a conformance report. +# Conduct the checking act and generate a compliance verification report. ex:cantiliver_checkingAct a aec3po:CheckingAct . # Link the checkingAct to all the CheckMethods using usedMethod property ex:cantiliver_checkingAct aec3po:usedMethod ex:cantiliver_numericalCheckMethod_streetBaseOffset , ex:cantiliver_numericalCheckMethod_otherBaseOffset , ex:cantiliver_numericalCheckMethod_partywall_distance . -# Instantiate the conformance report -ex:cantiliver_ConformanceReport a aec3po:ConformanceReport ; +# Instantiate the ompliance verification report +ex:cantiliver_ComplianceVerificationReport a aec3po:ComplianceVerificationReport ; aec3po:conforms true . -# Link the checkingAct to the conformance report using hasReport property -ex:cantiliver_checkingAct aec3po:hasReport ex:cantiliver_ConformanceReport . +# Link the checkingAct to the compliance verification report using hasReport property +ex:cantiliver_checkingAct aec3po:hasReport ex:cantiliver_ComplianceVerificationReport . diff --git a/examples/UK/UK-Timber Structure.ttl b/examples/UK/UK-Timber Structure.ttl index a7e3324..0a4fdaa 100644 --- a/examples/UK/UK-Timber Structure.ttl +++ b/examples/UK/UK-Timber Structure.ttl @@ -151,15 +151,15 @@ ex:UK_Eurocode5_Timber_design aec3po:hasProperty # Link the timber design to the respective CheckMethod using forDesign property ex:UK_Eurocode5_NumericalCheckMethod_Timber_CompressionParallel aec3po:forDesign ex:UK_Eurocode5_Timber_design . -# Conduct the checking act and generate a conformance report. +# Conduct the checking act and generate a compliance verification report. ex:UK_Eurocode5_Timber_checkingAct a aec3po:CheckingAct . # Link the checkingAct to all the CheckMethod using usedMethod property ex:UK_Eurocode5_Timber_checkingAct aec3po:usedMethod ex:UK_Eurocode5_NumericalCheckMethod_Timber_CompressionParallel . -# Instantiate the conformance report -ex:UK_Eurocode5_Timber_ConformanceReport a aec3po:ConformanceReport ; +# Instantiate the compliance verification report +ex:UK_Eurocode5_Timber_ComplianceVerificationReport a aec3po:ComplianceVerificationReport ; aec3po:conforms true . -# Link the checkingAct to the conformance report using hasReport property -ex:UK_Eurocode5_Timber_checkingAct aec3po:hasReport ex:UK_Eurocode5_Timber_ConformanceReport . +# Link the checkingAct to the compliance verification report using hasReport property +ex:UK_Eurocode5_Timber_checkingAct aec3po:hasReport ex:UK_Eurocode5_Timber_ComplianceVerificationReport . diff --git a/src/aec3po.drawio b/src/aec3po.drawio index ff2a93d..ad26eb3 100644 --- a/src/aec3po.drawio +++ b/src/aec3po.drawio @@ -1 +1,8790 @@ -7V1bd5u6Ev4t5yFrdT84izv4Mdde07R127R96ZJBtmkweANO4vz6I3EzuoCxDdjpVtferRFCIGm+0cxoNHOiXsyfXodgMbsJHOidKJLzdKJeniiKbBk6+geXrPIS2UpLpqHrZGXrgpH7DLNCKStdug6MiIpxEHixuyAL7cD3oR0TZSAMg0ey2iTwyLcuwBQyBSMbeGzpnevEs7TUUsx1+RvoTmf5m2VjmN6Zg7xy1pNoBpzgsVSkXp2oF2EQxOmv+dMF9PDo5eOSPnddcbf4sBD6cZMH/gT3vmu+/wj9T9Mfi9Hc/XkjDdS0lQfgLbMOZx8br/IRmIbBcsG+LHv/Awxj+MSbCjDOW1j3FtEJDOYwDleoXv6UYmQPZjRiStmIPa4HXDGysll5sK2sEGSTPC0aX48D+pENxRbDIm8eFjQqvgNxI9KJev44c2M4WgAb331EWEBls3iOXnopo5+TwI8z2h7iS9fzLgIvCNG1H/io+NwB0SxpDVdnR7t28ugpYIc6G1ml6cAaXQ2swgysrS6CE/VsAkG8DOHvYPLb9WMYwihmhhz1MibHNYrD4B7mQ+nACVh6MX+AgedOfXTpwQmugQfNRTA/y4rnruPg93BnkpxrYqqomW195kpTJcucqVJamCn/7fWHQH6Uf4RPg0fv/O7hqwS4EDCSwR2jH1P8A8Bk8rJi9JbiTl4WLYBPzKHx7zJI2gD2/TQZ1oGdztMZ/iDfjV3gpQ1kNYsmkxqzOMaM/wz3Tbl+VF3nNAin6Kc3dtDf+Rddlz4q/Qbyu5gPHYd0Ca87Y25fBoP4cTAOQgeGA/Qy2/Wng6f0c6XkYYlXY8XWiEPgRx6IIe/x9U3Ok2EQoztseXQPH3mNJeWcdiK88OUPyMyNFXsDDW5enypdsaWub88Gz0EwZ25Fdhh43iDywWKAQO3asQ+jdKKlRRg8uXM3XpXqo7F0fUwpdDteAs7BMwwD5qa/nEPU9GDiThGrqbydzVD14yGwYzfwmQohnlfXj2DMvxVMJujeIIN0MvaLp4pKJVScKOpkMqHrlSqE0/ErfYgnRkWVJUUzkqeu8QtO9X8q3pDLIykNpP+jV0mSxHx4s6rb1Eo/H3PR+tpjbxkygzkOMf9bE0jpFpI9EFAidgKmIVhFqVhH3ZktIYGf0i3XxxyaJTK8VPHqR3DhAqbUCYMFMTjlriA+mNznd7S4W93jok5l14sa1WNQVKkZjKJOxagU9wOMn5iFf1GhcvzWNeiBzJhniegfQPhqMCiXZ4S+/dLi2GlvuIwfzLEE4I+jVKSLF8Xqs1iGXrb6ODb6C0kt8yi5RcktaO4XMJFE4ioJoyTTrL//dhl7LhZeknIHhPe3+dBeSqeSjhfYVPSQVVbCaS6yV8qLA1lrKDFqXYkhrMCYrfHq2XUqMt5O3lYJjFvJ6Hjt+Rp8CtxkuHDJAv9OOqSfo/+kUzRaF9KJjpq+SK4V6lqlrjXqWqeuDerapK4t6npIXuMr9E3ktUpd69S1SV0PS+3j/slU/2SqfzLVP5nqn0z1T6b6J1P9k6n+ra9lqn8y1T+Z6p9M9U9e9w/9RyoFeE0FhpWsNViEL5VLUrYGkcoFunNhqnq2Ou0OrULrNUmt15JZqMlDDtTUrqA2rIbaJ8SUUddWAmECYVsgTAKqBLZB2PmlKXWGMJOzmHWGsN9fX4eTi3e/h+Mv49HTp+//GnfxQGPwA50pHGWXQRjPgmmA1JqrdSlle1jX+RAEiwxFf2AcrzIjBFjGAYk6NILh6kciMhj55c/yvcunrPH0alVcOWfYgIoux15g36dF1y7u8mXtHEXBMrRhnW0hG+AYhFMY1wxYtvrjUaqd8hAizdh9IG227ZtEpGoOOcIy8xyPhGCRgkU2Z5ETaNg2jxU65nDcFivMJfaMEao8UUPpU9SQtc0G9hL/sT0QRa5dydf0LflaxistrDSFdnYlMcw2Qvwpzr8heEi0x6QsY4LJm57cuPQR6Opn/h70e/0J+CL/gt0Zp8LyzTpRbiPfLBGAzpn/vKwxe83ekPKv9UqsyuRKrEk62Uba8eyx8h4W1ZKR7x4WDZHtpAPDtJPQaNHtPchWrzSKO+5DbjR49fb6H1QpWxhmIFpLzzXG5lIDDBTYjY9c17ch1n1PavYzkGLsPmd7cRKznmCW5IEx9M4LqwPBnSa55ZGm2HpY770pOEA8V8m3UvckP4rWUvNnJ+RhVpJH5UYIZcbFy2FqDE3+yUxaWH4eTMDc9TKr2hvoPUA836X7qSkosc8ruVk5vZG+FN/xg3CeGcHSew8gdAH6F1FNYkyJNtSzwaKqymPGOPBNLTfiekg0XW96sE8G4WIG/KxJJS3D1D7ICBwXFzSe33MRj/ZjyoKe3Ek2SSao/fxNydZfyugSV4DSax6D0CE/bG2Nf4Tjexc1h9tMV2au1Z5vasTzqOh6OoXlH/+UvtSBdhACvI0wiGeufb+27ZYtlUzd0lzW1quwfEoTLwAxPTiOGy08sMqrJzZHRfqfO18gdQP4MddoWki+iMF9XqJabrx6j2amcudt6+X90Mt0WcDQlO1EDHT1CYYu4iiYcvdc9YcNV33ZaLjsZ4wR98tSiQU1lzB6EgyQKEq8fkit503lAlkekg3pzQSDdUM9rA5GtfZIAkgokEKBbG7FdkzAVSDHmqFLWlu2NIOW4A9trVasajghgdtG6+l3xIEnLmLAAlECUY0R5ejQcjQeoixlrBpGSyYZhbTJKCYHUFqvgKrZ/7mYQfv+BsazQCxPAkxb2TcnSoV90xgbektgKlajHEwqB0xqn2CS5RrHhTlw4Dm7l9rvXhBhM5U2KDSEipUpjmUVi9ovWit06x2jshaW//5JaGRtG0vVptbSXJRob5speRSNBliVKmScrlIbMoYkFcuaTtFh2mK7WgnHFP/q5Eo5sawTS8V2zIJslxF0KtaAHki3LRLcEQGVZNhc2ZYtw9pPba5WUlmjZ079OTHlRL6taq1Rkr+Sywk92dzVGkaaiCWuPz2zxbarEEu2kfEBtCZcscSwLTjmb3lsLZboqk5AZzhkpRKeM2VnUonBHvcqsORGtwuYWo+Bh5iwcyAJpTDUDncw1BIcPW2hqVRTZTjevKQ0klC47i1NDbs5yz2wgKIYJD2rEnXikKqvmtJe9RXd7F4AMlj5p8BEQCAiOrjYszuNrmFVlr3lZrCSSVjpG2C1u8SucABRB5wtNjpM1dhP9spplLbb0GdQG29ZaFRD9JnLCrlqW9BqMrnDo1r1ICw6xK9PgrDP/RODtU+xgFwjAWHXP2EO4VJeqMMhgRTmdCe5CUliMW2fVkGS64Ybl7vrFP1sz6m035hk7EbrTEMG1VDHOkS+rpCOGenJHo8455NcBY/4YGFyzCmCt5PiJnkk6BCuOlWO1O258BQoa8OFR1VMsxVKHFBcl9Jlu2M6Zs2m7W2Y6J8MCQjNU2ieB3b4lalF3JSyJsqqJ2/l6Ez1NFnfuLIH0Wg5zsAkvZJPTz/+I1AlUFWDKjIGx1FATD00xIY6Kw/3aLDZYk9nS1t+28ePzG72e1jVi9YVG6p4rQkvNS4yF4Fvw0UsNvYFx91RjullY58ykmimwjJZq1cme5gznC+PyVpNbRkvnMnm/eQyWazpT5CuH0PBaAWjfUGMVlc40my/jFY9BKPtlmkeKy/c2FARnGSD5XfrzQnqPaZRs9nQGsdW6sTi+QLNui8EY8Gvj5tfk15Zhq5y+PWwT37N2Y3rTzDexqP00IKxdtyLwbY8XJfJ96hDwm11c32S53P6IdfV72iNqPEKuYS2B8JkasQqIVaJo14lKKiZw1P9wHK9VbMRlJzbc5Yh8ASwBLBeELD03LP/cLCqsfWD6Cv2ShE4EjjadUf1EDqNPuSAyuxVp2H9xgSoBKheFqioHTTp8CKgnB/XPf5NtNJxQe2k5AW/KQLQgW0MOec8wNHX/RhujRRz49phEMHwwUVdF2xXsN0ji+hhUkEIipMiB4voIeden4LPdsVnG5/gOzI+WxPrZRRM4kc0FoLHCh579DzWODiPVWt0xBmIvkAcRDMJrSngJODUFE5nwwvt6pwHpy4DFMj5AdxNEQo6S/ck519UDkcDPK8UUHsShJcwKqID53dfFef1yODb5boidZRAZxvoPJCPh9XQx0MzO0Mnq58zyIlxpPBpZS7dEmySRINJIs1LbGo9VGxTTVJPST6oSQrHSGbq7FDTAYtbHGpWRB+9vx3h97swBKE9Y+OzbEqQnClINdmRNx9S3pwfuZU5oTNG6Kyg11XonLpMRFx/kMBe4sw/o+XYcR/cCFO0WE7EcnJkywkdXIcXI7PXbGhsMKo0ESvOmAJCViQ7lmg7RSgdrWTgahhKhzJv7Rx1sP/MaXznPFkzSA2CdjJsHCLE0inyHJ5SUR7aO8hTF1OoMs6gyPAmmPtOzL2X0+iqRsBH5YYTN3rk7pxcWQWesAqfCU2H4PJVgc36yYjJHy2J5euzwfvV+/twcaVat1Pp61fz/Frti6/TKQPzWMR9MeO6VJsf4BR4IreDYMbbM+N+dilUmWTGA94uhdIrMxYbwR3zb6WhXJ4ztv43gmu/uzKlseCzgs8eLZ81KT7Ly2vc1W4wH04HObT+X+Kz2gvlszXnCT+F7oPgtILTviBOy7Md98poiy6Us9ZsyrW8U7peOu9tkRunItEt9j6I7oMoiSA8smdwDtP3ZIVZ4LXsjsC6wHrD4yP5Fq0HJzHLB6CMOIHJ4wNDw1RBS3xgUES0rLMzGpyN8u44QY0G8xHMoXOVZNYVSBNIa76qHgpN2sHRxG7KMshpz8Gnp2HOvZZqnIZ559/a8O3hDzKrDFCuPS4n2cw+mQU2O+1wHYXaGHyFcq3i6Oj9OvLURPQ/X7qe4/rTbxGYwq+rhZDPxKpx/KuGxj0E0euqUXNscxSHSxs7Wws8CTy9CDzp0qHxxMl5WrjG/V68BN84whJtNrVEm4Q/xgZLdOXUbzQiN92ry2XfpmnmcMYjc0gKm4Pso/b1s9MpPzuTor3GaeeohpijPBtDxLaadIlP/jVpSi/hxPVdrFQIfzyxqOywqPSVHYZkA5rOOVmXByLuZ02p2YFK/Fs9N4oFpgSmjhdTlI+rwcNUVxmX+Jiq8XG9QEiaBuFK+I4LXB05rui1ihe4pt+1qsZGR+dUEdAS0Ho50OKFtOwKWlc+GJzrk9vB7bvPb2eO+vgWBoMaKfDMd0RCWwGk4wSSSZotTFPuT/bjAqlG9BP5bAWotgTVEeSzpRBmScqBEcYKgY7DbouLpGCbTMdUHhg1d4fYNikY3ZDV0Aa9bUIZ5j3ZB7eV8IVLbDJLbbWkFsEpVjrKdFYiAdsDUeTaJBnZy/ChIEOSKNGjGfVZOW2Vrks7JMrJFr76u5wLqCTTjbsquTFk47bKsCHdlxgPj+/kZfvCgzrpWuz+bbuzolB5jYqQNe0fmeVTMBvA4C+lYHV/Cn4dv7O/vnd+3a1uviyWHy/ubuEwF+mOhTAt61Qq/cld84oMnSZ5ezeqlfXat6h5pNiWk4bRirGRSRE1n1lXf/81YflmOnCevy9vwK/LZ/DHefdOz7duawG1RkwmGBDuj43CYh0LvdFygrUjIyxColY11B4jjEbRwr66u/r85fWP75/lX9PnR5kzbeujVjCcu3Hs+tNRDKbCHUkoZS/AHUnjhH3sKpQLF1AHTXnfe2ZP3CLiEy4aO+xU3Vym4I5d63HfK3iuScqeW3v1FL7y5DLbUd5n6nP1Tat/bfW9F3/uxLH2PQYFnptRGGYHdxk6FZKM2+AI5La3ZrL8QOGIBfTUtcYOGsSA7WtkKJFYZ4O29joyDTSwvkaGPHWhy/3RTHwj/bR+OK/Hzp3lPH/W3ujzCUcmOz09ZQbnr4lfq0gkZi2T3ffr6tQLN2wYO/553PTUsdh1UGfT8APJYeWsNIqWeFjWJSGcQDQuNozKpXaAhkbI00Ke3mKTI5oBJ5HC2NNnWKJO/rAy+PX1lXFx0Q5I84z1RfIDjtuLyQGpZnUEUoUBKRNjWiBMIKwGYUcHqmFDTLWx8HFtutvZ8LhW7xdmxtNJZckcGmQTzS3DZEOGRTXUnhmPO3MsN6ybuRdvfaUM3GZ+SHzraTM3NNTxtDUIIPA3T9tQb2na6IY6nrYav8CPSPIIsS4l/G2FKLKr8fww/rY6L6BKV/62dXvKPFy9Wc6Bf4XvIEQ5AlcCVy8HVxx7Vr+4auKu9feKGdrOe/P0gYTu9ua502b+x6ZtSMIm99Hafto2NNTxtDXY8vmbp023Wpo2uqGOp62JR+BfNG2UA5NhyjtOG33QmG6ovWm7ls9ew9uPYKZ9CdSfH+WfwfRdnQPT1b9LIIJfCGnxuKVFCj+WxpEWuzpKwkXUf8yWSB+gMJR2GCHTUHuM8G7wXfrxeQAW0fmDIf16On/7TeX64KRBtx33IQ+4XT529wX+u3RD6FyCGORVx2ERunsdsbv0PEMJ+wTaDGHkPoNx0pTEsFOMSA+MoXdeRCIn04CiP1tBUJHswPehHWevPMm8OiqhSfkWmvqwmriaIo47dSYLsKM7qLXe7Vl7ANblhyvCk206rXBadlqszwxaOddlz0J+huhsKsvnbd7dLtw/v958fZIeJf/+rapYltn4WMOeXGdAnX8xrGYWbKahIdmOTq8KLfkgUvlw89jLVV9l8ntX7UhZW39vn8U/wb3vmu8/Qv/T9MdiNHd/3kgcIz6DQsx1Fh0yGFmhstbzIsRzfZ9k+rzULryIOywNXDm3kpongZ8fbqJ30zOmQ3i6sKNdO3mbxawi1+6pQfxhpSz+QKvqqVr+o3U07qyNLlupkRKTBOX/fe/6nCO9m9wAHTgBS49OgkB5AmZpEvbwAyTPZJNz3vqclkVjmTdpFZO9z6Q96p9+fL4M5S9f5k9nYXyzvHj4Uqd8jmbATjcBbyBam539UCR0z/+a7tlHlntNHZ6Svs+mxnqFy0Mpr9W2/skVwWpA9fZyJHAkcHRsOBoU23m57s9z5evKiMMFEc+IU2sNuHrAbu0INsISsNESYNCmndamzWKGtc+UmGl2y0aqeJXaP9yg9ldOUnsqfOZU17UKT1uH6ONA7Zn76nrJ9X8HMciMe2LXQ6yYR7liKhIdo07hCZ49rpisPSg9rzUJwjmIkxNcBphjdPjjaMFbAQWuBK6ODVfcyHS94qrGqXMtcwokCSQdG5JoDxnLPDCSODEexQolcPXCcWXKh8bVdp5/f8Gxx4Esk57NFp2+tanTC9tSno6tfTX48/WH77+kc+18cvU5unwLo5H2XGcsPg8CDwJfHMQSLHF3lniIAyMGjyN2dWCEiyqe9biaI754F0Dq8LY+VHfjhrK1oaH2mOHw29VkcPMk/blbfPsxGrxe/PaklqdtHYe2JRNv2XLLNfHmNH4kdKExGsCOq6RGeWkZdNjkjumigU/PIeniSKfb3PUki0Z5dTENdTzd7R73+3unm5wlBpTNp1vpC92v4cf568G/N8rZG391DZfXg2/veeHK8ETieGWku/ciOOJkyA08jXcIcro7EeYKjnQqaYa+H8VVZwGu9sOtJDeDSposN3T5ZRqyzA0NdUy3rLSyzlsX+IlRy7dhBdkKtU2obZVqmwOgNeGqbYZtwfF2ziKVrIHBj8zxnbM4C1gr5/x5iKrxCbBTRGWRKJ8iHKhynBpIBLYEtlrFFuVVvsG/f3/c8XxWebhTWsDd3fV1fP5javy5XplXn8817Rn8rHUDv/vyQXiBC6zthLWJZUO++XFs6ThlUlde4HkYxH68wLmYOnJb1rEosXlsk3z7pWEOAo4SK9U3tLMygC7DIIjL1RFjm90EDsQ1/g8=7V1bc6O4Ev41qTrnIS6QQMBj4lwmJzOTbC6T3fMyhUG22cHgxWRy+fXL1TYtOQYiMHFIpiaWjNtI/bXU3epuDvBw9nwemPPpN9+m7gGS7OcDfHKAkCxhPfoT97ykPUQx0o5J4NjZRauOW+eV5p/Meh8dmy4KF4a+74bOvNhp+Z5HrbDQZwaB/1S8bOy7xW+dmxPKdNxapsv2Pjh2OE17daSt+r9QZzLNv1km2fhmZn5xNpLF1LT9p7UufHqAh4Hvh+mr2fOQuvHk5fOSfu5sw7vLGwuoF5b5wA05HtvS5dS4uLiZuucXVHm1DzMqv033MRuwSS089w/w0W1ohnQWE09vP3zJ5yTwHz2bxmSlA3z8NHVCejs3rfjdpwgFUd80nLlRS45eLjxzfudf+05yl3HPPH6dsEU9jv5Jg+gmhtKBGpEeJm0E2hi0FdBWQZuAtgbaOmgbxXbciu6p2MagrYK2BtrGGv14fDIYnwzGJ4PxyWB8MhifDMYng/HJYHyrtgzGJ4PxyWB8MhifvBpf9A8fjx3XHfquHyTgwOPxGFlWzPgw8H/RtXdsMiIqid5hkZvDkAYhfV7rypB8Tv0ZDYOX6JL8XTn7SLasqEq2zjythFTOJW+6JqA46zOzdWGyJL0SnehFJj0VJAltlqSvdGK6P2jgjB0a9NLUS1PnpEnSC9Kk5FJSkCbSojThzdJ04luP/bbUC9IWQVqqW9Kb0rNJ3iaBaTsRygrv2QZpaP9SDHnH+5fCSBwjYNSzj2KVOmpZrrlYOFZRpooCGE1O8PJn3Ii4ljX/Wn/v5LnQeslatrmYJkTkt6Z64T8GFt2+H4dmMKHh9pWG2gU7gGXcGmNUDl/yvoC6Zuj8LloPPGZl35CuQCtcaKiIC6IVSaTjzj61ru0DQlgBAFPAvaQTwxBKsLMcdn04aZXgNHJ969fbYLLPnPgOKkCkMyxNlkaeslqVqRxSst4qW/XtbF08OTPX9Giy7JpBmNn0ErvYSpIqnZ7F/T5YaOMf3rItSfLJ8VDMEmwAAZE4Og/hwAJJApbgv7/+dX50/8v5ORl/vzBN6jpn1ltKz3Xgz6ORvfRKT6/0VLEeLItvPWCCDWyLESTMWA88XaYh64ErSKwusxSkM2qGjwG9Gl94IQ3oojcjeomqb0aMdFVROTvbWLfoJjOCmpHtIciMQAYGZgQqt4k1JnrqxzIjOqIjYg0oIwSQKK32Q0I5IMTrh1z2k/3RD5GmAQVRYWVL52xrstKUcBnbFcRLx7NP6MKZeP3G1m9s5VVFKtsq1XgyZRANm4L2K1VSizKFOMc2+QlqK/tVfs7M9TT3ctTL0fsURMMgsq5yxI3Ykk35CqKtatgQZJupCCiIOkfgMGpT4NiQg15D3K4hqnrR8aeoNX2IDCHdaFVDlNH+qIiKrgAVkfV8LN2F7aiI6I39bOh7Yz+YmZ5Fb+jcD3rfR7+1VVARbZPqY643kVg6HY3FyJQmFXcsVSHsjqWqLe5YiN2x1s0uiy4WfXBPL1CdFah8S3jL5mrVPZ/v+Nw9akqtX443ObL63akXpvqG11KCNskcx/DSqEmoJErqoOFlcKSuTc88Yo+XO214rUf4vLkvr4f4vLnedMSU06DVQNR6ppyhAozhdk051EDMWB7mI380A13TERPmQ+rxlUNKJu1ytsQx3kcx0gk4I8UGR//RWg30QewxWVEB+kbDqW/3ClCvANVWgHQ0woQT4WyrVLcVvgJkaLakaYIUIFwUO5K7vHYWmoD2KHgRGnUEcdRLHW/e7cTPLns4fYCIG2YzVJhm8s+jn79xuEim+Ci6QJbmz8n05O9HrybxXzs2BiXTdSZemvmR0o3uMyWdXsUwc8sCaS7macbo2HmOF1U2eo6SDbk3mjGSBBkKejF4Dqns7sSTEtIUH3Pxa4KP0TfktEbBim3EnMWs8UaL+M9+sllWUcf4zDuHEyWvjrUIJ3srskgmHeMl61ATyUt3fzmpSx3jZKNOGoIKbpqBJC07NrhqktY1DZxoeDTIOjdOfEdM8TjiomDxQaWndL6NrgyMyAxc/sCIwMRkaNEux9U8Lp6faLKbsRHx6zb7JHVH/tPpqqP7XJaxGC5j4EbDSCrF1GiWzZe1yzLzeuMNM9+jFAp2RC9SimIRUy0gextiug+Kom8VqzUDqRlCJUEhjG8lIqn3iW+aqCUbEpLb9YnjaomvH51vSCmaNVgx6vGNIdRcYiufbzznkCAV+uzq6CxXoene6dBYgdYQ64pqV4du0BO1sKZ0ZvrBZH/5qcjQJtoxP5UGPVJ/3J/c7a11q2hKxzjZoM/p3nP210msYugl3jUnG/Q4OWPr6uHr3vKSSKhjvOT5nATx0p98Voc/IR1TixSe70gQm8ee/1n5rOGuqUs8j0864Yu56b1P/f3lLzZpvinxD81Ko2v6Es8JJOpc59H9rCKr53ztDJ+rOY36Ux+uex1EUtQ/DwCEFBgH2LArSikRp1TzkMcPwqk/8T3TXT/pWQMLKgRyy1twshESW0Oy85WtK9jRBJ0l6QZwP7d8bKDwfF/1sdN5mWf4VvO4hyHUMt9Uno9rf/mmYAXwraa8MYRaPu5ReR6t/eWbmie4v/e4hyHU8nFPHo33WfhGBO1vDKG25a1afNRH59syrPu9+xtDqO39TWzgUtf5pkmSGL4xhNrm2+cKH9JErZMMobbXyc8VPqTL0PZH9fjGEIL30jTfek+QgF0TKpe1d01AaFnfqS00VLPmy6DhrYjfpCN6I/akOpbpFtGjRyrEGnoO9xY+OqiQxuy5pRcTrA+IsooeB6g0tIFqrP20Ci1SzeFQZaGRC4tMXRdiV8BgADDAjby8Z7BIiKB2Ld68ovTu1pKusxoTBFk9WMv9gGt/aVWQqT9QrpZD1fQCVQe3n5UCF5Ve8HovHdL512vLOL37PrSPz7zrK87zQxsF1bMT/plfGL1OtRgja61WmLhR2ILYZWlVsWYfqoMyj+Coa7cgXNykVBXUphG3SnHxhITjiQsZdYeQ2Xo21q0nkjElu5Wa1YoUUBBCyWMIxUNrdv9/84pezh7ufh+f//xu385cqYGlaqkbV4PJEpIDQyugUpPI27iMGlCZ/lDLlKLigSKvNF6Qp6lKaKCv6ct5JdDKTuqctUu6uCmkHf+UH+yLmwCF3/86DxaOO/7ypQGkZYiRi3B5GyxvbaSCVqpche0IvPQ8xHHJ95pLlU70gb5muYFKNkgfKJv1QkHqnA5OpFVNbLYoRjPp/k/t6eX28n58fhZKLy9HZZD7USrk6MXpQ5zyQzovyEvVgHpeJ8qLO7k83SaNqpvKhTleC9UDQXtVo/+QvCH67+h0iK+vNkb1LbvjOyt2zst8r0w2fG/l8MVthEbLEQVWHHtoxU93iz546k0cj0abpZekanl29P/Q9yLIPVqh43tJczZ3nbgaetzI6s5GL6+8MILk5GVtGkacqdkwY/ONsZERcMPiKl8UgMwJvy5FWddiblrxveETddW68+dRR1zwnV8Kzo9kZewmW8zUsW3qlfDqv7kolK91A8ok5A9SWhM9BXFqUxkC4iv5kseePtrvrS8sYokqGm0yp0RsU4XO+dPEHholFZt2PE1yrh50Zp7YAM284tGOpwqBmhi7nyr2BCMtKLTridI6Jnucsmtp2viOJwor2xGV+03bmShWR02Tsnc+VUp+NNAZTLEaZ5rvvOuJAgWwdz9RbFRZmk6844laPii+MxPFKlJ5tu6Op4rkzxXrzFSxkVP+7hUEom0XvTymt51pYnXOJJl0x/OkYQgntjBgu3BiA4NuL69udz9RBtQPdj1RHOX8cfcKp66qHZsn8bFFny/STNeLywSqHR0CCcFcU3FHFlw0cGvs9GioiAYEmFg7cAwSgo+DbxoNfRTq+9GggXCi2mhgCLWNhmr5yD0auEwEiRz10QAJtY2GXm94PxoIFrQ2MIRaRkPFvOUeDdx4FU2QFskQalmLrJgN3aOBH3BXPD6tvTYwhNpeG1CPhveHzIG6yLXRwBBqGw39ky3ejwasgaKCkET5eieAUG5jtIWGavngPRr4Uf+CdgqGUNtrQ7Us8x4NPCbCCvq10cAQahsN1XLXezTwmCiDAJfaaGAItY2G3hcpAA1y8fQJwXJL5R+LAwipRrtoKOGLbD1KAxyBLp/NusZbjDnMlaFMCjvc4xYOWMWa14zFxhtisb/SSSSByUVV4skB2z5AeHQNaBQVKy1/qtT6Y3oNDjQUAciYHL+ePSzUB+cP/PTPEP+4U2alMjyaSNgdKAer1KU8jWlL9mXFtLpyOU3pQpd2cXOa8qeffLTkJ1XFgzgcY5lbVwCeqtQ0FJkHTROt1IJfOXsdLKKqLjbdaXJpPIWHf+u34/m3X2cPF1+8q+v2UkK1rTmh5aRIKy1F1aXhhhyPbelyalxc3Ezd8wuqvNr5DH00YViml+So1eomLWsw969cPnxV+Mvwe7BY+P9+pD9/fHsdydY/o8P/kaPvP4avFeH/0WuEwRoJ9euDQ0LN1XY7dX7/+OOLf/r7jqpnxs1sNHz6cljCkVpJBYY1+NX4N+qfBKbt0ELq5ij5ZVSz6B2S/IjRmmDZLU1lE8i4+rQApYk74zxnpaDHMCQfkrJ0zOTSVfqhNPPtR5fGT9z4z8x04pzFZA+ii//CBzWUfT5DfSU7eRRE1HTpOKaQ1/U5yrpnkQ6dbFY8sAnXqwkGerXCRlNy1xIR4ZRciJTwYL5HKGnywxM8TLCBbVGCV/T8aRobHd6q4DX4/JOygufP43Rh010JX/Qqmvzoux9HvThm4ljcETXC4gbpDUU3c4FTIkjpXXvkTp4Up+f74q7EMSfcoDyuHjgk+eOVgMZjjoYcZ/LHGuVzSINUJn02Wf9TSJwCVCQDsRKntSlxcglrovVsJyhAiJ2ldgUINS1Ap71oANHQ85z4BkQjagZ+zIWVfReNavrNt2l8xb8=7VhRc6M2EP41POZGAoPxY0yS63Ryc9fmOtc8dWQQoEYgKuSzya+vBJJBwnacXKZ9OQ8PfKtl2UXfrr6xFyTV/iNHTfmJZZh6Psj2XnDj+T5c+L6nLpB1gyWOwsFQcJJpp9HwQJ6xNgJt3ZIMt5ajYIwK0tjGlNU1ToVlQ5yzne2WM2q/tUEFnhkeUkTn1m8kE6Wuwl+O9l8wKUrzZhithpUKGWddSVuijO0mpuDWCxLOmBjuqn2Cqfp45rsMz92dWD0kxnEtLnng+bdtHPzVoTaskmTzq7iHj1+vdJTviG51wQinQcO84Dopcfr0CYuSZboA0Zmvwtm2zrAKDLxgvSuJwA8NStXqTvJA2kpRUYmgvG1r1HxlXxjp81SWRt33GxOu5QU+yDQS4IUydNJj38GBgxcODh0cOXjp4NjBKxsrJHOyceDg0MFLB68m8VV90KkPOvVBpz7o1Aed+qBTH3Tqg059I4ZOfdCpDzr1Qac+ONYnr2CdE0oTRhnvyRHkee6nqdp4wdkTnqxk0SYKI7ky564hIuYC7ycmzeWPmFVY8E666NUF0H2lB4sfaLwb2xSG2lZOWtT4IT0ZikPosXnkje6fV/RScLqXWIM5EoTViMoJ1876CWdy6GjIuGy5Qrnejta13XGjzz1jje6qv7EQnZ6gaCuY04UCcXGtJqJ6h0zS2O4INT64zoxHSlHbknQwTl32RPypsvgAYoMfe7yKlxrf7HWaPegMqOVHHh6NDXw8vFiC8bEedZMgXzAncpMw17aT/GnZlqf45YGnPvhZlnFM5YZ9t0+BY5TRjw7j7cDOwHfYGTusGxLVT02nthPINweoCRQ5geQWFljMAsl9RN3ETY/ckwkvoH804Yvzsv3lzZDB2E6Hj/v2DlvMOmzeSSOFZdPVdg/krBaTcQTkb7WyKK7IlaG27DtNt4RuqXjWREP8aRMBgyfPIJ5qBGZ9fJLHL/JzMuWODTlj+1EaRw6N4RtpPAu0vIzG78Wc8AhzIlQppUJFvxFTxHYy+DWp5WnU4s/5YbGwXDVyCCiPL2GzTs78olYjVW6ymmBrdcgRKTGv9UJFsmwY8rglz2hDDVlsnXRznMFAeVK0wXSN0qeiJ5h9GsvfUa6d7TH3ID5IbJ2fpWKPHdBXUlL4y+W78PDKGaexHYDleYt/lDdMrO7A7+v7JM7/AM83YQf+uX1RHz8IJHCFNWl/SuSfEvlCiYyjExJ5udqAs0fD5RIZwgsk8iL6DyWyf7qdSPvZEsnZuvs/ZPKob+Opuj2rbN9JWr9dDLxuur5WGs6kHjgvDRcu7cAZafjy21wyXio5Zmm4gd4sOSQc/7YZ3Mc/v4LbfwE=7Vptc6M2EP41zLQfkrHAEPzRduwk0+YuvaSXy33pCFhACUYuyLGdX18JhAGBHSdnp3czZDyxdtHbSs+z2hXWjPFsdZHgeXhNPYg0veetNONc03VkWyb/Epp1rrH6g1wRJMSTlUrFLXkBqexJ7YJ4kNYqMkojRuZ1pUvjGFxW0+Ekoct6NZ9G9VHnOICG4tbFUVN7TzwW5lpbPyv1l0CCsBgZWdK+GS4qS0vSEHt0WVEZE80YJ5SyvDRbjSESi1esS95uuuXpZmIJxGyfBolxRR6BLiZ3F/G5M325fbm5OZG9PONoIQ3G4BpzqhnDcQju0zWwkHrSALYuViWhi9gD0XFPM0bLkDC4nWNXPF1yHHBdyGYRlxAvpjGe39EbSrJ5Cs1clLONMUf80zvl0xj3NJN3Pc5kXZENRe4rsqnIliKfKbKtyIO6LCQ+p7psKLKpyGeKPKj0L+xDin1IsQ8p9iHFPqTYhxT7kGIfUuwrZaTYhxT7kGIfUuxDpX38Y4x8EkVjGtEkA4fh+77uumLjWUKfoPLEsxzLtPiTJnYLIELCYFVRSSxfAJ0BS9a8inx6UngI6ViQJeVlSVNkSF1YoWihw9IzBJuuS/LwguTPG7hkvMIlEgdD7qE6LnVc2ptLHgbbb+WS5drg+Ifhkm7vwSXrSFya9v99vPo0GV974b316NyeX5vfd51LNwl1IU2/QkJ8AknHp45Pb+CTCbbXb+OTrTuGdaCzSR/U+dRGp/5H0klv0Ok3baJrtq3Zxu9iwIJcM+zBaN3gFHg8KJYiTXhIGNAYR5NSO6qzrqzzJ6VzyaxHYGwtI3y8YLTORL7ayfqbaM93V4oP1WfnK9l5Lq2llDKcsKGI9LkipjEUuikRayRbeEUNN8JpStxcKatkQ6wIq4zOpYeiMS+XYwuhGHorUlK6SNzCHe0IFfg0A2Cvu0Gx/Dtxl0CEGXmu5yxtKMqa8rXA60oF6fJqyUPuEjeINqw6ok+QqWA1t1k2U+C6men7g6u9EbxIwduStXwAimtopHy2ChrRfmg8KLJ2JX6vIquItnunvX6Ry78NbSWWiirU91OooWQ7IrfA0dTrAYtt7YQvUhyyUp8X8hm8F7LzNfv7fricfuv9dc9WdnAJTnCCmkHMp893vP1QE6m6FfH9GTk8gLECUcJZjzGeQSq+gcNQ3HXwfw6ICxSSuos0hSas0xDPIXN+DF6PeBzsPgUZzj8vWESEv8z0Hk6ePvNWhGXu7bQn/KBPYyaxjvTGqemBjxeZFdVTVvpgD6dhxqSdeN7/TFUcEGoeqYOWExUd4kht391+i0fi1tacUYjTLzDnfuQX9kXFyViUH2qn5JFOxp/eL211NX1TdTXmaa/yp0xry7HZ6NbSlW7PzHpHucc/xPnbDnezAffydoPGPk1mOHZhC9q7nKzLyf7nO44GgdqSMvtISVk7paztlHJzSqV5sLBKeT9Dh9IIcNyRqyPXQcmFIxLEXBeBz44RuKnEG+xJPP1oxLN3EE/c1LcE2b9evFa/yUBdvPah8Zp6YaL3FTQfLl77o/9s+svvV72HR/2fNL46X3+9brkveQeki8xSvlwXnuPHYR5hB6LRJgttJpNbk0yejE7xjERiSS8hegZGXKxkqUjKzeYV6jgRdZ9qxNmbBO0ORb7zr966tO7Kwe/zfswPDhogoUvew/AuJHHQxRldnLEjzjhAZKC+dtz4yI947biLnx0hOkL8DITY3F4egRBcLH97lkcd5S/4jMl/dZE9D4IwEIZ/TXdoFXVG1MWJwbmhJ21SuKbUgP56IS1igyYdrs+9901Y3gxny428ogBNaCIGwo6E0nRDKZleIp6e7LOtB7VVIogWUKoXBJgE+lACukjoELVTJoYVti1ULmLcWuxj2R11XNXwGlagrLhe05sSToYp6G7hF1C1nCun2cF7Gj6LwySd5AL7L8QKwnKL6LzVDDnoaXnzXnzc6Y/305iF1v0IGI0l9/iJLsSKNw==dZE9D4IwEIZ/TXdoFXVG1MWJwbmhJ21SuKbUgP56IS1igyYdrs+9901Y3gxny428ogBNaCIGwo6E0nRDKZleIp6e7LOtB7VVIogWUKoXBJgE+lACukjoELVTJoYVti1ULmLcWuxj2R11XNXwGlagrLhe05sSToYp6G7hF1C1nCun2cF7Gj6LwySd5AL7L8QKwnKL6LzVDDnoaXnzXnzc6Y/305iF1v0IGI0l9/iJLsSKNw==7Vptb+I4EP41SHcfuorjEMhHoGV7Uve6p9722vtmEgfSmph1DIX99WcnDokdCOGltCdRITUzGTse+3lm7ElacDBdfmVoNvlGA0xathUsW/C6ZdvAgl3xT2pWmcZ1vEwxZlGgjArFQ/QL5y2Vdh4FONEMOaWERzNd6dM4xj7XdIgx+qabhZToT52hMa4oHnxEqtp/ooBPMm3X7hT6WxyNJ/mTgav8m6LcWHmSTFBA30oqeNOCA0Ypz66mywEmcvLyecnaDbfcXQ+M4Zg3aXBPn68Gw+Qvvnj0nyLKv/3o/Xulekn4KncYB8J/JVLGJ3RMY0RuCm2f0XkcYNmrJaTC5o7SmVACoXzBnK/UYqI5p0I14VOi7uI46MmlEeKIUP81Uw0jQlSfeBnxJ3n9BSjpuXTnelkWVkqoTkfuG50zH9fMga1ghdgY87q5UgspZ6j0BDXbXzGdYs5WwoBhgni00BGEFBDHa7t10+80EmO2LUUaCNysiaIM7Fh6F9lIVatixcVFaRiFKsXBHphQ87FAZK5cQNiHM7GIvQeOOJ5i9dwybHRQvE0ijh9mKJ33NxEZdAAkMZr9TTMHMs1MXqfutfviJxfeHlittuh6kMq2IUNDdgy5bciuIXcMuWvIni5LSYxJl6Ehtw25Y8heqX/pHzD8A4Z/wPAPGP4Bwz9g+AcM/4DhXyEDwz9g+AcM/4DhHyj8Ez/YDwWXB5RQloIDhiF2fV8uPGf0FZfuBB1vZNXSd4EZx8tavuW8cSyNN05O2LcicIOcS5NS0IbWdopq5NqXSXA7k66pP5dEepiPgmgRJRGNL5y6cOqzccq2bT0XgU6VU93uGTnVrnAqkNu+ntgmxjwKIyxmodeSeyGXCH1/xMTVWF4puySZS07V2TAcYjFpvtx41tn5VMyk3EBemHth7nbmBiiZpGBIVzs/Bli13N3GdkSicSx0BIf8NBQHlpE2nQ1pcxPFzW3pySju7k6bF8ZdGFfDuCNJ9h6s2rQZPWvi7FRY9Rsi5HdZm0mT2QQl3xGrMusMBYFEnGh5XhKIaYxz3ZE1AbF8bPVUFp6LHqRYNEul42sJsGEtATYsJSg0Cex7QIHlyOpC2wCm7Xb0LjIfK9WFnR1BaHS0pUwh1hmtSmYq9G4dsKCOPmCvUzsuk3n72kO9jiYushEbrfPh0zBM8LvUYbpVwg41uv6Jl7Xnx3Mzl4qhGswFJeZqvBXBvBFzgc7c9oczt3EVcE1dBzr2SajriM6s8p9RJzyUyQ7sfunqXTUsOe7L5bZjxgy7PsaY9m2Nyx/HTW8XN4cRS/inyKc7WKnnU1DLysPZtT9rXAC9k7BGJCoD2wfSZP0mxwDjeyc82N0zge1r/1lIlYNk08EPJXfiSMcklGVFhgWhrM3kustp8HIa/L/WXyolVqdhidU+wUkxvru1H/s/X2betT96cR5vF12evxQu0bCaxIpXuHSGY51QIY15ae7kTsXzKi95tVURt1Q26zY8D6ZyqQ1ivpKsSgrduko701FpDfI0Ul6CXHdkilp/NLCOyEYXTVNUpSO7WYo6IIJvRI69ATkumsqASzK6lCUVxJP56DsTKGJ8dR+uLcaa/bggWwmFgmFch15OT1+stHwT0Jc8jHxEeurGNAqCbJOFk+gXGpEcMXrMv94M4zQ0EDTCpI/813GKMi1KyD/VtITNKv5qeWeGjvXXLWq4rfIHJJtCypWIlna+zTkUmwpCV0aLk6T/je7Dj9gq7/EtineGb1HchnHp2E9MbP3o6Ji5pPGeuLOlzHn6gPNjQZI/osVPm3jRwlnM+Gp4v+H7pTMgYl1VzCCxrk4cWpvYWXM4Eyps97DF3ImKSjlhC7x2o0KIxRdzmXnx3SG8+Q8=7VlLU+M4EP4te0jVcMiUZcd5HJMwDPNmii1mOVGKLSdaFMsrKyTh12/LlhxLdiAsYfYSippRd8tttfR19yfTCabLzUeBs8U3HhPW8b140wnOO74fjkL4Vym2pWLY14q5oHGpQjvFNX0kWulp7YrGJLcmSs6ZpJmtjHiakkhaOiwEX9vTEs7st2Z4ThqK6wizpvYXjeVCR+EPdvpLQucL82bUH5WWJTaTdST5Asd8XVMFHzrBVHAuy9FyMyVM7Z3Zl/K5iz3WamGCpPKQB67Q1Y/xBXmcieHNp812fPl3tuj6pZcHzFY6YEyiIOOdAKZiuRLkR/IplUSQXOow5NbsjeCrNCbKvdcJJusFleQ6w5GyrgEMoFvIJQMJwTBPcfYnv+K0WK3SZGpcHE84gV/vPYQ09TohuJ4Wsu/IgSP3HDl05L4jDxx56MgjW1YSrMmWA0cOHXngyKOafxUfcuJDTnzIiQ858SEnPuTEh5z4kBPfTkZOfMiJDznxISc+tIsPfoNJQhmbcsZFAY4gwf2hp3CR8FTW9F7xowAhBb8nNct0EISFpYlsDfYHIiTZ1FQa6R8JXxIptjDFWJEpILruDDwtr3dZjEZat6hlcKB1WBeOeeV7l1sw0On1glQL9qfaleAZhLY9Zdgpw16QYR4OPPySDJucD7w3y7Bw9H9nWK+RYY2EImk8VqwApIjhPKeRnUOwH2L7l8o3OBct3tZt5xudjKW0rSTDXYYgYRFpSdnsJM4lFtKsgcNaje6CsmoVGypriwDp1rwHxrslKMGsYO+R5nwlIvI8B4A1zIl+dPX1+ssa/XxEfiI/k/NsPPqOupq4kdhiTE2A1M4/bDl+oxOEYUkfbJ7Vhgn9hrKw1fAX2vjzw9D2UQauH6sTI8dTLxxYjroVso2ncmsangqQVoH/d9yGLbjtM9iuSUwfYDhXw3efLs4Uzy07xgLnu6ZRzp0JM9VoYDE1B41cgESXNvoxo/NUpQZRlA8UqhxQIMNjbVjSOFaPT4AP0kc8YwbjdqdRxYrhGWETHN3PC/zX61bx0wrZJ9PaLU0V6dfrsHh1W8nqQjH2DT9/JfwcrPEkyclrwdGadagBjoo2/FzhVFK5/ULT+EQdTtThJeQ8HuCojSLMev3Q6x2JIgQ9hyKg30gRWrOped81xTLPcGplUP+flbqaT6Jyc8aqZsxn7xRyYGj+Oyu2ylMUrJvgJWXbcuolYQ9E1c6aPS84gbIiP9vUDeVLlSXlYllwAmN7wIJCmnehAhf38fyZeRHO9k1Z6x1Wxp7mgR4jEmp9F8KPaDpvPslFtsCpdumXOtU5urpZKHXVL4wNClIBG2X0TKiFRQpwloB/86aUlFaARPGxpvaaNRexvbDKF8Qyu6fgTvksQdzVoLLmzaoG1HXOsaAL6gjrg7PaSmMScQEtgqdduaDRfUpyvTyaUknN/rhza2f55Lzacqx5CeNYupsT0zxjeGumMwoG3/uDLjMuJE5109eANQ2/6hNAFuxWUdGDEvR7+MHzXPmonHfHvCvxIOatubLhzbcWbz42Vw4O5MroQK6sKyWU9gGyWShqVMq3JNPB0K7U/Z5TgQ8l06g38N+PhrYz/zA+vXN2VFo1GEa/GPo+7NNvYXRzl/P8c9uHz9cxKFVgNf5HTr/VaRzjfFF4Q0fqrp5zZuGw2V1bQYP6R2ivrbva/MalS1BSfky+48kd3fc5uXkfsdlJTBK8KipXy+6aqwsjiXzq4tJ2jPZBW+fkHOubHFu/hRShlmNzs+hopKh5/6y3jptSXfTNGK5t46+wgwJq+OnGcbpx/I6PlU5qHyMH3W+XVYd6g4sJiLs/8pXta/eX0uDDvw==7VlNc6M4EP01PsaFwIA5xnYyc8hWTZV3N5vTlAwN1kRGlJC/5tevBMIgERynspnMVtkX+7XULVp6TxLtkTffHL5wXKz/YAnQkeskh5G3GLkucryp/FKWY20JJlFtyDhJdKfWsCQ/ofHU1i1JoDQ6CsaoIIVpjFmeQywMG+ac7c1uKaPmqAXOoGdYxpj2rY8kEevaOnXD1v4VSLZuRkaBzm+Dm846k3KNE7bvmLy7kTfnjIn61+YwB6omr5mX2u9+oPX0YBxycYnD4mb2+ISTwvuePd77Yn27/+v5RkcpxbFJmLNtnoDycUbejHGxZhnLMX1grJBGJI0/QIijXiq8FUya1mJDdSsciPhHuY8DjZ46LYuDjlyBYwNywY8dJwWfum2tW4UaP4pXQGc4fs6qx54zyrhsSiDFWypnZVYKzp6hb09ZLu7xhlAV6SvQHQgSY92gU0NI47475MmtIpc0xhSXJYlr4z2hzTTUEwtJj17teqETC6R8gG1Apia7cKBYkJ3phzWPs1O/k+s3RmRE12k0F6KxH3U+dYBjoyt/3G0MQzN+ybY8Bh2yy6beKI4ZN3DNQALzDEQvkPzRSbY1VWR9A3H1aDtMt3qiMMReIbl4mzK+YPF2A3rkLrvVejwo0picxZRkuVpM6QNyqWc74IoQ9FY3bEiSqBgzDiX5iVdVPMXAQiVYpezPRv5igEGDVOtTS+clx4fD6IUdTo/d7itdRg1rvE8zHd0ZO16EjLW88Wr4TiL6ZtCJ6c/StIQPoYY3TI0HyDD9GzhJiVzm81vffk0ELAscq9a9PN1MypQ5Lv5kdcq1xaTCzBnLGZs7ihTuvMKuhT0LTyzsWziwcGjhqYUjEyskn8nEnoV9C4cWjjrxVX7Iyg9Z+SErP2Tlh6z8kJUfsvJDVn4tRlZ+yMoPWfkhKz/U5lfrWO7ljTxHrpemqRvHvSNFtiTBKvCDc9K9YNNvHJC5rYZBDfft3QO52rbu3Ds8Z1idhr7eKqbJsJgGN9mrjq46anV0uvc6Z8UzJLeM44RAe1JWbUkU/EeCm7ovX2O6gmuuOr9EcP6w4JYCC7ieXlfV/a6nlzsNDDX5L4hp8ivFFAyL6Rsnu6ucrnL6H8kp+mw5hT059V+w28rIirL42dSJKaq2YFIh+Wq+1IGArtj+rjW8o5rSmSz/hblqbO9817WXKgjMCJeWVV6L88FVlemnLfCpatipGSqBnqsaXkoK+fzV9L9+66qn97XawueRzHo5tHR+MckmZpzIivPBJIveRLKc5XCWYx1WtdVqg1qn4rJRWq7Jdaa4/NvvOQE6u4yX7zmhEQc54UV8kCuEj51u+spz8fM247T0qiNeSDYJ2z9P6u7tX1De3b8=dZE9D4IwEIZ/TXdoFXVG1MWJwbmhJ21SuKbUgP56IS1igyYdrs+9901Y3gxny428ogBNaCIGwo6E0nRDKZleIp6e7LOtB7VVIogWUKoXBJgE+lACukjoELVTJoYVti1ULmLcWuxj2R11XNXwGlagrLhe05sSToYp6G7hF1C1nCun2cF7Gj6LwySd5AL7L8QKwnKL6LzVDDnoaXnzXnzc6Y/305iF1v0IGI0l9/iJLsSKNw==ddG9DoMgEADgp2FXSPyZrW0XJ4fORK5Cgp5BGm2fvhqwlthOHN8dHD+EFd18MXyQFQrQhEZiJuxEKKVRmizDKk8nMc0zJ61RwtsOtXqBx8jrQwkYg0KLqK0aQmyw76GxgXFjcArL7qjDrgNv4QB1w/VRb0pY6TSj6e5XUK3cOsdJ7jId34r9TUbJBU5fxErCCoNoXdTNBej19bZ3cevOf7Kfgxno7Y8FS7DvvUyCL2LlGw==7VttU6s4FP41/ahDEl4/1rbq7rqjd3t37nW/pZC2rJRwIdXWX38TCAUCVK1o6wxOZ+QcTkJO8pwnJ6d0gEarzVWMo+Xf1CPBAGreZoDGAwiBARz+T2i2mUZHKFMsYt+TRoVi6j8TqdSkdu17JKkYMkoD5kdVpUvDkLisosNxTJ+qZnMaVJ8a4QWpKaYuDuraH77HlpnWhlahvyb+Ypk/GZjS4RXOjaUnyRJ79KmkQpMBGsWUsuxqtRmRQExePi9Zu8uWu7uBxSRkr2mwiYi7stZXf/64/2v47eq/S+9WO5O9POJgLR3GxEURHaDhlGFGVqLzbPhsm89JTNehR0S32gBdPC19RqYRdsXdJ44CrluyVcAlwC+TEEff6R3101EKTSSu02UxLvhHO+eDGGkDg3c9SmWoyEiRdUU2FNlUZEuRbUV2qrKQ+JiqMlJkQ5EtRXZK/Qv/gOIfUPwDin9A8Q8o/gHFP6D4BxT/Chko/gHFP6D4BxT/QOEf/6CLuR8EIxrQOAUHms+J6bpi4VlMH0jpjmc5M00gRmKOxIxsWsEMdiHCuYXQFWHxlpvIBmc5P0hagXnYPRVBCvLIW5YCFEkdlryw2HVdhA6/kNHTHEnk5sa+mjkXf3y7fxhfs6vbeXh/BkAtTojHqUSKNGZLuqAhDiaF9qIaSYXNDaWRjJb/CWNbyYt4zWg1usjGZz9lc3F9L6754mXSeFO6Nd7mQsj9TRtxJErxPu9PCEWzVCraeUPBqFycBdR9yFSXvpincbGuwuv9q8onia5jl+ybTUn1OF4Q9hJ/1VESkwAz/7E6ju6XvJ08/yG/1n6c0mfPoz2PHsCjYIYBgU08qmnmZHgpWtCQVZhX/HXDrwBV+VW3tBq/Qg18Jr/Cnl+741f4FfgV7klOScCzfZ+GPbv27HoAu3qaS5rZ1TANYJFuWBQqWaphHJ1F0ddh0RfY8FCa7ZBF0SexqGya0dMOXXYVXMh2zg1b1yFwoGEhzaj2lw1SdqGgaDemw4GF2rl6GEWB7+KerXu2PpStDWJ7ehNb23CGTJPfWcTY80klH3YsT7OsjvJhS2FycHQm13sm747J9ZNickcBTQt381nF25KZJMHWx+SQkY8x5RZRoDDrsNN9QW/fFyYbl0T9rtDvCgdXmudz227aFZCJHOR1lMMbCvM7R2d+oxZTcVZuTI65JYDDtgQ3wEniu5VNAXRcTNb2rvCZdq7pSE7qO5kcwZa62QtUXnSUG9L5PCEfkqoDq87JIkUnyXd6FAB1B4bWNeY0ZDkdLbGm7NaWctLK8LhnifOOzJacsuNtX31OPuC3jqsxT/hU4No14CZpHfAL8d4u03V0q5zrcg7a5b4v14fb4iRtcEdin081ibtPk3OElvPk9tLtnmiEjnFQNL4V+3pLsLZhX7XX0alg36lhn6T585eEvqNA/xXYbwD2MbKIV2BffwH7SEfm+3aij4fb7qWl41QXzivIei2uKoR6St+2NUHnqF+3TZ5vtJvns9Wvf33j52pMLp3rZcPrDEucTNczz3/0E35MPy4irLcjAlRZxnj//npCmCgOLybIM/rT5ZPc28Z3ZYbTyZi4dBXRhHh9MagvBh1UDPqM1w6VWtDupFSuBekf9NZhI2fDE+bsanaIDtrFtWNx9r63pd9J2XwukHNQBvjW0w/MT8z5W7KWvff0U7NHzl57S99n/imHpcaoqH/pMIAmXoktImApJMpS7M35iIbJenYX04jTw/Z2vrNYVOylpMZUAcKQhiKGPJws0xACyq6UklP+QwJQi7ZqBppwoDE1SU2VJSPxEqAMRaebSpmB8rdESrRmNLBarntnQQ2q9SmIql28uqCmq4f9Dyqoqc+B8KNxz8XilyKZefF7GzT5DQ==7VvbcuI4EP0aHkNZlq+PAWayqcrWZCfZmsvLlrAFaGMs1hYh5OtXtmUsyRccNmSSLVNUim5drLbPaXWrnRGcrp+uErRZ/U5DHI1MI3wawdnINIFlmqPsa4T7QuM5dqFYJiQUnSrFHXnGQmkI7ZaEOFU6MkojRjaqMqBxjAOm6FCS0J3abUEj9aobtMQ1xV2Aorr2GwnZSlhhupX+N0yWq/LKwPGLljUqOwtL0hUK6U5SwU8jOE0oZcWv9dMUR9nNK+9LMe5zS+thYQmOWZ8BV97mbkKNP/fb66/kefvlmzdbXYhZHlG0FQbTXTSCl/crEi/Futm+vBkJ3cYhzuYzRnCyWxGG7zYoyFp3/PFz3Yqt+fAZ4D/TGG3u6S0l+fIyzSb7nT8Pe8K/xphffWqMbD71NJdNTYaabGmyrcmOJrua7Gmyr8qZxNekylCTbU12NdmX5s/sA5p9QLMPaPYBzT6g2Qc0+4BmH9Dsq2Sg2Qc0+4BmH9DsA5V9/AsnCxJFUxrRJAcHXCwWZhBkD54l9AFLLaEzd2yHt9QhW+IPJww/SSoB4StM15gle95FtNqe4JfwJ8AW9NpV7ASG0K0kZkKhQ8IhLA9TV5zhPwRtXkAhs0YhhAO4oZxF3CkxROK0RiQccicjRJqwFV3SGEWfKu1EpVrV54bSjaDT35ixvfCYaMuoSj/8RNj3bDhHRSH9EJNlv2dPsrAvhZjfkGIQKMUfcls1LJfKcSlDCbvMvG1mD78Tpe4ziQ7ricOyRxChNCVBoZS6tMKDT7XE7Lgby25rJ4gSHCFGHlXf3oSIfChfL9pLHYT/qmYunNsBmxYAKjah5pG1/rbvd/XnP4oV9LyarSE8pdskwGKUBvLDPTkd97Ad9ySdFsjH4XX8K8CvADKmMdYAafQDZMUhIHEI9OWQbyssAmMDeEeYlEu3OCH86eBEKFt5UTzh47yQ+eMvbtG19Xlqft8GD39ZbuD9vDkTf+qAN1TAm0Y/yDZgH445/v3DR592bNtVo2+rVyluR+0qL6W7Tt/SmtZFt1jfSPfXYqlVY2mdjxUR6AbHKpMWnMjSVm7wDzdbJkqG0BClq5yvwtMLYnq1vaGYX6diLktjUBIIyah5g1YyHAWvFCHYDQFCqfuvGLc0p26diPHaRL42UQuMXws5dgNyHLTOovyI5Q9Cloq0gcQ8kkvxl8Whcal0FZIGQB76MRV1KCLLOHPM/CFnbnCSBYiEZ2WXomFNwrDYKnBKntE8KsGi5hizZgQbWc8IzXE0QcHDMgeYGsnyTyPWOjmmB7GHrFSsbyQnfk3B7QUPx03XfRUcXpR5Z5l4qxPQxSLFZ8GN0x4X3Oc3Ysgqh6zyBVkldlqyStefG507Qv+s0oSuujXDhqzSteqbxmtklV0RWROLytg6GZg0MOn9MUnddhrPZzzvDZlUj4Cr8xm0YYTyeOIy22/DBb/05Q0nTYKigVsDtzq4pSQ8h5N9o5NdbXwsg90IL9iZtjOn53ZmnouE9WTiQMIZDbZrbuvddh6SR5JmhBzIN5DvnW9sTZR6032tI89CabmLDTvbQK7/186mstDvycKzbWxujU5vUduragyWZ2o1BuvQo6XGkB2IianBCcWSeUSDh9oJcGPhoqqfWB6UKigXxtgwyrJkSxmFCyfVQbqy6aN1EOFTz10HgdDS47MxsEzPdsVfdcK+J8a1aYGG+tc7Md79cWv/g59v4PbW/jG/ns3vv981nFnUydFUdJOQrVJDwo/jyBW4seG4L4aPzBpHKW9z0lhnK8z1BWTXYeq5AWmVkNPPv14KQQcemejMEDQ7kv2ulzFusmJAQznhpJpEHRZddGmuEfTaFHs/9b5bXOM6O3K3r5zJQzg5hJPvLFdz1copNHsef7xGrtZIIXeg0EChD0Whw4vb74ZDZTDbWBLLxw8sGlj0vlhkWupxBfR+OYs+TpJmKznakfys9WHJKVanXzl70l++glOmRt6JORY01eoONP03zbHAh0qyPkqWBervU3cRU5zTHWWl/OKyoFQrH1s5JB9ndKWI7+QVTAg0r+ucyDRLe4cOwn5vEh9nGher//wqulf/Pwc//Qs=xVdbb5swGP01PDbCmEt5bNPLtGraunTq3iYXO2CVYOo4TdJfPzuYAJ9JL2urIRT5HIzNOcfmIx6eLjaXktTFN0FZ6QU+3Xj4zAuCACH9a4htQ8Rh2hC55LShUEfM+BOzpG/ZFadsOeiohCgVr4dkJqqKZWrAESnFethtLsrhrDXJmUPMMlK67C2nqmjY4yDp+C+M50U7M4qtvgVpO1sly4JQse5R+NzDUymEalqLzZSVxrvWl+a+iwNX9w8mWaVec8PN7OvFr+Ty98PPc/mUXsf+w83FUdiM8kjKlRVsH1ZtWwdyKVa1O5md/5FJxTZjUZC7doROrV4lTCyYklvdr70rSKxDdolEbfbrzvAgtlzRNxtbktiQ8/3gnQ+6Ya14gy3Ry7ZoVyrKzCC+h0/XBVdsVpPMXF3rnaC5Qi30pGdIN+eiUnZtpwbyspyKUkiNK1Fp+pSSZbEbzXR33X42PBiBa7V1FoWTcHDErzQaRZOofySf5Hvs+J7hWnj45GFFKsXV9s89r+jSCUPrV0PHl0qKe9aaTNmcrEo1bj0peV5pWLK56WHs5PoFcGLpBafUzDOa8XAVDEIEmX94pr3QEBoL7UDYHx4ackIjzMZ2bWO70qm9bwctK1LfiB+C79wzTG3aOy3RqT79iX6Oqe9FeujpDgcAY4BDgCOAY4ATgI8BTofYIP1MQ4wBjgBOAE574xt9COhDQB8C+hDQh4A+BPQhoA8BfR1GQB8C+hDQh4A+1OnT53BjegGeE5qQzNnI+spdGEd+OLqjDtWkZ2pPCmpP6NYelI7srk8rPcHLpUdJTqr84Dupt2ukUERxYV5jR6n/31wOcTCJgM97pud0ErlGp59lNHaMnl19n5nZOZNEZsX2zWXGFpRnakymXWTyfVXmQxIJwbpP3XU/9iXwD8tew+4jd3et908Bn/8F7ZpRc9o4EIB/DY/NWBI28AgEmrTN9Nrk2mleOsKSQYNsObIck/76SrYMSMDcPeQC1/GMB7Qreb271ictNj00TTfvJc5Xd4JQ3oMB2fTQdQ9C0IewZ46AvDSaYRQ2iqVkxA7aKe7ZL2qVgdWWjNDCGaiE4IrlrjIWWUZj5eiwlKJyhyWCu1fN8ZIeKO5jzA+13xlRKxsFHOz0N5QtV+2VQTRqelLcDraRFCtMRLWnQrMemkohVNNKN1PKTfLavDTnzU/0bh2TNFP/5gT8/HOjJk84+iEmf/9k+GOYfHhnrTxjXtqAezDi2t5koRtL04hRLlqltr7Vt7oix5kJT73YnEVPpagt4Hi9lKLMyLtYcCF7aGzcyZhimDcG7MityXrESilzc8cmFDivECNXQi51ky+I/mz8me+51HjgenXg5kL6mmPBLF4pEmKm4vit0gYjnOa6kS2K3A1wPzUmr9u05qXkNq0k1h+KyrSou6DjFdTTNjfNTCj9NalWTNH7HMdGV2nma8OpduwaOM5/LhVnGbV6guX6sz6LKbMOBFdBaFLQ0A6QbmPOlpkWOE0a1/3J3c5UKhXd7KnsZH9PRUqVfNFD2l7UnPHiLijVjmIYWd1qj+C+1WG7cCy3hnds6YbF6zhqH3/RxeM38InEw9mPBeIVm6gjqDWT5DY1S5Cf9jqH1NgL/jnrRYbzB/GXYHWyjCY37TqCcKKP4EpffRr0Qm16WsvQk5En9z059OTIkweePPTkkSsbSfvkysiTQ08eePJoz76JD3jxAS8+4MUHvPiAFx/w4gNefMCLbycDLz7gxQe8+IAXH9jFpw80SRjn02Yx0CNQkiQwjs2NV1Ks6V4PiRZRGL0OQP0+dAkawAOEwOgIQugVELrpf/1ye/vcXz98+T6rvt2K9c3wCEL1ZoDGs2ddJWRxh1GH0cVhNAxciobozBTBExtRIqQuWpuyxasnOqo6qi6aqm219xZUfbqTj1U4/zB9TB7CAMfzGzI9vTfdUcLKtK6zDVzzhrIOqQ6pC0OqH7j13uDwF9PbItVtVB1VfxxVIDg3VujUTnUt4jI1kXYYdRhdGkbewwjYvlg4G0bhAUYPK2peMTBef9k6b2oiX70ULMbGZGqrQaPWeYIBYRq5gomsMJrEvN+ozUhaiFLG9OqARp0x5SHnZD4T5rGrc5usqn3IGuv7QLV+YvJvHBvbjpQRwk895nVXgVe4pxFyi/jB6My3NDpZwzfvtbplsVsWL3xZjAZnZmhwsrqQuGLZcvtD+F7phPHu5UcH1v8BLATPXbYPT4H1lT6VTFJyjRXuUOpQujSU2rKu3aKG4MwkjbrnSh1VfxhVCPx3VGlx9ze1um/vz35o9hs=7V1Zk9s2Ev4t+zBV9oNUvI/H8RyJk93YVZPa3TxtUSQk0UMRMknNjPzrFyABigTAQ7RISRO4Els4CBJAf92NRqNxo99t3n5JvO36XzAA0Y2mBG83+v2NpqmK7qB/cM6+yLEMt8hYJWFAKh0ynsIfgD5JcndhANJaxQzCKAu39UwfxjHws1qelyTwtV5tCaP6W7feCnAZT74X8bn/CYNsXeQ6mn3I/xWEqzV9s2qR/m08Wpn0JF17AXytZOkPN/pdAmFW/Nq83YEIDx4dl+K5x4bS8sMSEGd9HrC+baBj3n+23r7dfbWMJ/8zNGaklRcv2pEO32hWhNr7tEA/VviHB3x9C2k2ar8soXnp1otxB7M9GTXr+w7mbXj+8yqBuziY+TCCyY1+iz8oDrPQi4oGSM2yybzGOsvw9N7izmiPr3oYzGGyQj+jRYD+pl/0WPmo4hvq38V96CJhc0TdWQj7Mptlr7MFTAKQzNDL/DBezd6Kz1XyhxVRjT1fI0u8OI28DIgePxQKnkxghkr4/PQZvIoay/MF7aSYvOkDKlew5wvQ4NL6TO6ezw1jfz37AeGGK0r9BEbRLI297SzNktDPYpAWE61sE/gWbsJsX6mPxjKMMaWw7UReugbB7AdIIFcY7zYANT1bhqtdAhqLyQw1P554fhbCmKuQ4HkN4xRk4iK4XKKy2WvBLfKx3741VKqg4kbTl8slW69SIVktPpgunhgdVVY0w8qfesQvmJsfG95AuU5BA8X/6FWKonAf3q/qMbWKzwdBV+1FtEu4wVwkmK0eCKRShJg9AkrKT8Aq8fZpwbyZkvUO1PBTKQrjF5DwbaVetktE9VOwDT0uN0jgtjY41a4gPpiXiztaljb3uKzT2PWyRvMYlFVaBqOs0zAqZTnE+Ml4+JcVGsfvUIMdSMI8K0T/4iUfZrNqPiH040VL4Be9ETJ+b7NFP+JFiv/B4qeUPttdEhHpE/jorwwkmzQv0mpyQkNzv8U/Y4j7/Ol1HWbgCQ0SzntFylHe8AZ9271aE41fdlkUxoDkB17y/IUO7b0yV0wsYAu1SNWxOI7CFWJK9xFYFt/OagFUpKPZA2+VLKIV/ALgBmTJHlWhpVTXej0oOJpF8tYV5cYgeR7RqVZlUwe1A/0gmscRWojGaSFExOu3jwCTEfiy/ByjkQeI8NlxzwcR85h7pXvYsej5E36FYT5aOGeLf+cdMj+h/5Q5Gqw75cZETd/laY1J60zaYNImk7aYtM2kHSbt1tM4hb6pntaZtMmkbSbtVtrH/VOZ/qlM/1SmfyrTP5Xpn8r0T2X6pzL9O6RVpn8q0z+V6Z/K9E899A/9p39ahlF0VzCEeyxSPcvJRc0S8c1KvqIQEYTUEPgMKiV3tm4S4XQCZOkEMmT145o81FRXADV9LKjpzVBbe+m/82yJMImwZoQFue5N5paBG1ADE9giWLmWrXvWaWBlO2odVYo7d6t/eIzp1oQYMzgEgWAFnkgSJtkariBa1zwccj/VMXao808It2Ssv4Es2xMLibfLYB134C3M/ksex7//ytUHk6Tu3ypF93uaQLrkPn9obtHkX7Q9nDg8lqfoc2nmJdkttq7k+g5WXoq8xxCPFHkioDUWEfSfi6xKhUZCSOEu8UHL+JK5RC9cgaytHrE94dFvpasEoCV3+FI3+YjIIn8UdcvbVyoQ/nZouWB+B3Kl30HI1XFNhsSKFg8EV37acBo0W/n8PUixFnkOMqUkp1YJjhDq6UjOj7w0Df0a0Q1FyXBCpYp1N6WOQqgcJaqKyegjGsMDiy6Rxxg2eAKqtJqp8itaESIJsG8gTamDSB2kUcs/j9rh2JeldthStZewunrVvi6gTFuwYBbZpkZDlXNWLekcivm0OpJ7Zcq8zRCoWVPmO+sbtsKQ5AjKv9utZv0exoFUtaRMuFRVi0GZcW4xQJdybZiSSJJIOmJrQvF0xTtma+LTva2MtjXhOAKITbo1oaocgC5Y1RrRvqlqPXUiVz21TvRzE9iyj/uEvQ02IJb7t5JJHsMkl8DyfREzDGx3cSpmaNVZoS5wiFC1SVkhv03L80aRtVvM2MwjGRthlg52N0l8klI4bltbbcKX3O+mutqsGdzLBeRf1fXjiReTfRknneBOxlmhAFNAADTvZ+3yKruqNMx6Gw12ea4lw7ZrDakOQ6LF0Ixm4FcNAeEWHldB+EIdrj58fvyIKh2MkwcNusVRt9IABwYE9KxO/tRPygfYcQhlYHYQ+l50Swo2YRAUKgRaBv/wFhEl8rpEwUwp8hYg+lR6bNX405J6bbI02w5sljeVHuzkQ26qTuIinjVDXFejzuY/SX8MsRWuo6OQB78t2elEzrjAYoF4kzuS5v8Qd0CsQ8+W3iaMiEfiryB6AXi+K+WFG13u26xRl9yioHgpLolhsiEOhEXZi5eEHvoXUU3uiZZ21PO9bVOVV8I5cKFBHWAjpJ0eHMb5J2GyXXsxaVIr8jC1zwiB4+ySxmlZiLh0nDHex3lJ7mC+RO3TN+U2woLT5YclKq95hUlQ/7CDJ/MrWDyHqDncZiGbhR7PYjdNPI8aNpzhKaz++Fj50gD4MPGwC/YsW4f+88EvturlydWtzGVrvQavUWUZQS9jBycI023k7Wn13F9TU/4RbrZoxeHFhFExDqfV3Zeq2a3x1MLRAv7cgrqqYhjacUoGSn0FSYg4CqbcqTba1b5W5IkEv+LWBT+nUvYV/NzWfrl275D8h5YmYP/8/v+5qb6k4Cr1drujULSoVaycfY/k0qhbY6jbMgeqtarSpSCPrdfym+sCvbbk+EjAijj++1VrKbAvQ62dgJM5HD0It9i4GZXWLmntajmtENie0Nq1MCxTMU5l+tdYZnpu079m8XrAhC7Tc2OIylvzYL1wl2l6Xv1a3Cws2iIlUaXDzULR2+qP42ahtXjc3eW66xJJZrzalJ4WUhhcpqdFqUi3elqYU8oCXrX6MDDSRIediQs+8aDdOM6NozdYaLDNOn2G2AoVxk/+GmyIoYlk3sHYB9uMlEiwS7D3dLVlznRfBiMQet5Oygh4N0ZeSzyLjbRu9XF720hrNqYOhXG4rtfXWqT39R6ZxlrkMMYi0xpoLHIZ50HL7WcrOlZHdS32g+3xdU6Kto4NVmZ/9Q5uECWFKYy/bEHiZTB59yapkntchkmqtO/XnxjPQkXRLVycCMhBaitSW+m7NFkoQAeWSCNRgKM4zmk0Eofl46LgGZM6getaI/PdcXsAPMhmqOaBye4aWazEnsTembHnqnU/MlsRYM/Wp8SeyCXyGOwBiT2JvavEnn527DV7dfbCHvgusSexd5XYs86OvWaX2V7YW0m5J7F3ndhzz449kb/iMdiT6z2JvavEnqOdHXsij8vm3R+4BXEdKIJj1a7LudTU9uGGOvfUd5mGxE+ps4DGCe3c+6EWqqvb/GFc0hz2TFLfzR+2Ibuno/Cxmz+Oa9Xfo07gcKTzrhFl7HIiZqqpJFgiuZTtt6DMr8c7P8cOT1O0g9Pt/JSc4xQ7P7pGT1T+JIWXLsN7mp7s1J3REvT5S3K3Bv6z1EmkTnJpp/JVdv/HsXmdRCSTxgvszNvBqof8nnYLAiblgzqf//FRokqiamC4xfNAzFbPDTFLZGoeXe0/rfo+dBnxE2q/fp1qv6sxJp+har+rsLKi3+nXn1b7jQnUfktkApaY6MJE32sCLgwTrB+ko9vzoYth6rVGqdXW2KZGwoWjT4GL446TS1zUNpSuDResrHCGxkhybAYVzmSomOJUmnUWw+nVo8J4J6hgzUq9UeEwqHCnQoVtT4GKlgP78nSmXKxf5ulMi9EFDdHpTH3K9Tm9A+XiLpYa9YIotVV2DZc6Wk9ZctiPMC0qgH465mTT3ZTHSg6biTxFrzg4tdxg3+Oa+qDvEsqZKYPHOD2iu2Y4muAqh0aH5Mkvcs4vKr+fuYrAkjhNUBHNKvWF8ih5mVNhV7bgCCkbqux03Iq3Jj79/uUJvz4EiZf4az5oP7/9WR84wluqo0yy+m+Tiqa0pwvAMVPCBs0SOFRNe5dOD0PW6Qh/IhFt1hVwU+Ax6ggGeTya560iDM2HIO1B9aekZiGCTjH4DIVbgsjd01K4fQ7dZ0g0wnKJjZQKRakF70Sqt9Gx0D7NRVOnDQLqkCVe5xKesqELuTbBaVmafl76D1F+b8KfuRuPXKLKJeplLVFNU6uzYNGJCeq4Ng0P5uOGzOfzC9XzsLGVSgf1JBKxro5Ygmt9JpWIVM85V2g/qyoT+0nEy7kJ6PQX/DQYA+hCiQaPtvot4U+1InZbrEr30N9hAfi0WwThS5hijV/KQSkHj/BWXGoNrlTWwjJPdWVhfSWiiQ7tThpT1dWaMbX20v+h3vKXcU1tqO28jKAambXdClth30aVfQ8OtHWG69cauLNR3zDjuHNfS63umAyRunNnWkbf4oqe+87Ke+Ikjx/E4ydxl9XrapIuipFIwTrRtbQKByieqY8TJLHR7JMNulJjOB/uHbN6omsvGKdqXRvIri2rHtR6rI01U2U+WHUZwhzBIUNV+GV6xSNjmV/KBGMpD6Q8uFx54DhigFblgaNNKQ/a7inPFawoTDMJKgmqywUVo2RZ9NTd2c4kqfRmciGoEJRWMNnL1YsE1oUDi5VWIhPVxNKqxUZ1hzdV8gtUgMSWxNZ1YcsUXSE/MbZaTG23cSDDPkgoXSaUbOZ4iOmeXf+TcR8krN5V3AcWY875MWZyqLm8UyNH+neMvjHIBDvT9X67eZ0NWT3PghxraWbf45APHtfS3Ova8QqtpWCF1xlVQuvaQvF3yUtJh+xZ1uruSk5c1bOyh13rmg9up9PRgDO2jXTa6YdUWkC698T1nqQ/0V4Me0eT0o+wuYY0Zo/EYBEy9gXkwhvI3yUR62MRsXFhtOk4c6XyR6vv9pmaXS8eRriq2foW3XV70fHRnJ5ZEFuK0vWZbfXHkgyigJosqA6oIQpC7QxSr0Nbl0JxrL7ARknqTVR6R0Njc0NBZO7L9fFuJIv+Crum1DdFHOoacC63blUQn/mDF0X43sHAz/AVuQHqbrgM8ejdHnLTdIcHBudwsdSLKglYAjRUPkjzaiRWbbxItze1WwplQHW53D56uZ2uvSDn5fyxRHwwJv/Dr8ofHx+su7vTQJn65VJnTmGkdQGUDWc0KLfFRiHe9xJjEmMtGLs4WAnvDplWQPL+bW26pXBFdmXqJXMU3naYJvqvWZhDbDbT0NjqJQ2z83dZFzCLL1sZOnF2R0OjTxzvqfO3mjjbPdHEsQ2NPnFasw7yB9JAErz2kn4gUiW58M1r1g/EVHk9ZFo/kLbbP37dbbz4AZcgTAUSWRJZ14MskYY/MbKOu6vgvSkbxmDrMeuIOrX12OgRh+xdTVw9tK+pDtUSnY6GRp+44yK+v7uJM50TTRzb0OgTd1xQ8qufOM6fZmBUbu4wDNvQ6BPXYht++L7z5BlNqTdett7IIMgRnXqZ1tXROM4yfP3MUGVmYKgU0832hk7HDLPfXmZ//Ph+u95F9m9L8PDNvf02E9kWi93oIHzh7gNfwoRGQy8qLZLDhnW5iV15kqOBcS9iHXThahP8jr5a1VDdueu6aBXnaqZuGkxgGjcvNWzH0FxHs1q2PsWkMlPrqFeZFoYE90bJBMKsWh3JsPW/YABwjf8D7V1Xd5tK1/4t34XXyrlAi14uXePEPa7xjReCkYSDQAbk9uu/QQLEFBAgkGS/4+TkmKIRzOxnz+57R9ofv/8MzMnozLeBuyPy9vuOdLAjioKuKvB/8ZmP9Iygz88MA8dOzi1OXDufIDnJJ2enjg1C5MbI993ImaAnLd/zgBUh58wg8N/Q2wa+i37rxBwC4sS1Zbrk2XvHjkbzs7qoLc4fA2c4Sr9ZUI35lbGZ3py8STgybf8td0o63JH2A9+P5r+N3/eBG89eOi/zzx0VXM0eLABeVOkDD38for2/wp+j33/N34/DP/vcHpeM8mq60+SFk4eNPtIZGAb+dEJ+WfpJEETgnbYUZj8dYfG2kE6APwZR8AHvSz7FiZo0/2BCI5qckMjbYsI1KZnFUW6yZUnvKckDm8k6D7PxF1MBf0lmo8bMiMtnBk6MZ4N4EH5H2nsbORG4nphWfPUNwgGeG0Vj+KUHAvx14HtRQt5GfOi47r7v+gE89nwPnt6zzXA0Gy2+nTLhZeuHr0LxbKfASiab74mUyZZ7ikHOtygbPb2j6VaI6TaBJU38HWn3CJjRNAAXg19eBAIQRqstROiZkxv/0ndmExufmcS/z15I2YN/+R6cwn1+R4FD78+ORexYwo5l7FjBjlXsWMOOdezYQI/jI/hM6LGEHSvYsYYdG7nx4/cTsPcTsPcTsPcTsPcTsPcTsPcTsPcTsPdbHAvY+wnY+wnY+wnY+wmL94N/UWjtiNJAt4BlxQsfBf4/kLvS1xVZiSlmGJi2A4GWuwZMta+qdCDWxZyYMrQEc7ohEJgTDAqDS5le62hTi9F2GfgT+GYfDGQMZK2CrAMgaaq6YSBpS2DiB9HIH/qe6Z76/iSBwjOIoo9EFjCnkY9CB3j2biy4wsO+61v/5qeOnPjBZmOCdyd6iH/vKYqcHP+Fx1y8vvPDg/fcvQcfuYNLEDjw1UGQnCtcldCfBhYoefVkKYCNCNDk2gXANSPnFZWnaQuRfHTONLI1F3hUYJEEbC0jMxiCKPkUtpzZYzRfYb2YVV5HZgTGwGMCCeOVdXjlYCDSeaUNZQ5lVaEjxUmqeud5o75O3mgs16ByvM5yzTB0LJwXwgdJeF16+Dd/bcHoZkcZp/NSU4IOj8zASo7iayg2Q8g+ovQZfPis6bmE4Qoow82xW76U1zbnq8myzdnachluKf/Nrb9CWf703IpsWlRUjE0b6BDz9ybYNDEQJ0saMhInq2tl+On+gtCt6kaxhu68wl+H0Wx956ditR6hafVl6qcXuHBGdrvwBkGYvM8/llxPB/rx6+i/2Ggy31JGZrgQwOffAF9i/iXoF/cD/Ay8EXlADGuQb0QoukzXGXox9IA3Ewj2Yu7iWKa7m1wYO7Ydf3wPat3OZ2LQ4YkNKuZxrtkH7p5p/RvO8IWyO/hT3aSRso3VDUuQh4upOW5F8lYQksRFEH8wCEEnxCiXaGoHvjWNpY/raR+uuxM6vscEESaIbI0gklzVRAQ7omZsWGeTNQJTduw5mDFfuPOTUgrcYq+Tw4VCd7g4u7ey0ldFDClci85VsJSJpkuYssO6ezsxkN6ZLne+/345vfm8HR8Pj6KXY/P5iT9PbfqtauuZbKjmZMMlevhCqlXzUu1CjqVLtQV7rA0G5nQmAaA4XpyP5Ycjc+y48UjHwH0F8TaPOiWE1ElBfpwqpS9sEpulTU3oKUbuB9uolV7+oqY1JFwNNUIIqtgV4f6+HHrG7xf+4fj3497d2cudcs5T3HSZFDDwg1QQoDKu05houpP7aBRUSGokaZF0Uwbc1WVCvsdLqfU91S+kDiRETl6XhKiQ6kpGG6dgaLp3IHAGDlxnJhsy2XDLZEMB80ZrFHu+qK5RNtRJfeuH6bqxhj6XER0bvu0cTzO9PjkbhtMYSYszARgAODFWHLuyOGv5cG7iiBOGRYbFYiwikSBZ3BBfisYi/FJ824OBbbTl29ZR7U4wRBLBGkW7k7sKJNFJ7Y6wmDD4MfiVwO9rIU6tiLg29syf+5PT8Hp6sOvtHd0dO77A/bPLlJP9EbD+nQGoVdsMcwxz1cVPWwG6LdPgp4t9aQYlCswMzeahit8KzBQJ1egkkYIzmkNN7gpnEoEzUuFfWGr8CfB2iAjU3GTx8McwiOgSRPZA/aiokXI+ft5ImflTK/peC1dpS3yasoZ6IiW+oU+TGEjFBmrPfESlHJlCOao5jnlsYoXJH/lvbqzSeBArIbgYZBeHyK2bcDJSKJgvMYyWOx9LMdaG81ES02VfkQ45CdWSO3E/UqejJCp7trWzCCi2u2+tcUmUZGwHp0REyR1Zl6hwIo1LWTRHGraR4csJLyYggGwjdkfBHdTey0eE9AvDPNbgrFz4vPSdqvFQleKslvuZ5gSTZmIJNBLKdoWcm41XUEdbjxezeLLCEDJ4VDlaNh+tVaYktewOg9NlfuRuSNhm4U4iYVFaoiGXCi6KLJXdD3+ZP0G1b5NEzCtSVX5SZAzJAjYxHctP9SIZ06jtHGJQyG3Oj5sAQkDBsBwK1PDzPPazyMgCj/dSplSIrHy8ZJmMsjResmq8+priJQ1UppP0htjIYigy3ULqChuRov8Ewvmfo7OnN+3q7M/xeChS8iRREdHxhrsWkw+ZfFjH+mMCfUCVD1VLB/0B3fqjAVMFLWUaKQK6dQlp0FhedlQ7srJScUZaf/IpexYIQ+boZ1jrBGtt4ElE8aRQ4CSvE06kSezHzqG4o+s7uhR7+zNwjU0b7JHZsOtQsxomvyCqVlJbADfTVlC1Ost6KRMj8lJcGRtcmx5VKHepWF4iJyiY4FUgwbUleJG2uQIKnobAruSD6yhuuQqtLUhdRnSTJaTeKr2tpLcvzL6KnNYkSShDXk1hKLbyUhRuvadogizq839V1O0gKEqPz/2I69UUKKFV8fIjtDoywz9g4lOC8LeGVBO2KOw0U3+B2/ff8vtE3kwlSQij74mLE62YqVpjw1ptWPBympC6BiComHYtSDxC+diXVtW1dRUbVsTEk44RVBLatO97Az8Ym54FKgGIaQFMC1i7FqAZqB2XqlV3laNORVRJdQdrjqgkfvc9jMN7+77vApOlWTJstYutNEjCBYNZnvmSSnD1cYflL9NyMGm4w/e3Jri7+nVwdGztH7wdDH//cqZP7t4RLSJlEaQLwngyGMQYxCpDDKg2bwMaxAxDFXSFbjC2FU0y7JYMXDqaeajRyq/Qilg22Nr8/nNc6lTk3Xlu38FO6pAsxZySe4EEo9uoX2XqUE0n5VKDXBPNrZImVbWMSxknrKpJQdDIAmpf4MQ0BHwNmpWsoCqQiqdwV/fpowMprelS8DBBCH1D+hxfn+y/SZ/u69HPF3Xfc4XnxzL3ysgMC/akNeTXkgRYjO12EmRlXdRXI6fUGoWsL17Fp5WgRWqyNGkYJRau65rGIqrncIJEClwSreiFgke2NJG4qLNC2g6I2LPaNY3EgppGGXTsLOGqtJZRaUAbGVJcGB5D1lTGBOtCINLkSXRHRGRyrJgzSUmlhFm9WLPEY4K7rMf25cUfSr4svIXXaXJGT5QUUUv/SNLqhEa1mIvLCS2jDx8JcQy3JcCxZVMxDxcEFToMXSs3GC9swnod1x+twmedkMl6hFxdZuGF1PKzapUFUekJCmHITfcYQ+0pkiSmVyVsz6kqm0hY7k88rqEL2R+xkqRSNzhTwWpIKIJU6ymx+4uCM7vfgFso/LgdAZPhyJzEtyS7f3w1B2otB+nKBX/ad2+WuS1b0z7WExSJ6wQynidVFcC4c17Fk/Lac9SIk2M5OH96iF4Pnm7uD0XDP/lNQQBSr2eLtIlSALegTQiGgPJoYTVK6Z57pdr1FnX+qCs3ynqBkp6HsUgzRrVh8KXPKk0r617/SJD2P6Z9NCGYniTnHOSo7q4qai9FQV7V4JWeSsmfEsWe1kJ5DyodiTR0dk5HVhLJ/mRa/3u6bANqwlg+Le+OrqW2RDq30o3khrcPg6vd6aPJ7e9Zfy/L6lScOVbghyB4dSxWm4l5nrYvcEJBEUWr+dJV+DQVS8tEolWNLsvDlgt6ozRNcaMmtUmlWl3huua1szJOtKFgZ0Jb0ngRExcrKUvkOBI6jlatTHADwZ06qyUunGt/EL3BhWK8nfH27ePtKGqE1Ki5MeZewYGWY8QJq/4axrvmechbYiIjqCVdnLomMg3LyNI6S6mPzqxnY/LMu0emyknmyWWoyWXC+AGwXDOYTRKrH8dYdzPWvbx+XBusW8b6GdCqn6bKMKLmtqDjUmFFWkfQLGF7GpguQxVD1RdClSStEVXuyd6/o0d9eGz7onYF5TzeHHMiqVqQElFZjhdNFllZYd6CdiBLGpQiyvSSFLmGinshvW2oIhMpZ6moLV1KC1TX9mmmFWKyQi/VJLa6YQiaiDqPpKSYMDWsoC1xsER334/t3ANIoBETB9nGtd0bF1bmVaNtXFI3G9eN+nD0/vcqUs+fDs276+Mj7XefWvj1e2jyW6+nC6gQk1XSq62nYwN12P+aSkLf1xj01UiocflpQqDGB+qYhGih56vs3psPqJF0grFT42mydiitc/Z6MZYMlh3CMi1OujIs8YFqC/QrANeccM7Vz1v+/dz95yln4133rdRIezwdm95hfAXK5TarA87E8gZi+ZrqgCsozuSUVyJiuUgyjDLesJo9qRhX+xBIQz/4YOX1Gay2HVY6un1RnR80WLXgt6bCqoYRiSGLIevLIIua5rlWZJWUazmfjkEQxyEzXDFcfTFc6RVxJRgd4aqecW1rG0tQQ63ocblxL5a8h0/o8XKWE7meVixVs5fX1AhCRkO7FQVj4pUbQWDJk5KKDdSelY9Ky9/XIpXvaRg/2/N0PMkdFlLi1lAYllVr6A0pTFkyUEseaBHrG5R+T1seaCr5Ct/XV/bd6FdtGEFB0C8+UFf0m3xPt/T7fR11X55+0R1eTuPZ6tPvkoFao1+N+j3d0i+tOSKj362gX4xt8k0lVJz/4gN1xX/5diPYHrjjE/v04ye4EKDq+qkcTtSXMl/ZzDLiOmHErCPMOrK11hEO82vLqTURaXmmkWwG34WaWEeokCI3gDZ7Kokq1myD142lhoiqkc/zOk+VeiY17+BRxodaa4e54uaBBc7IuIm6cusNzLhhdJauRi07UkE42fIQJo5YChLeWhqImoe3imcGNsH3fjA4etq/Ew4u32444f0t8JxDypZZJvF9tTpxpT1/4hPwQlrDBeVMBsKXlvGkjOVIlVlOJe5C5Rpqy9xlPRKshBU40HDTaFUuJBhrkmDx4thGuxIsFY7lJbD/gJepEwD7wIxMEqbdl66jIbEQsiRESZIvZUltVL4TdFQNSeWZFYlZ4FE5TcGMWK1UxpsMf+/+erj+PPt3MHz8pR/eymcPZSoOJJC72em0FleQ1sB6mdrR/IZbz2GKD1N8yhQftDAZ1uNDsBWg0bQgQ9UksyUtSMGkJD3t6pnXgtKAwvxWhVcYbSIlUVEnFqPuMogLaEcfJ45ns7Y5DF+12+asB1IaumHpIgVSXfVSp0KqSjr3EsUDXk+kkbhAuxlYOYMuirlqxeQjaqvnxgWi8wI6dQq2KwhCxRpr6kZDAV3D2jAZ3XXopE4rzYk8l4hs55UoKwqFon1/DJfPCX3vYtYLwQ9IESpXWjQ3CkGyZHHRNuXvAt16bp6EP1RqLEXfyjI2B1mjmJYIX5ECOVRWxz7fnUxNem1zLV1J0mC7O9vdt2x3xwRmQ1rj7j640vuKGhx9HH9M9ga2e3EZKDXNit8jqDILoaxiMqwkNXyBdhEqFlihN3UuqApaWkWvaNZrsAl8Tt3g2Ld+vxhnP63R/uDvTXRaZli5CGbeY8b5GeffNocxVu03i6bLgd+g+JPa4PtUFJGGkrqNAIxlfQCgwH497SeI5H8Ivd75f4X9ABhiGWIbWTo3A19jw/AtcT/tQrGL7YIMU9u4C4poTpkikTDKKnqvBUfFJii2DTLIbhlkN78Nimisu5I2v0DwS6nZ1xl+242DL5yhTevwWQ5uw7p4EpYLgY/TscpeoabZd1ilLOYEA4nQcNGWjLNq+BQ2blvhUuaEdzXfuj6/DKxDa3J5yV1yqdFmg52plzdJWt6ZOt+XumITW6xCs9aGtZE6w2JFDKzq+pGwbrES3rhoaQOkog+21/HIfTtxTgP5TLqe2p/8rXLuHb+XOY+giHb46tjAozS020ij2TIMteIKlHmB6sNblToUehRfq67BMvKnrW7h0jLpmknXhQpxnwcSUGkCNQ90XtfbEag5GS9EkXpX8iK1SAmha0OkpiKJNC3ZVjTvxT02o5nSq5rjGB1eP5wwrZXh6kvgSqf01e0KV/fhfn/Xm/5+ddWfDx8BuBtBaNVTVSsk8OQ82oiU2YpHuyxdbkv0rHTPT1ZYxVeuqp6VFuPJCshhQkt7yjGVLvRadPHVlWNO4BVkuhuXcOKwWBpioI7Xrd0STl9g3VDRXjGqqW/L1w0fqL11Ozhz1D93P5/2zu6f9XvZVHenYln8yKzkwB0InIEDdTom1jCxZuv8ZxgIRVKo6ar7LRVMJWr3ZeC8MjgxOH0hONGKcnfWTPrg8Bf/cSI9DBX97uDQUSeX79SorGKZYmk0LhYBW5Zkv+3yB75UqtpM+lg2TovCh3EtTpXzw+nr5214pfx7fRB+tR1uXWOBm/SZLCSKfOmDMiFraemDlDq2hspQ2VRrqJvgJQnwDK2Oqaxeyt4y1WS5p25hiUC9XY37kW4LOaQu14JlrM500LgJge+olib2vOn3tOXa/SmIL1f+lXXfv3mMXj5uh9Pz29Jabr5ngUnEOpEyKbCRFLiuTqRYpXuBkpTVVSdSKqRKtKo4zxHya4+BioFqu0FVYFXfGKhKQuavR6blMkAxQG01oLBdKi3quDFAfd8eANuul+BdVeXUkb1qV1VioHV2VaUS2fct1P/liExt6PAjiAwfaONE9n2r6X81IlP4hu12cCIjBto4kQkVbL9bXhYZ7+wuamRPOGprd4nHzOxNhJDAFe8eRdl6+3N3uMsLH1fnOq0aRFYSCq8IVTWjTxCXpfRZsarwNE50hYJUvux0v0YRqkLWQC5uGoHugkF8R2H8OY2KUDpD88pQqmqBanRJ60lozRBIJb2U/JHSN0IvdcggIqzY01qQYn8B8+Z+b/Rs3j5yN3fe1ePJXr+EgKbEupNFpjg3yq30lCVyMgWyvgK5ntpTmoFXlpxNE6FCKjT23RH4SENnPfABBj4Gvi8JPmXz4KN5iWuAD7ww8DHwfUnw6ZsHX3HhkUrgG7Kdj4HvS4LPEDYPPppRuQ74mM7HwPc1wSdvHnw0Y3tNAx1fYKDLMpNd8iiwB/DT0ccEZOfRz+Bmu9LCXN2Wj8/b9+PE2NlPsWchX1Y+8CMzcvz4C43SEMvVy0hoWH+vrJh1nRROzKCMuR9bqRdBpcJ6WZf+BHik8R1bImPeii4fkY1YVtEuGE3isYvjcslw74ICNI1DcvMh32Xq5BdrpqEbaFiFIcoph6ztgsL6chh447z2or5d5xw8+PrRXRCNHo8+9D35blIWiJvvfcTkFCan1EjE0i1AT8Tq64qs1NtiCrcSTkzbHGVNJynRTQaFDbQhplDRRDNN40JA4JjesNDJhgQIZLsyN9uWNzPLuprytnSaFZ0iD2oUcRBPfWhtnkkr5PXJxXX87Q5UtwJr9FFB+EKnLXGQlvhMlwtpy72mbSyIhm4+WSuF3GJ01Q3k5GJ6Fk61G/36Y3R2c/Lr+O3gb4kzNJyYHlU2t+YzHMvlwbD/I2aX8Nf0f//NJoqfCfCDJLQlvjUf3ZJep3jgkwvzL42veHERIjd37dWMQRhxcP3MaApF6yX3Weak6Ja3ZIbjizI/X2LeBRGkFA6+vuV4Q/KTfjAZmV4ypDg/F9Mnl5BafDqjtvQa3IVnRBNfTHWZ+ZUogIPFlZbSb5qR7Zwi/Df0a978wEYfLBsLvkv/nwOHi8ecg4NLaAq5r5/pEhy2jqKizJcw/8t/uSe1geUHM6bGRSPH+ueBMHk8x3MiJ50f/N7cWpbel3sc5L6B6ydFqHKTYzvhxDU/0ttdB14Q+f9zxhM/iEwvoiqL+ep/qHyUqYBzoi9QATfV9K6ePN8s6Xdp3qZaUYhfVBzkdY3cabosWCJhEkXzXE40eU8zJFxDWFryslifrZviJ2DVZdMto60Uv8/x9cn+m/Tpvh79fFH3PVd4ftxMkNUAzBj6kz94cmL+CcKo0DrTWazV4uyXCbfiRF1ECVakmPxoYoVYYr+pKlZID4NRpOiHF9rRz+OrofJx8dcr00wPX6Yzhj8rvTMGCYCYesrU02rq6SbaVqgCpex9mt/WtpxOBVQF5fQ71R5Dd/LGhf6wKvjEOOsMET+7CHaNW/Pi2On3w/4u5Fn2fVne757vu8D0ZkmKjFcyXrm9vFLBevwIZI6AoFOYpYD5fpowSyqqShJ/D8Bgpl0y+YNhaqsxhfXdkWkVKjrClC7tSsd73Mu97Z5N/wxfuD+TP2US/dXU9CKH+ZoYmLbV1ySIPQ31g+i06hRduZuogPqO7iYN0is+z/Ia/U3Uif6f9jepBOUbPEn5XbmcqOtRHAjNXE7M5fR9XU6omLSVLqdK8WV1/VFZMzVDSsPg5p9UFWmntKUaPLgEgQPZTkzZ1aPVyvbbvKPrr3n8dMtxu4+KfjM5vdR3P+8v6jq6oHQkyHixR4LBdlmyEqs8Kgh8Q2tZ9kR4cMImvF5YL0RDbtfrdWoD1/kZwbXfG4YnL6NBeDCuWav3K1UFmSE9xxuep+NJ7rAQVVtiDxYlrNaH2DBiU8SLhuADtVWXVVGo39Mp+bbrI2Dk2yKLRv0QjTvgiMqSgVojX436PW2R71/1RP5zcCiFZ88OGINdh5teUrjvj6WKQSPZkkgiORR3dH0nLqVHlcr+i7/6nx9Lno53bY3gE8+/JzmZFD1OrjADGDOAVezojkWYbMTSzOFOUiHdIpHgkY7yxaiMoMQpem6OgX04U6MY0BjQts1tQ4JJ2DSYKnSGaNHMvJ5ZFrAagoJEzrJOEefaMDFTJ5k0aWImZgeE5LSvkFG63HhMNVi3MvlYW0BBJye/K3sydfJL2rzvTR3XdrzhbWgOwc0sE5htGmzT2PJNQ6SwM0Fe56ZBZuznOmYGUyt2gjA4MTh9DThpm4aTRsDJtqK5U+gJvisZgba8ARcKtMU9p74/ScD0DKLoI7GSmdPIxx3adVKQehri9Fni8ilcxbyThpplJCecB/HSlOiI1b00opZ8ZEVbHpby37hDGOaVx+O21uhqIUtyyKVPjt+fVJwpvF0QlJL7u7ElksU+FpURQDB2oghKhdeROWRbGNvCtn8Lk1KtHdnCKHWzO9vCjE3sUWnoQPp7lYo5yL6WqL35fS1pooo3XMX6qjaNPKA7Nqp6o1bNmlGxmuu1N5WsbAQ6kKRjAxVscrV3HuyBJX7JVlJ+f0duKZ7YSwgszIKBUqZwn2BURIm5Db6gozsprRs8rRmD0BVXqNLhYm1zg9FG2oBgY3NDujE2NzeoyY7W9ryruXmOQn2/r9nhvXH/oQ4n/qNlliUT/Dq4ZiIZE8mqi2R9HkhApYlkPNB5XW8JQjIWZifTMnLonXA6AhHJXxZZbmZk/gEvUydgGW4MUFuq46hojJFMc5V2lZFDBRTpKp2b6eJQ+SQePKkc6/XDyQ4lXJvhiuFq63BFi+dZK67qtY2l5jlgdXAblrptUoG3WTmtvE2gbPPO27nLJOUtCWTlBCwAVU21nLrmb2IkRZHRkdqrnUud2HptZisQ5TbFS1csFN3jBTmPIA5yP0laBqL4qLJxbCmBS1tG4AhRSrrQkLx1rHd3xTyDtqi7xIE/MsNENbBjNYGkergSpzEtN41NqlbtHifsQgSQFE8SWynCVy57H6d4YRaUlH+vTG5oIBsnYGTSSjl8xXp9vBeMU0V9tbWr0+GnoDyVmWCu7/+czsoOnSX9TpmUy6TcqlKurQDdlmlSri72JbWtNid4HlcqvCL1USRyn0gLu60i5FLxVMHa+0WTrwqXa0v2bA2LR1DkhjKppiwZaJ3l4qhEVlLYipn7GMPearMEVhhGoQW5dmU/p4KJNEssJCDgQu4XJzowKDEobR+UUFe3QgtwXSuUSlIwdicTF0ogDEwMTF8CTCrNDbVWMJXYbg7f40RzBiUGpS8BJVpLr3TctUCJTLxYRSnfdkWYE3i8bjrW36G6+ZovH6g98zW1BleFsMJ8r85c9kodL2KZk4RMhbHzR9TA5PJqZoXUk/cVlm0I20NlOHE0rWaD1fiSuqpmgxmIZKPlajY0Em7XHrj1rAdnGE17L+EDVa1w1GDZ6AlolGXDGh8l0hi1BVGjckX52pNEbaLZHaMoSiqKHsG/b5Jj9/xgCH91+zb8N32io8KykgW9m/pBeUel7GOUd+G46I3r+4G9qFzKvSelP3fmBUIpd3yQd8zKkULqA7SPLy5SPjkrRwHI8+E/8EYbbHaeMk5omW727QJx4YO8ACc3vR87+0GedTxrxH36/pi4FFqB77pcLI/HFVQdK1pUOJ0E/rszjgvdLO6Hc+l4MaXg47izskLcJwh84qI3HQM4NDdwhtMAFF5GirzSPh6Yc5MYfkMQr6vjxX5K6qW5D5NaGpa4KYeKudyK34dV+VKMeGHifYQX43wofgYCHsrK/xV8Qzgy7Zjlzmlg/l/Szhv/RLVb69w1f/yYq5ff3XenATGZ/SBm2wsCyV2yfA8CJSQXYAj3tRkRE1dGU4DgJ3fJ8WKhnySyuPYx7f4QTByTOGsH/gSZnPyrQD44u05/0exq8Rtn9xS+enZH8Rxkt5RMRnZPwaxk1/0YPxEJ/+yGwvlb3IFPZMI8c0T/agY/OC5/PiH0+lvLPLi1gPEjca7x9pPtPpNp4Ca7j23BfyIQjMPc3lOyyST18uhfyWff6kb4d769vfXepORbIWjgLn0UlzE/mo0oHlkQVDtxM7tkBOpbFG962VO8TO3iOSl7wPiDyeOFcRlAMzk3n5fVHmoK13DVh3r1LRN+6mg2FuWZlq2c7VhhNKzzFFRxxXaGTmS6ELPhrIzIzJJ1NLOmHM2yscOCJyueHfhkbqfPdeoMgPVhuVQCW/Z0fsM584eTXlxLklgpTIVI/fWeH/OVZXa/BY+4mEbz3LPZedsM/l2k7AsqsnwcEhsmwQKxVosVKmzFWIQJ+pwgkdYiSaCU6RBaSXKm6WwSMb+tpTCjIcfaTmnIccPw5k0FjVDjZDGDydKA1Ebp1lQVTk+sfktriKwrL1uVexpvLH7QGFNBE3u5i4amNdOcVaknoCOLYrX877ZMHiUO9bjj9pK6G18x7rSMi7QRd8pLGLGkg69IkWgoRrpwrQadUqemxE8MKWQfznpcE5H5tphvq2IF5fptrqA2aDtgAW94DZhqv63AVFFGA/8NkZRqqNlXcldCTXkqwN3sNCHIUmGJ35RoS/CW25lawWDLYNsVbFuBJpoYqRlkYzohrYyBQFNZHZri5FgOzp8eoteDp5v7Q9HwT37XTIxMfETIRBId6tIiIhR3ZxNNZOXkx1/AvLnfGz2bt4/czZ139Xiy10/FgC3xXakCqokKfNMGSpqGjmR05NAkvkdt16FJJdZ6CZMrEmshbW0JzRAr0LQhkc4vGag9nY26qqR08D+9qmj8jK42jJ/R+SUDdbyqjeKevu+qojq0LjW0sOj8koE6XlWyqGmX4kJqhOQSe3BmiBR6cWZdm0niW0MoGC9uLAeoBtFvWpJ6hr6w8uktUQ48DPzYrbe4HepWozPfjg1ph/8P7V1bl6M2tv4t56HWSh7shbjz2LeayZrOdE5qJjlzXs7CIFeRxsaNcVVXfv2RMMJoS1wN2K6oJpMYIcsg7W9r33VnfNh8/1vq755+TkIc3+la+P3O+Hinkz/TI/+hLa9Fi2aYx5bHNAqPbejU8BD9iYtGrWg9RCHecx2zJImzaMc3Bsl2i4OMa/PTNHnhu62TmP/Vnf+IhYaHwI/F1t+jMHs6trq6c2r/O44en9gvI7t4443POhdvsn/yw+Sl0mR8ujM+pEmSHT9tvn/AMZ09Ni9/Rr/96/fXDY78+JP3+btx8H4yFsfB7vt8pXyFFG+zcYcu1vLZjw/FfPk4MHbJnfHuHvvZIcVf1j9tM5zifVbMQvbKpjZNDtsQ0+G1O+P9y1OU4YedH9C7L4SaSNtTtonJFSIf91t/96/klyTKX4G27OjnfHWt9+QfbUne84N2Z5GhP+TXOrg2wLUJri1wbYNrB1y74Nrjr+kVeSb+2gDXFrh2wLVXGZ++HwLvh8D7IfB+CLwfAu+HwPsh8H4IvN/pGoH3Q+D9EHg/BN4Pnd6P/GO8X0dx/CGJkzQnDmPtBjgI6MJnafIVV+6sXMu0KMU8pn4YEZKu3MO+vbJtcq8jyRfQeMZphr9XAF9A4G842eAsfSVdGEcz3eNXCn7mesUQLyfmgLwC8U8VxmAUbX7Bjx7LoU+YIx8K2PWAoFUPwV/SZEfe7FUhTyGvB/LWQSBHnmEbnhHOiC6HYPmy6LJbsJOk2VPymGz9+HOS7Ap8/IGz7LUQZfxDlvB4wtvwHRVMyOUqToKvx6b7iD5YPib+HmX/Qz8vLcssrv9Drhd00Y+XH79X+n58rVz8gtOIvDpOi7Z+S7VPDmmAG/oVYg8OOalJXNAUx34WPfNClGx1iq8e2UtJCEjTOEIwEFjgzE8fcVZ8C6xx+RjDl92pZ6oPmZ/hDd4qeUZx1V5cda3LuWpIRBZrEpmFgce2RC7qzslFXQFOAngqXDGI/f0+CiDXJA9ScEV2+Z/qvRNLzK9KnrhlSqVLrvw0KK7oPR6we8JTMvYMCXlW1lawZsSz5gpj1hq58sgcuFC5jgywXS5s5dQVorAkNMHazmToumUDhu7xQxzfW2DowkAL03C4kRamPevW4Elo2Y7JbL0Po2fy8THL1/zYtE7yZz/Ruf3tkLAbi31Oiu9IB4R2349fK+6zgX746f5Hat047j1P/v4k0x9/gbzD8Uf4H16lsIV05B4Q4I/wkoxHnB9Hj1sKR7zNxYn3lONEgR+/K25sojCkX39PtPvoT38VM1zxOxllhrG/wvF7P/j6mGOO54vkrztMGCuB3K+0ABXPcVc1sshkTSpN6cxYcyZ1WxxFQlklWa/3eBJaZL8kk1M+JsGBiikPhxVZ92gfJVslsSiJ5bolluKuo3OA0h3vwmogQgLQQmpszjkyERFEcYZsuw/F5UlH/HRqfX+2HtlFXum3QJNrdYzdsnVljLOvECAM5M6rHiJRfj3fLFCKlnZFtGxR+E9CsV0Vik9isFwortmOQ7z2D7mwwEP+1E5FjXt/E8V0pL/j+BlTiaC4UbwaQsW1+HWpkH8yflwhxTpoaXmVP7DRW8vqTccZSM4Ob+1Atj4vORv1YsQ6SZkkIWVynykpTSc4yuiqlgBFgutKTfpYUqW21AzmEmAKijGBjMnUwBlkzAYf32f86Me/4TRaR2ShlXSppMtbkC4R4tmtI3Ey6Pac0qXow/vBj2Oq+B+lzCgkU3AEWW4uKFr3+wOF16klxWtMZiugAROn1iAhc0PDHBRAFUDrARr6+6ecGPLVZsEqWiNE60Atcc2v16E3qWve5ZVG5OkirB2J0sh8juPD2q7fOWtlKoVJhckTJt8ADO2OMJxud21w5n54wsHXnzFR1kOFRIXE7uJraGE3NGWgdPWVkQNMAj7PCTXHmRB8lsGriYYuQZ/MzWdOhr5+vt9kh7c8sqqKPZlCjfx5nhAzwwkvvM+Xt5Mex6/aSUvfb0c/cb+1uxL/q+nwXlNDG+h/FQaywUBT26qk/ld/Q/lxYfKpXiUvMdWUtgRCe/xlXd585LpewiUqoWutwTY7wFWKxvSVGjpb+DMpcWEAY+ds3lIWiF8rCKjQLiUL3JYpS2fZNOV+Lwn1Mue0ZTGGIImPWbHgkxJ10f7LDqeEm1BPGdlvw/fVuJZVbbDKDN7VkzvOvesa6dUpgqzdBXYkI5ZthGSEVe4WFQ+gZvE+wKWml5FytcFx5Oq8iOHWODQ0TcgwmUT/tdKhYLG1244BAtB0z2yUcyzTaOpPPhyfoNuvGTrw13QVtywTAByBiZlY3GLSekfxnQW0V4DEI/FynucCJ4jHSDtCpJH5VZZQhoLW+OhbeVU/wLUGiDIxpxWZXYE5U4Sox8uFhjsQMmUwSKmhGPNCpsGbnouZ0fbxXaBkTCVj9rE3+dhdS2VMO3Dxai23NznYt3H/Pb27/GmCSD1kOqL8ac9p7WUbbU0+ZID3exWwoBDYH4FBgK3c+jJ/WqQJfCqWBGTmrCCTBCzcfdLvXPfONWjYQgm5jR/i92IC8hwK3MCEIU6J2yZbLDEXd1DiriBTiAkirYIg45mzqWj16g7QmxbIAsJbjRQ4mvAm+uxrKPuwx2Enz+FEod1daPAEAZNTe9qUntlVlq6U2tmYcDJcm4bNc09mFh+qr9QbqiVmAHdpOcjU3eO/bd53gixrqVX+9JkVFdEx3jtvTavLW6MkyOHlyd//incJzZWoyVy7VhQVnBzdDVP6cbxKXqrgqdrsDIPbm5b6qWE6m10P9CBL4+1gi3G8QI500B7QsqEbyRoYfO9YxtLjjWzIcZfevG5NXXSTn4wGyXadpBt/G2CGIKW4KMXlBhQXxwIglZkHZq1EoIvhAyXOgiPOitjp73saWr1Kkhj7KnNWIW5cxLFIkhiv89IB1fCl6dDIJyYhWVqtDI36VGhkMJdGSOM9nSIFPAW8zsDDdqiFWAY8z7ORa8mt5KHlGN6U2yAt41UFnu1IojSMcbbBZPUHLYOqa/ExMfPjHfPYNiOx+gYFdK9RFytVp55u3FaLxhAtb2QrSNfKPowquqpxBGAmy3BlCpfOjCIzWEFMIAXaMFu/ezAEP5AFN6bBShq5LIDTZ/fS63evJ39fs4HNkDTdkS6NOkY2IOvZdPUzzWrM5sAbgE1QIWK66FBDdNsLa0eDVnZn7hK9J1fnN48FMkSxzZBVQ7FgrNB4cpvo/6kP8ku4EL/9tQT4jWwd1Jaay+8dnus02whPZkC3j4NKVuWzT8hgV+5g9N1lNMTsaOeWOtAtangs/3i1xfTspWUYOrtrgPpvXXcTA+TK0HE9F5X/0zvtLX3jEC1QyMEqim90fUrQvy4OcQZ+KXrKRBi3FHW8jtjA/ZO/o10Kvkzv1rhvO1fj0a/a3ca8aONJmvOECEL5z4S5R12hb4PywjZMf5vY2m80pKTSgjtXLzky7I8gOSIPAbPUebQyPeczxRSHcvV+joI02eP0OQpUvQ1lu7oRN43Gu2NlKfuzxpeZoigxrrzfHtdVU5p/aBqBNHHAmNW61DVhZ6JoMHETtvjDHmxQh6VmDxbHccGhEd2KSo62GzSE+z8k6+yFLKDaCdROcCM7AY8lxHTvy20FYjx/k5pZMPbb0DFH1vuuREsTaIitWG8tDYS9O/OmPpqikbPinA5iP81nSZUQUmx+EJvvUEJoMjbPjuUsk5slEr+LRBahu/Xc4Dw231ArL0/bCg+pHyusKazdOtYM4+JYk8X9NzjghAB2mTBztn5+BTXpW47j6xEZMtRO0I8IL1V7QxT5bD5JwHAHBuPbLOm/zN3vJvP19cI5Ou8AMIqKlFKv2mgCZVOMP7XZrwndZkqgVJvcDW5yoCqgI9vkjDk3OVmdwLdhN7hNqwDixaCyvlLvfC0w0NxHw7L5UIR1nYQ1uLKpIKjDgaYmLF0R1lUTFjNFn01YcKDeQu3opNfgw/r7YeNvP9E7RDYNVYlUJZoOEE0vWSLV4tFnMrbKiaa6RDSdKnqaZQNJ9UACr8ckfVX1iBXYbhJsvO/PkDoWZGCbyn9sNXjxoNFF4U3h7bbxZrL6WZfDW4Mj75+HDU5pZLJCm0LbW0Cb2xFtyJsKbV1ceTdQnlsaHiWPvKWF7qtONbTUzLK63QXr3DOOeiXWC53F+zJ7qwU4fudy2iDpxrDBQFObxfodIHVLZrHqqVP02f44bHaVy34EejV0B3K0PHcg3VktA43kCtZByVH2O5O6gplNQhH1bRK1PTC+QSBqONBURF38zqREzTYGRdQ3QtQgr54FpvUn6paBRiNqR/o70xK1mOypiPqaiRowWG2o2As5NRxoKk6tzRCJxhI8a4+oiaN9puwzyj5zW/aZBfDYm0wn506jcUTmAzes0ewzLC52zETmapkRG5QP11yv1RTSNdz5eGZAp4MrRrCvtOYvM5412rFmZ+404JQxE1rUu2408LQyb94sN1tWyqtevrm1Mj6NdfhpA7nB6qXw2PI4ZLWhqgSN0Rk0I+PDGhke88hrhqZz5O9A62JXGCFvJnkN1qD05pDXGpxq+bka3w5RisOPfuaL4J2+apAMn7VAFoHbEQglpxqj6BByebF7oY9CzkjjJRB4KMV0RYls0RNUJZHf8mZWozFlhRe/HcLs2OHf20gJ+krQbxL0uSL1sPI2Ci3syKR+z3YMf0qp3zL5CollMlpV6mcG9+oWBou+jSf1NyR6/ZLSeqjZ6z+ibahK3CvU9S5xf0mg8cmZjiEB2qyHvdr93GhS5YXcL2QXWoXXT4OKCZRHYreKwZn01Mm2GqD91qxdyL8uq6wNit66Q62yDjhJwYWkNbG27MhcXEehKoyehdLXRK76kGzIqkb7ZPslr4OdpKIUVimJXRlFoGQC02w6Ib5GbT9a9NZ5PaqugjpD5dmCOj2ATmfDjVtYHnx/OsGcQVF+sptIHEoYUMLATQgDgKWblxYGWMr5XyoWsox87GKlHFnIuLLq4LbGc3gHUlrnIiTAjeTMnGHuNGRjfklz/6zaJtQ2cRMuWeZZhfFuFZbA4jrn2SRk5UT7nXnt1Rx5XZX6Hw6rAqfaD2i5/OePww69Vjj+a+O4yeJ6RaD2Lg3qhhzPd0RyUzumQtrN7Jg6n2NmGSK4yqrc86BLdtCT2jIVkK8SyFe6Zep86LrFXIQcqiX18aZDdb/M0ba49n7zdmmLQZm/O7AGHTs5tW6cqQ0E46ZE3tbalZE2AFBo4FK2jHNu2BgYd9IwMVc0HDXRRYdYzoqlkatkPLOlkcX+XgntsWAxdnDRUEPjAoSrswqAM7ERV2YL+YuxkQXSwPmqQ/PkFyCQWxho6tXsF8j9VleT9wFYXrfDwNpXEw409Wo2RPzmiVm/4TRaRzgV1lipQ0oduk67BoBmwZ4udrKY2xAx/UsaPSuQKZDdOshk5RfnBVk/VbU1KAMEQjSld92kBAMXkGX+9E5fbxlnavGlX2DumMs+5LiefqTSmorH5r79fB7zyoiPF3qdgaoQzJHz5tWE2M+NpAm1H9N5spJUbSRjn/Z0LUTCLGQ1i9udQ/EmcaQ5naikd8ImeF72O5Na4lgStzzodxvgXaaOeVLi5SDx8qLHPIECqEgS9DvrMU9MwK2Lrie8faugpqB2g1CrcQ5cDmoNYckPT36gTudVMLtBmIEdjUlul4PZuF65a8piuUl9Bx4DZuqgmPvQY8CEgS5+DJg3rgtRkd7YpGcP9GYKpAcHujzpyYJMFeldDelZ2sAy7pD0hIEuT3oyW/Ux9PggBCqLGduLOKtEKh9UmLKSgPtLwBdM5HYc4Cky3aUlysCzpnIjTWbC74NJrDCpMPl2MOlcAyZFn0YvTOJvCpMKk28Gk452DZgU3R+9MPmo9kmFyTeESeMaMCnLwumDSaVPKky+IUza14DJ88u+IFSTxE7+628o3mLxKg3X5NvZ6w6X7fx3YP3Hxkz3aQtAVi2ahFC0/K/ellotDJkmmZ9FCf1Br39g2/l1IstTA1hMmmkurXpaqksecvhRdLT0uD+Q5TtdzcgyKa2jOTzZ4S1PGJLF9I4nWlQDablkeb4Q7pAw2vq4STFKl4VMcmmlY4dMtkbqlgL0tZjdwZl8rmZAQu5seNfAUFa3EPC+8ZUOOCjNLTKzJ42vLPP82kqsK7FJiU19MneCQJ65Y9iGZ4QTik0LIv4AuUkSieLNKzV1qBGSpZG/fcx5eguYKkLCIpcSrmjyXZuxWTb7lkxqZYXGqtMP499HnH4xd+rhH18e6O9HRFdMg6fXDiIiP5uF47w69UVTd1FSts7nJI/3WCeHj9Yq68hX1mhmxaLeebzf+VupYhEcJ54qFenj6gfKc8lH9p8f8/nTcu1jXUQi0K7VYAR2v6Kd6IV2Utw4/ii9s03STX5UAbv37FPIZguyrH52IHpBS7/A39V1eSnmmN40tePKazHOCAEtyOsH0fZR/GaS7p78bTGkfmyjZLsoKJA2l0TI7pGtPKclelNjr5rfyVIy2JqMz34pp+YjTSQv/M+8JGnIP1g5FnmX1deIDEfHPGJmUVAV129VKkILsI66ZR2XsPrhx8qThjhI0pwFLrKnKPi6xfvi8aJtlEVsfmDfylo29qs8DtdvHSd+BicnjPa72H9l3eOI3NC1/4o2uyTN/G0m1XSr5dp4IavUX49EX6O/Xuoojn4qxohJpa0JgFZH7eN0HoLmOuK+NGVJDQOIJcOTAvl8L8cTVJsajeQ0VL3m3VdrQaB+lDvHscsINaSFffp2yHGsjl1Wqssg1eVaKpbaSFLbkGWvzCOVIZlbtH4zepu1kHi+PbhIGah1KIxz8fhNhBoSk94nSYz9bZ6apDir4qw3xlktUAwa2SJrdSWslUVvT8BaRU9aCbaPeJ1rHkqIUVC7PaiBCs2y86xmhlrDsQb/fSBKeqR8HApjN+XjQPrS4Q3triyvfV43B+qQe/Y23BwOoW04/ebF/RxIdDP91f0ctoATTxNxMq+rA4nuKOXqUK6O8sObdXXwstZVujo6hVr19YOwCLClZ7CIsOM3bcu4a4oDoxe/4DQijIdS9iSBW2zTbq+xyASMrk4WInsh4KtgzoKZKuyB8okIDT0uXYexWXCgOT0u4KQNz5zF49KvEOkt1RXImUCFbfxx2Owql/0AdyVGa90A1QL0gdGPOiw7AAcaq7qkZUl/Z1qq1mXp0Yqqr5aqQVTv4DNGdKtloNGo2pH+zsRULXrHf2jVMAYJqUIKxyf9znXvaJ0vqXj3I/3prwkVYaPtQ/CEN4WUWjQWJV2LO8ocp8xxHQ8oZMaIGK+zqzKHL6DfF7ENlUviktiJpjNAsE1OZg//p7/B4adcTVP4U/i7CZeTiDF0eYx1OEJwTFv45SYfgQpnyBAn35XIhNPZwXXRtQ7s4BHei6txRlJou4VbalWfbk3A8W3IFddkXqO33uCDfX+I4jDaPv577z/if+U5vmrnUTvPLe48uoT5IXPenafxxMP0EFAHjkKZQtkNo8y5PMpEX3sYZEc/1/+RKRAD9tqPP+Lxd+rzOUl2Bcb+wFn2Wpjx/EOWQNd9n2yepcP5sVq8WP0Wt0PBgLuObicmOHd3O+lO8ZUzzY2gGMbgE5pABAIMdJvRd7TQ4SuZjU8O+xclfmu7l6F20v5TmTvFeIpTCQOcbqIsI8LlQ+Y/qi1PbXk3uuUZjA1yW54965bnXWJPY9ET7HOX+jncPljo2tV9sDgJE56aCQ7HnCH4gi1y6952bg6TbfJ8v/ceVBZ44AcyXDBQzZ7Ye6MCD2xoLTtPc/+Jdh6GtSYjXx4mxVjI7wV4dZ7GJ+MiLr8dy84K1yVmIDQZD2EEf70zBujIMC89Y6Kz5spmjDc1yo7KnnnGGtIYf/r4oGRAJQP2y/LIC/5dIMvAgMcWSdi3zLMynQhoiJ6VU9Kin/m/4m+HKFUJiwpmt6RqgdPaDVtiXZw3k8oQvWVH6yJNWigi84vCt9vVfncnCZxXcFNwuw24eZeHW79D86SJKD1q9vab2nYLORN4ryRKd6Gzyv1MbhlaMmWhe2CkieJ0xUe25wjUNTrUBe1Hd9cUgd6PzK+FeIHZ1QUjdCZdT2seqIZyx6Ot+izTzpX6WQZjU1JfIfKHVPzvWn+frvVnSqlD4626FeGHZFtL3yI9d6XdEsFnl96n2XLAlLLQxyFpnrUtoO13wvL7LBpGGovy+6+f1Un3SoAdJMBe9KR7kBHHpJuLnXSPWJ7rG0xju0khwgFhE5apD5Mi4JkQwkCXLxrIUvJkLF6ZAxV7vz37BKjsY8lCemUerensEwz1UjEKx4RX0twQhTCFsBtBGO9kt2ThvDMjrMFn/G63i4kYozCmMHa7GLNlKZEzY6zBefzpO837VwhTCLtdhMnOGWO640wI63fa5dss14+AK8dm7rHeJnzgqBQGmtqEb/ZzS1YTfsZyVYrZQ2H1Shqb3VzTrh9RtYdQs13lesgPUs3QGkWgzpsxVY0iYKwyvTlcn2Y/1+fbZFWQwQw9EgoO1LWc1XirWe9sXAGn4clFuDr5BwfVpqpWLBUKUeU9nrKsqEN7T/55MaJwmaSP5GO8Csm/2RPd1xYjBa9QNqSwRfY6K+m7LBbZy2KVpOGp3u3ie1Ew9u5YVlbS41XskRexJfSHZV8/3ZR8M68mgsX2/Vf8Ihssb5eMsw/8uPx1JNx4FW+QyWX9Qeur2Bptg6fFn0myEW7tgzSJ4wWV9mnd3SjITnVxd2nyPdrQ8kWn/mQuoy2lFDhOnNeQWvyJ00S4uT1sMBl6sY4eDymuvc2VBpZ9PfWP5jnYIaXrGm2p61V66+iWlRYUFjpVUHGUimE/UNLN8ujC0A1G06mUoeUg0Igk/mPNL+yf/JBy4iMNHP9fnIcOv9Gta59ex8enzL659yo+pMJkrlLKuE8EUrkVJFsClL24AI9kw8uJWLjzdMAcfiq3oi3VHkQioxWzZf33eBf5QmuYJjtucqqvQvhgfl/+ouXd+jcu+9S+etmjfg7KLg2TUfapmZXyfkLxk4nwLzvUzt+pB5zIgnlWiP7ZT39YLKrtBaH331qOgbg1jJ+LyaXbT7n77A5pXOw+YUD+leF0s6/sPQ2bTFEcUf6TWvmrcQZ/8+XlZfliFL9KQENE5Xta/v4+H1G/Dwio7milqmIE6VvUb3rlU3w7hPVz0vSA9IvF4+1pzUe/aDvOy3kPdSBreO5DPSeBT751n48leaa2lQujYJ899nkKqbgSRo9R5scEs/u8gEtuJ7vPbTX3eV77vubJ6meHPFk86XN9jtY4eA1iKYG1PV0ycM6Sx92SFg4VVgpoFizSYJtQvtJmVTzxiC+H7Jhrl7eHfvr1C2NfRPHVaFbyvghzoFowqEo5nSkKyP+nPMuKImMgSYEUNKExSkwXHy0ZnFkVjgYH566xiD4reFJWP+lWtv9SUTDSgF9gd2k9pmDqxPXOhwbMleFum0tH805/fBgvcvRl5abnOMMUbdtYIn5knVVFmEvVZqq9zItCjxNvKXjydkJvGX8ZI/RWMwDBsJjZM6mSjyRZmPz3Jwy8ZfXNa6jkA5l5Wu5SOduUs61jhW3oeXMDLPe8rVyLpukQ0Sv1wwifIE7uYd9eTRqcqzNLJCtApYuCkDS5zJxMDmJJ2zVQ/C1vFkRiKVphp0LvIl3+nSsoCs0KzcPQfLmzFHVwRJTjiccoIlZThEOsNRliO9TuFn1T3PwK5ymyqiyTpopeiV/Lcfg8JscBmQ+dw9+Ba9K17E7Cdl8XKAyzd4uE4GldoJYYDzUhmd0mJYHtvCSI3pTktAw0udo2KDTnr7XY4FAm20MDF9ttGWjyxe4XuPPXXGwQ+2BbQxe7ZaDJF3tQJMtgaYFZMxeFvbm0aKIlzTpsOYr0fNvgtdAPyMJ07KE7g+nCI6JtGy0992QtdKciKOfDh/39q4v936x//GQ8b/537fzJLE8XrBzeXjG11jBdY2t3WuiyHwlWrc7SKbQ6kurZifUg1s9wuvGe00hlDZxu1DsWjTVE4j/5+0/PUYi3wUWMxyIlNIHkfNsvYaOmhnh9BY3CoRYGr9gawFEwivW3ifyleRZ1S6tsRcpWVJtmsdKwgW2ZeUjDrua6U/q2EajIKyuCWcZcj51mIYWXKNyr2nwKbG8TbKyOyQRgI5dpQiPrTlsfof2nn5OQyhef/h8= \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/aec3po.overview.html b/src/aec3po.overview.html index 2a95940..5854b5e 100644 --- a/src/aec3po.overview.html +++ b/src/aec3po.overview.html @@ -48,10 +48,22 @@ 8. **Module 8: ComplianceVerificationReport**: An automatically generated report that checks if all the assigned compliance requirements (typically Checks) have been met. - Classes: _ComplianceVerificationReport_, _result_, _ValidationResult_,_Severity_, _etc_. - Properties: _conforms_, _focus_, _resultMessage_, _resultSeverity_, _Info_, _Violation_, _Severity_,_etc._ - -9. **Module 9: Model**: A model representing part or the entirety of a site, building, or piece of infrastructure. + +9. **Module 9: Design**: This AEC3PO module describes descriptions of some design of features of interest, in terms of structure, geometry, and function. + - Classes: _Design_, _PropertyDesign_. + - Properties: _hasDesign_. + +10. **Module 10: Legal Verifier**: This AEC3PO module defines state and private verifiers. + - Classes: _LegalVerifier_, _PrivateVerifier_, _StateVerifier_. + - Properties: _hasDesign_. + +11. **Module 11: Model**: A model representing part or the entirety of a site, building, or piece of infrastructure. - Classes: _Model_, _Phase_, _Element_, _Classification_ etc. - Properties: _name_, _description_, _location_, _locationCoverage_, _material_, _hasBuildingPhase_, _hasDimensions_, _hasElementPhase_, _hasClassification_, _etc._ + + 12. **Module 12: Table**: This AEC3PO module describes tables as representations of data in rows and columns. Tables are described by captions. + - Classes: _Container_, _Table_, _Column_, _Row_, _Cell_. + - Properties: _contains_, _isContainedIn_, _caption_. ### AEC3PO Alignments diff --git a/src/aec3po.overview.md b/src/aec3po.overview.md index 457de3f..cca09bf 100644 --- a/src/aec3po.overview.md +++ b/src/aec3po.overview.md @@ -8,44 +8,51 @@ It is organised into modules, comprising of classes and properties. The figure b Below is an overview of the core modules and their components: -1. **Document**:A document, of any kind, typically related to compliance and permitting. +1. **[Document](https://ci.mines-stetienne.fr/aec3po/document)**:A document, of any kind, typically related to compliance and permitting. - Classes: _Document_, _DocumentSubdivision_. - Properties: _hasPart_, _hasRequiredData_, _forDocument_, _hasPermittingStage_, _etc_. -2. **Statement**: A statement, of any kind, found in a document. +2. **[Statement](https://ci.mines-stetienne.fr/aec3po/statement)**: A statement, of any kind, found in a document. - Classes: _Statement_, _DefinitionStatement_, _CheckStatement_, _CheckListStatement_, _CategoryCheckStatement_, _CertificateCheckStatement_, _BooleanCheckStatement_, _NumericalCheckStatement_, _HumanEvaluatedCheckStatement_, _etc_. - Properties: _hasSubdivision_, _hasRequiredData_, _hasEvidence_, _hasDefinition_, _definitionOf_, _etc_. -3. **DataRequirement**: The data requirements that derive from a statement. These can describe any aspect of the building model or any type of property, physical or conceptual, associated with it. +3. **[DataRequirement](https://ci.mines-stetienne.fr/aec3po/data_requirement)**: The data requirements that derive from a statement. These can describe any aspect of the building model or any type of property, physical or conceptual, associated with it. - Classes: _DataRequirement_, _IDS_. - Properties: _hasFormat_, _etc_. -4. **Evidence**: The evidence that an actor in the compliance and permitting process needs to provide in order to prove that the requirements derived from a Statement have been met. +4. **[Evidence](https://ci.mines-stetienne.fr/aec3po/evidence)**: The evidence that an actor in the compliance and permitting process needs to provide in order to prove that the requirements derived from a Statement have been met. - Classes: _Evidence_. - Properties: _hasFormat_, _forDocument_, _etc_. -5. **CheckMethod**: Information that operationalizes Checks in documents. - - Classes: _CheckMethod_, _BooleanCheckMethod_, _ComponentCheckMethod_, _SHACLCheckMethod_, _ACCORDCheckMethod_, _FuncionCheckMethod_, _etc_. +5. **[CheckMethod](https://ci.mines-stetienne.fr/aec3po/check_method)**: Information that operationalizes Checks in documents. + - Classes: _CheckMethod_, _BooleanCheckMethod_, _ComponentCheckMethod_, _SHACLCheckMethod_, _CompositeCheckMethod_, _FuncionCheckMethod_, _etc_. - Properties: _hasUnit_, _hasTarget_, _operationalizes_, _operationalizedBy_, _etc_. -6. **FeatureOfInterest**: An element of a site, building, or piece of infrastructure that is of interest. Typically, this will be a building component that needs to be compliant to regulations, or be documented in the permitting process. +6. **[FeatureOfInterest](https://ci.mines-stetienne.fr/aec3po/feature_of_interest)**: An element of a site, building, or piece of infrastructure that is of interest. Typically, this will be a building component that needs to be compliant to regulations, or be documented in the permitting process. - Classes: _FeatureOfInterest_, _Property_, _PropertyKind_, _QuantityKind_, _etc_. - Properties: _hasProperty_, _hasQuantityKind_, _hasPropertyKind_, _hasDesign_, _hasContext_, _etc_. -7. **CheckingAct**: The act of checking an entity for compliance, and producing the respective report. +7. **[CheckingAct](https://ci.mines-stetienne.fr/aec3po/checking_act)**: The act of checking an entity for compliance, and producing the respective report. - Classes: _CheckingAct_, _ProcessVerifier_, _etc_. - Properties: _usedMethod_, _madeBy_, _hasReport_, _checks_, _etc_. -8. **ComplianceVerificationReport**: An automatically generated report that checks if all the assigned compliance requirements (typically Checks) have been met. -9. This will typically show the results of some `aec3po:ProcesVerifier` checking entities via some `aec3po:CheckingAct`. Entities may be validated or repudiated. - - Classes: _ConformanceReport_, _result_, _ValidationResult_,_Severity_, _etc_. +8. **[ComplianceVerificationReport](https://ci.mines-stetienne.fr/aec3po/conformance_report)**: An automatically generated report that checks if all the assigned compliance requirements (typically Checks) have been met. This will typically show the results of some `aec3po:ProcesVerifier` checking entities via some `aec3po:CheckingAct`. Entities may be validated or repudiated. + - Classes: _ComplianceverificationReport_, _result_, _ValidationResult_,_Severity_, _etc_. - Properties: _conforms_, _focus_, _resultMessage_, _resultSeverity_, _Info_, _Violation_, _Severity_,_etc._ -10. **Model**: A model representing part or the entirety of a site, building, or piece of infrastructure. Typically these will be Building Information Models. +9. **[Design](https://ci.mines-stetienne.fr/aec3po/design)**: This AEC3PO module describes descriptions of some design of features of interest, in terms of structure, geometry, and function. + - Classes: _Design_, _PropertyDesign_. + - Properties: _hasDesign_. + +10. **[Legal Verifier](https://ci.mines-stetienne.fr/aec3po/legal_verifier)**: This AEC3PO module defines state and private verifiers. + - Classes: _LegalVerifier_, _PrivateVerifier_, _StateVerifier_. + - Properties: _hasDesign_. + +11. **[Model](https://ci.mines-stetienne.fr/aec3po/model)**: A model representing part or the entirety of a site, building, or piece of infrastructure. Typically these will be Building Information Models. - Classes: _Model_, _Phase_, _Element_, _Classification_, _etc_. - Properties: _name_, _description_, _location_, _locationCoverage_, _material_, _hasBuildingPhase_, _hasDimensions_, _hasElementPhase_, _hasClassification_, _etc._ -11. **Table**:A table as representations of data in rows and columns. Tables are described by captions. +12. **[Table](https://ci.mines-stetienne.fr/aec3po/table)**:A table as representations of data in rows and columns. Tables are described by captions. - Classes: _Container_, _Table_, _Column_, _Row_, _Cell_. - Properties: _contains_, _isContainedIn_, _caption_. diff --git a/src/aec3po.ttl b/src/aec3po.ttl index a93df27..7c05e1f 100644 --- a/src/aec3po.ttl +++ b/src/aec3po.ttl @@ -124,13 +124,14 @@ aec3po:hasValue a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:comment "de facto used to link something (anything: property, property design, check, cell, column, ...) to a value, expressed as a literal."@en ; rdfs:isDefinedBy aec3po: ; skos:note "The value of the literal may be a XSD literal (boolean, integer, decimal, string), it may also use custom datatypes such as cdt:ucum"@en ; - rdfs:domain [ a owl:Class ; + rdfs:domain [ a owl:Class ; owl:unionOf ( aec3po:FeatureOfInterest aec3po:Property aec3po:CheckMethod) ] . aec3po:asText a owl:DatatypeProperty, owl:FunctionalProperty ; rdfs:label "as text"@en ; rdfs:comment "de facto used to link something (anything: property, statement, property design, check, cell, column, ...) to a literal string."@en ; rdfs:isDefinedBy aec3po: ; + skos:hiddenLabel "text" ; rdfs:range xsd:string. diff --git a/src/aec3po.yaml b/src/aec3po.yaml index c530f48..d791c0e 100644 --- a/src/aec3po.yaml +++ b/src/aec3po.yaml @@ -7,6 +7,9 @@ dct: http://purl.org/dc/terms/ dc: http://purl.org/dc/elements/1.1/ xsd: http://www.w3.org/2001/XMLSchema# + qudt: http://qudt.org/schema/qudt/ + unit: http://qudt.org/vocab/unit/ + fno: https://w3id.org/function/ontology# # dct metadata hasPart: {'@id': dct:hasPart, '@type': '@id'} identifier: dct:identifier @@ -19,4 +22,7 @@ title: dct:title relation: dct:relation references: dct:references + # external ontologies + executes: {'@id': fno:executes, '@type': '@id', '@base': https://data.accordproject.eu/functions } + hasUnit: {'@id': qudt:hasUnit, '@type': '@id', '@base': http://qudt.org/vocab/unit/ } # defined terms diff --git a/src/check_method.ttl b/src/check_method.ttl index 420a2ed..a127f7d 100644 --- a/src/check_method.ttl +++ b/src/check_method.ttl @@ -16,7 +16,7 @@ aec3po:check_method a owl:Ontology ; dct:description "The AEC3PO Check Method module describes pieces of information that operationalize check statements in documents."@en ; dct:modified "2023-05-26"^^xsd:date ; dct:title "AEC3PO: Check Method"@en ; - owl:imports aec3po:statement , aec3po:conformance_report ; + owl:imports aec3po:statement , aec3po:compliance_verification_report ; vann:preferredNamespacePrefix "aec3po" ; vann:preferredNamespaceUri "https://w3id.org/lbd/aec3po/" . @@ -102,8 +102,8 @@ aec3po:SWRLCheckMethod a owl:Class ; rdfs:isDefinedBy aec3po:check_method ; rdfs:subClassOf aec3po:DeclarativeCheckMethod . -aec3po:ACCORDCheckMethod a owl:Class ; - rdfs:label "ACCORD Check Method"@en ; +aec3po:CompositeCheckMethod a owl:Class ; + rdfs:label "Composite Check Method"@en ; rdfs:comment "A check implemented by grouping and nesting other checks using the ACCORD rule language. "@en ; rdfs:isDefinedBy aec3po:check_method ; rdfs:subClassOf aec3po:DeclarativeCheckMethod . diff --git a/src/checking_act.description.html b/src/checking_act.description.html index 5f14ceb..6473408 100644 --- a/src/checking_act.description.html +++ b/src/checking_act.description.html @@ -1,6 +1,6 @@

Description

-

The AEC3PO Checking Act module describes the act of checking some entities for something and generating a conformance report.

+

The AEC3PO Checking Act module describes the act of checking some entities for something and generating a compliance verification report.

Illustration of the core concepts in the CheckingAct module diff --git a/src/checking_act.ttl b/src/checking_act.ttl index 3452cd9..ce80bd1 100644 --- a/src/checking_act.ttl +++ b/src/checking_act.ttl @@ -14,7 +14,7 @@ aec3po:checking_act a owl:Ontology ; dct:description "The AEC3PO Checking Act module describes the act of checking some entities for something and generating a compliance verification report."@en ; dct:modified "2023-05-26"^^xsd:date ; dct:title "AEC3PO: Checking Act"@en ; - owl:imports aec3po:check_method , aec3po:conformance_report ; + owl:imports aec3po:check_method , aec3po:compliance_verification_report ; vann:preferredNamespacePrefix "aec3po" ; vann:preferredNamespaceUri "https://w3id.org/lbd/aec3po/" . @@ -39,7 +39,7 @@ aec3po:CheckingAct a owl:Class ; owl:someValuesFrom owl:Thing ; owl:onProperty aec3po:checked ], [ a owl:Restriction ; - owl:someValuesFrom aec3po:ConformanceReport ; + owl:someValuesFrom aec3po:ComplianceVerificationReport ; owl:onProperty aec3po:hasReport ], dul:Event . @@ -65,24 +65,15 @@ aec3po:checks a owl:ObjectProperty ; aec3po:hasReport a owl:ObjectProperty ; rdfs:label "has report"@en ; - rdfs:comment "Links a checking act to the resulting conformance report."@en ; + rdfs:comment "Links a checking act to the resulting compliance verification report."@en ; rdfs:domain aec3po:CheckingAct ; rdfs:isDefinedBy aec3po:checking_act ; - rdfs:range aec3po:ConformanceReport . - -## moved to Conformance_Report Module -#aec3po:ConformanceReport a owl:Class ; - #rdfs:label "Conformance Report"@en ; - # rdfs:comment """The class of conformance reports resulting from checking acts."""@en ; - # rdfs:isDefinedBy aec3po:checking_act ; - # rdfs:subClassOf [ a owl:Restriction ; - # owl:onProperty aec3po:conforms ; - # owl:cardinality 1 ] . + rdfs:range aec3po:ComplianceVerificationReport . #aec3po:conforms a owl:DatatypeProperty ; # rdfs:label "conforms"@en ; # rdfs:comment "True if the checking act did not produce any validation results, and false otherwise."@en ; - # rdfs:domain aec3po:ConformanceReport ; + # rdfs:domain aec3po:ComplianceVerificationeReport ; # rdfs:isDefinedBy aec3po:checking_act ; # rdfs:range xsd:boolean . diff --git a/src/conformance_report.contributors.html b/src/compliance_verification_report.contributors.html similarity index 100% rename from src/conformance_report.contributors.html rename to src/compliance_verification_report.contributors.html diff --git a/src/compliance_verification_report.description.html b/src/compliance_verification_report.description.html new file mode 100644 index 0000000..777dd40 --- /dev/null +++ b/src/compliance_verification_report.description.html @@ -0,0 +1,8 @@ +

Description

+ +

The AEC3PO Compliance Verification Report module describes results of some `aec3po:ProcesVerifier` checking some entity via a `aec3po:CheckingAct`.

+ +

+ Illustration of the core concepts in the Compliance Verification Report module +
Illustration of the core concepts in the Compliance Verification Report Module
+
diff --git a/src/compliance_verification_report.overview.md b/src/compliance_verification_report.overview.md new file mode 100644 index 0000000..57eab2a --- /dev/null +++ b/src/compliance_verification_report.overview.md @@ -0,0 +1,4 @@ +

Overview

+ +

This is an overview of the Compliance Verification Report module.

+ diff --git a/src/conformance_report.ttl b/src/compliance_verification_report.ttl similarity index 84% rename from src/conformance_report.ttl rename to src/compliance_verification_report.ttl index 336a810..d835267 100644 --- a/src/conformance_report.ttl +++ b/src/compliance_verification_report.ttl @@ -8,13 +8,13 @@ @prefix vann: . @prefix xsd: . -aec3po:conformance_report a owl:Ontology ; +aec3po:compliance_verification_report a owl:Ontology ; cc:license ; dct:contributor ; dct:description "The AEC3PO Compliance Verification Report module describes results of some `aec3po:ProcesVerifier` checking some entity via a `aec3po:CheckingAct`. Entities may be validated or repudiated."@en ; dct:modified "2023-05-26"^^xsd:date ; dct:title "AEC3PO: Compliance Verification Report"@en ; - owl:imports aec3po:check_method , aec3po:conformance_report ; + owl:imports aec3po:check_method , aec3po:compliance_verification_report ; vann:preferredNamespacePrefix "aec3po" ; vann:preferredNamespaceUri "https://w3id.org/lbd/aec3po/" . @@ -22,22 +22,22 @@ aec3po:conforms a owl:DatatypeProperty ; rdfs:label "conforms"@en ; # rdfs:comment "True if the checking act did not produce any validation results, and false otherwise."@en ; rdfs:comment "True if the Checking act confirms the check was validated, and false otherwise."@en ; - rdfs:domain aec3po:ConformanceReport ; - rdfs:isDefinedBy aec3po:conformance_report ; + rdfs:domain aec3po:ComplianceVerificationReport ; + rdfs:isDefinedBy aec3po:compliance_verification_report ; rdfs:range xsd:boolean . -aec3po:ConformanceReport a owl:Class ; +aec3po:ComplianceChekingReport a owl:Class ; rdfs:label "Compliance Verification Report"@en ; rdfs:comment """Result of a checking act. May be compliant or not."""@en ; - rdfs:isDefinedBy aec3po:conformance_report ; + rdfs:isDefinedBy aec3po:compliance_verification_report ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty aec3po:conforms ; owl:cardinality 1 ] . aec3po:result a owl:Class ; rdfs:label "Result"@en ; - rdfs:comment """For every compliance result that is produced by a checking act, the instance of aec3po:ConformanceReport in the results graph has a value for the property ae3cpo:result. Each value of aec3po:result is an instance of the class aec3po:ValidationResult."""@en ; - rdfs:isDefinedBy aec3po:conformance_report ; + rdfs:comment """For every compliance result that is produced by a checking act, the instance of aec3po:ComplianceVerificationReport in the results graph has a value for the property ae3cpo:result. Each value of aec3po:result is an instance of the class aec3po:ValidationResult."""@en ; + rdfs:isDefinedBy aec3po:compliance_verification_report ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty aec3po:conforms ; owl:cardinality 1 ] . @@ -45,7 +45,7 @@ aec3po:result a owl:Class ; aec3po:ValidationResult a owl:Class ; rdfs:label "Validation Result"@en ; rdfs:comment """Individual validation result of a Compliance Verification Report."""@en ; - rdfs:isDefinedBy aec3po:conformance_report ; + rdfs:isDefinedBy aec3po:compliance_verification_report ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty aec3po:focus ; owl:cardinality 1 ] , @@ -57,13 +57,13 @@ aec3po:focus a owl:ObjectProperty ; rdfs:label "focus"@en ; rdfs:comment "Each validation result has exactly one value for the property aec3po:focus that is equal to the focus entity that has caused the result. This is the focus entity that was validated when the validation result was produced." ; rdfs:domain aec3po:ValidationResult ; - rdfs:isDefinedBy aec3po:conformance_report . + rdfs:isDefinedBy aec3po:compliance_verification_report . aec3po:resultMessage a owl:DatatypeProperty ; rdfs:label "message"@en ; rdfs:comment "Validation results may have values for the property aec3po:resultMessage, for example to communicate additional textual details to humans. While aec3po:resultMessage may have multiple values, there should not be two values with the same language tag. These values are produced based on the values of aec3po:message of the statements in the AEC3PO graph." ; rdfs:domain aec3po:ValidationResult ; - rdfs:isDefinedBy aec3po:conformance_report . + rdfs:isDefinedBy aec3po:compliance_verification_report . aec3po:resultSeverity a owl:ObjectProperty ; rdfs:label "result severity"@en ; diff --git a/src/conformance_report.description.html b/src/conformance_report.description.html deleted file mode 100644 index 2d64a40..0000000 --- a/src/conformance_report.description.html +++ /dev/null @@ -1,8 +0,0 @@ -

Description

- -

The AEC3PO Conformance Report module describes results of some `aec3po:ProcesVerifier` checking some entity via a `aec3po:CheckingAct`.

- -

- Illustration of the core concepts in the Conformance Report module -
Illustration of the core concepts in the Conformance Report module
-
diff --git a/src/conformance_report.overview.md b/src/conformance_report.overview.md deleted file mode 100644 index c3035fe..0000000 --- a/src/conformance_report.overview.md +++ /dev/null @@ -1,4 +0,0 @@ -

Overview

- -

This is an overview of the Conformance Report module.

- diff --git a/src/rase_statement.ttl b/src/rase_statement.ttl index 40100a8..4f6c059 100644 --- a/src/rase_statement.ttl +++ b/src/rase_statement.ttl @@ -18,13 +18,13 @@ aec3po:rase_statement a owl:Ontology ; vann:preferredNamespaceUri "https://w3id.org/lbd/aec3po/" ; owl:imports aec3po:statement . -aec3po:RASEDecomposedStatement a owl:Class ; - rdfs:label "RASE Decomposed Statement"@en ; - rdfs:comment "Check decomposed following the Requirement Application Selection and Exception (RASE) methodology."@en ; - rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty aec3po:hasSubStatement ] ; - rdfs:isDefinedBy aec3po:rase_statement . +#aec3po:RASEDecomposedStatement a owl:Class ; + #rdfs:label "RASE Decomposed Statement"@en ; + #rdfs:comment "Check decomposed following the Requirement Application Selection and Exception (RASE) methodology."@en ; + #rdfs:subClassOf [ a owl:Restriction ; + # owl:minCardinality 1 ; + #owl:onProperty aec3po:hasSubStatement ] ; + #rdfs:isDefinedBy aec3po:rase_statement . aec3po:RequirementStatement a owl:Class ; rdfs:label "Requirement Statement"@en ; @@ -38,7 +38,7 @@ aec3po:requires a owl:ObjectProperty ; rdfs:comment "Links a check to the expression of a thing that is required by the check, as per the Requirement Application Selection and Exception (RASE) methodology."@en; skos:note "Usually, the Required/Requirement statements are highlighted in blue."@en ; rdfs:subPropertyOf aec3po:hasSubStatement ; - rdfs:domain aec3po:RASEDecomposedStatement ; +# rdfs:domain aec3po:RASEDecomposedStatement ; rdfs:range aec3po:RequirementStatement ; rdfs:isDefinedBy aec3po:rase_statement . @@ -54,7 +54,7 @@ aec3po:appliesTo a owl:ObjectProperty ; rdfs:comment "Links a check to the expression of a thing it applies to, as per the Requirement Application Selection and Exception (RASE) methodology."@en; skos:note "Usually, the Applies/Application statements are highlighted in green."@en ; rdfs:subPropertyOf aec3po:hasSubStatement ; - rdfs:domain aec3po:RASEDecomposedStatement ; +# rdfs:domain aec3po:RASEDecomposedStatement ; rdfs:range aec3po:ApplicationStatement ; rdfs:isDefinedBy aec3po:rase_statement . @@ -70,7 +70,7 @@ aec3po:except a owl:ObjectProperty ; rdfs:comment "Links a check to the expression of a thing that is excepted by the check, as per the Requirement Application Selection and Exception (RASE) methodology."@en; skos:note "Usually, the Excepted/Exception statements are highlighted in yellow."@en ; rdfs:subPropertyOf aec3po:hasSubStatement ; - rdfs:domain aec3po:RASEDecomposedStatement ; +# rdfs:domain aec3po:RASEDecomposedStatement ; rdfs:range aec3po:ExceptionStatement ; rdfs:isDefinedBy aec3po:rase_statement . @@ -86,7 +86,7 @@ aec3po:selects a owl:ObjectProperty ; rdfs:comment "Links a check to the expression of a thing that is selected by the check, as per the Requirement Application Selection and Exception (RASE) methodology."@en; skos:note "Usually, the Select/Selection statements are highlighted in purple."@en ; rdfs:subPropertyOf aec3po:hasSubStatement ; - rdfs:domain aec3po:RASEDecomposedStatement ; +# rdfs:domain aec3po:RASEDecomposedStatement ; rdfs:range aec3po:RequirementStatement ; rdfs:isDefinedBy aec3po:rase_statement . diff --git a/src/table.ttl b/src/table.ttl index a85ae9b..a26fc4c 100644 --- a/src/table.ttl +++ b/src/table.ttl @@ -33,14 +33,12 @@ aec3po:contains a owl:ObjectProperty ; rdfs:label "Contains"@en ; rdfs:comment """A container contains a table and its caption. A table contains row, columns and other elements."""@en ; rdfs:domain [ a owl:Class ; owl:unionOf ( aec3po:Table aec3po:Image aec3po:Row aec3po:Column) ] ; - owl:inverseOf aec3po:isContainedBy ; rdfs:isDefinedBy aec3po:table . aec3po:isContainedIn a owl:ObjectProperty ; rdfs:label "is contained by"@en ; rdfs:comment """A table contains row, columns and other elements."""@en ; rdfs:range [ a owl:Class ; owl:unionOf ( aec3po:Table aec3po:Image aec3po:Row aec3po:Column aec3po:Cell) ] ; - owl:inverseOf aec3po:contains ; rdfs:isDefinedBy aec3po:table . aec3po:caption a owl:DatatypeProperty ;